logo
همه

هر آنچه درباره انواع متغیرها در پایتون باید بدانید!

Unes Moradi - 1403/12/30
banner image

متغیر در پایتون ظرفی برای ذخیره اطلاعات است و کار با داده‌‌ها را برای برنامه‌نویس بسیار آسان می‌کند. شاید در نگاه اول این مفهوم خیلی ساده به نظر برسد: یک اسم می‌گذارید، یک مقدار می‌دهید و تمام! اما واقعیت کاملا متفاوت است. 

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



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

پایتون به عنوان پردرآمدترین زبان برنامه‌نویسی دنیا یک زبان پویا (Dynamically Typed) است. یعنی نیازی نیست نوع داده متغیر را از قبل مشخص کنید و پایتون به‌صورت خودکار نوع داده را بر اساس مقدار متغیر تشخیص می‌دهد. 

بنابراین ایجاد متغیر در پایتون به سادگی آب خوردن است. کافی است نام را انتخاب کنید، علامت مساوی (=) بگذارید و مقدار مورد نظرتان را وارد کنید:

my_variable = 10

another_variable = "Hello, Python!"

در این مثال  my_variable متغیر عددی و another_variable متغیر رشته‌ای است. به همین راحتی!


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

  • نام متغیر باید با یک حرف (a-z, A-Z) یا زیرخط (_) شروع شود.

  • اسم متغیر می‌تواند شامل حروف (بزرگ و کوچک)، اعداد و زیرخط (_) باشد.

  • نام متغیر نمی‌تواند با عدد شروع شود.

  • پایتون به بزرگی و کوچکی حروف حساس است پس myVariable با myvariable فرق دارد.

  • از کلمات کلیدی پایتون (مثل if, else, for, while و ...) نمی‌توانید به عنوان نام متغیر استفاده کنید.


برنامه‌نویس‌های حرفه‌ای برای تعریف نام متغیر از «نگارش ماری» استفاده می‌کنند. در این روش تمام کلمات با حروف کوچک نوشته و هر کلمه با علامت زیرخط (_) از کلمه بعدی جدا می‌شود. مثلا: 

user_name = "محمد"

total_price = 15000


مقداردهی متغیرها

همان‌طور که دیدید مقداردهی اولیه با علامت = انجام می‌شود. جالب این‌جاست که می‌توانید به چند متغیر به‌طور هم‌زمان مقدار بدهید:

x, y, z = 1, 2, 3


یا حتی یک مقدار را به چند متغیر اختصاص دهید:

a, b, c = 1, 2, 3  

name = age = country = "Unknown"


همچنین متغیرها را می‌توان مقداردهی مجدد کرد و حتی نوع داده‌ آن‌ها را تغییر داد:

x = 5

x = "Python"  # تغییر نوع متغیر از عدد به رشته


انواع داده در پایتون

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


انواع داده‌های عددی (Numeric Types)

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


  • int (عدد صحیح)

نوع داده int برای نمایش اعداد صحیح (بدون اعشار) استفاده می‌شود. این نوع داده محدودیتی در اندازه ندارد و می‌تواند اعداد بسیار بزرگ را هم ذخیره کند. مثال:

x = 15

y = -200

large_number = 12345678901


  • float (عدد اعشاری)

اعداد اعشاری با نوع float نمایش داده می‌شوند که در محاسبات علمی و دقیق کاربرد دارد:

pi = 3.14159

temperature = -12.5


  • complex (عدد مختلط)

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

z = 3 + 4j  # عدد مختلط با قسمت حقیقی 3 و موهومی 4


برای درک بهتر بیایید یک مثال ترکیبی از این سه نوع داده را بررسی کنیم:

مثال اول:

a = 15

b = 4

print(a * b)    # 60 خروجی

print(a / b)    # 3.75 (برمی‌گرداند float تقسیم همیشه)

