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


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

متغیر یا Variable چیست؟

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

نحوه ساخت متغیرها

number = 12

همانطور که در کد بالا مشاهده می کنید، number نام متغیر ما است و یا نام ظرف ما است که قرار است موادی درون ریخته یا گذاشته شود (مانند یک لیوان یا کیف) . در سمت راست علامت مساوی هم مواد یا داده های ما قرار دارند. در این عکس داده های ما از نوع اعداد صحیح یا integer هستند. علامت مساوی هم در پایتون عملگر تخصیص نام دارد. داده ها یا مواد ما با استفاده از عملگر تخصیص درون ظرف یا متغیر ریخته می شود و یا به اصطلاح این داده به این متغیر، اختصاص می یابد. عملگر های تخصیص دیگری هم در پایتون هستند که در درس های آینده با انها آشنا خواهید شد.

ساخت متغیر (variable)

در قسمت بالا متوجه شدید که قالب یک متغیر در پایتون به چه شکل است و از چه اجزایی تشکیل شده است. جالا میخواهیم در محیط idel پایتون یا هر محیط دلخواه دیگری به صورت عملی یک متغیر بسازیم. شما هم گام به گام با ما جلو بروید. idel پایتون را باز کرده و کد های زیر را تایپ کنید:

age = 22

حالا ما یک متغیر داریم که نام آن age است و مقدار آن 22 و با عملگر تخصیص = مقدار 22 را در این متغبر ریختیم یا به آن اختصاص دادیم. سعی کنید در نام گذاری هر چیزی در برنامه نویسی یک نام مرتبط و با مسما باشد. البته نام گذاری متغیر ها در پایتون قوانینی دارد که خواهیم گفت اما به صورت کلی سعی کنید نام با مسمایی انتخاب کنید.

به عنوان مثال ما در اینجا قصد داشتیم سن یک فرد را در متغیر ذخیره کنیم، پس یک متغیر با نام age که به معنای سن هست انتخاب کردیم. اگر معادل انگلیسی کلمه ای را نمی دانید، می توانید نام متغیر ها را به صورت فینگلیش بنویسید.

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

انواع متغیر

  • متغیر های عددی : integer ، float ، complex
  • رشته  (string)
  • تاپل (tuple)
  • لیست (مجموعه)
  • مجموعه (set)
  • دیکشنری (dictionary)
  • بولین (boolean)
  • ویژه (none)

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

Integer

متغیر های integer یا int متغیرهایی هستند که شامل اعداد صحیح می شوند. این اعداد شامل اعداد مثبت و منفی، بدون اعشار و با  طول نا محدود هستند.

number1 = 123
number2 = -123
number3 = 1234436373698

Float

float ها به متغیرهایی گفته می شود که اعداد اعشاری را در خود نگه داری می کنند.  این اعدا می توانند مثبت یا منفی باشند.

float = 1.5
faat2 = -1.5
foat3 = 2.5555555555

  Complex

متغیرهای complex همیشه با حرف j همراه هستند. یعنی داده ای complex می باشد که شامل حرف j باشد. این حرف عضو ثابت متغیرهای complex است.

num1 = 12j
num2 = 12345j
num3 = -2j
num4 = 2+5j

رشته یا String

رشته های دنباله ای از کاراکتر های هستند که داخل  " " یا  ' ' قرار دارند. به این دو غلامت جفت کوتیشن و کوتیشن می گویند. در بعضی از زبان های برنامه نویسی برای تعریف یک رشته  داده مورد نظر حتما باید داخل " " قرار گیرد. اما در پایتون از ' ' هم میتوان استفاده کرد. برای تایپ این کاراکتر ها دکمه کناری سمت چپ Enter را فشار دهید. برای تایپ " " باید اول را دکمه shift را گرفته و هم زمان دکمه کوتیشن را فشار دهید.

string1 = "ali"
string2 = "mohammad"
string3 = 'ali va mohammad'
string4 = "123"
string5 = '1234'
string6 = "12ali"
string7 = '123mohammad'
 

قوانین نام گذاری متغیرها  

همانطور که گفته شد نام گذاری متغیرها دارای قواعد خاصی می باشد. این قواعد در همه زبان های برنامه نویسی وجود دارد. 7 مورد وجود دارد که در هنگام تعریف متغیرها باید آنها را رعایت کنید:

  • شامل حروف کوچک و بزرگ انگلیسی باشد. یعنی a تا z و A تا Z.
  • شامل اعداد 0 تا 9 باشد.
  • شامل کاراکتر آندرلاین _ باشد.
  • از کارکترهای خاص مانند @!#$%* و... استفاده نشود.
  • شامل کلمات کلیدی پایتون نباشد. (کلمات کلیدی پایتون در ادامه توضیح داده خواهد شد)
  • نام متغیر با عدد شروع نشود.
  • فاصله یا space نداشته باشد.

نکته: زبان برنامه نویسی پایتون به بزرگی و کوچکی حروف حساس است. یعنی بین متغیری با نام AMIR و متغیری با نام amir تفاوت قائل است و این متغیرها را یک متغیر در نظر نمی گیرد. این دو هر کدام یک متغیر مجزا هستند.

مثال هایی از انتخاب درست نام متغیر یا variable

var = 123
VAR = 123
V9R = 123
var5 = 123
var_4 = 123
_var = 123
va_r = 123
V_12_R = 123
Aa1_ = 123

مثال هایی از انتخاب نادرست نام متغیر

12var = 123
2_var = 123
3VAR_r = 123
5@_VAr = 123
#var = 123
$2var = 123
var*! = 123
_var!@ = 123
var 2 = 123
v ar = 123
VA R = 123
VA# R = 123
3 var = 123
print = 123
def = 123
if = 123

