متغیرها در پایتون محفظهای برای ذخیرهی دادهها است که میتوان مقدار آن را در طول اجرای برنامه تغییر داد. متغیرها در پایتون بدون نیاز به تعیین نوع دادهای خاص ایجاد میشوند و نوع آنها بر اساس مقدار انتسابیافته مشخص میشود. نامگذاری متغیرها باید از قوانین خاصی پیروی کند و از کاراکترهای معتبر تشکیل شود. انعطافپذیری و سادگی در تعریف متغیرها باعث میشود که پایتون برای برنامهنویسی کاربردی و سریع بسیار مناسب باشد.
مقدمه
متغیرها در پایتون بهعنوان ظرفهایی عمل میکنند که مقادیر را ذخیره میکنند. پایتون به صورت ایستا تایپشده نیست، به این معنی که نیازی به اعلام صریح نوع یا تعریف متغیرها قبل از استفاده از آنها وجود ندارد. متغیر زمانی ایجاد میشود که برای اولین بار مقداری به آن اختصاص داده شود. متغیرها در پایتون نامی است که به یک موقعیت حافظه اختصاص داده میشود و واحد اصلی ذخیرهسازی در یک برنامه محسوب میشود.
بهعنوان مثال ، متغیرها در پایتون مانند یک نام نماینده است که بهعنوان یک اشارهگر به یک شی عمل میکند. زمانی که یک شیء به یک متغیر اختصاص داده میشود، میتوان با استفاده از این نام به آن ارجاع داد. به عبارت سادهتر، متغیرها در پایتون مانند ظرفهایی هستند که مقادیر را ذخیره میکنند. برای نمونه، زمانی که رشتهای مانند “programstore” را در یک متغیر به نام var ذخیره کنیم، با فراخوانی این نام، اطلاعات ذخیرهشده نمایش داده میشوند.
Var = "programstore" print(Var)
خروجی:
programstore
نکات:
- مقدار ذخیرهشده در یک متغیر میتواند در طول اجرای برنامه تغییر کند.
- متغیرها در پایتون تنها یک نام است که به یک مکان حافظه اختصاص داده شده است. هر عملی که روی متغیر انجام شود، بر روی آن مکان حافظه تأثیر میگذارد.
قوانین مربوط به متغیرها در پایتون
- نام یک متغیر در پایتون باید با یک حرف یا زیرخط ( _ ) شروع شود.
- نام متغیر نمیتواند با یک عدد آغاز شود.
- نام متغیرها در پایتون تنها میتواند شامل حروف الفبایی، اعداد (۰ – ۹) و زیرخط ( _ ) باشد.
- در نامگذاری متغیرها، به حروف بزرگ و کوچک حساسیت وجود دارد (برای مثال، Name، name و NAME سه متغیر متفاوت هستند).
- از کلمات رزرو شده (کلیدواژهها) در پایتون نمیتوان برای نامگذاری متغیرها استفاده کرد.
# valid variable name program = 1 Program = 2 Pro_g_ram = 5 _program = 6 program_ = 7 _PROGRAM_ = 8 print(program , Program , Pro_g_ram ) print(_program , program_ , _PROGRAM_ )
خروجی:
۱ ۲ ۵ ۶ ۷ ۸
اختصاص متغیرها در پایتون
در این بخش یک متغیر در پایتون تعریف میکنیم. به طور کلی، به متغیرهایی مانند سن ، حقوق و نام به ترتیب یک عدد صحیح، یک عدد اعشاری و یک رشته متنی اختصاص دادهایم.
# An integer assignment age = 45 # A floating point salary = 1456.8 # A string name = "John" print(age) print(salary) print(name)
خروجی:
۴۵ ۱۴۵۶.۸ Johannes
اعلان و مقداردهی اولیه متغیرها در پایتون
با ما همراه شوید تا ببینبم که چگونه متغیرها در پایتون تعریف و مقداردهی میشوند و چگونه میتوان مقدار آن را نمایش داد.
# declaring the var Number = 100 # display print( Number)
خروجی:
۱۰۰
اعلان مجدد متغیرها در پایتون
پس از اینکه یک متغیر در پایتون تعریف شد، میتوانیم آن را دوباره اعلان کرده و مقدار جدیدی به آن اختصاص دهیم.
# declaring the var Number = 100 # display print("Before declare: ", Number) # re-declare the var Number = 120.3 print("After re-declare:", Number)
خروجی:
Vor der Deklaration: 100 Nach der erneuten Deklaration: 120,3
پایتون امکان اختصاص مقادیر به چندین متغیر را فراهم میکند
همچنین پایتون این امکان را میدهد که یک مقدار به طور همزمان به چندین متغیر با استفاده از اپراتور = اختصاص داده شود.
a = b = c = 10 print(a) print(b) print(c)
خروجی:
۱۰ ۱۰ ۱۰
اختصاص مقادیر مختلف به چندین متغیر
پایتون این امکان را فراهم میکند که مقادیر مختلف را در یک خط با استفاده از اپراتور (،) به چندین متغیر اختصاص دهید.
a, b, c = 1, 20.2, "programstore" print(a) print(b) print(c)
خروجی:
۱ ۲۰.۲ programstore
آیا میتوانیم از یک نام مشابه برای انواع مختلف استفاده کنیم؟
بله، در پایتون میتوانیم از یک نام مشابه برای انواع مختلف استفاده کنیم. اگر از همان نام استفاده کنیم، متغیر به یک مقدار و نوع جدید اشاره میکند.
a = 10 b = "program" print(a+b)
خروجی:
TypeError: nicht unterstützte Operandentypen für +: „int“ und „str“
متغیرهای سراسری و محلی در پایتون
متغیرهای محلی در پایتون آن دسته از متغیرهایی هستند که داخل یک تابع تعریف و اعلان میشوند و تنها در داخل همان تابع قابل دسترسی هستند. به این معنی که نمیتوان این متغیرها را خارج از تابع فراخوانی کرد.
# This function uses local variable s def f(): s = "Welcome programstore" print(s) f()
خروجی:
Ich liebe programstore
کلمه کلیدی global در پایتون
کلمه کلیدی global در پایتون به کاربر این امکان را میدهد که یک متغیر را خارج از محدوده فعلی تغییر دهد. این کلمه برای ایجاد متغیرهای سراسری در داخل یک محدوده غیر سراسری (یعنی داخل یک تابع) استفاده میشود. کلمه کلیدی global تنها زمانی در داخل یک تابع استفاده میشود که بخواهیم به یک متغیر مقدار بدهیم یا آن را تغییر دهیم. برای چاپ یا دسترسی به یک متغیر نیازی به استفاده از global نیست.
قوانین کلمه کلیدی global
- اگر به یک متغیر در بدنه یک تابع مقدار داده شود، این متغیر به طور پیشفرض محلی در نظر گرفته میشود مگر اینکه به طور خاص به عنوان سراسری (global) اعلام شود.
- متغیرهایی که تنها در داخل یک تابع ارجاع داده میشوند، به طور ضمنی سراسری در نظر گرفته میشوند.
- برای استفاده از یک متغیر سراسری در داخل یک تابع، باید از کلمه کلیدی global استفاده کرد.
- نیازی به استفاده از کلمه کلیدی globl برای دسترسی به متغیرهای سراسری در خارج از تابع نیست.
مثال: یک برنامه پایتون برای تغییر یک مقدار سراسری در داخل یک تابع.
x = 15 def change(): # using a global keyword global x # increment value of a by 5 x = x + 5 print("Value of x inside a function :", x) change() print("Value of x outside a function :", x)
خروجی:
Wert von x innerhalb einer Funktion: 20 Wert von x außerhalb einer Funktion: 20
انواع دادهها در پایتون
نوع دادهها طبقهبندی یا دستهبندی عناصر دادهای هستند. آنها نوع مقداری را نشان میدهند که مشخص میکند چه عملیاتی بر روی دادههای خاص میتوان انجام داد. از آنجا که در برنامهنویسی پایتون همهچیز یک شیء است، نوع دادهها در واقع کلاسهایی هستند و متغیرها نمونهها (اشیا) این کلاسها هستند.
انواع دادههای داخلی در پایتون عبارتند از:
- عددی
- نوع متن
- نوع دنباله (لیست در پایتون، تاپل پایتون، بازه پایتون)
- مقدار بولی
- مجموعه
- دیکشنری
مثال: نمونههای مختلفی از انواع دادههای داخلی در پایتون نمایش داده شده است.
# numberic var = 123 print("Numeric data : ", var) # Sequence Type String1 = 'Welcome to the Geeks World' print("String with the use of Single Quotes: ") print(String1) # Boolean print(type(True)) print(type(False)) # Creating a Set with # the use of a String set1 = set("GeeksForGeeks") print("\nSet with the use of String: ") print(set1) # Creating a Dictionary # with Integer Keys Dict = {1: 'Geeks', 2: 'For', 3: 'Geeks'} print("\nDictionary with the use of Integer Keys: ") print(Dict)
خروجی:
Numerische Daten: 123 Zeichenfolge mit Verwendung von einfachen Anführungszeichen: Willkommen in der Welt der Geeks <class 'bool'> <class 'bool'> Satz mit Verwendung von Zeichenfolgen: {'r', 'G', 'e', 'k', 'o', 's', 'F'} Wörterbuch mit Verwendung von Integer-Schlüsseln: {۱: 'Geeks', 2: 'For', 3: 'Geeks'}
ارجاع شیء در پایتون
زمانی که به متغیر x مقدار ۵ را اختصاص میدهیم، در واقع به متغیر x یک ارجاع به یک شیء در حافظه داده میشود که مقدار آن ۵ است. در پایتون، متغیرها در واقع ارجاعاتی به اشیاء هستند و وقتی یک مقدار به یک متغیر اختصاص داده میشود، متغیر به شیءای که آن مقدار را نگهداری میکند، اشاره میکند.
x = 5
یک متغیر دیگر به نام y به متغیر x اختصاص مییابد.
در پایتون، اگر متغیر y به متغیر x اختصاص داده شود، این دو متغیر به همان شیء در حافظه ارجاع میدهند. به عبارت دیگر، حالا هر دو متغیر x و y به یک مقدار مشترک اشاره میکنند و تغییر مقدار یکی از آنها بر دیگری تأثیر خواهد گذاشت.
y = x
زمانی که پایتون اولین دستور را مشاهده میکند، ابتدا یک شیء ایجاد میکند که مقدار ۵ را نشان میدهد. سپس متغیر x را ایجاد میکند (اگر قبلاً وجود نداشته باشد) و آن را به این شیء جدید با مقدار ۵ ارجاع میدهد. در خط دوم، پایتون متغیر y را ایجاد میکند، اما به جای این که آن را به x اختصاص دهد، آن را طوری تنظیم میکند که به شیءای ارجاع دهد که x به آن اشاره دارد. نتیجه این است که هر دو متغیر x و y در نهایت به یک شیء اشاره میکنند. این وضعیت که در آن چندین نام به یک شیء اشاره میکنند، در پایتون به عنوان “ارجاع مشترک” شناخته میشود. حالا اگر بنویسیم:
x = "program"
این دستور یک شی جدید برای نمایش “program” ایجاد میکند و باعث میشود که متغیر x به این شیء جدید ارجاع دهد.
اگر حالا مقدار جدیدی به y اختصاص دهیم، شیء قبلی که y به آن ارجاع میداد به مقادیر زباله (Garbage Values) تبدیل میشود.
y = "Computer"
ایجاد اشیاء (یا متغیرهای نوع کلاس)
به این معناست که شما یک نمونه از یک کلاس را در پایتون میسازید. برای این کار، ابتدا باید یک کلاس تعریف کنید و سپس از آن یک شیء جدید ایجاد کنید. در این فرآیند، کلاس به عنوان طرحی برای اشیاء عمل میکند و هر شیء از کلاس به عنوان یک نمونه مجزا از آن طرح با ویژگیها و رفتارهای خاص خود است.
class CSStudent: # Class Variable stream = 'cse' # The init method or constructor def __init__(self, roll): # Instance Variable self.roll = roll # Objects of CSStudent class a = CSStudent(101) b = CSStudent(102) print(a.stream) # prints "cse" print(b.stream) # prints "cse" print(a.roll) # prints 101 # Class variables can be accessed using class # name also print(CSStudent.stream) # prints "cse"
خروجی:
cse cse ۱۰۱ cse
متغیرهای محلی
متغیرهای محلی متغیرهایی هستند که داخل یک تابع تعریف میشوند. این متغیرها فقط در همان تابع قابل استفادهاند و از بیرون تابع به آنها دسترسی وجود ندارد.
نکته: وقتی اجرای کد از تابع خارج شود، متغیرهای محلی دیگر وجود نخواهند داشت و از حافظه پاک میشوند.
مثال:
def print_local(): local_var = "I am local" print(local_var) print_local() # Output: I am local # print(local_var) # This would raise an error because local_var is not accessible outside the function.
چگونه از حاشیهنویسی نوع (Type Annotations) برای متغیرها در پایتون استفاده کنیم؟
در پایتون، حاشیهنویسی نوع روشی است برای مشخص کردن نوع دادهای که انتظار دارید یک متغیر داشته باشد. این ویژگی باعث نمیشود که نوع متغیر در زمان اجرا بررسی شود، اما میتواند به ابزارهایی مانند چککنندههای نوع استاتیک، IDEها و لینترها کمک کند تا خطاهای مرتبط با نوع داده را شناسایی کنند.
مزایای حاشیهنویسی
- افزایش خوانایی کد: وقتی نوع متغیرها مشخص باشد، فهمیدن کد برای دیگران (و حتی خودتان) آسانتر میشود.
- کاهش خطا: ابزارهای چککننده میتوانند خطاهای احتمالی مرتبط با نوع را پیش از اجرای برنامه پیدا کنند.
- پشتیبانی توسط ابزارهای توسعه: IDEها و لینترها از این قابلیت استفاده میکنند تا پیشنهادهای بهتری بدهند یا هشدارهایی در صورت اشتباه ارائه کنند.
نکته: حاشیهنویسی نوع در زمان اجرا اجباری نیست. پایتون همچنان به صورت پویا عمل میکند و اگر نوع دیگری به متغیر بدهید، بدون خطا اجرا میشود.
مثال:
# Using type annotations name: str = "Alice" age: int = 25 is_student: bool = True def greeting(name: str) -> str: return f"Hello, {name}" # Static type checkers can use these annotations to detect type errors
در این مثال: ، متغیرهای name، age، و is_student با نوع مورد انتظار خود حاشیهنویسی شدهاند. همچنین، تابع greeting نیز حاشیهنویسی نوع برای پارامتر و نوع بازگشتی خود دارد.
توضیح بیشتر:
حاشیهنویسی نوع به ما کمک میکند تا نوع دادهای که قرار است به یک متغیر یا پارامتر اختصاص داده شود، مشخص کنیم. در این مثال، تابع greeting برای ورودیها و خروجی خود نوع داده را تعریف کرده است. این کار باعث میشود که کد خواناتر و قابل فهمتر باشد، و ابزارهای مختلف مانند IDEها میتوانند خطاهای مرتبط با نوع را پیش از اجرا شناسایی کنند.
نتیجهگیری
پایتون به شما این امکان را میدهد که با استفاده از متغیرهای سراسری و محلی، کدهایی ساده و انعطافپذیر بنویسید. حاشیهنویسی نوع به شما کمک میکند که کد خواناتر و قابل فهمتر شود، ولی در عین حال پایتون همچنان اجازه میدهد که نوع متغیرها در زمان اجرا تغییر کند. این ویژگیها باعث میشود پایتون زبان قدرتمند و در عین حال کاربرپسندی باشد.
میشه در پایتون نوع متغیر رو خودمون تعیین کنیم که مقادیر مثلا عددی داشته باشه
بله، میشه نوع متغیر دلخواهی ایجاد کرد که فقط مقادیر خاصی را بپذیره . این کار معمولا با استفاده از کلاسها و بررسی مقادیر در داخل متدهای کلاس انجام میشه
در پایتون، نوع متغیرها به صورت خودکار تعیین میشود، اما میتوانید با استفاده از تکنیکهای مختلف، مانند استفاده از کلاسها یا تابعها، محدودیتهایی برای نوع داده اعمال کنید تا فقط مقادیر خاصی پذیرفته شوند.
سلام ممنون از مطلب مفید. اگه از دستور if استفاده کنیم چطور متغیر رو توش بزاریم؟
در داخل دستور if, میتوانید متغیرهای مختلف را با عملگرهای مقایسهای (مثل ==, >, <, !=, و غیره) بررسی کنید. همچنین در صورت نیاز، میتوانید از دستورات else و elif برای مدیریت حالات مختلف استفاده کنید.
توضیحات تون باعث شد من به برنامه نویسی و کامپیوتر علاقه مند بشوم .
باعث خوشحالیه
مرسی خیلی ملموس تر و روشن تر شد برام داستان متغیر تو برنامه نویسی
بسیار عالی
عالی و بی نظیر حتی برای کسانی که هیچ پیش زمینه ای ندارن
ممنونم از شما
بهترین دوره پایتون در آموزشهای فارسی است
لطف دارین ممنونم