در قسمت قبلی به صورت خلاصه در مورد متغیرها صحبت کردیم تا با کلیت آن ها آشنا شوید. در این جلسه می خواهیم به طور کامل آن ها را بررسی کنیم.
متغیرها در تمام زبان های برنامه نویسی نگهدارنده مقادیر هستند اما بر خلاف زبان های برنامه نویسی دیگر زبان پایتون هیچ دستوری برای 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) باشد که به سلیقه ی شما بستگی دارد اما قوانین خاصی برای نام این متغیرها در نظر گرفته شده است که باید آن ها را رعایت کنید:
مقداردهی به چند متغیر
پایتون به شما اجازه میدهد که در یک خط به چندین متغیر مقدار دهید:
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 خواهد بود.
امیدوارم به طور کامل با متغیرها در زبان پایتون آشنا شده باشید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.