تعرف المتحولات في لغة البرمجة بأنها مواقع محجوزة في الذاكرة تستخدم لتخزين القيم. هذا يعني انك عندما تقوم بإنشاء متحول ما فإنك تحجز فراغا معينا من الذاكرة.
بناء على نموذج البيانات الخاص بالمتحول يقوم المترجم بتخصيص الذاكرة وتحديد ما يمكن تخزينه في الذاكرة المحجوزة لذلك عندما يقوم المستخدم بإسناد نماذج مختلفة من البيانات إلى المتحولات مثل الأعداد الصحيحة والأعداد العشرية والاحرف فإنه يتم تخزينها في الذاكرة.
إسناد القيم إلى المتحولات
لا تتطلب المتحولات في لغة البرمجة إعلاناً عن نفسها عند حجز الفراغ الخاص بها في الذاكرة. يتم ذلك بشكل تلقائي عند إسناد القيم إلى هذه المتحولات. يتم إسناد القيم للمتحولات باستخدام إشارة المساواة (=).
المعامل الواقع إلى يسار إشارة المساواة يمثل العامل الذي هو اسم المتحول والمعامل الواقع إلى يمين إشارة المساواة هو المعامل الذي يمثل القيمة المخزنة التي يمثلها المتحول.
مثال:
مثال:
#!/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 هي :
- الأرقام
- السلسلة
- القائمة
- الصف
- القاموس
الأرقام في 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 في النهاية. إن إشارة (+) تمثل عملية سلسلة السلسلة بينما النجمة (*) تمثل عملية التكرار ضمن السلسلة.
مثال:
يشبه مبدأ القوائم هنا المصفوفات في لغة البرمجة 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) | يحول العدد الصحيح إلى سلسلة ثمانية |