نماذج المتحولات في لغة Python

تعرف المتحولات في لغة البرمجة بأنها مواقع محجوزة في الذاكرة تستخدم لتخزين القيم. هذا يعني انك عندما تقوم بإنشاء متحول ما فإنك تحجز فراغا معينا من الذاكرة.

بناء على نموذج البيانات الخاص بالمتحول يقوم المترجم بتخصيص الذاكرة وتحديد ما يمكن تخزينه في الذاكرة المحجوزة لذلك عندما يقوم المستخدم بإسناد نماذج مختلفة من البيانات إلى المتحولات مثل الأعداد الصحيحة والأعداد العشرية والاحرف فإنه يتم تخزينها في الذاكرة.

إسناد القيم إلى المتحولات

لا تتطلب المتحولات في لغة البرمجة إعلاناً عن نفسها عند حجز الفراغ الخاص بها في الذاكرة. يتم ذلك بشكل تلقائي عند إسناد القيم إلى هذه المتحولات. يتم إسناد القيم للمتحولات باستخدام إشارة المساواة (=).

المعامل الواقع إلى يسار إشارة المساواة يمثل العامل الذي هو اسم المتحول والمعامل الواقع إلى يمين إشارة المساواة هو المعامل الذي يمثل القيمة المخزنة التي يمثلها المتحول.
مثال:

#!/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 هي :

  1. الأرقام
  2. السلسلة
  3. القائمة
  4. الصف
  5. القاموس

الأرقام في 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) يحول العدد الصحيح إلى سلسلة ثمانية