کلمات کلیدی پایتون

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

False, elif, lambda, None, else, nonlocal, True, except, not, and, finally, or,
 as, for, pass, assert, from, raise, break, global, return, class, if, try,
 continue, import, while, def, in, with, del, is, yield,

یکی از پرکاربرد ترین دستورات زبان برنامه نویسی پایتون، دستور Print می باشد. همانطور که از نام آن پیداست این وظیفه این دستور چاپ کردن یا نمایش دادن چیزی می باشد. یکی از دلایل محبوبیت پایتون سادگی آن است. همانطور که می بینید دستور Print در پایتوت معادل همان معنی Print در زبان انگایسی است. این یعنی این زبان، به زبان انسان خیلی نزدیک است (زبان سطح بالا) و همچنین کلمات کلیدی کمتری دارد.

چاپ مقدار متغیرها با دستور Print

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

Number = 123
print (Number)

همانطور که مشاهده می کنید برای چاپ مقدار متغیر دستور Print را نوشتیم و بعد پرانتز باز و بسته و داخل پرانتز نام متغیری که ساخته بودیم را نوشتیم. دقت کنید که باید نام متغیر را دقیق وارد کنید. به عنوان مثال اگر به جای Number از number استفاده کنید، دستور اجرا نمی شود و مفسر پایتون وجود یک خطا را به شما گوشزد می کند. برای بقیه متغیرها هم به همین صورت عمل کنید. 

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

برای دستور print  و سایر دستورات هم این قاعده پابرجاست. در مورد اینکه دقیقا در چه جاهایی و به چه علت گذاشتن یا نذاشتن فاصله باعث ایجاد مشکل می شود، در درس های بعدی توضیح خواهیم داد. و خودتان هم به مرور هر چه بیشتر با پایتون کار کنید متوجه می شوید.

چاپ دو یا چند متغیر با دستور Print

در صورتی که چند متغیر داشته باشید و بخواهید آن ها تتها با یک دستور Print چاپ کنید، باید به این صورت عمل کنید:

name = "mohammad"
age = 22
print (name , age)

  مقدار متغیرها میتواند در طول برنامه تغییر کند یا نوعش عوض شود. در مثال زیر مقدار متغیر name در ابتدا ali بود و در ادامه به mohammad تغییر کرد. دستور print آخرین تغییراتی که در مقدار متغیر ایجاد شده است را نمایش می هد.

name = "ali"
name = "mohammad'
print (name)

تغییر نوع متغیرها

در خط اول قطعه کد زیر با استفاده از دستور str که مخفف String است، به پایتون میگوییم که این عدد از نوع رشته است "5". و یا در خط بعدی با استفاده از دستور int که مخفف integer است، به پایتون می گوییم که این متغیر را از نوع اعداد صحیح یا int در نظر بگیر. برای اعداد اعشاری هم به همین صورت عمل می کنیم. بعد از قرار دادن دستور float قبل از مقدار متغیر، پایتون آن را اعشاری در نظر گرفته و به صورت 3.0 نمایش می دهد.

var1 = str(5)
var2 = int(6)
var3 = float(3)
print (var1 , var2 , var3)

کلمه type  در انگلیسی به معنای "نوع" می باشد. در زبان برنامه نویسی پایتون هم برای مطلع شدن از نوع یک متغیر از دستور type استفاده می کنیم.  

name = "mohammad"
age = 22
var1 = "22"
var2 = "mohammad22"
var3 = 123j
var4 = 12.5

print (type(name))
print (type(age))
print (type(var1))
print (type(var2))
print (type(var3))
print (type(var4))

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

در این بخش ما از سه متغیر از نوع رشته استفاده کردیم و یک مقدار را به همه آنها تخصیبص دادیم. درخط بعدی با استفاده از دستور print مقدار متغیرها را نمایش دادیم. همچنین می توانیم مقدار هر متغیر را به صورت جداگانه در خطی دیگر با دستور print نمایش دهیم.

name1 = name2 = name3 = "mohammad"
print (name1 , name2 , name3)

اختصاص چند مقدار به چند متغیر به صورت همزمان

برخلاف بخش قبلی، در این بخش برای اینکه چند مقدار را به چند مقدار تخصیص بدهیم، باید از کاراکتر " , " استفاده کنیم. به این صورت که به حای قرار دادن مساوی بین متغیرها از ویرگول (,) استفاده میکنیم. سپس علامت تخصیص = اضافه می شود و در آخر مقادیر متغیرها همراه با علامت ویرگول (,) د ربین شان، درج می شوند.

name , age , number = "mohammad" , 22 , 19.5
print (name)
print (age)
print (number)
print (name , age , number)

Unpack کردن یا استخراج مقادیر

یکی از قابلیت هایی که در زبان پایتون وجود دارد، عملیات Unpack کردن مقادیر است. Unpack کردن به این معناست که به عنوان مثال ما مقادیری را از یک لیست، مجموعه و ... در متغیرها استخراح کنیم. د لیست ها در درس های بعدی به صورت کامل بررسی توضیح داده خواهد شد، اما در همین حد بدانید که می توان مجموعه ای از مقادیر را در لیست ها نگه داری کرد.

در واقع ما لیست ها را باز کرده و هر یک از مقادیر لیست را را در متغیری جداگانه ذخیره می کنیم. مانند این است که وسایل موجود در یک جعبه بزرگ را درآورده و در جعبه های کوچکتر قرار می دهیم. در مثال زیر همانظور که مشاهده می کنید، در خط اول ما یک لیست داریم که نام سه دانش آموز را در خود نگه می دارد.

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

list_students = ["ali" , "mohammad" , "reza" ]
student1 , student2 , student3 = list_students
print (student1)
print (student2)
print (student3)