تعرف المتحولات في لغة البرمجة بأنها مواقع محجوزة في الذاكرة تستخدم لتخزين القيم. هذا يعني انك عندما تقوم بإنشاء متحول ما فإنك تحجز فراغا معينا من الذاكرة.
بناء على نموذج البيانات الخاص بالمتحول يقوم المترجم بتخصيص الذاكرة وتحديد ما يمكن تخزينه في الذاكرة المحجوزة لذلك عندما يقوم المستخدم بإسناد نماذج مختلفة من البيانات إلى المتحولات مثل الأعداد الصحيحة والأعداد العشرية والاحرف فإنه يتم تخزينها في الذاكرة.
إسناد القيم إلى المتحولات
لا تتطلب المتحولات في لغة البرمجة إعلاناً عن نفسها عند حجز الفراغ الخاص بها في الذاكرة. يتم ذلك بشكل تلقائي عند إسناد القيم إلى هذه المتحولات. يتم إسناد القيم للمتحولات باستخدام إشارة المساواة (=).
المعامل الواقع إلى يسار إشارة المساواة يمثل العامل الذي هو اسم المتحول والمعامل الواقع إلى يمين إشارة المساواة هو المعامل الذي يمثل القيمة المخزنة التي يمثلها المتحول.
مثال:
#!/usr/bin/python counter = 100 # An integer assignment miles = 1000.0 # A floating point name = "John" # A string print counter print miles print name
يمثل التالي 100,1000.0 و اسم "John" والتي هي عبارة عن قيم تم إسنادها إلى المتحول فكانت النتيجة كالتالي:
100 1000.0 John
الإسناد المتعدد
أي إنه بالإمكان إسناد قيمة واحدة إلى عدة متحولات.مثال
a = b = c =1
يمثل السابق غرضاً صحيحاً يأخذ القيمة 1 وثلاثة متحولات تم إسنادها إلى موقع الذاكرة نفسه. يمكن أيضاً إسناد عدة أغراض إلى عدة متحولات.
مثال
a, b, c =1,2,"john"
هنا تم إسناد غرضين صحيحين يأخذان القيمة 1 و 2 إلى المتحولين a وb كما تم إسناد سلسلة محارف "John" إلى المتحول c.
نماذج البيانات المعيارية
يمكن أن تكون البيانات المخزنة في الذاكرة بنماذج مختلفة. فمثلاً يتم تخزين عمر الإنسان كقيمة عددية وعنوانه يخزن كأحرف. هناك العديد من نماذج البيانات المعيارية المختلفة التي تستخدم لتعريف العمليات الممكن إجراؤها عليها وطريقة تخزين كل منها.
نماذج البيانات المعيارية في لغة البرمجة Python هي :
- الأرقام
- السلسلة
- القائمة
- الصف
- القاموس
الأرقام في Python
حيث تخزن على شكل قيم عددية. يتم إنشاء الأغراض الرقمية عند إسناد قيمة لها.
مثال:
var1 =1 var2 =10
يمكن حذف الغرض الرقمي باستخدام بيانات الحذف التي يتم إنشاؤها وفق التركيبة التالية:
del var1[,var2[,var3[....,varN]]]]
حيث يمكن حذف غرض واحد مفرد او عدة أغراض وذلك باستخدام بيانات الحذف.
مثال
delvar delvar_a,var_b
تدعم لغة البرمجة Python أربعة نماذج عددية مختلفة:
- int : تمثل الأعداد الصحيحة.
- long : تمثل الأعداد الصحيحة الطويلة وأيضاً الأعداد الثمانية والست عشرية.
- float : القيم الحقيقية ذات الفاصلة العائمة.
- complex: تمثل الأعداد العقدية.
يبين الجدول التالي أمثلة على نماذج الأعداد
complex | float | long | int |
3.14j | 0.0 | 51924361L | 10 |
45.j | 15.20 | -0x19323L | 100 |
9.322e-36j | -21.9 | 0122L | 786 |
.876j | 32.3+e18 | 0xDEFABCECBDAECBFBAEl | 080 |
-.6545+0J | -90. | 535633629843L | -0490 |
3e+26J | -32.54e100 | -052318172735L | -0x260 |
4.53e-7j | 70.2-E12 | -4721885298529L | 0x69 |
تتيح لغة البرمجة Python للمستخدم استخدام الحرف الصغير في كلمة long ولكن يفضل عموما استخدام الحرف الكبير L كي لا يتم الخلط بين الرقم 1 والحرف l .
السلاسل في Python
تعرف السلاسل بأنها مجموعة من الأحرف المتجاورة الواقعة ضمن إشارتي تنصيص حيث يمكن استخدام إشارة تنصيص مفردة او مزدوجة. يمكن أخذ السلاسل الفرعية باستخدام العلامتين ([ ] and [:] ) مع دلائل تبدأ من الصفر عند بداية السلسلة حتى قيمة -1 في نهاية السلسلة.
إن إشارة (+) تمثل عملية سلسلة السلسلة بينما النجمة (*) تمثل عملية التكرار ضمن السلسلة.
مثال
#!/usr/bin/python str='Hello World!' printstr# Prints complete string printstr[0]# Prints first character of the string printstr[2:5]# Prints characters starting from 3rd to 5th printstr[2:]# Prints string starting from 3rd character printstr*2# Prints string two times printstr+"TEST"# Prints concatenated string
فتظهر النتيجة التالية
Hello World! H llo llo World! Hello World!Hello World! Hello World!TEST
القوائم في Python
تعتبر القوائم من أكثر نماذج البيانات تنوعاً. تتضمن القوائم مكونات مفصولة عن بعضها بفواصل ومحصورة بأقواس مربعة([]).
يشبه مبدأ القوائم هنا المصفوفات في لغة البرمجة C مع اختلاف رئيسي أنه في حالة القوائم يمكن أن تكون المكونات من نماذج بيانات مختلفة عن بعضها.
يمكن الوصول إلى القيم المخزنة في القوائم باستخدام العلامة الترقيمية الخاصة بالشرائح ([ ] و [:])مع دلائل تبدأ من الصفر عند بداية السلسلة حتى قيمة -1 في النهاية. إن إشارة (+) تمثل عملية سلسلة السلسلة بينما النجمة (*) تمثل عملية التكرار ضمن السلسلة.
مثال:
#!/usr/bin/python list =['abcd',786,2.23,'john',70.2] tinylist=[123,'john'] print list # Prints complete list print list[0]# Prints first element of the list print list[1:3]# Prints elements starting from 2nd till 3rd print list[2:]# Prints elements starting from 3rd element printtinylist*2# Prints list two times print list +tinylist# Prints concatenated lists
فتظهر النتيجة التالية
['abcd', 786, 2.23, 'john', 70.200000000000003] abcd [786, 2.23] [2.23, 'john', 70.200000000000003] [123, 'john', 123, 'john'] ['abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john']
الصفوف في Python
الصف عبارة عن تتالي من نماذج البيانات شبيه بالقائمة ويتكون من عدد من القيم المفصولة عن بعضها باستخدام فواصل وبخلاف القوائم يكون الصف محصورا بين قوسين.
إن الاختلاف الرئيسي بين القوائم والصفوف هو أن العناصر في القائمة تكون محصورة بين قوسين من الشكل ( [ ] )وقابلة لتغيير حجمها بينما في الصف تكون العناصر محصورة بين قوسين من الشكل ( ( ) ) ولا يمكن تغيير حجمها. يمكن تعريف الصف بانه قائمة معدة للقراءة فقط.
مثال:
#!/usr/bin/python tuple =('abcd',786,2.23,'john',70.2) tinytuple=(123,'john') print tuple # Prints complete list print tuple[0] # Prints first element of the list print tuple[1:3] # Prints elements starting from 2nd till 3rd print tuple[2:] # Prints elements starting from 3rd element printtinytuple*2 # Prints list two times print tuple +tinytuple# Prints concatenated lists
فتظهر النتيجة التالية
('abcd', 786, 2.23, 'john', 70.200000000000003) abcd (786, 2.23) (2.23, 'john', 70.200000000000003) (123, 'john', 123, 'john') ('abcd', 786, 2.23, 'john', 70.200000000000003, 123, 'john')
القاموس في Python
يعرف القاموس هنا بأنه مزيج من النماذج حيث يعمل كمجموعة من المصفوفات التي توجد في لغة Perl ويتألف من أزواج قيمة – مفتاح. إن مفتاح القاموس يمكن أن يأخذ تقريبا أي نموذج للنماذج المستخدمة في لغة البرمجة Python ولكنه غالياً يكون أرقام أو سلسلة محارف. من ناحية أخرى يمكن للقيم أن تكون اية غرض اعتباطي.
تغلق القواميس بأقواس من الشكل ({ }) ويمكن إسناد القيم باستخدام الأقواس ([]).
مثال
#!/usr/bin/python dict={} dict['one']="This is one" dict[2]="This is two" tinydict={'name':'john','code':6734,'dept':'sales'} printdict['one']# Prints value for 'one' key printdict[2]# Prints value for 2 key printtinydict# Prints complete dictionary printtinydict.keys()# Prints all the keys printtinydict.values()# Prints all the values
فتظهر النتيجة التالية
This is one This is two {'dept': 'sales', 'code': 6734, 'name': 'john'} ['dept', 'code', 'name'] ['sales', 6734, 'john']
لا يتضمن القاموس أي مفهوم عن ترتيب العناصر ضمنه أبداً.
تحويل نماذج البيانات
يمكن التحويل بين نماذج البيانات بسهولة من خلال اسم النموذج كتابع حيث يوجد العديد من توابع البناء التي تستخدم للتحويل بين نماذج البيانات.
التابع | الوصف |
int(x [,base]) | يحول x الى عدد صحيح. وعلى مبدأ القاعدة تصف القاعدة إذا كان x سلسلة. |
long(x [,base] ) | يحول x الى عدد صحيح طويل. وعلى مبدأ القاعدة تصف القاعدة إذا كان x سلسلة. |
float(x) | يحول x الى عددحقيقي بفاصلة عائمة. |
complex(real [,imag]) | يقوم بإنشاء عدد عقدي. |
str(x) | يحول x إلى سلسلة محارف |
repr(x) | يحول x إلى سلسلة تعبيرية |
eval(str) | يقيم السلسلة ويعيد الغرض |
tuple(s) | يحول s إلى صف |
list(s) | يحول s إلى قائمة |
set(s) | يحول s إلى مجموعة |
dict(d) | يقوم بإنشاء قاموس. يجب أن تكون d تتالي من صفوف (قيمة , مفتاح) |
frozenset(s) | يحول s إلى مجموعة غير قابلة للتعديل |
chr(x) | يحول الرقم الصحيح إلى حرف |
unichr(x) | يحول الرقم الصحيح إلى حرف غير مرمز |
ord(x) | يحول الحرف المفرد إلى قيمته الصحيحة |
hex(x) | يحول العدد الصحيح إلى سلسلة ست عشرية |
oct(x) | يحول العدد الصحيح إلى سلسلة ثمانية |
أصعب لغه بايثون تحسها متعبه ومتشعبه
ردحذف