آموزش متغیر ها در پایتون
1. معرفی متغیرها
1.1 تعریف متغیر در پایتون
تعریف متغیر در پایتون بسیار ساده است. کافی است یک نام برای متغیر انتخاب کنید و مقداری به آن اختصاص دهید. نحوه تعریف به این صورت است:
نام_متغیر = مقدار
به عنوان مثال:
x = 10 # متغیر x به مقدار 10 اختصاص مییابد name = "Ali" # متغیر name به "Ali" اختصاص مییابد pi = 3.14 # متغیر pi به 3.14 اختصاص مییابد is_valid = True # متغیر is_valid به مقدار True اختصاص مییابد
1.2 ویژگیهای مهم متغیرها در پایتون
الف) نوع داده (Data Type)
پایتون از انواع مختلف دادهها پشتیبانی میکند و به طور خودکار نوع داده متغیر را تشخیص میدهد. انواع رایج دادهها در پایتون عبارتند از:
عدد صحیح (Integer): مانند 5, 100, -23
عدد اعشاری (Float): مانند 3.14, -2.7
رشته (String): مانند “Hello, world!”, ‘Python’
بولی (Boolean): مانند True, False
لیست (List): مانند [1, 2, 3], [“a”, “b”, “c”]
تاپل (Tuple): مانند (1, 2, 3), (“x”, “y”)
دیکشنری (Dictionary): مانند {“name”: “Ali”, “age”: 25}
به عنوان مثال:
age = 25 # int height = 1.75 # float greeting = "Hello" # str is_adult = True # bool
پایتون دینامیک تایپ است، یعنی نیاز به مشخص کردن نوع داده هنگام تعریف متغیر ندارید و پایتون به طور خودکار نوع داده متغیر را بر اساس مقدار آن تشخیص میدهد.
ب) تغییر مقدار متغیر
در پایتون، میتوانید به راحتی مقدار یک متغیر را تغییر دهید. نیازی به تعریف مجدد نوع داده نیست و میتوانید به سادگی مقدار جدیدی به آن اختصاص دهید.
x = 5 x = 10 # حالا مقدار x تغییر کرده و به 10 میرسد
ج) مقداردهی اولیه (Initial Value Assignment)
توصیه میشود که همیشه متغیرها را با یک مقدار اولیه مقداردهی کنید. این کار از خطاهای احتمالی در برنامه جلوگیری میکند.
به عنوان مثال:
total = 0 # مقداردهی اولیه
1.3 استفاده از متغیرها در پایتون
پس از تعریف یک متغیر، میتوانید از آن در عملیات مختلف استفاده کنید. متغیرها میتوانند در محاسبات، چاپ نتایج و انجام دیگر پردازشها به کار روند.
به عنوان مثال:
a = 5 b = 10 sum_result = a + b # جمع دو متغیر print(sum_result) # چاپ نتیجه جمع
در این مثال، ابتدا متغیرهای a و b تعریف میشوند و سپس نتیجه جمع آنها در متغیر sum_result ذخیره میشود. در نهایت، نتیجه با استفاده از دستور print نمایش داده میشود.
2. اختصاص مقادیر چندگانه
2.1 اختصاص مقادیر چندگانه به متغیرها
یکی از ویژگیهای پایتون این است که میتوانید چندین متغیر را در یک خط کد و با استفاده از یک عملگر = مقداردهی کنید.
مثال:
a, b, c = 5, 10, 15 print(a) # 5 print(b) # 10 print(c) # 15
در این مثال، مقدار 5 به a، 10 به b و 15 به c اختصاص داده میشود. این روش به شما این امکان را میدهد که بهطور همزمان چندین متغیر را مقداردهی کنید.
2.2 استفاده از Tuple برای اختصاص مقادیر
در پایتون، میتوانید از یک tuple برای اختصاص مقادیر به متغیرها استفاده کنید. پایتون به طور خودکار tuple را تجزیه کرده و به متغیرها اختصاص میدهد.
مثال:
x, y = (1, 2) print(x) # 1 print(y) # 2
این روش برای اختصاص مقادیر به چند متغیر بهطور همزمان مفید است.
2.3 استفاده از لیست برای اختصاص مقادیر
شما همچنین میتوانید از یک لیست برای اختصاص مقادیر استفاده کنید. پایتون به طور خودکار مقادیر داخل لیست را به متغیرهای مربوطه اختصاص میدهد.
مثال:
a, b, c = [10, 20, 30] print(a) # 10 print(b) # 20 print(c) # 30
2.4 تغییر مقادیر در حین اختصاص
یکی دیگر از ویژگیهای جالب پایتون این است که میتوانید به راحتی مقادیر را در حین اختصاص تغییر دهید. مثلا میتوانید مقادیر پیشفرض را معکوس کنید یا مقادیر را در فرایند اختصاص تغییر دهید.
مثال:
a, b, c = 5, 10, 15 a, b = b, a # تغییر مقادیر a و b print(a) # 10 print(b) # 5
در این مثال، مقدار a با b جا به جا میشود بدون نیاز به کد اضافی.
2.5 استفاده از * برای اختصاص مقادیر باقیمانده
در پایتون، شما میتوانید از علامت * برای گرفتن مقادیر باقیمانده استفاده کنید. این ویژگی در زمان استفاده از تعداد متغیرها و مقادیر نابرابر بسیار مفید است.
مثال:
a, *b = [1, 2, 3, 4, 5] print(a) # 1 print(b) # [2, 3, 4, 5]
در اینجا، a اولین مقدار را میگیرد و باقیمانده مقادیر به صورت لیست در b ذخیره میشود.
2.6 استفاده از * در توابع برای دریافت آرگومانهای متعدد
اگر بخواهید تابعی تعریف کنید که تعداد آرگومانهای متغیر را دریافت کند، میتوانید از *args استفاده کنید.
مثال:
def sum_values(*args): return sum(args) print(sum_values(1, 2, 3, 4)) # 10
در اینجا، *args بهطور خودکار هر تعداد آرگومان که به تابع ارسال میشود را جمعآوری کرده و به لیست تبدیل میکند.
نکات مهم:
1.1 اختصاص مقادیر به چند متغیر در یک خط باعث خوانایی بیشتر کد و کاهش تعداد خطوط میشود.
1.2 پایتون از ساختارهای داده مانند tuple و لیست برای راحتی در اختصاص مقادیر استفاده میکند.
1.3 از * برای جمعآوری مقادیر باقیمانده یا متغیر تعداد آرگومانها میتوانید استفاده کنید.
1.4 این ویژگیها در پایتون کمک میکنند تا کد شما مختصرتر، قابل فهمتر و کارآمدتر باشد.
3. خروجی گرفتن از متغیر
در زبان پایتون، برای خروجی گرفتن از متغیرها معمولاً از دستور print() استفاده میشود. این دستور به راحتی مقدار متغیرها را در کنسول یا محیط اجرایی نمایش میدهد. در این بخش، نحوهی استفاده از آن به همراه نکات و مثالها توضیح داده خواهد شد.
3.1 استفاده از دستور print()
دستور print() در پایتون برای چاپ متغیرها و دادهها در کنسول یا خروجی استاندارد استفاده میشود.
مثال ساده:
x = 10 print(x)
خروجی: 10
3.2 چاپ متغیرها و متون با هم
با استفاده از دستور print(), میتوان همزمان متغیرها و متون را چاپ کرد. برای این کار میتوان از فاصلهها (space) یا علامت + برای ترکیب رشتهها استفاده کرد.
مثال 1: استفاده از فاصله (default)
name = "Alice"
age = 25
print("Name:", name, "Age:", age)
خروجی:
Name: Alice Age: 25
مثال 2: استفاده از علامت + برای ترکیب رشتهها
name = "Alice"
age = 25
print("Name: " + name + ", Age: " + str(age))
خروجی:
Name: Alice, Age: 25
در اینجا توجه کنید که باید مقدار عددی (age) را با استفاده از str() به رشته تبدیل کنید، چرا که عملگر + تنها با رشتهها کار میکند.
3.3 استفاده از قالب بندی رشتهها (f-strings)
یکی از روشهای مدرن و ساده در پایتون برای ترکیب متن و متغیرها، استفاده از f-strings است که از نسخه 3.6 به بعد در پایتون معرفی شده است. این روش خوانایی بالاتری دارد و از نظر عملکردی هم سریعتر است.
مثال:
name = "Alice"
age = 25
print(f"Name: {name}, Age: {age}")
خروجی:
Name: Alice, Age: 25
در اینجا با استفاده از f”{}” میتوانیم متغیرها را مستقیماً درون رشته قرار دهیم.
3.4 قالب بندی با استفاده از str.format()
قبل از معرفی f-strings, از متد str.format() برای قالببندی رشتهها استفاده میشد. این روش هنوز در بسیاری از کدها دیده میشود و کاملاً کاربردی است.
مثال:
"name = "Alice
age = 25
print("Name: {}, Age: {}".format(name, age))
خروجی:
Name: Alice, Age: 25
در این روش، از {} به عنوان جایگاههای متغیرها استفاده میشود و متد format() به ترتیب مقادیر متغیرها را در این جایگاهها قرار میدهد.
3.5 چاپ متغیرهای مختلف
اگر بخواهید چندین متغیر از انواع مختلف را چاپ کنید، هیچ مشکلی در پایتون وجود ندارد. پایتون به طور خودکار انواع مختلف دادهها را به صورت رشته تبدیل میکند.
مثال:
name = "Alice"
age = 25
height = 1.75
is_student = True
print(f"Name: {name}, Age: {age}, Height: {height}, Is Student: {is_student}")
خروجی:
Name: Alice, Age: 25, Height: 1.75, Is Student: True
در اینجا یک رشته ترکیبی از انواع دادهها (رشته، عدد صحیح، عدد اعشاری و مقدار بولی) چاپ میشود.
3.6 چاپ لیستها و دیکشنریها
لیستها: پایتون به طور خودکار لیستها را به شکل مناسب چاپ میکند.
دیکشنریها: دیکشنریها به صورت {key: value} نمایش داده میشوند.
مثال 1: لیست
my_list = [1, 2, 3, 4, 5] print(my_list)
خروجی:
[1, 2, 3, 4, 5]
مثال 2: دیکشنری
my_dict = {"name": "Alice", "age": 25}
print(my_dict)
خروجی:
{'name': 'Alice', 'age': 25}
4. نحوه نامگداری متغیر ها
4.1 استفاده از نامهای معنادار
نام متغیر باید بیانگر نوع داده یا هدف آن باشد. از نامهای غیرمعنادار مانند x یا temp خودداری کنید. بهجای آنها از نامهایی استفاده کنید که مفهوم واضحتری داشته باشند.
مثالهای خوب: userAge, totalAmount, isStudent
مثالهای بد: a, temp1, x
به عنوان مثال:
# بد x = 10 y = 20 result = x + y # خوب user_age = 10 user_height = 20 total_age = user_age + user_height
4.2 رعایت قوانین زبان پایتون
پایتون قواعد خاصی برای نامگذاری متغیرها دارد:
متغیرها نمیتوانند با عدد شروع شوند.
متغیرها نباید از کلمات کلیدی زبان پایتون استفاده کنند.
معمولاً نامهای متغیر به حروف کوچک و با استفاده از snake_case نوشته میشوند.
# بد 2nd_place = "Alice" # نام متغیر نمیتواند با عدد شروع شود # خوب second_place = "Alice"
4.3 استفاده از حروف کوچک و بزرگ (Snake_case)
در پایتون معمولاً از snake_case استفاده میشود که در آن تمام حروف کوچک هستند و کلمات با _ از هم جدا میشوند.
مثالها:
user_age
calculate_total_price
# بد userAge = 25 # استفاده از CamelCase در پایتون معمولاً توصیه نمیشود # خوب user_age = 25 # استفاده از snake_case
4.4 پرهیز از استفاده از حروف خاص و فضاها
در پایتون، از نمادهای خاص مانند @, #, ! در نام متغیرها نمیتوان استفاده کرد. اما _ برای جداسازی کلمات مجاز است.
مثال صحیح: my_variable
مثال غلط: my@variable, my-variable
# بد my@variable = 10 # استفاده از نماد @ # خوب my_variable = 10 # استفاده از _ برای جدا کردن کلمات
4.5 پرهیز از استفاده از حروف اختصاری
از استفاده از اختصارات خودداری کنید مگر اینکه بهطور واضح معنی آنها مشخص باشد. بهجای نامهایی مانند btn، بهتر است از نامهایی مانند submitButton استفاده کنید.
مثالهای خوب: submitButton, firstName
مثالهای بد: btn, tmp
# بد btnSubmit = "Click me" # استفاده از اختصار btn # خوب submit_button = "Click me" # نام توصیفی و کامل
4.6 استفاده از پیشوند و پسوندها
برای دستهبندی دادهها میتوانید از پیشوندها یا پسوندهای خاص استفاده کنید. برای مثال:
برای متغیرهای بولی: استفاده از پیشوند is یا has توصیه میشود.
isActive, hasPermission
برای لیستها: استفاده از پسوند List یا پیشوند arr توصیه میشود.
userList, arrNumbers
# برای متغیر بولی is_active = True # برای لیست user_list = ["Alice", "Bob", "Charlie"]
4.7 طول نام متغیر
برای متغیرهایی که عملکرد پیچیدهتری دارند، از نامهای توضیحیتر و طولانیتر استفاده کنید.
مثال: averageUserAge, calculatedInvoiceAmount
برای متغیرهای ساده و موقتی، از نامهای کوتاهتر استفاده کنید.
مثال: i, temp, n
# متغیر با نام کوتاه برای مقدار موقت i = 0 # متغیر با نام طولانی برای ذخیره اطلاعات پیچیده calculated_invoice_amount = 5000
4.8 رعایت استانداردهای کدنویسی تیمی
در پروژههای تیمی، بهتر است از استانداردهای خاص تیم برای نامگذاری متغیرها پیروی کنید تا کدها هماهنگ و خوانا باشند.
4.9 استفاده از نامهای غیرتکراری
برای جلوگیری از تداخل با دیگر متغیرها، از نامهای خاصتری برای متغیرها استفاده کنید.
به عنوان مثال:
# بد age = 30 age = 40 # تداخل نامها # خوب user_age = 30 employee_age = 40 # استفاده از نامهای خاص برای جلوگیری از تداخل second_variable = 20
4.10 دوری از استفاده از اعداد در نام متغیرها
از اعداد در ابتدا یا وسط نامهای متغیر خودداری کنید، مگر اینکه واقعاً ضروری باشد.
مثالهای خوب: firstVariable, secondTemp
مثالهای بد: var1, temp2
به عنوان مثال:
# بد var1 = 10 var2 = 20 # خوب first_variable = 10 second_variable = 20
4.11 استفاده از حالتهای ثابت (Constants)
برای مقادیر ثابت، از حروف بزرگ و خط زیر _ برای نامگذاری استفاده کنید.
مثالها: MAX_USERS, PI
به عنوان مثال:
# استفاده از ثابتها PI = 3.14159 MAX_USERS = 1000
5. متغیر های سراسری و محلی
1. متغیر های سراسری
تعریف: متغیرهای جهانی متغیرهایی هستند که خارج از توابع تعریف شدهاند و از هر بخش برنامه، چه داخل توابع و چه خارج از آنها، قابل دسترسی هستند.
ویژگیها:
دسترسپذیری از هر نقطه: میتوان به آنها از هر بخش برنامه دسترسی داشت.
حافظه ثابت: این متغیرها تا زمانی که برنامه اجرا میشود در حافظه باقی میمانند.
مناسب برای دادههای مشترک: برای ذخیره دادههایی که در بخشهای مختلف برنامه استفاده میشوند.
مزایا:
سادگی و راحتی دسترسی: نیازی به ارسال پارامترها به توابع مختلف نیست.
صرفهجویی در حافظه: دادهها به صورت یک متغیر واحد در برنامه ذخیره میشوند.
معایب:
عدم انزوا و احتمال خطا: تغییرات تصادفی در هر نقطه از برنامه میتواند منجر به خطاهای پیچیده شود.
کاهش خوانایی کد: ممکن است دیگران بهراحتی متوجه تغییرات دادهها نشوند.
به عنوان مثال:
x = 10 def print_x(): print(x) print_x()
توضیح: ابتدا یک متغیر جهانی x تعریف کردیم و مقدار 10 را به آن دادیم. سپس با تعریف تابع و پرینت x، مقدار داده شده به x را چاپ می کنیم. بنابراین با توجه به جهانی بودن متغیر x، هر تابعی می تواند از آن استفاده کند.
2. متغیرهای محلی (Local Variables)
تعریف: متغیرهای محلی تنها در داخل توابع یا بلوکهای خاصی که در آنها تعریف شدهاند، قابل دسترسی هستند و پس از پایان اجرای آنها از حافظه حذف میشوند.
ویژگیها:
دسترسپذیری محدود: فقط در محدوده تابع یا بلوک خاصی که در آن تعریف شدهاند قابل استفاده هستند.
غیرقابل دسترسی در خارج از محدوده: پس از اجرای تابع یا بلوک، این متغیرها دیگر قابل دسترسی نیستند.
مزایا:
1. عدم تداخل دادهها: به دلیل اینکه این متغیرها فقط در یک بخش خاص قابل دسترسی هستند، خطر تداخل با سایر بخشها کم است.
2. افزایش خوانایی کد: استفاده از متغیرهای محلی باعث میشود که کد شفافتر و سادهتر باشد.
3. مدیریت بهینه حافظه: این متغیرها تنها زمانی که نیاز است در حافظه نگهداری میشوند.
معایب:
1. دسترسپذیری محدود: نمیتوان از آنها در خارج از محدوده خود استفاده کرد.
2. نیاز به استفاده مجدد در توابع مختلف: برای استفاده از دادهها در توابع مختلف باید آنها را مجدداً تعریف کرد.
به عنوان مثال:
def my_function(): y = 5 # متغیر محلی print(y) my_function()
توضیح: در کد بالا ابتدا بعد از تعریف تابع، متغیر y را تعریف کردیم که یک متغیر محلی محسوب می شود.
تذکر: اگر بیرون از تابع تعریف شده، عبارت print(y) را صدا بزنیم، ارور دریافت می کنیم. زیرا به صورت سراسری تعریف نشده است و در اینجا، y یک متغیر محلی است که تنها در داخل تابع my_function قابل دسترسی است.
