المتغيرات في لغة البايثون، هي اماكن محجوزة في الذاكرة ونسمي تلك الاماكن باسماء المتغيرات ليسهل التعامل معها، وتختلف المساحة التي يحجزها البرنامج للمتغير على حسب نوع المتغيرات.
وتنقسم انواع البيانات في لغة البايثون الى نوعين رئيسين:
- انواع غير قابلة للتغير immutable: مثل int و float و string و boolean .
- انواع قابلة للتغير mutable: مثل list و Dictionary و الاصناف التي نعرّفها.
انواع غير قابلة للتغير immutable:
ليس المقصود بان الانواع غير قابلة للتغير اننا لا نستطيع ان نغير قيمة المتغير، لكن ما يحدث هو ان المتغير اذا تغيرت قيمته يتم انشاء مكان جديد في الذاكرة ونشير اليه بنفس الاسم القديم.
تشغيل# نعرف متغير ونجعل قيمته 10 x = 10 print(id(x)) # نطبع عنوان ذاكرة المتغير # نغير قيمة المتغير x = 5 print(id(x)) # نطبع عنوان ذاكرة المتغير
الارقام Numbers
هناك 3 انواع تدعم الارقام في بايثون
- int : يستخدم مع الارقام الصحيحة
- float: يستخدم مع الارقام العشرية
- complex: تستخدم مع الارقام التخيلية
int
يستخدم النوع int لحفظ الارقام الصحيحة الموجبة و السالبة
تشغيلx = 5 y = -2 z = 546321321 // نطبع نوع المتغير print(type(x)) // <class 'int'>
float
يستخدم النوع float لحفظ الارقام العشرية الموجبة و السالبة
x = 12.568 y = -2.666 // نطبع نوع المتغير print(type(x)) // <class 'float'>
complex
تدعم لغة بايثون الارقام التخيلية وهي تستخد م بكثرة من قبل الرياضيين
x = 1+6j y = -5j // نطبع نوع المتغير print(type(x)) // <class 'complex'>
Boolean
يستخدم النوع boolean لتخزين القيم المنطقية: صح (True) و خطأ (False)
x = True y = False
القيمة True و False تكون ناتج العمليات المنطقية
print( 10 > 9 ) // True print( 2 > 9 ) // False
String
يستخدم النوع String لتخزين النصوص، تستخدم علامات التنصيص ” او ‘ لتحديد النصوص واذا كان النص يحتوي على اكثر من سطر نستخدم ”’ ثلاث علامات
x = "Hello World!!" print(x) y = 'Hello World!!' print(y) z = ''' Hello World. New Line Another New Line ''' print(z)
السلاسل (Strings) هو احد اكثر الانواع استخداما لذا سنفرد له درس خاص به.
tuple
تستخدم ال tuples لتحزين قائمة او مجموعة من العناصر، تتميز ال tuples عن ال list بان ال tuples لا تتغير عناصرها او طولها: اي عدد عناصرها، ويكون طريقة كتابتها بوضع العناصر بين ()
x = ( 'text', 11 , 12.5, 'abc' ) # نطبع نوع المتغير print(type(x)) # <class 'tuple'> # tuple نطبع العنصر الاول من ال print(x[0]) # tuple نطبع عدد عناصر/طول ال print(len(x))
في البايثون مثل العديد من لغات البرمجة، نبدأ العد من 0 وليس 1، لذا عند طباعة العنصر الاول استخدمنا [x[0
انواع قابلة للتغير mutable:
list
تستخدم ال list ايضا لتحزين قائمة او مجموعة من العناصر، لكنها تتميز عن ال tuples بان ال list يمكن ان تتغير عناصرها و حجمها. ويكون طريقة كتابتها بوضع العناصر بين [] ونفصل فيما بينهم بال “,”
تشغيلx = ['text', 11 , 12.5, 'abc' ] # نطبع نوع المتغير print(type(x)) # <class 'list'> # نعدل قيمة المتغير الثاني x[1] = 15 # نضيف عنصر اخر x.append(2) # list نطبع ال print(x) # list نطبع عدد عناصر/طول ال print(len(x))
Dictionary
هو نوع من البيانات يقوم بحفظ البيانات في صورة مفتاح-قيمة key-value، اي اننا نسجل مثلا الطلاب بارقام الجلوس و اسمائهم فيكون فيكون رقم الجلوس هو المفتاح والقيمة هي اسم الطالب، وتكون طريقة كتابتها بوضع العناصر بين {}ونفصل فيما بينهم بال “,”، ويفصل بين المفتاح و القيمة للعناصر بالرمز :
تشغيلstudents = {1001:"Ahmad",1002:"Mohammad",1003:"zainab"} # نطبع نوع المتغير print(type(students)) # <class 'dict'> # نطبع اسم الطالب صاحب رقم الجلوس 1002 print(students[1002])
تحويل انواع البيانات Data Types Conversion
نستطيع تحويل انواع بعض المتغيرات من نوع الى اخر، فمثلا اذا كنا نقرأ بيانات من ملف تكون نوع البيانات المقروؤة من نوع string حتى لو كانت البيانات في الملف عبارة عن ارقام، لذلك نحتاج ان نحول الارقام المكتوبة من نوع string الى نوع int مثلا لنستطيع ان نجري عليها بعض العمليات الحسابية
txt_1 = '150' txt_2 = '20' print(type(txt_1)) # <class 'string'> # ينتج عنها ضم الكلمتين string عملية الجمع ما بين print(txt_1 + txt_2) # 15020 # نحول النص الى ارقام ونقوم بجمعها num_1 = int(txt_1) num_2 = int(txt_2) print(num_1+num_2)# 170
لابد عند التحويل من نوع الى اخر ان تكون القيم قابلة للتحويل، فمثلا اذا حاولنا تحويل 'txt' الى رقم سوف يحدث خطأ ويتوقف البرنامج.
الاتي مجموعة من الدوال التي ممكن استخدامها للتحويل من نوع الى اخر
اسم الدالة | الاستخدام |
---|---|
int(x) | تحول المتغير x الى النوع int |
float(x) | تحول المتغير x الى النوع float |
bool(x) | تحول المتغير x الى النوع boolean |
str(x) | تحول المتغير x الى النوع string |
tuple(x) | تحول المتغير x الى النوع tuple |
list(x) | تحول المتغير x الى النوع list |
dict(x) | تحول المتغير x الى النوع dictionary |