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

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

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

در قسمت قبلی به صورت خلاصه در مورد متغیرها صحبت کردیم تا با کلیت آن ها آشنا شوید. در این جلسه می خواهیم به طور کامل آن ها را بررسی کنیم.

متغیرها در تمام زبان های برنامه نویسی نگهدارنده مقادیر هستند اما بر خلاف زبان های برنامه نویسی دیگر زبان پایتون هیچ دستوری برای declare کردن (تعریف متغیر بدون مقدار دهی به آن) ندارد بنابراین متغیرهای پایتون زمانی ساخته می شوند که شما مقدار خاصی را به آن ها بدهید. مثال:

x = 5
y = "John"
print(x)
print(y)

خروجی این کد به شکل زیر خواهد بود:

5
John

متغیرها در زبان پایتون نیازی به تعریف type (نوع داده شان) ندارند و حتی میتوانند پس از تعریف و گرفتن مقدار تغییر کنند:

x = 4 # x is of type int
x = "Sally" # x is now of type str
print(x)

خروجی این دستور رشته ی Sally خواهد بود.

نکته: برای تعریف یک رشته در پایتون تفاوتی میان Single quote ها و double quote ها نیست.

بنابراین هر دو خط زیر یکی هستند:

x = "John"
x = 'John'

نام متغیرها در پایتون می تواند کوتاه (مانند x و y) یا توصیف گرایانه (total_volume) باشد که به سلیقه ی شما بستگی دارد اما قوانین خاصی برای نام این متغیرها در نظر گرفته شده است که باید آن ها را رعایت کنید:

  • شروع نام (حرف اول) متغیر باید با حرف انگلیسی یا underscore (علامت _) باشد.
  • نام متغیر نمی تواند با عدد شروع شود.
  • نام متغیر تنها می تواند شامل حروف و اعداد انگلیسی و کاراکتر _ باشد.
  • نام متغیرها در پایتون case-sensitive هستد (حساسیت نسبت به حروف کوچک و بزرگ) بنابراین Age و AGE دو متغیر کاملا جداگانه هستند.

مقداردهی به چند متغیر

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

x, y, z = "Orange", "Banana", "Cherry"
print(x)
print(y)
print(z)

خروجی این دستور مقادیر زیر است:

Orange
Banana
Cherry

همچنین می توانید یک مقدار را همزمان به چندین متغیر بدهید:

x = y = z = "Orange"

print(x)
print(y)
print(z)

خروجی این دستور بدین شکل است:

Orange
Orange
Orange

خروجی گرفتن از متغیرها

همانطور که در تمامی مثال های قبل دیدید، دستور print در پایتون برای نمایش خروجی متغیرها استفاده می شود. برای چسباندن یک رشته و یک متغیر در زبان های برنامه نویسی اپراتور های خاصی وجود دارد؛ در زبان پایتون می توانید از علامت + استفاده کنید:

x = "awesome"
print("Python is " + x)

خروجی این دستور عبارت زیر است:

Python is awesome

البته می توانید با استفاده از همین علامت + دو متغیر را نیز به هم بچسبانید:

x = "Python is "
y = "awesome"
z =  x + y
print(z)

خروجی این کد به صورت زیر است:

Python is awesome

اگر متغیرهای ما از نوع عددی باشند رفتار + متفاوت خواهد بود. اگر دو متغیر عددی را با + به هم بچسبانیم، + به عنوان علامت جمع در ریاضی کار می کند:

x = 5
y = 10
print(x + y)

خروجی این کد عدد 15 خواهد بود.

اما اگر سعی کنید یک رشته و یک عدد را با هم جمع کنید به خطا برخورد خواهید کرد:

x = 5
y = "John"
print(x + y)

این کد خطای زیر را به ما خواهد داد:

TypeError: unsupported operand type(s) for +: 'int' and 'str'

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

اگر متغیرهای خود را خارج از توابع تعریف کنید، به آن ها متغیر سراسری (global) میگوییم. متغیرهای سراسری از همه ی قسمت های کد و توسط همه قابل دسترسی هستند. به طور مثال متغیر زیر را خارج از یک تابع تعریف میکنیم و از آنجایی که scope آن سراسری خواهد بود می توانیم درون تابع نیز از آن استفاده کنیم:

x = "awesome"
def myfunc():
  print("Python is " + x)
myfunc()

خروجی این کد عبارت Python is awesome است.

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

x = "awesome"

def myfunc():
  x = "fantastic"
  print("Python is " + x)

myfunc()

print("Python is " + x)

خروجی این کد دو عبارت زیر است:

Python is fantastic
Python is awesome

سوال: آیا میتوان درون تابع متغیری تعریف کرد که دارای Scope سراسری باشد؟

پاسخ: بله، برای این کار باید از کلیدواژه ی global استفاده کنید.

مثال:

def myfunc():
  global x
  x = "fantastic"
myfunc()
print("Python is " + x)

خروجی این کد عبارت Python is fantastic خواهد بود.

البته استفاده از کلیدواژه ی global یک ویژگی دیگر نیز دارد؛ اگر بخواهید یک متغیر سراسری را درون یک تابع ویرایش کنید می توانید از Global استفاده کنید. مثال:

x = "awesome"
def myfunc():
  global x
  x = "fantastic"
myfunc()
print("Python is " + x)

خروجی این کد عبارت Python is fantastic خواهد بود.

امیدوارم به طور کامل با متغیرها در زبان پایتون آشنا شده باشید.

تمام فصل‌های سری ترتیبی که روکسو برای مطالعه‌ی دروس سری از مقدماتی تا پیشرفته با پایتون توصیه می‌کند:
نویسنده شوید

دیدگاه‌های شما (1 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

aap
16 آذر 1399
سلام این دو پروژه پایتون تشخیص جنسیت تصویر هست: https://github.com/arunponnusamy/gender-detection-keras https://github.com/oarriaga/face_classification من تعدادی عکس دارم و میخوام برنامه ای باشه که در یک فایل txt یا اکسل ، لیست عکس های یک فولدر رو فهرست کنه و زن یا مرد بودن تصویر رو هم بنویسه.چون خودم پایتون بلد نیستم و نمیدونم چطوری خروجی بگیرم ، مزاحم شما شدم.لطفا هزینه انجام پروژه را هم بفرمائید.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.