تور آموزشی

متغیرها در پایتون

متغیر در پایتون

در زبان پایتون هر متغیر یک محفظه برای نگهداری داده‌هاست. پایتون دستوری برای اعلان متغیر ندارد. بنابراین نیازی نیست ابتدا نوع متغیر را مشخص کنید و سپس آن را مقداردهی کنید. هر متغیر لحظه‌ای که به آن مقدار اختصاص داده شود، ایجاد می‌شود.

مثال:

x = 55.5
y = "test string"

همچنین زمانی که یک متغیر با نوع داده خاص (مثال عدد صحیح) مقداردهی شود، می‌توان آن را با یک داده از نوع دیگر مقداردهی دوباره کرد.

مثال:

x = 5
x = "salam"

اکنون مقدار متغیر x برابر با رشته “salam” خواهد بود.

گاهی پیش می‌آید که یک برنامه‌نویس باید نوع داده را تغییر دهد. مثلا یک مقدار عددی را به رشته تبدیل کند یا یک عدد صحیح را به عددی اعشاری تبدیل کند. به این کار در برنامه‌نویسی cast کردن یا casting می‌گویند.

مثال:

a = str(8)    # a will be '8'
b = int(8)    # b will be 8
c = float(8)  # c will be 8.0

در این مثال متغیر اول یک رشته، متغیر دوم یک عدد صحیح و متغیر سوم یک عدد اعشاری است.

با دستور type می‌توان نوع یک متغیر را مشخص کرد.

مثال:

x = 5
y = "salam"
print(type(x))
print(type(y))

خروجی:

<class 'int'>
<class 'str'>

لازم به ذکر است در پایتون برای چاپ متغیر در خروجی از تابع print() استفاده می‌کنیم.

رشته‌ها را می‌توان با کوتیشن (‘salam’) یا دابل‌کوتیشن (“salam”) تعریف کرد و تفاوتی با هم ندارند.

نکته دیگر درباره متغیرهای پایتون این است که به بزرگی و کوچکی حروف حساس هستند. مثلا متغیر a با متغیر A فرق دارد و دو متغیر جدا هستند. به این ویژگی در زبان‌های برنامه‌نویسی case sensitive می‌گویند.

نام گذاری و مقداردهی متغیرها در پایتون

اسم یک متغیر می‌تواند کوتاه به اندازه یک حرف باشد مانند x و یا طولانی‌تر و توضیحی مانند age، name و ... .

توصیه می‌شود نام‌گذاری متغیرها به گونه‌ای باشد که با خواندن نام متغیر کارکرد آن مشخص شود. مثلا برای دریافت نام و نام خانوادگی از کاربر می‌توان از متغیرهای x و y استفاده کرد. اما بهتر است از firstname و lastname استفاده کنیم.

برای نام‌گذاری متغیر در پایتون چند قانون وجود دارد:

  • اسم متغیر باید با یک حرف الفبا یا کاراکتر خط تیره پایین (_) آغاز شود.
  • اسم متغیر نمی‌تواند با عدد آغاز شود.
  • اسم متغیر می‌تواند فقط شامل عدد، حرف الفبا و کاراکتر خط تیره پایین باشد (A-Z, a-z, 0-9, _).
  • اسم متغیر به بزرگی و کوچکی حروف حساس است (case sensitive).

مثال:

myvar = "salam"
my_var = "salam"
_my_var = "salam"
myVar = "salam"
MYVAR = "salam"
myvar2 = "salam"

مثال از نام‌گذاری اشتباه:

2myvar = "salam"
my-var = "salam"
my var = "salam"

برای نام‌گذاری متغیرهای چندکلمه‌ای روش‌های مختلفی وجود دارد.

روش اول Camel Case است. در این روش هر کلمه غیر از کلمه اول با حروف بزرگ آغاز می‌شود.

myVariableName = "salam"

روش دوم Pascal Case است. در این روش همه کلمات با حروف بزرگ آغاز می‌شوند.

MyVariableName = "salam"

روش سوم Snake Case است. در این روش همه کلمات با حروف کوچک هستند و بین آنها از کاراکتر خط پایین آستفاده می‌شود.

my_variable_name = "salam"

در پایتون معمولا از Snake Case استفاده می‌کنیم. البته این روش‌ها فقط برای نام‌گذاری متغیرها نیستند. بلکه برای توابع، کلاس‌ها و سایر کلمات یک زبان برنامه‌نویسی نیز بکار می‌روند. در پایتون معمولا برای نام‌گذاری متغیرها و توابع از روش Snake Case استفاده می‌شود.

پایتون اجازه می‌دهد به چند متغیر را در یک خط مقداردهی کنید.

مثال:

x, y, z = "salam", "be", "hameh"

دقت کنید که دقیقا به اندازه متغیرها، مقدار داشته باشید. در غیر این صورت با خطا روبرو خواهید شد.

همچنین می‌توانید به چند متغیر یک مقدار را تخصیص دهید.

مثال:

x = y = z = "salam"

اگر یک گروه از مقادیر داشته باشید (لیست، تاپل و ...) پایتون اجازه می‌دهد این مقادیر را به متغیرهای مختلف اختصاص دهید.

مثال:

x, y, z = ["apple", "banana", "cherry"]

در این حالت x برابر با “apple” متغیر y برابر با “banana” و متغیر z نیز برابر با “cherry” خواهد بود. به این عمل unpacking می‌گویند.

متغیرهای سراسری

به متغیرهایی که بیرون از یک تابع تعریف می‌شوند (مانند مثال‌های بالا) متغیر سراسری (global) می‌گوییم. این متغیرها می‌توانند درون و یا بیرون از تابع مورد استفاده قرار بگیرند.

مثال:

x = "python"

def myfunc():
  print("salam " + x)

myfunc()

خروجی:

salam python

حال اگر یک متغیر با همین نام و مقداری متفاوت درون تابع تعریف کنیم، مقدار متغیر جدید فقط داخل تابع معتبر خواهد بود ولی بیرون از تابع متغیر اول.

مثال:

x = "python"

def myfunc():
  x = "java"
  print("salam " + x)

myfunc()

print("salam " + x)

خروجی:

salam java
salam python

وقتی یک متغیر درون تابع تعریف می‌شود، این متغیر یک متغیر محلی (local) خواهد بود و فقط درون همان تابع قابل استفاده خواهد بود. اگر می‌خواهیم یک متغیر را درون تابع تعریف کنیم و بیرون از تابع نیز به آن دسترسی داشته باشیم از کلمه کلیدی global استفاده می‌کنیم.

مثال:

def myfunc():
  global x
  x = "python"

myfunc()

print("salam " + x)

خروجی:

salam python

همچنین در صورتی که بخواهیم مقدار یک متغیر که بیرون از تابع تعریف شده است را درون تابع تغییر دهیم از همین کلمه کلیدی استفاده می‌کنیم.

مثال:

x = "java"

def myfunc():
  global x
  x = "python"

myfunc()

print("salam " + x)

خروجی:

salam python