print(a // b)   # 3 (تقسیم با حذف اعشار)

مثال دوم:

a = 10          # int

b = 3.14        # float

c = 2 + 3j      # complex

print(a + b)    # خروجی 13.14

print(a + c)    # (12+3j) خروجی

این مثال‌ها نشان می‌دهد که پایتون به‌راحتی عملیات بین انواع مختلف داده‌های عددی را انجام می‌دهد فقط باید به نوع خروجی دقت کنید.


داده‌های رشته‌ای (String Type - str)

داده‌های رشته‌ای یا str برای نمایش متن استفاده می‌شوند. رشته‌ها در پایتون با استفاده از نقل‌قول‌های تکی (') یا دوتایی (") تعریف می‌شوند:

name = 'علی'

message = "!سلام دنیا"


برای رشته‌های چندخطی می‌توانید از سه نقل‌قول (''' یا """) استفاده کنید:

long_text = """این یک متن چندخطی است

که در چندین خط 

نوشته شده است."""


رشته‌ها در پایتون قابلیت‌های فراوانی دارند. مثلا می‌توانید بخشی از یک رشته را جدا کنید:

text = "Python is fun"

print(text[0:6])  # خروجی: Python


می‌توانید دو رشته را به هم بچسبانید:

first_name = "Ali"

last_name = "Rezaei"

full_name = first_name + " " + last_name

print(full_name)  # خروجی: Ali Rezaei


جستجو و جایگزینی یک زیررشته در رشته با استفاده از متد find یا replace:

msg = "Hello Python"

print(msg.replace("Python", "World"))  # جایگزینی

print(msg.find("Python"))  # جستجو


پایتون مجموعه‌ای از توابع داخلی هم برای کار با رشته‌ها دارد که پرکاربردترین آن‌ها عبارتند از:

  • upper(): تبدیل حروف به بزرگ

  • lower(): تبدیل حروف به کوچک

  • strip(): حذف فضای خالی از ابتدا و انتهای رشته

  • split(): تقسیم رشته به لیست بر اساس یک جداکننده

مثال:

text = "  Hello, Python!  "

print(text.upper())      # خروجی: HELLO, PYTHON!

print(text.strip())      # خروجی: Hello, Python!

print(text.split(","))   # خروجی: ['  Hello', ' Python!  ']


داده‌های لیستی و مجموعه‌ای

در پایتون از لیست و مجموعه‌ برای ذخیره و مدیریت گروهی داده‌ها استفاده می‌شوند. در ادامه مهم‌ترین موارد آنها را مرور می‌کنیم.


  • لیست (List - [])

لیست در پایتون مجموعه‌ای است که انواع مختلفی از داده‌ها را در خود جا می‌دهد. لیست‌ها با کروشه [] تعریف می‌شوند. مثال:

numbers = [1, 2, 3, 4]


روش‌های افزودن، حذف و ویرایش عناصر:

  • append(item): یک آیتم به انتهای لیست اضافه می‌کند

  • insert(index, item): یک آیتم را در موقعیت مشخصی درج می‌کند

  • remove(item): اولین آیتم مطابق را حذف می‌کند

  • pop(index): آیتم موجود در موقعیت مشخص را حذف و برمی‌گرداند


برای ویرایش لیست کافی است عنصر مورد نظر را با استفاده از اندیس (index) پیدا کرده و مقدار جدید بدهید: 

numbers = [1, 2, 3]

numbers.append(4)  # [1, 2, 3, 4] افزودن عنصر جدید:

numbers.insert(1, 5)  # [1, 5, 2, 3, 4] درج در موقعیت مشخص

numbers.remove(2)  # [1, 5, 3, 4]  حذف اولین مقدار

popped = numbers.pop()  # [1, 5, 3] حذف و بازگرداندن آخرین عنصر:


در پایتون متغیرها به دو دسته Mutable (تغییرپذیر) و Immutable (تغییرناپذیر) تقسیم می‌شوند. لیست‌ها Mutable هستند، یعنی می‌توان محتوای آن‌ها را بدون تغییر شناسه (ID) آن‌ها عوض کرد.


  • تاپل (Tuple - ())

تاپل هم نوعی لیست است اما بعد از ایجاد نمی‌شود عناصر درون آن را تغییر داد یا حذف و اضافه کرد. 

my_tuple = (1, 2, 3, 4)

# my_tuple[0] = 10  # این دستور خطا ایجاد می‌کند

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

  • بازگرداندن چندین مقدار از یک تابع

  • استفاده به‌عنوان کلید در دیکشنری (برخلاف لیست‌ها)

  • نگهداری داده‌های ثابت مانند مختصات جغرافیایی

def get_user_info():

    return ("علی", 25, "تهران")

name, age, city = get_user_info() 


  • مجموعه (Set - {})

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

unique_numbers = {1, 2, 3, 3, 4}  # مقدار تکراری حذف می‌شود


داده‌های دیکشنری (Dictionary - {})

دیکشنری‌ها ساختاری کلید-مقدار داشته و برای ذخیره داده‌های مرتبط استفاده می‌شوند. مقادیر دیکشنری می‌توانند از هر نوعی باشند، حتی لیست‌ها یا دیکشنری‌های دیگر، اما کلیدها باید از نوع hashable (مانند رشته، عدد یا تاپل) باشند.

my_dict = {

    "name": "Ali",

    "age": 30,

    "city": "Tehran"

}


دیکشنری‌ها Mutable هستند و می‌توان به راحتی داده‌های آن‌ها را تغییر داد. دسترسی به مقادیر هم با استفاده از کلید بسیار ساده و سریع است:

user = {"name": "مریم", "age": 25, "city": "شیراز"}


print(user["name"])  # مریم


# روش امن‌تر برای دریافت مقدار

age = user.get("age", 0)  # اگر کلید وجود نداشت، 0 برگردانده می‌شود


# بررسی وجود کلید

if "email" in user:

    print(user["email"])

else:

    print("ایمیل تعریف نشده است")

دیکشنری‌ها در پایتون بهینه شده‌اند و جستجو با آن‌ها حتی در حجم زیادی از داده، سریع است. بنابراین برای کاربردهایی مانند کش کردن، ذخیره‌سازی تنظیمات و مدیریت داده‌های پیچیده بسیار مناسبند. نکته مهم این است که کلیدها باید immutable باشند (مثل رشته، عدد یا تاپل). اما مقادیر می‌توانند از هر نوع داده‌ای انتخاب شوند.


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

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


متغیرهای Mutable و Immutable 


همان‌طور که گفتیم متغیر در پایتون به دو دسته کلی Mutable (قابل تغییر) و Immutable (غیرقابل تغییر) تقسیم می‌شود. در ادامه بیشتر با آن‌ها آشنا می‌شویم. 


  • متغیرهای Mutable 

این متغیرها را می‌توان بعد از ایجاد تغییر داد. یعنی می‌توانید محتوای آن‌ها را عوض کنید، بدون اینکه نیاز باشد یک متغیر جدید بسازید. 

مثال‌هایی از متغیرهای mutable:

  • list: لیست‌ها

  • dict: دیکشنری‌ها

  • set: مجموعه‌ها


مثال: تغییر مقدار یک لیست:

my_list = [1, 2, 3]  # تعریف یک لیست

my_list.append(4)     # اضافه کردن مقدار جدید

print(my_list)        # [1, 2, 3, 4] خروجی

در این مثال مقدار my_list در همان آدرس حافظه باقی می‌ماند، اما مقدار آن تغییر می‌کند.


  • متغیرهای Immutable (غیرقابل تغییر)

این متغیرها بعد از مقدار دهی اولیه دیگر قابل تغییر نیستند. اگر بخواهید مقدار آن‌ها را عوض کنید، در واقع یک متغیر جدید می‌سازید. 

مثال‌هایی از متغیرهای Immutable:

  • int: اعداد صحیح

  • float: اعداد اعشاری

  • tuple: تاپل‌ها

  • str: رشته‌ها


مثال: تغییر مقدار یک عدد صحیح 

x = 10

x = x + 5  

print(x)  # خروجی: 15

اینجا در ظاهر مقدار x تغییر کرده اما در حقیقت یک شیء جدید در حافظه ایجاد و متغیر x به آن ارجاع داده شده. مقدار قبلی دیگر در دسترس نیست و توسط Garbage Collector حذف خواهد شد.


  • تفاوت و تأثیر در مدیریت حافظه

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

در مقابل متغیرهای Mutable این‌طور نیستند. وقتی لیستی را تغییر می‌دهید، پایتون همان لیست قبلی را در حافظه تغییر می‌دهد. این کار شاید سریع‌تر باشد، اما اگر چند متغیر به یک لیست اشاره کنند، تغییر لیست از طریق یکی از متغیرها، روی بقیه‌ی آنها هم تأثیر می‌گذارد.


تبدیل نوع داده در پایتون (Type Casting)

گاهی لازم است که نوع یک متغیر در پایتون را تغییر دهید. مثلاً یک عدد را به رشته تبدیل کنید یا برعکس. به این کار تبدیل نوع داده یا Type Casting می‌گویند. پایتون دو نوع تبدیل نوع داده دارد که در ادامه با آن‌ها آشنا می‌شویم. 


  • تبدیل خودکار (Implicit Casting)

در این حالت پایتون به‌طور خودکار نوع داده را تغییر می‌دهد. مثلاً وقتی یک عدد صحیح را با یک عدد اعشاری جمع می‌کنید، پایتون عدد صحیح را به‌طور خودکار به عدد اعشاری تبدیل می‌کند تا عملیات جمع انجام شود:

x = 5      # int

y = 2.5    # float

z = x + y  

print(z)   # خروجی: 7.5

print(type(z))  # <class 'float'> خروجی


در این مثال پایتون به طور خودکار متغیر ایکس را از int به float تبدیل کرده تا نوع داده‌های دو متغیر یکسان شود.


  • تبدیل صریح (Explicit Casting)

در این حالت به‌طور صریح به پایتون می‌گویید که چه نوع داده‌ای می‌خواهید. برای این کار از توابعی مثل int ،float ،str و... استفاده می‌کنید. 

مثال: تبدیل عدد به رشته

text = "50"

num = int(text)

print(num + 10)  # خروجی: 60

در این مثال مقدار text که رشته است، قبل از عملیات جمع به عدد صحیح (int) تبدیل شده است.


بررسی نوع داده با type() و isinstance()

برای اینکه بفهمید یک متغیر در پایتون چه نوع داده‌ای دارد، می‌توانید از دو تابع استفاده کنید که در ادامه آن‌ها را معرفی می‌کنیم. 


  • استفاده از type() برای نمایش نوع متغیر

این تابع نوع داده‌ی متغیر را به‌صورت یک شیء برمی‌گرداند: 

x = 10

print(type(x))  # خروجی: <class 'int'>


y = "Hello"

print(type(y))  # خروجی: <class 'str'>


  • بررسی نوع متغیر با isinstance()

این تابع بررسی می‌کند که آیا یک متغیر از نوع داده خاصی هست یا نه. مثلاً isinstance یا (5, int) مقدار True را برمی‌گرداند، چون 5 یک عدد صحیح است.

x = 3.14

print(isinstance(x, float))  # خروجی: True

print(isinstance(x, int))    # خروجی: False


تابع isinstance() انعطاف بیشتری نسبت به type() دارد، چون  تعلق داشتن متغیر به یک کلاس خاص و زیرکلاس آن را هم بررسی می‌کند.


جمع‌بندی

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

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

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


سوالات متداول 


  1. متغیر در پایتون چیست؟ نامی است که به یک مکان در حافظه اشاره می‌کند و مقداری را در خود نگه می‌دارد. این مقدار می‌تواند عدد، رشته، لیست یا هر نوع داده دیگری باشد.

  2. چگونه یک متغیر در پایتون تعریف کنیم؟ کافی است نام متغیر را بنویسید، علامت مساوی (=) را قرار دهید و سپس مقدار مورد نظر را اختصاص دهید.

  3. نام‌گذاری متغیرها چه قوانینی دارد؟ نام متغیر می‌تواند شامل حروف، اعداد و زیرخط (_) باشد. نباید با عدد شروع شود یا از کلمات کلیدی پایتون استفاده شود. 

  4. تفاوت int و float چیست؟ int برای اعداد صحیح (بدون بخش اعشاری) و float برای اعداد اعشاری (با بخش اعشاری) استفاده می‌شود.

  5. تفاوت لیست و تاپل چیست؟ لیست‌ها تغییرپذیر هستند (می‌توان عناصر آن‌ها را اضافه، حذف یا تغییر داد)، اما تاپل‌ها تغییرناپذیر هستند.

  6. آیا می‌توان نوع یک متغیر را تغییر داد؟ بله، با استفاده از توابعی مانند int(), float(), str() می‌شود نوع یک متغیر را به نوع دیگری تبدیل کرد. به این کار type casting گفته می‌شود.

مطالب مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *
نام*
ایمیل(اختیاری)

دیدگاه‌ها

دیدگاهی ثبت نشده، شما اولین نفر باشدی.
یاد بگیر، تجربه کسب کن،
تو بهترین شرکت‌ها استخدام شو.
K . E . L . A . A . S . O . R
| تمامی حقوق کپی‌رایت محفوظ است. ۱۴۰۲ شرکت کلاسور |