متغیر در پایتون ظرفی برای ذخیره اطلاعات است و کار با دادهها را برای برنامهنویس بسیار آسان میکند. شاید در نگاه اول این مفهوم خیلی ساده به نظر برسد: یک اسم میگذارید، یک مقدار میدهید و تمام! اما واقعیت کاملا متفاوت است. درست مثل دنیای واقعی که انواع مختلفی از ظرف داریم، در پایتون هم انواع گوناگونی از متغیرها وجود دارد. هر کدام از این متغیرها برای نگهداری نوع خاصی از داده طراحی شدهاند و رفتار متفاوتی دارند. شناخت این تفاوتها، کلید نوشتن کدهای بهینهتر و حرفهایتر است. در غیر این صورت با مشکلاتی روبرو میشوید که حل آنها آسان نخواهد بود. بنابراین ایجاد متغیر در پایتون به سادگی آب خوردن است. کافی است نام را انتخاب کنید، علامت مساوی (=) بگذارید و مقدار مورد نظرتان را وارد کنید: در این مثال my_variable متغیر عددی و another_variable متغیر رشتهای است. به همین راحتی! قواعد نامگذاری متغیرها در پایتون: نام متغیر باید با یک حرف (a-z, A-Z) یا زیرخط (_) شروع شود. اسم متغیر میتواند شامل حروف (بزرگ و کوچک)، اعداد و زیرخط (_) باشد. نام متغیر نمیتواند با عدد شروع شود. پایتون به بزرگی و کوچکی حروف حساس است پس myVariable با myvariable فرق دارد. از کلمات کلیدی پایتون (مثل if, else, for, while و ...) نمیتوانید به عنوان نام متغیر استفاده کنید. برنامهنویسهای حرفهای برای تعریف نام متغیر از «نگارش ماری» استفاده میکنند. در این روش تمام کلمات با حروف کوچک نوشته و هر کلمه با علامت زیرخط (_) از کلمه بعدی جدا میشود. مثلا: همانطور که دیدید مقداردهی اولیه با علامت = انجام میشود. جالب اینجاست که میتوانید به چند متغیر بهطور همزمان مقدار بدهید: یا حتی یک مقدار را به چند متغیر اختصاص دهید: همچنین متغیرها را میتوان مقداردهی مجدد کرد و حتی نوع داده آنها را تغییر داد: دادهها در زبان برنامهنویسی پایتون به انواع مختلفی تقسیم میشوند که هرکدام کاربردها و ویژگیهای خاص خود را دارند. شناخت انواع داده و تفاوتهایشان کلید نوشتن کدهای کارآمد و بدون خطاست. در ادامه به بررسی انواع اصلی دادهها و نحوه کار با آنها میپردازیم. دادههای عددی در پایتون به سه دسته اصلی تقسیم میشوند که هرکدام مناسب نوع خاصی از محاسبات هستند. int (عدد صحیح) نوع داده int برای نمایش اعداد صحیح (بدون اعشار) استفاده میشود. این نوع داده محدودیتی در اندازه ندارد و میتواند اعداد بسیار بزرگ را هم ذخیره کند. مثال: float (عدد اعشاری) اعداد اعشاری با نوع float نمایش داده میشوند که در محاسبات علمی و دقیق کاربرد دارد: complex (عدد مختلط) پایتون از اعداد مختلط هم پشتیبانی میکند که در محاسبات علمی و مهندسی کاربرد دارند. این نوع داده شامل یک بخش حقیقی و یک بخش فرضی است: برای درک بهتر بیایید یک مثال ترکیبی از این سه نوع داده را بررسی کنیم: این مثالها نشان میدهد که پایتون بهراحتی عملیات بین انواع مختلف دادههای عددی را انجام میدهد فقط باید به نوع خروجی دقت کنید. دادههای رشتهای یا str برای نمایش متن استفاده میشوند. رشتهها در پایتون با استفاده از نقلقولهای تکی (') یا دوتایی (") تعریف میشوند: برای رشتههای چندخطی میتوانید از سه نقلقول (''' یا """) استفاده کنید: رشتهها در پایتون قابلیتهای فراوانی دارند. مثلا میتوانید بخشی از یک رشته را جدا کنید: میتوانید دو رشته را به هم بچسبانید: جستجو و جایگزینی یک زیررشته در رشته با استفاده از متد find یا replace: پایتون مجموعهای از توابع داخلی هم برای کار با رشتهها دارد که پرکاربردترین آنها عبارتند از: upper(): تبدیل حروف به بزرگ lower(): تبدیل حروف به کوچک strip(): حذف فضای خالی از ابتدا و انتهای رشته split(): تقسیم رشته به لیست بر اساس یک جداکننده مثال: در پایتون از لیست و مجموعه برای ذخیره و مدیریت گروهی دادهها استفاده میشوند. در ادامه مهمترین موارد آنها را مرور میکنیم. لیست (List - []) لیست در پایتون مجموعهای است که انواع مختلفی از دادهها را در خود جا میدهد. لیستها با کروشه [] تعریف میشوند. مثال: روشهای افزودن، حذف و ویرایش عناصر: append(item): یک آیتم به انتهای لیست اضافه میکند insert(index, item): یک آیتم را در موقعیت مشخصی درج میکند remove(item): اولین آیتم مطابق را حذف میکند pop(index): آیتم موجود در موقعیت مشخص را حذف و برمیگرداند برای ویرایش لیست کافی است عنصر مورد نظر را با استفاده از اندیس (index) پیدا کرده و مقدار جدید بدهید: در پایتون متغیرها به دو دسته Mutable (تغییرپذیر) و Immutable (تغییرناپذیر) تقسیم میشوند. لیستها Mutable هستند، یعنی میتوان محتوای آنها را بدون تغییر شناسه (ID) آنها عوض کرد. تاپل (Tuple - ()) تاپل هم نوعی لیست است اما بعد از ایجاد نمیشود عناصر درون آن را تغییر داد یا حذف و اضافه کرد. این محدودیت شاید در نگاه اول ناخوشایند به نظر برسد اما مزایای خودش را دارد. تاپلها سریعتر از لیستها هستند و برای دادههایی که نباید تغییر کنند، امنیت بیشتری فراهم میکنند. کاربردهای تاپل: بازگرداندن چندین مقدار از یک تابع استفاده بهعنوان کلید در دیکشنری (برخلاف لیستها) نگهداری دادههای ثابت مانند مختصات جغرافیایی مجموعه (Set - {}) مجموعهها عناصر غیرتکراری را نگهداری کرده و با {} تعریف میشوند. ویژگی مهم آن نداشتن ترتیب و حذف خودکار عناصر تکرای است. برخلاف تصور بسیاری از برنامهنویسان تازهکار، مجموعهها ابزاری قدرتمند برای انجام عملیات ریاضی مانند اشتراک و اجتماع هستند. دیکشنریها ساختاری کلید-مقدار داشته و برای ذخیره دادههای مرتبط استفاده میشوند. مقادیر دیکشنری میتوانند از هر نوعی باشند، حتی لیستها یا دیکشنریهای دیگر، اما کلیدها باید از نوع hashable (مانند رشته، عدد یا تاپل) باشند. دیکشنریها Mutable هستند و میتوان به راحتی دادههای آنها را تغییر داد. دسترسی به مقادیر هم با استفاده از کلید بسیار ساده و سریع است: دیکشنریها در پایتون بهینه شدهاند و جستجو با آنها حتی در حجم زیادی از داده، سریع است. بنابراین برای کاربردهایی مانند کش کردن، ذخیرهسازی تنظیمات و مدیریت دادههای پیچیده بسیار مناسبند. نکته مهم این است که کلیدها باید immutable باشند (مثل رشته، عدد یا تاپل). اما مقادیر میتوانند از هر نوع دادهای انتخاب شوند. یکی از مفاهیم کلیدی که برنامهنویسان پایتون باید با آن آشنا باشند، تغییرپذیری متغیرهاست. این مفهوم تاثیر مستقیمی بر نحوه رفتار دادهها در برنامه دارد و استفاده نادرست از آن منجر به باگهای پیچیده و غیرمنتظره میشود. همانطور که گفتیم متغیر در پایتون به دو دسته کلی Mutable (قابل تغییر) و Immutable (غیرقابل تغییر) تقسیم میشود. در ادامه بیشتر با آنها آشنا میشویم. متغیرهای Mutable این متغیرها را میتوان بعد از ایجاد تغییر داد. یعنی میتوانید محتوای آنها را عوض کنید، بدون اینکه نیاز باشد یک متغیر جدید بسازید. مثالهایی از متغیرهای mutable: list: لیستها dict: دیکشنریها set: مجموعهها مثال: تغییر مقدار یک لیست: در این مثال مقدار my_list در همان آدرس حافظه باقی میماند، اما مقدار آن تغییر میکند. متغیرهای Immutable (غیرقابل تغییر) این متغیرها بعد از مقدار دهی اولیه دیگر قابل تغییر نیستند. اگر بخواهید مقدار آنها را عوض کنید، در واقع یک متغیر جدید میسازید. مثالهایی از متغیرهای Immutable: int: اعداد صحیح float: اعداد اعشاری tuple: تاپلها str: رشتهها مثال: تغییر مقدار یک عدد صحیح اینجا در ظاهر مقدار x تغییر کرده اما در حقیقت یک شیء جدید در حافظه ایجاد و متغیر x به آن ارجاع داده شده. مقدار قبلی دیگر در دسترس نیست و توسط Garbage Collector حذف خواهد شد. تفاوت و تأثیر در مدیریت حافظه شاید بپرسید چرا متغیر در پایتون اینطوری طراحی شده؟ خب دلیل اصلیاش بهینهسازی مصرف حافظه و افزایش سرعت است. وقتی یک متغیر Immutable را تغییر میدهید، پایتون بهجای تغییر مقدار قبلی، یک شیء جدید در حافظهای بهنام Heap میسازد و متغیر به آن اشاره میکند. این کار باعث میشود که اگر چند متغیر به یک مقدار Immutable اشاره کنند، همگی به یک مکان در حافظه اشاره کنند و در نتیجه، حافظه کمتری اشغال شود. در مقابل متغیرهای Mutable اینطور نیستند. وقتی لیستی را تغییر میدهید، پایتون همان لیست قبلی را در حافظه تغییر میدهد. این کار شاید سریعتر باشد، اما اگر چند متغیر به یک لیست اشاره کنند، تغییر لیست از طریق یکی از متغیرها، روی بقیهی آنها هم تأثیر میگذارد. گاهی لازم است که نوع یک متغیر در پایتون را تغییر دهید. مثلاً یک عدد را به رشته تبدیل کنید یا برعکس. به این کار تبدیل نوع داده یا Type Casting میگویند. پایتون دو نوع تبدیل نوع داده دارد که در ادامه با آنها آشنا میشویم. تبدیل خودکار (Implicit Casting) در این حالت پایتون بهطور خودکار نوع داده را تغییر میدهد. مثلاً وقتی یک عدد صحیح را با یک عدد اعشاری جمع میکنید، پایتون عدد صحیح را بهطور خودکار به عدد اعشاری تبدیل میکند تا عملیات جمع انجام شود: در این مثال پایتون به طور خودکار متغیر ایکس را از int به float تبدیل کرده تا نوع دادههای دو متغیر یکسان شود. تبدیل صریح (Explicit Casting) در این حالت بهطور صریح به پایتون میگویید که چه نوع دادهای میخواهید. برای این کار از توابعی مثل int ،float ،str و... استفاده میکنید. مثال: تبدیل عدد به رشته در این مثال مقدار text که رشته است، قبل از عملیات جمع به عدد صحیح (int) تبدیل شده است. برای اینکه بفهمید یک متغیر در پایتون چه نوع دادهای دارد، میتوانید از دو تابع استفاده کنید که در ادامه آنها را معرفی میکنیم. استفاده از type() برای نمایش نوع متغیر این تابع نوع دادهی متغیر را بهصورت یک شیء برمیگرداند: بررسی نوع متغیر با isinstance() این تابع بررسی میکند که آیا یک متغیر از نوع داده خاصی هست یا نه. مثلاً isinstance یا (5, int) مقدار True را برمیگرداند، چون 5 یک عدد صحیح است. تابع isinstance() انعطاف بیشتری نسبت به type() دارد، چون تعلق داشتن متغیر به یک کلاس خاص و زیرکلاس آن را هم بررسی میکند. در این مقاله مفهوم متغیر در پایتون را بررسی کرده و به نکات مهمی مانند انواع دادهها، تغییرپذیری و شیوه تبدیل داده پرداختیم. درک این مفاهیم نهتنها برای توسعهدهندگان مبتدی، بلکه برای برنامهنویسان حرفهای نیز ضروری است. پایتون با انعطاف بالا در مدیریت متغیرها قدرت زیادی به توسعهدهندگان میدهد، اما همین ویژگی در صورت استفاده نادرست مشکلاتی مانند هدررفت حافظه و باگهای غیرمنتظره ایجاد میکند. بنابراین درک دقیق نحوه کار متغیرها در پایتون برای نوشتن کدهای بهینه و قابلاعتماد بسیار مهم است. شرکت در بوتکمپ پایتون به واسطه پروژههای عملی متعدد باعث میشود روی مفهوم متغیرها و کار با آنها تسلط کامل پیدا کنید. این دوره که توسط موسسه کلاسور برگزار میشود، فرصت طلایی تجربهآموزی از متخصصان این حوزه و معرفی به بازار کار را برایتان فراهم خواهد کرد. متغیر در پایتون چیست؟ نامی است که به یک مکان در حافظه اشاره میکند و مقداری را در خود نگه میدارد. این مقدار میتواند عدد، رشته، لیست یا هر نوع داده دیگری باشد. چگونه یک متغیر در پایتون تعریف کنیم؟ کافی است نام متغیر را بنویسید، علامت مساوی (=) را قرار دهید و سپس مقدار مورد نظر را اختصاص دهید. نامگذاری متغیرها چه قوانینی دارد؟ نام متغیر میتواند شامل حروف، اعداد و زیرخط (_) باشد. نباید با عدد شروع شود یا از کلمات کلیدی پایتون استفاده شود. تفاوت int و float چیست؟ int برای اعداد صحیح (بدون بخش اعشاری) و float برای اعداد اعشاری (با بخش اعشاری) استفاده میشود. تفاوت لیست و تاپل چیست؟ لیستها تغییرپذیر هستند (میتوان عناصر آنها را اضافه، حذف یا تغییر داد)، اما تاپلها تغییرناپذیر هستند. آیا میتوان نوع یک متغیر را تغییر داد؟ بله، با استفاده از توابعی مانند int(), float(), str() میشود نوع یک متغیر را به نوع دیگری تبدیل کرد. به این کار type casting گفته میشود.تعریف متغیر در پایتون
پایتون به عنوان پردرآمدترین زبان برنامهنویسی دنیا یک زبان پویا (Dynamically Typed) است. یعنی نیازی نیست نوع داده متغیر را از قبل مشخص کنید و پایتون بهصورت خودکار نوع داده را بر اساس مقدار متغیر تشخیص میدهد.
مقداردهی متغیرها
انواع داده در پایتون
انواع دادههای عددی (Numeric Types)
دادههای رشتهای (String Type - str)
دادههای لیستی و مجموعهای
دادههای دیکشنری (Dictionary - {})
تغییرپذیری متغیرها در پایتون
متغیرهای Mutable و Immutable
تبدیل نوع داده در پایتون (Type Casting)
بررسی نوع داده با type() و isinstance()
جمعبندی
سوالات متداول