0% found this document useful (0 votes)
12 views39 pages

python _1

تناقش الوثيقة مفهوم المتغيرات في البرمجة بلغة بايثون، حيث تُعتبر المتغيرات حاويات للبيانات تُستخدم لتخزين القيم. كما تغطي الوثيقة قواعد تسمية المتغيرات وتغيير قيمها، بالإضافة إلى إمكانية إسناد قيمة واحدة لعدة متغيرات في نفس الوقت.

Uploaded by

ya5950168
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views39 pages

python _1

تناقش الوثيقة مفهوم المتغيرات في البرمجة بلغة بايثون، حيث تُعتبر المتغيرات حاويات للبيانات تُستخدم لتخزين القيم. كما تغطي الوثيقة قواعد تسمية المتغيرات وتغيير قيمها، بالإضافة إلى إمكانية إسناد قيمة واحدة لعدة متغيرات في نفس الوقت.

Uploaded by

ya5950168
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

‫‪5‬‬

‫المتغيرات‬
‫واستخداماتها‬

‫▲‬ ‫|‬ ‫‪87‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫المتغ يرات (‪ )variables‬هي مفه وم ب رمجي مهم‪َّ .‬‬


‫إنه ا رم وز ت دل على البيان ات ال تي‬

‫تستخدمها في برنامجك‪ ،‬أي تعد حاويات للبيانات التي ستتعامل معها في برنامج‪.‬‬

‫ً‬
‫حيحا في‬ ‫سيغطي هذا الفصل بعض أساسيات المتغ يرات‪ ،‬وكيفي ة اس تخدامها اس تخدامً ا ص‬

‫برامج بايثون ‪.3‬‬

‫‪ .1‬فهم المتغيرات‬
‫من الناحية الفنية‪ ،‬يُ َّ‬
‫خصص للمتغير مساحة تخزيني ة في ال ذاكرة توض ع القيم ة المرتبط ة ب ه‬

‫فيها‪ .‬يُ ستخدم اسم المتغير لإلشارة إلى تلك القيمة المُ َّ‬
‫خزنة في ذاكرة البرنامج التي هي جزء من‬

‫ذاكرة الحاسوب‪ .‬المُ تغيِّ ر أشبه بعنوان ُتلصقه على قيمة مُ َّ‬
‫عينة‪:‬‬

‫حيحا يس اوي ‪ ،103204934813‬ونري د تخزين ه في متغيِّ ر ب داًل‬


‫ً‬ ‫أن ل دينا ع د ًدا ص‬
‫لنف ترض ّ‬

‫من إع ادة كتاب ة ه ذا الع دد الطوي ل ك ل م رة‪ ،‬ل ذلك سنس تخدم ش يًئ ا يُ س ِّهل ت ُّ‬
‫ذكره‪ ،‬مثل‬

‫المتغير ‪:my_int‬‬

‫‪my_int = 103204934813‬‬

‫عنوان مرتبط بقيمة‪ ،‬فسيبدو على النحو التالي‪:‬‬


‫ٌ‬ ‫إذا نظرنا إليه على َّ‬
‫أنه‬

‫▲‬ ‫|‬ ‫‪88‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫عن وان القيم ة ه و ‪ my_int‬المكت وب عليه ا‪ ،‬والقيم ة هي ‪( 103204934813‬نوعه ا ع دد‬

‫صحيح‪ ،‬سنتطرق إلى أنواع البيانات في الفصل التالي)‪.‬‬

‫‪ my_int‬هي تعليم ة إس ناد ( ‪،)assignment statement‬‬ ‫التعليم ة ‪= 103204934813‬‬

‫وتتألف من األجزاء التالية‪:‬‬

‫اسم المتغير (‪)my_int‬‬ ‫•‬

‫ً‬
‫أيضا باسم "عالمة المساواة" (=)‬ ‫معامل اإلسناد‪ ،‬المعروف‬ ‫•‬

‫ُأ‬
‫القيمة التي س ِن َدت إلى اسم المتغير (‪)103204934813‬‬ ‫•‬

‫تش كل ه ذه األج زاء الثالث ة معً ا التعليم ة ال تي ُتس نِد على المتغ ير ‪ my_int‬القيم ة العددي ة‬

‫الصحيحة ‪. 103204934813‬‬

‫بمج رد تع يين قيم ة متغيِّ ر م ا‪ ،‬نك ون ق د َّ‬


‫هيئن ا أو أنش أنا ذل ك المتغ ير‪ .‬وبع د ذل ك‪ ،‬يمكنن ا‬

‫اس تخدام ذل ك المتغ ير ب داًل من القيم ة‪ .‬في ب ايثون‪ ،‬ال يل زم التص ريح عن المتغيِّ رات قب ل‬

‫اس تخدامها كم ا ه و الح ال في بعض لغ ات البرمج ة األخ رى‪ ،‬إذ يمكن ك الب دء في اس تخدام‬

‫ً‬
‫مباشرة‪.‬‬ ‫المتغير‬

‫بمج رد إس ناد القيم ة القيم ة ‪ 103204934813‬إلى المتغ ير ‪ ،my_int‬يمكنن ا اس تخدام ‪my_int‬‬

‫مكان العدد الصحيح‪ ،‬كما في المثال التالي‪:‬‬

‫▲‬ ‫|‬ ‫‪89‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫)‪print(my_int‬‬

‫والمخرجات هي‪:‬‬

‫‪103204934813‬‬

‫اس تخدام المتغ يرات يس هل علين ا إج راء العملي ات الحس ابية‪ .‬في المث ال الت الي‪ ،‬سنس تخدم‬

‫التعليمة السابقة‪ ، my_int = 1040 ،‬ثم سنطرح من المتغير ‪ my_int‬القيمة ‪: 813‬‬

‫)‪print(my_int - 813‬‬

‫وسينتج لنا‪:‬‬

‫‪103204934000‬‬

‫في هذا المثال‪ ،‬يج ري ب ايثون العملي ة الحس ابية‪ ،‬ويط رح ‪ 813‬من المتغ ير ‪ ، my_int‬ويعي د‬

‫القيمة ‪.103204934000‬‬

‫يمكن ضبط المتغيرات وجعلها تساوي ناتج عملية حس ابية‪ .‬دعن ا نجم ع ع ددين معً ا‪ ،‬ونخ ِّزن‬

‫قيمة المجموع في المتغير ‪:x‬‬

‫‪x = 76 + 145‬‬

‫يشبه المثال أعاله إحدى المعادالت التي تراها في كتب الجبر‪ .‬في الج بر‪ُ ،‬تس تخ َدم الح روف‬

‫والرم وز لتمثي ل األع داد والكمي ات داخ ل الص يغ والمع ادالت‪ ،‬وبش كل مماث ل‪ ،‬المتغ يرات أس ماء‬

‫ايثون‪،‬أن َعلي ك التأك د دائمً ا من وض ع‬


‫ّ‬ ‫معين‪ .‬الف رق في لغ ة ب‬
‫َّ‬ ‫رمزي ة تمث ل قيم ة من ن وع بيان ات‬

‫المتغير على الجانب األيسر من المعادلة‪.‬‬

‫▲‬ ‫|‬ ‫‪90‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫لنطبع ‪:x‬‬

‫)‪print(x‬‬

‫والمخرجات‪:‬‬

‫‪221‬‬

‫َّ ُأ‬
‫ألنه سنِد إلى المتغير ‪ x‬مجموع ‪ 76‬و ‪.145‬‬ ‫أعادت بايثون القيمة ‪221‬‬

‫يمكن أن تحوي المتغيِّ رات أي نوع من أنواع البيانات‪ ،‬وليس األعداد الصحيحة فقط‪:‬‬

‫'!‪my_string = 'Hello, World‬‬


‫‪my_flt = 45.06‬‬
‫القيم المنطقية ستعيد إما ‪ False‬أو ‪my_bool = 5 > 9 # True‬‬
‫]'‪my_list = ['item_1', 'item_2', 'item_3', 'item_4‬‬
‫)'‪my_tuple = ('one', 'two', 'three‬‬
‫}'&' ‪my_dict = {'letter': 'g', 'number': 'seven', 'symbol':‬‬

‫إذا طبعت أيًّ ا من المتغيِّ رات الم ذكورة أعاله‪ ،‬فس تعيد ب ايثون قيم ة المتغيِّ ر‪ .‬على س بيل‬

‫المثال‪ ،‬في الشيفرة التالية سنطبع متغيرًا يحتوي قائمة‪:‬‬

‫]'‪my_list = ['item_1', 'item_2', 'item_3', 'item_4‬‬


‫)‪print(my_list‬‬

‫وسينتج لنا‪:‬‬

‫]'‪['item_1', 'item_2', 'item_3', 'item_4‬‬

‫لق د مرَّ رن ا القيم ة ['‪ 'item_1‬و '‪ 'item_2‬و '‪ 'item_3‬و '‪ ]'item_4‬إلى‬

‫المتغير ‪ ،my_list‬ثم استخدمنا الدالة )(‪ print‬لطباعة تلك القيمة باستدعاء ‪.my_list‬‬

‫▲‬ ‫|‬ ‫‪91‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫وض ع بع د ذل ك في‬ ‫ً‬


‫غيرة من ذاك رة الحاس وب‪ ،‬وتقب ل قيمً ا ُت َ‬ ‫ً‬
‫احة ص‬ ‫ُت ِّ‬
‫خص ص المتغيِّ رات مس‬

‫تلك المساحة‪.‬‬

‫‪ .2‬قواعد تسمية المتغيرات‬


‫تتس م تس مية المتغ يرات بمرون ة عالي ة‪ ،‬ولكن هن اك بعض القواع د ال تي علي ك أخ ذها‬

‫في الحسبان‪:‬‬

‫يجب أن تكون أسماء المتغيرات من كلمة واحدة فقط (بدون مسافات)‬ ‫•‬

‫يجب أن تتكوَّ ن أسماء المتغيرات من األحرف واألرقام والشرطة السفلية (_) فقط‬ ‫•‬

‫ال ينبغي أن تبدأ أسماء المتغيرات برقم‬ ‫•‬

‫باتباع القواعد المذكورة أعاله‪ ،‬دعنا نلقي نظرة على بعض األمثلة‪:‬‬

‫لماذا غير صالح؟‬ ‫اسم صحيح‬ ‫اسم غير صحيح‬

‫غير مسموح بالشرطات‬ ‫‪my_int‬‬ ‫‪my-int‬‬

‫ال يمكن البدء برقم‬ ‫‪int4‬‬ ‫‪4int‬‬

‫أي رمز غير‬


‫ال يمكن استخدام ّ‬
‫‪MY_INT‬‬ ‫‪$MY_INT‬‬
‫الشرطة السفلية‬

‫ال ينبغي أن يتكون االسم من أكثر‬


‫‪another_int‬‬ ‫‪another int‬‬
‫من كلمة واحدة‬

‫من األم ور ال تي يجب أخ ذها في الحس بان عن د تس مية المتغ يرات‪ ،‬ه و َّ‬
‫أنه ا حساس ة لحال ة‬

‫أن ‪ my_int‬و ‪ MY_INT‬و ‪ My_Int‬و ‪ mY_iNt‬كله ا مختلف ة‪ .‬ينبغي أن تتجنب‬


‫األحرف‪ ،‬وهذا يعني َّ‬

‫▲‬ ‫|‬ ‫‪92‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫اس تخدام أس ماء متغيِّ رات متماثل ة لض مان أال يح دث خل ط عن دك أو عن د المتع اونين مع ك‪ ،‬س واء‬

‫الحاليين والمستقبليِّ ين‪.‬‬

‫أخ يرًا‪ ،‬ه ذه بعض المالحظ ات ح ول أس لوب التس مية‪ .‬من المتع ارف علي ه عن د تس مية‬

‫المتغيرات أن تبدأ اسم المتغير بحرف ص غير‪ ،‬وأن تس تخدم الش رطة الس فلية عن د فص ل الكلم ات‪.‬‬

‫ِّ‬
‫يفض ل بعض األش خاص اس تعمال تنس يق س نام الجم ل‬ ‫ً‬
‫أيض ا‪ ،‬وق د‬ ‫الب دء بح رف كب ير مقب ول‬

‫ولكن ه ذه الخي ارات‬


‫َّ‬ ‫(‪ ،camelCase‬الخلط بين األحرف الكب يرة والص غيرة) عن د كتاب ة المتغ يرات‪،‬‬

‫أقل شهرة‪.‬‬

‫لماذا غير متعارف عليه‬ ‫تنسيق شائع‬ ‫تنسيق غير شائع‬

‫أسلوب سنام الجمل‬


‫‪my_int‬‬ ‫‪myInt‬‬
‫(‪ )camelCase‬غير شائع‬

‫الحرف األول كبير‬ ‫‪int4‬‬ ‫‪Int4‬‬

‫أسلوب سنام الجمل‬


‫‪my_first_string‬‬ ‫‪myFirstString‬‬
‫(‪ )camelCase‬غير شائع‬

‫الخي ار األهم ال ذي علي ك التمس ك ب ه ه و االتس اق‪ .‬إذا ب دأت العم ل في مش روع يس تخدم‬

‫تنسيق سنام الجمل في تسمية المتغيرات‪ ،‬فمن األفضل االستمرار في استخدام ذلك التنسيق‪.‬‬

‫يمكنك مراجعة توثيق تنس يق الش يفرات البرمجي ة في ب ايثون في موس وعة حس وب للمزي د‬

‫من التفاصيل‪.‬‬

‫▲‬ ‫|‬ ‫‪93‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫‪ .3‬تغيير قيم المتغيرات‬


‫كما تشير إلى ذلك كلمة "متغيِّ ر"‪ ،‬يمكن تغيير قيم المتغيرات في ب ايثون بس هولة‪ .‬ه ذا يع ني‬

‫ً‬ ‫ُأ‬ ‫َّ‬


‫مسبقا بسهولة بالغة‪.‬‬ ‫أنه يمكنك تعيين قيمة مختلفة إلى متغير س ِن َدت له قيمة‬

‫القدرة على إع ادة إس ناد القيم مفي دة للغاي ة‪ ،‬إذ ق د تحت اج خالل أط وار برنامج ك إلى قب ول‬

‫قيم ينشئها المستخدم ُ‬


‫وتحيلها على متغير‪.‬‬

‫ً‬
‫أيض ا في ال برامج الكب يرة ال تي ق د تحت اج خالله ا إلى‬ ‫سهولة إع ادة إس ناد المتغ يرات مفي دة‬

‫تغيير القيم باستمرار‪.‬‬

‫ً‬
‫صحيحا‪ ،‬ثم نعيد إسناد سلسلة نصية إليه‪:‬‬ ‫س ُنسند إلى المتغير ‪ x‬أواًل عد ًدا‬

‫تعيين ‪ x‬إلى قيمة عددية ‪#‬‬


‫‪x = 76‬‬
‫)‪print(x‬‬

‫إعادة تعيين ‪ x‬إلى سلسلة نصية ‪#‬‬


‫"‪x = "Sammy‬‬
‫)‪print(x‬‬

‫وسينتج لنا‪:‬‬

‫‪76‬‬
‫‪Sammy‬‬

‫يوضح المث ال أعاله أن ه يمكنن ا أواًل إس ناد قيم ة عددي ة إلى المتغ ير ‪ ،x‬ثم إع ادة إس ناد قيم ة‬

‫نصية إليه‪.‬‬

‫إذا أعدنا كتابة البرنامج بالشكل التالي‪:‬‬

‫▲‬ ‫|‬ ‫‪94‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫‪x = 76‬‬
‫"‪x = "Sammy‬‬
‫)‪print(x‬‬

‫ألن تلك القيمة هي األحدث‪:‬‬


‫لن نتلقى سوى القيمة المسندة الثانية في المخرجات‪َّ ،‬‬

‫‪Sammy‬‬

‫ق د تك ون إع ادة إس ناد القيم إلى المتغ يرات مفي دة في بعض الح االت‪ ،‬لكن علي ك أن تبقي‬

‫ً‬
‫واضحا قدر اإلمكان‪.‬‬ ‫عينك على مقروئية الشيفرة‪ ،‬وأن تحرص على جعل البرنامج‬

‫‪ .4‬اإلسناد المتعدد (‪)Multiple Assignment‬‬


‫في ب ايثون‪ ،‬يمكن ك إس ناد قيم ة واح دة إلى ع دة متغ يرات في ال وقت نفس ه‪ .‬ي تيح ل ك ه ذا‬

‫ً‬
‫الحق ا‪ ،‬أو من خالل‬ ‫ً‬
‫دة‪ ،‬وال تي يمكن ك إع ادة إس نادها‬ ‫تهيئ ة ع َّدة متغ يرات دفع ًة واح‬

‫مدخالت المستخدم‪.‬‬

‫يمكن ك من خالل اإلس نادات المتع ددة إس ناد قيم ة واح دة إلى ع َّدة متغ يرات (مث ل المتغ ير‬

‫‪ x‬و‪ y‬و ‪ )z‬في سطر واحد‪:‬‬

‫‪x = y = z = 0‬‬
‫)‪print(x‬‬
‫)‪print(y‬‬
‫)‪print(z‬‬

‫الناتج سيكون‪:‬‬

‫‪0‬‬
‫‪0‬‬
‫‪0‬‬

‫▲‬ ‫|‬ ‫‪95‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫عرفنا في هذا المثال ثالثة متغيرات (‪ x‬و ‪ y‬و ‪ ،)z‬وأسندنا إليها القيمة ‪.0‬‬

‫ً‬
‫أيضا بإسناد ع َّدة قيم لع َّدة متغيِّ رات ض من الس طر نفس ه‪ .‬ه ذه القيم يمكن‬ ‫تسمح لك بايثون‬

‫أن تكون من أنواع بيانات مختلفة‪:‬‬

‫‪j, k, l = "shark", 2.05, 15‬‬


‫)‪print(j‬‬
‫)‪print(k‬‬
‫)‪print(l‬‬

‫وهذه هي المخرجات‪:‬‬

‫‪shark‬‬
‫‪2.05‬‬
‫‪15‬‬

‫في المث ال أعاله‪ُ ،‬أ س ن َدت السلس لة النص ية "‪ "shark‬إلى المتغ ير ‪ ،j‬والع دد العش ري ‪2.05‬‬

‫إلى المتغير ‪ ،k‬والعدد الصحيح ‪ 15‬إلى المتغير ‪.l‬‬

‫إس ناد ع دة متغ يرات بع دة قيم في س طر واح د يمكن أن يختص ر الش يفرة ويقل ل من ع دد‬

‫أن ذلك ليس على حساب المقروئية‪.‬‬


‫أسطرها‪ ،‬ولكن تأكد من َّ‬

‫‪ .5‬المتغيرات العامة والمحلية‬


‫عن د اس تخدام المتغ يرات داخ ل البرن امج‪ ،‬من المهم أن تض ع نط اق (‪ )scope‬المتغ ير في‬

‫حساباتك‪ .‬يشير نطاق المتغ ير إلى المواض ع ال تي يمكن الوص ول منه ا إلى المتغيِّ ر داخ ل الش يفرة‪،‬‬

‫َّ‬
‫ألنه ال يمكن الوص ول إلى جمي ع المتغ يرات من جمي ع أج زاء البرن امج‪ ،‬فبعض المتغ يرات عامة‬

‫دئيا‪ُ ،‬تع رَّ ف المتغ يرات العام ة خ ارج ال دوال؛ أمَّ ا المتغ يرات‬
‫(‪ ،)global‬وبعض ها محلي (‪ .)local‬مب ًّ‬

‫المحلية‪ ،‬فتعرَّ ف داخل الدوال‪.‬‬

‫▲‬ ‫|‬ ‫‪96‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫المثال التالي يعطي فكرة عن المتغيرات العامة والمحلية‪:‬‬

‫إنشاء متغير عام‪ ،‬خارج الدالة ‪#‬‬


‫"‪glb_var = "global‬‬

‫‪def var_function():‬‬
‫إنشاء متغير محلي داخل دالة ‪#‬‬
‫"‪lcl_var = "local‬‬
‫)‪print(lcl_var‬‬

‫استدعاء دالة لطباعة المتغير المحلي ‪#‬‬


‫)(‪var_function‬‬

‫طباعة متغير عام خارج دالة ‪#‬‬


‫)‪print(glb_var‬‬

‫المخرجات الناتجة‪:‬‬

‫‪local‬‬
‫‪global‬‬

‫يُ س نِد البرن امج أعاله سلس لة نص ية إلى المتغ ير العم ومي ‪ glb_var‬خ ارج الدال ة‪ ،‬ثم يع ِّرف‬

‫محليا باس م ‪ ،lcl_var‬ثم يطبع ه‬


‫ًّ‬ ‫نش ئ داخ ل تل ك الدال ة متغيِّ ًرا‬
‫وسي ِ‬
‫ُ‬ ‫الدال ة )(‪.var_function‬‬

‫قيمته‪ .‬ينتهي البرنامج باستدعاء الدالة )(‪ ،var_function‬وطباعة قيمة المتغير ‪.glb_var‬‬

‫لمَّ ا ك ان ‪ glb_var‬متغ يرًا عامًّ ا‪ ،‬فيمكنن ا الوص ول إلي ه داخ ل الدال ة )(‪.var_function‬‬

‫المثال التالي يبيِّ ن ذلك‪:‬‬

‫"‪glb_var = "global‬‬

‫‪def var_function():‬‬
‫"‪lcl_var = "local‬‬

‫▲‬ ‫|‬ ‫‪97‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫)‪print(lcl_var‬‬
‫طباعة ‪ glb_var‬داخل الدالة ‪print(glb_var) #‬‬

‫)(‪var_function‬‬
‫)‪print(glb_var‬‬

‫المخرجات‪:‬‬

‫‪local‬‬
‫‪global‬‬
‫‪global‬‬

‫لقد طبعنا المتغير العام ‪ glb_var‬مرتين‪ ،‬إذ ُطبع داخل الدالة وخارجها‪.‬‬

‫ماذا لو حاولنا استدعاء المتغير المحلي خارج الدالة؟‬

‫"‪glb_var = "global‬‬

‫‪def var_function():‬‬
‫"‪lcl_var = "local‬‬
‫)‪print(lcl_var‬‬

‫)‪print(lcl_var‬‬

‫ص ِّرح عن ه فيه ا‪ .‬إذا حاولن ا القي ام ب ذلك‪،‬‬


‫ال يمكنن ا اس تخدام متغ ير محلي خ ارج الدال ة ال تي ُ‬

‫فسيطلق الخطأ ‪.NameError‬‬


‫ُ‬

‫‪NameError: name 'lcl_var' is not defined‬‬

‫دعنا ننظر إلى مثال آخر‪ ،‬حيث سنستخدم االسم نفسه لمتغير عام وآخر محلي‪:‬‬

‫▲‬ ‫|‬ ‫‪98‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫متغير عام ‪num1 = 5 #‬‬

‫‪def my_function():‬‬
‫استخدام نفس اسم المتغير ‪num1 = 10 # num1‬‬
‫‪num2 = 7‬‬ ‫تعيين متغير محلي ‪#‬‬

‫طباعة المتغير المحلي ‪print(num1) # num1‬‬


‫طباعة المتغير المحلي ‪print(num2) # num2‬‬

‫استدعاء )(‪# my_function‬‬


‫)(‪my_function‬‬

‫طباعة المتغير العام ‪# num1‬‬


‫)‪print(num1‬‬

‫الناتج‪:‬‬

‫‪10‬‬
‫‪7‬‬
‫‪5‬‬

‫أن ‪num1‬‬
‫محلي ا داخ ل إح دى ال دوال‪ ،‬فس نرى َّ‬
‫ً‬ ‫ص ِّرح عن ه‬
‫ألن المتغ ير المحلي ‪ُ num1‬‬
‫نظ ًرا َّ‬

‫يس اوي القيم ة المحلي ة ‪ 10‬عن د اس تدعاء الدال ة‪ .‬عن دما نطب ع القيم ة العام ة للمتغ ير ‪ num1‬بع د‬

‫أن المتغير العام ‪ num1‬ال يزال مساويً ا للقيمة ‪.5‬‬


‫استدعاء الدالة )(‪ ،my_function‬سنرى َّ‬

‫من الممكن الوص ول إلى المتغ يرات العام ة واس تعمالها داخ ل دال ة باس تخدام الكلم ة‬

‫المفتاحية ‪:global‬‬

‫▲‬ ‫|‬ ‫‪99‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫‪def new_shark():‬‬
‫جعل المتغير عاما ‪#‬‬
‫‪global shark‬‬
‫"‪shark = "Sammy‬‬

‫استدعاء الدالة )(‪# new_shark‬‬


‫)(‪new_shark‬‬

‫طباعة المتغير العام ‪# shark‬‬


‫)‪print(shark‬‬

‫أن المتغ ير المحلي ‪ shark‬عُ يِّ ن داخ ل الدال ة )(‪ ،new_shark‬إال َّ‬
‫أنه يمكن الوص ول إلي ه‬ ‫رغم َّ‬

‫من خارج الدالة بسبب الكلمة المفتاحية ‪ global‬المستخدمة قبل اسم المتغير داخل الدالة‪.‬‬

‫َ‬
‫بسبب استخدام ‪ ،global‬فلن يُ طلق ُّ‬
‫أي خطأ عندما نستدعي )‪ print(shark‬خ ارج الدال ة‪.‬‬

‫أن ذل ك يُ ع ُّد من الع ادات غ ير المس تحبة في‬ ‫رغم َّ‬


‫أنه يمكن ك اس تعمال متغ ير ع ام داخ ل دال ة‪ ،‬إال َّ‬

‫البرمج ة‪َّ ،‬‬


‫ألنه ا ق د ت ؤثر على مقروئي ة الش يفرة ع دا عن الس ماح لج زء من الش يفرة بتع ديل قيم ة‬

‫متغير قد يستعمله جزء آخر‪.‬‬

‫هناك شيء آخر يجب تذكره‪ ،‬وهو َّ‬


‫أنك إذا أشرت إلى متغير داخل دال ة‪ ،‬دون إس ناد قيم ة ل ه‪،‬‬

‫محليا‪ ،‬يجب عليك إسناد قيمة له داخل متن الدالة‪.‬‬


‫ًّ‬ ‫متغير‬
‫ٍ‬ ‫ضمنيا‪ .‬لجعل‬
‫ًّ‬ ‫فسيعَ ّد هذا المتغير عامً ا‬
‫ُ‬

‫عن د التعام ل م ع المتغ يرات‪ ،‬يك ون ل ك الخي ار بين اس تخدام المتغ يرات العام ة أو المحلي ة‪.‬‬

‫يُ َّ‬
‫فض ل في العادة استخدام المتغيرات المحلية‪ ،‬ولكن إن وجدت نفسك تس تخدم نفس المتغ ير في‬

‫عدة دوال‪ ،‬فقد ترغب في جعله عامً ا‪ .‬أمَّ ا إن كنت تحتاج المتغير داخل دالة أو ص نف واح د فق ط‪،‬‬

‫فقد يكون األولى استخدام متغير محلي‪.‬‬

‫▲‬ ‫|‬ ‫‪100‬‬


‫البرمجة بلغة بايثون‬ ‫المتغيرات واستخداماتها‬

‫‪ .6‬خالصة الفصل‬
‫لق د مررن ا في ه ذا الفص ل على بعض ح االت االس تخدام الش ائعة للمتغ يرات في ب ايثون ‪.3‬‬

‫مثل حاض ً‬
‫نة لمختل ف أن واع البيان ات في ب ايثون وال تي‬ ‫المتغيرات هي لبنة مهمة في البرمجة‪ ،‬إذ ُت ِّ‬

‫سنسلط عليها الضوء في الفصل التالي‪.‬‬

‫▲‬ ‫|‬ ‫‪101‬‬


‫‪6‬‬
‫أنواع البيانات‬
‫والتحويل بينها‬

‫▲‬ ‫|‬ ‫‪102‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫ُت ِّ‬
‫صنف بايثون البيانات (‪ )data‬إلى أن واع‪ ،‬كم ا ه و الح ال في جمي ع لغ ات البرمج ة‪ .‬ه ذا مهم‬

‫ألن نوع البيانات الذي تستخدمه سيقيِّ د القيم التي يمكن تعيينها لها‪ ،‬وما الذي يمكن فعله بها (بم ا‬
‫َّ‬

‫في ذلك العمليات التي يمكن تنفيذها عليها)‪.‬‬

‫اء‬
‫لية لب ايثون‪ .‬ه ذا ليس استقص ً‬
‫س نتعرَّ ف في ه ذا الفص ل على أهم أن واع البيان ات األص َّ‬

‫شاماًل ألنواع البيانات‪ ،‬ولكنَّه سيساعدك على التعرف على الخيارات المتاحة لك في بايثون‪.‬‬

‫‪ .1‬خلفية عامة‬
‫أن واع البيان ات في ب ايثون مش ابهة إلى ح د م ا ألن واع البيان ات ال تي نس تخدمها في الع الم‬

‫الحقيقي‪ .‬من أمثلة أنواع البيانات في العالم الحقيقي األعداد‪ ،‬مث ل‪ :‬األع داد الص حيحة الطبيعي ة‬

‫(‪ ،)... ،2 ،1 ،0‬واألعداد الصحيحة النسبية (‪ ،)... ،1 ،0 ،1- ،...‬واألعداد غير النسبية (‪.)π‬‬

‫يمكننا عادة في الرياضيات جمع أعداد من أنواع مختلفة مثل إضافة ‪ 5‬إلى ‪:π‬‬

‫‪5 + π‬‬

‫يمكنن ا إمَّ ا االحتف اظ بالمعادل ة ِبع ِّدها إجاب ة‪ ،‬وس تكون النتيج ة ع د ًدا غ ير نس بي (‪irrational‬‬

‫‪ ،)number‬أو يمكنن ا تق ريب (‪ )round‬الع دد ‪ π‬إلى ع دد ذي من ازل عش رية مح ددة‪ ،‬ثم‬

‫نجمع العددين‪:‬‬

‫‪5 + π = 5 + 3.14 = 8.14‬‬

‫ولكن‪ ،‬إذا حاولن ا إض افة ع دد إلى ن وع بيان ات آخ ر‪ ،‬مث ل الكلم ات‪ ،‬فستص بح األم ور مربك ة‬

‫وغير ذات معنى‪ .‬فكيف ستحل المعادلة التالية مثاًل ؟‬

‫‪hsoub + 8‬‬

‫▲‬ ‫|‬ ‫‪103‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫ً‬
‫مختلف ا تمامً ا‪ ،‬مث ل الكلم ات‬ ‫بالنسبة إلى الكلمة ‪ ،hsoub‬يمكن ع ُّد كل نوع من أنواع البيان ات‬

‫وكيفية التعام ل معه ا‬


‫َّ‬ ‫كيفية اس تخدامها‪،‬‬
‫َّ‬ ‫يتعين علين ا ت وخي الح ذر بش أن‬
‫َّ‬ ‫واألع داد‪ ،‬ل ذلك‬

‫في العمليات‪.‬‬

‫‪ .2‬األعداد‬
‫ً‬
‫راحة عن ن وع‬ ‫فسر كل عدد ُتدخله إلى بايثون على َّ‬
‫أنه عدد؛ ليس مطلوبًا من ك اإلعالن ص‬ ‫سي َّ‬
‫ُ‬

‫ألن ب ايثون َتع ُّد ّ‬


‫أي ع دد مكت وب ب دون فواص ل عش رية بمثاب ة ع دد ص حيح‬ ‫البيانات الذي تدخل ه َّ‬

‫وأي ع دد مكت وب بفواص ل لعش رية بمثاب ة ع دد عش ري (‪ ،float‬كما‬


‫ُّ‬ ‫(‪ ،integer‬كما ه و ح ال ‪،)138‬‬

‫هو حال ‪.)138.0‬‬

‫ا‪ .‬األعداد الصحيحة (‪)integer‬‬

‫كم ا ه و الح ال في الرياض يات‪ ،‬األع داد الص حيحة (‪ )integer‬في البرمج ة هي أع داد كامل ة‪،‬‬

‫ً‬
‫أيضا باسم ‪.int‬‬ ‫يمكن أن تكون موجبة أو سالبة أو معدومة (‪ .)... ،1،0،1- ،...‬ويُ عرف هذا النوع‬

‫كما هو الحال مع لغات البرمجة األخرى‪ ،‬يجب أال تستخدم الفواصل في األع داد المؤلف ة من أربع ة‬

‫أرقام أو أكثر‪ ،‬لذلك ال تكتب ‪ 1,000‬في برنامجك‪ ،‬واكتب ‪.1000‬‬

‫يمكننا طباعة عدد صحيح على النحو التالي‪:‬‬

‫)‪print(-25‬‬

‫وسينتج‪:‬‬

‫‪-25‬‬

‫▲‬ ‫|‬ ‫‪104‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫أو يمكننا اإلعالن عن متغير‪ ،‬والذي هو في هذه الحال ة رم ٌز للع دد ال ذي نس تخدمه أو نتعام ل‬

‫معه‪ ،‬مثال‪:‬‬

‫‪my_int = -25‬‬
‫)‪print(my_int‬‬

‫وسينتج لنا‪:‬‬

‫‪-25‬‬

‫ً‬
‫مباشرة مثل‪:‬‬ ‫يمكننا أن نجري العمليات الحسابية على األعداد الصحيحة في بايثون‬

‫‪int_ans = 116 - 68‬‬


‫)‪print(int_ans‬‬

‫المخرجات‪:‬‬

‫‪48‬‬

‫يمكن استخدام األع داد الص حيحة بع دة طرائ ق في ب رامج ب ايثون‪ ،‬وم ع اس تمرارك في تعلم‬

‫المزي د عن ه ذه اللغ ة‪ ،‬س تتاح ل ك الكث ير من الف رص الس تخدام األع داد الص حيحة والتعام ل معه ا‬

‫وفهم المزيد عن هذا النوع من البيانات‪.‬‬

‫ب‪ .‬األعداد العشرية (‪)Floating-Point Numbers‬‬

‫األع داد العش رية هي أع داد حقيقي ة‪ ،‬مم ا يع ني أن ه يمكن أن تك ون أع دا ًدا جذري ة أو غ ير‬

‫نسبية‪ .‬لهذا الس بب‪ ،‬يمكن أن تحت وي األع داد العش رية على ج زء كس ري‪ ،‬مث ل ‪ 9.0‬أو ‪.-116.42‬‬

‫وببساطة‪ ،‬فاألعداد العشرية هي أعداد تحتوي الفاصلة العشرية‪.‬‬

‫كما فعلنا مع األعداد الصحيحة‪ ،‬يمكننا طباعة األعداد العشرية هكذا‪:‬‬

‫▲‬ ‫|‬ ‫‪105‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫)‪print(17.3‬‬

‫وسينتج لنا‪:‬‬

‫‪17.3‬‬

‫ِّ‬
‫متغير يحوى عد ًدا عشريًا‪ ،‬مثال‪:‬‬ ‫ً‬
‫أيضا أن نعلن عن‬ ‫يمكننا‬

‫‪my_flt = 17.3‬‬
‫)‪print(my_flt‬‬

‫الناتج‪:‬‬

‫‪17.3‬‬

‫وكم ا ه و الح ال م ع األع داد الص حيحة‪ ،‬يمكنن ا أن نج رى العملي ات الحس ابية على‬

‫األعداد العشرية‪:‬‬

‫‪flt_ans = 564.0 + 365.24‬‬


‫)‪print(flt_ans‬‬

‫الناتج‪:‬‬

‫‪929.24‬‬

‫ألن ‪ 3‬عدد‬
‫أن ‪َّ ،3.0 ≠ 3‬‬
‫تختلف األعداد الصحيحة واألعداد العشرية عن بعضها عمومً ا‪ ،‬إذ َّ‬

‫صحيح‪ ،‬بينما ‪ 3.0‬عدد عشري‪.‬‬

‫‪ .3‬القيم المنطقية‬
‫هناك قيمتان فقط لنوع البيانات المنطقية (‪ ،)Boolean‬وهما ‪ True‬و ‪ُ .False‬تستخدم القيم‬

‫المنطقية لتمثيل قيم الحقيقة الموافقة للمنطق الرياضياتي (صح أو خطأ)‪.‬‬

‫▲‬ ‫|‬ ‫‪106‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫ع ادة م ا يب دأ اس م البيان ات المنطقي ة ب الحرف ‪ ،B‬إش ارة إلى اس م ع الم الرياض يات ‪George‬‬

‫‪ .Boole‬القيمتان ‪ True‬و ‪ُ False‬تكتبان دائمً ا بحرفين كبيرين ‪ T‬و ‪َّ ،F‬‬


‫ألنها قيم خاصة في بايثون‪.‬‬

‫منطقيا‪ ،‬إما ‪ True‬أو ‪:False‬‬


‫ً‬ ‫الكثير من العمليات الحسابية في الرياضيات ُتنتج قيمً ا‬

‫أكبر من‬ ‫•‬

‫‪bool_val = 500 > 100 # True‬‬


‫‪bool_val = 1 > 5‬‬ ‫‪# False‬‬

‫أصغر من‬ ‫•‬

‫‪bool_val = 200 < 400 # True‬‬


‫‪bool_val = 4 < 2‬‬ ‫‪# False‬‬

‫التساوي‬ ‫•‬

‫‪bool_val = 5 = 5‬‬ ‫‪# True‬‬


‫‪bool_val = 500 = 400 # False‬‬

‫كما هو الحال مع األعداد‪ ،‬يمكننا تخزين القيم المنطقية في المتغيرات‪:‬‬

‫‪my_bool = 5 > 8‬‬

‫يمكننا بعد ذلك طباعة القيمة المنطقية باستدعاء الدالة )(‪:print‬‬

‫)‪print(my_bool‬‬

‫أن العدد ‪ 5‬ليس أكبر من ‪ ،8‬فسوف نحصل على المخرجات التالية‪:‬‬


‫بما َّ‬

‫‪False‬‬

‫▲‬ ‫|‬ ‫‪107‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫المنطقية‪ ،‬وكي ف يمكن لل دوال والعملي ات‬


‫َّ‬ ‫كيفية اس تخدام القيم‬
‫َّ‬ ‫َّ‬
‫تتعلم م ع م رور ال وقت‬ ‫س‬

‫المنطقية أن تغيِّ ر مسار البرنامج‪.‬‬


‫َّ‬

‫‪ .4‬السالسل النصية‬
‫السلسلة النص ية (‪ )string‬هي عب ارة عن تسلس ل من مح رف واح د أو أك ثر (مح ارف وأع داد‬

‫ورم وز)‪ ،‬ويمكن أن تك ون ثابت ة أو متغ يرة‪ .‬تح اط السالس ل النص ية إم ا بعالم ات االقتب اس‬

‫المفردة ' أو عالمات االقتباس المزدوجة "‪ ،‬ل ذلك إلنش اء سلس لة نص ية‪ ،‬ض ع سلس لة من األح رف‬

‫بين عالمتي اقتباس‪:‬‬

‫'‪'This is a string in single quotes.‬‬


‫"‪"This is a string in double quotes.‬‬

‫يمكنك استخدام عالمات االقتب اس المف ردة أو عالم ات االقتب اس المزدوج ة‪ ،‬المهم أن تك ون‬

‫ً‬
‫متسقا في برنامجك‪.‬‬

‫البرن امج البس يط "!‪ "Hello, World‬يوض ح كي ف يمكن اس تخدام السالس ل النص ية في‬

‫أن حروف عبارة !‪ Hello, World‬تمثل سلسلة نصية‪.‬‬


‫البرمجة‪ ،‬إذ َّ‬

‫)"!‪print("Hello, World‬‬

‫كما هو الحال مع أنواع البيانات األخرى‪ ،‬يمكننا تخزين السالسل النصية في المتغيرات‪:‬‬

‫"!‪hw = "Hello, World‬‬

‫وطباعة السلسلة عن طريق استدعاء المتغيِّ ر‪:‬‬

‫)‪print(hw‬‬ ‫!‪# Hello, World‬‬

‫▲‬ ‫|‬ ‫‪108‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫مث ل األع داد‪ ،‬هن اك العدي د من العملي ات ال تي يمكن إجراؤه ا على السالس ل النص ية من أج ل‬

‫تحقي ق النت ائج ال تي نس عى إليه ا‪ .‬السالس ل النص ية مهم ة لتوص يل المعلوم ات إلى المس تخدم‪،‬‬

‫وكذلك لتمكين المستخدم من تمرير المعلومات إلى البرنامج‪.‬‬

‫‪ .5‬القوائم (‪)Lists‬‬
‫رتب قاب ل للتغي ير ( ‪ .)mutable‬وكم ا ُتع رَّ ف السالس ل‬
‫القائمة (‪ )list‬عب ارة عن تسلس ل م َّ‬

‫النصية باستخدام عالمات االقتباس‪ ،‬يتم تعريف القوائم باستخدام األقواس المعقوفة []‪.‬‬
‫َّ‬

‫ً‬
‫صحيحة‪:‬‬ ‫مثاًل ‪ ،‬هذه قائمة تحوي أعدا ًدا‬

‫]‪[-3, -2, -1, 0, 1, 2, 3‬‬

‫وهذه قائمة من األعداد العشرية‪:‬‬

‫]‪[3.14, 9.23, 111.11, 312.12, 1.05‬‬

‫وهذه قائمة من السالسل النصية‪:‬‬

‫]'‪['shark', 'cuttlefish', 'squid', 'mantis shrimp‬‬

‫ِّ‬
‫سنسمي قائمة السالسل النصية خاصتنا باالسم ‪:sea_creatures‬‬ ‫في المثال التالي‪،‬‬

‫‪sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis‬‬


‫]'‪shrimp‬‬

‫يمكننا طباعتها عن طريق استدعاء المتغير‪:‬‬

‫)‪print(sea_creatures‬‬

‫أن المخرجات تشبه تمامً ا القائمة التي أنشأناها‪:‬‬


‫وسترى َّ‬

‫]'‪['shark', 'cuttlefish', 'squid', 'mantis shrimp‬‬

‫▲‬ ‫|‬ ‫‪109‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫الق وائم هي ن وع بيان ات م رن للغاي ة‪ ،‬ألنه ا قابل ة للتغي ير‪ ،‬حيث يمكن إض افة قيم إليه ا‪ ،‬أو‬

‫بي د َّ‬
‫أنه غ ير قاب ل للتغي ير‪ ،‬ويُ س مى‬ ‫إزالت ه‪ ،‬أو تغييره ا‪ .‬هن اك ن وع بيان ات آخ ر مش ابه لق وائم‪ْ ،‬‬

‫الصف (‪.)tuple‬‬

‫‪ .6‬الصفوف (‪)Tuples‬‬
‫يُ ستخدم الصف (‪ )tuple‬لتجميع البيانات‪ ،‬وهو تسلسل ثابت من العناصر وغير قابل للتغيير‪.‬‬

‫الصفوف تشبه القوائم إلى حد كبير‪ ،‬لكنها تس تخدم األق واس () ب داًل من األق واس المعقوف ة []‪،‬‬

‫َّ‬
‫وألنها غير قابلة للتغيير‪ ،‬فال يمكن تغيير أو تعديل قيمها‪.‬‬

‫تبدو الصفوف كالتالي‪:‬‬

‫)'‪('blue coral', 'staghorn coral', 'pillar coral‬‬

‫يمكننا تخزين الصفوف في المتغيِّ رات وطباعتها‪:‬‬

‫)'‪coral = ('blue coral', 'staghorn coral', 'pillar coral‬‬


‫)‪print(coral‬‬

‫والمخرجات هي‪:‬‬

‫)'‪('blue coral', 'staghorn coral', 'pillar coral‬‬

‫كما هو الحال في أنواع البيان ات األخ رى‪ ،‬تطب ع ب ايثون الص فوف تمامً ا كم ا كتبناه ا‪ ،‬إذ تطب ع‬

‫سلسلة من القيم بين قوسين‪.‬‬

‫▲‬ ‫|‬ ‫‪110‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫‪ .7‬القواميس (‪)Dictionaries‬‬
‫اتيح ب القيم المقابل ة له ا في‬
‫ُ‬ ‫القاموس (‪ )dictionary‬هو ن وع مُ ض مّ ن في ب ايثون‪ ،‬إذ ُترب ط مف‬

‫ش كل أزواج‪ ،‬ه ذه األزواج مفي دة لتخ زين البيان ات في ب ايثون‪ .‬يتم إنش اء الق واميس باس تخدام‬

‫األقواس المعقوصة {}‪.‬‬

‫ُتس تخدم الق واميس ع ً‬


‫ادة لحف ظ البيان ات المترابط ة‪ ،‬مث ل المعلوم ات المقابل ة ل رقم تعري ف‪.‬‬

‫يبدو القاموس كما يلي‪:‬‬

‫‪{'name': 'Sammy', 'animal': 'shark', 'color': 'blue',‬‬


‫}'‪'location': 'ocean‬‬

‫س تالحظ أن ه باإلض افة إلى األق واس المعقوص ة‪ ،‬توج د عالم ات النقط تين الرأس يتين‬

‫(‪ )colons‬داخ ل الق اموس‪ .‬الكلم ات الموج ودة على يس ار النقط تين الرأس يتين هي المف اتيح‪.‬‬

‫أي نوع بيانات غير قابل للتغيير‪ .‬المفاتيح في القاموس أعاله هي‪:‬‬
‫المفاتيح قد تكون َّ‬

‫'‪'name', 'animal', 'color', 'location‬‬

‫الكلم ات الموج ودة على يمين النقط تين هي القيم‪ .‬يمكن أن تت ألف القيم من أي ن وع من‬

‫البيانات‪ .‬القيم في القاموس أعاله هي‪:‬‬

‫'‪'Sammy', 'shark', 'blue', 'ocean‬‬

‫مثل أنواع البيانات األخرى‪ ،‬يمكننا تخزين القواميس في متغيرات‪ ،‬وطباعتها‪:‬‬

‫‪sammy = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue',‬‬


‫}'‪'location': 'ocean‬‬
‫)‪print(sammy‬‬

‫▲‬ ‫|‬ ‫‪111‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫والمخرجات هي‪:‬‬

‫‪{'color': 'blue', 'animal': 'shark', 'name': 'Sammy',‬‬


‫}'‪'location': 'ocean‬‬

‫إذا أردت الحص ول على الل ون (‪ )color‬الخ اص بـ ‪ ،Sammy‬فيمكن ك القي ام ب ذلك عن طري ق‬

‫استدعاء ]'‪ .sammy ['color‬هذا مثال على ذلك‪:‬‬

‫‪print(sammy['color']) # blue‬‬

‫القواميس من أنواع البيانات المهمَّ ة في برامج بايثون‪.‬‬

‫‪ .8‬التحويل بين أنواع البيانات‬


‫ِّ‬
‫يحدد نوع البيانات ‪-‬كما ذكرنا‪ -‬القيم ال تي يمكن اس تعمالها‪ ،‬والعملي ات ال تي يمكن ك إجراؤه ا‬

‫وع إلى آخ ر ألج ل معالجته ا بطريق ة مختلف ة‪.‬‬


‫عليه ا‪ .‬هن اك أوق ات نحت اج إلى تحوي ل القيم من ن ٍ‬

‫على سبيل المثال‪ ،‬قد نحتاج إلى ضم (‪ )concatenate‬القيم العددية إلى سالسل نصية‪.‬‬

‫سيرشدك هذا القسم إلى كيفية التحويل بين األعداد والسالسل النصية والص فوف والق وائم‪،‬‬

‫باإلضافة إلى تقديم بعض األمثلة التوضيحية‪.‬‬

‫ا‪ .‬تحويل األنواع العددية‬

‫هن اك نوع ان من البيان ات العددي ة في ب ايثون كم ا رأين ا ً‬


‫آنف ا‪ :‬األع داد الص حيحة واألع داد‬

‫العش رية‪ .‬س تعمل في بعض األحي ان على ش يفرة برمجي ة كتبه ا ش خص آخ ر‪ ،‬وق د تحت اج إلى‬

‫ً‬
‫حيحا في‬ ‫تحوي ل ع دد ص حيح إلى ع دد عش ري‪ ،‬أو العكس‪ ،‬أو ق د تج د َّ‬
‫أنك تس تخدم ع د ًدا ص‬

‫ال وقت ال ذي تحت اج إلى أع داد عش رية‪ .‬يت وفر في ب ايثون تواب ع مض مّ نة ُتس ِّهل علي ك تحوي ل‬

‫األعداد الصحيحة إلى أعداد عشريَّ ة‪ ،‬أو العكس‪.‬‬

‫▲‬ ‫|‬ ‫‪112‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫تحويل األعداد الصحيحة إلى أعداد عشرية‬

‫يح وّ ل الت ابع )(‪ float‬األع داد الص حيحة إلى أع داد عش رية‪ .‬الس تخدام ه ذه الدال ة‪ ،‬ض ع‬

‫ً‬
‫صحيحا بين القوسين‪:‬‬ ‫عد ًدا‬

‫)‪float(57‬‬

‫في هذه الحالة‪ ،‬سيحوَّ ل العدد الصحيح ‪ 57‬إلى العدد العشري ‪.57.0‬‬

‫ً‬
‫أيض ا اس تخدام ه ذه الدال ة م ع المتغ يرات‪ .‬ل ُنس نِد القيم ة ‪ 57‬إلى المتغيِّ ر ‪ ،f‬ثم نطب ع‬ ‫يمكن ك‬

‫العدد العشري الجديد‪:‬‬

‫‪f = 57‬‬

‫))‪print(float(f‬‬

‫الناتج سيكون‪:‬‬

‫‪57.0‬‬

‫يمكننا باستخدام الدالة )(‪ float‬تحويل األعداد الصحيحة إلى أعداد عشرية‪.‬‬

‫تحويل األعداد العشرية إلى أعداد صحيحة‬

‫تملك بايثون دالة أخرى مضمَّ نة لتحويل األعداد عشرية إلى أعداد صحيحة‪ :‬وهي )(‪.int‬‬

‫تعمل الدالة )(‪ int‬بشكل مشابه للدالة )(‪ :float‬يمكنك إضافة عدد عشري داخل القوسين‬

‫لتحويله إلى عدد صحيح‪:‬‬

‫)‪int(390.8‬‬

‫سيحوَّ ل العدد العشري ‪ 390.8‬إلى العدد الصحيح ‪.390‬‬


‫في هذه الحالة‪ُ ،‬‬

‫▲‬ ‫|‬ ‫‪113‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫وأن ‪c‬‬
‫َّ‬ ‫أن ‪ b‬يس اوي ‪،125.0‬‬ ‫ً‬
‫أيض ا اس تخدام ه ذه الدال ة م ع المتغ يرات‪ .‬لنص ِّرح َّ‬ ‫يمكن ك‬

‫يساوي ‪ ،390.8‬ثم نطبع العددين العشريين الجديدين‪:‬‬

‫‪b = 125.0‬‬

‫‪c = 390.8‬‬

‫))‪print(int(b‬‬

‫))‪print(int(c‬‬

‫والمخرجات ستكون‪:‬‬

‫‪125‬‬
‫‪390‬‬

‫عن د تحوي ل األع داد العش رية إلى أع داد ص حيحة بواس طة الدال ة )(‪ ،int‬تقتط ع ب ايثون‬

‫وتبقي القيمة الص حيحة؛ ل ذلك‪ ،‬لن ُتح ِّول الدال ة )(‪ int‬الع دد ‪390.8‬‬
‫األجزاء العشرية من العدد ُ‬

‫إلى ‪.391‬‬

‫تحويل األعداد عبر القسمة‬

‫في بايثون ‪ ،3‬عند تقسيم ع دد ص حيح على آخ ر‪ ،‬س ينتج ع دد عش ري على خالف ب ايثون ‪.2‬‬

‫أنه عن د قس مة ‪ 5‬على ‪ 2‬في ب ايثون ‪ ،3‬ستحص ل على ع دد عش ري (مث ل ‪ 2.5‬عن د‬


‫بمع نى َّ‬

‫قسمة ‪ 5‬على ‪:)2‬‬

‫▲‬ ‫|‬ ‫‪114‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫‪a = 5 / 2‬‬

‫)‪print(a‬‬

‫وسينتج لنا‪:‬‬

‫‪2.5‬‬

‫بينما في بايثون ‪ ،2‬ستحصل على ناتج صحيح‪ ،‬أي ‪ .2 = 5/2‬يمكن ك الحص ول على ع دد‬

‫صحيح ناتج عن عملية القسمة باستعمال المعامل ‪ //‬الجديد في بايثون ‪:3‬‬

‫‪a = 5 // 2‬‬

‫)‪print(a‬‬

‫وسينتج لنا‪:‬‬

‫‪2‬‬

‫ارج ع إلى فص ل «إص دارات ب ايثون‪ :‬ب ايثون ‪ 2‬مقاب ل ب ايثون ‪ »3‬لالطالع على المزي د من‬

‫الفروقات بين بايثون ‪ 2‬وبايثون ‪.3‬‬

‫ب‪ .‬التحويل مع السالسل النصية‬

‫السالسل النصية عبارة عن سلسلة مؤلفة من محرف واحد أو أك ثر (المح رف يمكن أن يك ون‬

‫ً‬
‫حرف ا‪ ،‬أو ع د ًدا‪ ،‬أو رم ًزا)‪ .‬السالس ل النص ية هي إح دى األش كال الش ائعة من البيان ات في ع الم‬

‫البرمجة‪ ،‬وقد نحتاج إلى تحويل السالسل النصية إلى أعداد أو أعداد إلى سالسل نص ية في كث ير‬

‫ً‬
‫خاصة عندما نعمل على البيانات التي ينشئها المستخدمون‪.‬‬ ‫من األحيان‪،‬‬

‫▲‬ ‫|‬ ‫‪115‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫تحويل األعداد إلى سالسل نصية‬

‫يمكنن ا تحوي ل األع داد إلى سالس ل نص ية ع بر الت ابع )(‪ .str‬يمكنن ا أن نم ِّرر إمَّ ا ع د ًدا أو‬

‫متغيرًا بين قوسي التابع‪ ،‬وبعد ذلك ُ‬


‫ستحوَّ ل تلك القيمة العددية إلى قيمة نصية‪.‬‬

‫دعنا ننظر أواًل في تحويل األعداد الصحيحة‪ .‬لتحويل العدد الصحيح ‪ 12‬إلى سلسلة نص ية‪،‬‬

‫يمكنك تمرير ‪ 12‬إلى التابع )(‪:str‬‬

‫)‪str(12‬‬

‫عند تنفيذ )‪ str(12‬في سطر أوام ر ب ايثون التف اعلي م ع األم ر ‪ python‬في ناف ذة الطرفي ة‪،‬‬

‫ستحصل على المخرجات التالية‪:‬‬

‫'‪'12‬‬

‫ً‬
‫حيحا‪ ،‬ولكنَّه أص بح اآلن‬ ‫تشير عالمات االقتباس المحيطة بالعدد ‪ 12‬إلى أنه لم يع د ع د ًدا ص‬

‫سلسلة نصية‪.‬‬

‫سيص بح باس تخدام المتغ يرات تحوي ل األع داد الص حيحة إلى سالس ل نص ية أك ثر فائ دة‪.‬‬

‫يوميا مث ل أن ن دخل ع دد أس طر‬


‫ًّ‬ ‫لنف ترض َّ‬
‫أنن ا نري د متابع ة تق ُّدم مس تخدم في مج ال البرمج ة‬

‫الشيفرة البرمجية التي كتبها‪ .‬نود أن نعرض ذلك على المستخدم‪ ،‬وذلك بطباع ة السالس ل النص ية‬

‫واألعداد في الوقت نفسه‪:‬‬

‫"‪user = "Sammy‬‬

‫‪lines = 50‬‬

‫‪print("Congratulations, " + user + "! You just wrote " + lines‬‬


‫)"‪+ " lines of code.‬‬

‫▲‬ ‫|‬ ‫‪116‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫سي َ‬
‫طلق الخطأ التالي‪:‬‬ ‫عند تنفيذ الشيفرة أعاله‪ُ ،‬‬

‫‪TypeError: Can't convert 'int' object to str implicitly‬‬

‫يتع ذر علين ا ض مُّ (‪ )concatenate‬األع داد إلى السالس ل النص ية في ب ايثون‪ ،‬ل ذلك يجب‬

‫تحويل المتغير ‪ lines‬إلى سلسلة نصية‪:‬‬

‫"‪user = "Sammy‬‬
‫‪lines = 50‬‬

‫‪print("Congratulations, " + user + "! You just wrote " +‬‬


‫)"‪str(lines) + " lines of code.‬‬

‫البرمجية‪ ،‬سنحص ل على المخرج ات التالي ة‪ ،‬وفيه ا تهنئ ة‬


‫َّ‬ ‫اآلن‪ ،‬عن دما ُن ِّ‬
‫نفذ الش يفرة‬

‫للمستخدم على تق ُّدمه‪:‬‬

‫‪Congratulations, Sammy! You just wrote 50 lines of code.‬‬

‫إذا أردن ا تحوي ل ع دد عش ري إلى سلس لة نص ية ب داًل من تحوي ل ع دد ص حيح إلى سلس لة‬

‫نصية‪ ،‬فعلينا تتبع نفس الخطوات والص ياغة الس ابقة‪ .‬عن دما نم ِّرر ع د ًدا عش ريً ا إلى الت ابع )(‪،str‬‬

‫ُ‬
‫ستعاد سلسلة نصية‪ .‬يمكننا استخدام قيمة العدد العشري نفسها‪ ،‬أو يمكننا استخدام متغيِّ ر‪:‬‬

‫))‪print(str(421.034‬‬

‫‪f = 5524.53‬‬
‫))‪print(str(f‬‬

‫وسينتج لنا‪:‬‬

‫‪421.034‬‬
‫‪5524.53‬‬

‫▲‬ ‫|‬ ‫‪117‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫يمكننا اختبار صحة التحويل عن طريق ضم الناتج إلى سلسلة نصية‪:‬‬

‫‪f = 5524.53‬‬

‫)"‪print("Sammy has " + str(f) + " points.‬‬

‫وهذا هو الناتج‪:‬‬

‫‪Sammy has 5524.53 points.‬‬

‫ح ِّول بنج اح إلى سلس لة نص ية‪َّ ،‬‬


‫ألن عملي ة الض م ق د‬ ‫أن ع ددنا العش ري ق د ُ‬
‫اآلن تأك دنا من َّ‬

‫ُن ِّفذت دون خطأ‪.‬‬

‫تحويل السالسل النصية إلى أعداد‬

‫يمكن تحوي ل السالس ل النص ية إلى أع داد باس تخدام الت ابعين )(‪ float‬و )(‪ .int‬إذا لم‬

‫يكن في السلس لة النص ية من ازل عش رية‪ ،‬فاألفض ل أن تحوله ا إلى ع دد ص حيح باس تخدام‬

‫التابع )(‪.int‬‬

‫دعنا نستخدم مثال تتبع عدد أس طر الش يفرة ال ذي أوردن اه أعاله‪ .‬ق د ت رغب في التعام ل م ع‬

‫ولكن ه ذه القيم‬
‫َّ‬ ‫ه ذه القيم باس تخدام الحس ابات الرياض ياتية لتق ديم نت ائج أدق للمس تخدم‪،‬‬

‫حاليا في سالسل نصية‪:‬‬


‫ًّ‬ ‫َّ‬
‫مخزنة‬

‫"‪lines_yesterday = "50‬‬

‫"‪lines_today = "108‬‬

‫‪lines_more = lines_today - lines_yesterday‬‬

‫)‪print(lines_more‬‬

‫▲‬ ‫|‬ ‫‪118‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫الناتج هو‪:‬‬

‫'‪TypeError: unsupported operand type(s) for -: 'str' and 'str‬‬

‫أن معام ل‬ ‫ًأ‬ ‫َّ‬


‫مخزنتان في سالسل نصية‪ ،‬تلقين ا خط ‪ .‬س بب ذل ك َّ‬ ‫ألن القيمتين العدديتين‬
‫نظرًا َّ‬

‫الطرح ‪ -‬ال يصلح للسالسل النصية‪.‬‬

‫دعن ا نع ِّدل الش يفرة لتض مين الت ابع )(‪ int‬ال ذي س يحول السالس ل النص ية إلى أع داد‬

‫ص حيحة‪ ،‬ويس مح لن ا بالقي ام بالعملي ات الرياض ياتية على القيم ال تي ك انت سالس ل نص ية‬

‫في األصل‪.‬‬

‫"‪lines_yesterday = "50‬‬

‫"‪lines_today = "108‬‬

‫)‪lines_more = int(lines_today) - int(lines_yesterday‬‬

‫)‪print(lines_more‬‬

‫وهذه هي المخرجات‪:‬‬

‫‪58‬‬

‫تلقائيا‪ ،‬ويساوي القيمة العددية ‪ 58‬في هذا المثال‪.‬‬


‫ًّ‬ ‫المتغير ‪ line_more‬هو عدد صحيح‬

‫أيضا تحويل األعداد في المثال أعاله إلى قيم عشرية باستخدام التابع )(‪ float‬بداًل‬
‫ً‬ ‫يمكننا‬

‫من الت ابع )(‪ .int‬وب دالً من الحص ول على الن اتج ‪ ،58‬سنحص ل على الن اتج ‪ ،58.0‬وه و‬

‫عدد عشري‪.‬‬

‫▲‬ ‫|‬ ‫‪119‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫ً‬
‫نقاطا على شكل قيم عشرية‪:‬‬ ‫سيكسب المستخدم ‪Sammy‬‬

‫"‪total_points = "5524.53‬‬

‫"‪new_points = "45.30‬‬

‫‪new_total_points = total_points + new_points‬‬

‫)‪print(new_total_points‬‬

‫الناتج‪:‬‬

‫‪5524.5345.30‬‬

‫ً‬
‫الحة‪ ،‬لكن ه سيض م‬ ‫في هذه الحالة‪ ،‬يع ُّد استخدام المعامل ‪ +‬م ع سلس لتين نص يتين عملي ًة ص‬

‫النص يتين ب داًل من جم ع القيم تين الع دديتين؛ ل ذلك‪ ،‬س يبدو الن اتج غ ير م ألوف‪َّ ،‬‬
‫ألنه‬ ‫ّ‬ ‫السلس لتين‬

‫ً‬
‫بعضا‪.‬‬ ‫نتيجة لصق القيمتين إلى جانب بعضهما‬

‫سنحتاج إلى تحويل هذه السالسل النص ية إلى أع داد عش رية قب ل إج راء أي عملي ات عليه ا‪،‬‬

‫وذلك باستخدام التابع )(‪:float‬‬

‫"‪total_points = "5524.53‬‬

‫"‪new_points = "45.30‬‬

‫)‪new_total_points = float(total_points) + float(new_points‬‬

‫)‪print(new_total_points‬‬

‫وسينتج عن ذلك‪:‬‬

‫‪5569.83‬‬

‫▲‬ ‫|‬ ‫‪120‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫اآلن‪ ،‬وبع د أن حوَّ لن ا السلس لتين النص يتين إلى ع ددين عش ريين‪ ،‬سنحص ل على النتيج ة‬

‫المتوقعة‪ ،‬والتي هي جمع ‪ 45.30‬و ‪.5524.53‬‬

‫إذا حاولنا تحويل سلسلة نصية ذات منازل عشرية إلى عدد صحيح‪ ،‬فسنحصل على خطأ‪:‬‬

‫"‪f = "54.23‬‬

‫))‪print(int(f‬‬

‫المخرجات‪:‬‬

‫'‪ValueError: invalid literal for int() with base 10: '54.23‬‬

‫إذا مرّ رنا عد ًدا عشريً ا موضوعً ا في سلسلة نص ية إلى الت ابع )(‪ ،int‬فسنحص ل على خط أ‪ ،‬إذ‬

‫لن ُتحوَّ ل إلى عدد صحيح‪.‬‬

‫ي تيح لن ا تحوي ل السالس ل النص ية إلى أع داد تع ديل ن وع البيان ات ال ذي نعم ل علي ه بس رعة‬

‫حتى نتمكن من إجراء عمليات على قيم عددية مكتوبة على شكل سالسل نصية‪.‬‬

‫ج‪ .‬التحويل إلى صفوف وقوائم‬

‫يمكن ك اس تخدام الت ابعين )(‪ list‬و )(‪ tuple‬لتحوي ل القيم المُ م رَّ رة إليهم ا إلى قائمة أو‬

‫صف على التوالي‪ .‬في بايثون‪:‬‬

‫القائم ة هي تسلس ل م َّ‬


‫رتب قاب ل للتغي ير من العناص ر الموض وعة داخ ل قوس ين‬ ‫•‬
‫معقوفين []‪.‬‬

‫الص ف عب ارة عن تسلس ل م رتب ث ابت (غ ير قاب ل للتغي ير) من العناص ر الموض وعة بين‬ ‫•‬
‫الهالليين ()‪.‬‬
‫َّ‬ ‫القوسين‬

‫▲‬ ‫|‬ ‫‪121‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫التحويل إلى صفوف‬

‫ِّ‬
‫يحس ن تحوي ل قائم ة إلى ص ف أداء‬ ‫نظ ًرا لك ون الص فوف غ ير قابل ة للتغي ير‪ ،‬فيمكن أن‬

‫ال برامج تحس ينًا كب يرًا‪ .‬عن دما نس تخدم الت ابع )(‪ ،tuple‬فس وف يُ عي د القيم ة المُ م رَّ رة إلي ه على‬

‫هيئة صف‪.‬‬

‫‪print(tuple(['pull request', 'open source', 'repository',‬‬


‫))]'‪'branch‬‬

‫المخرجات‪:‬‬

‫)'‪('pull request', 'open source', 'repository', 'branch‬‬

‫أن العناص ر موض وعة اآلن بين قوس ين‪ ،‬ب داًل من‬
‫أن الص ف ق د ُطب ع في المخرج ات‪ ،‬إذ َّ‬
‫ن رى َّ‬

‫القوسين المربعين‪.‬‬

‫دعنا نستخدم )(‪ tuple‬مع متغير يحتوي قائمة‪:‬‬

‫‪sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis‬‬


‫]'‪shrimp‬‬

‫))‪print(tuple(sea_creatures‬‬

‫سينتج‪:‬‬

‫)'‪('shark', 'cuttlefish', 'squid', 'mantis shrimp‬‬

‫ح ِّولت إلى ص ف‪ ،‬كم ا يش ير إلى ذل ك القوس ان‪ .‬يمكنن ا تحوي ل أي‬


‫أن القائم ة ُ‬
‫مرة أخرى‪ ،‬ن رى َّ‬

‫نوع قابل للتكرار (‪ )iterable‬إلى صف‪ ،‬بما في ذلك السالسل النصية‪:‬‬

‫))'‪print(tuple('Sammy‬‬

‫▲‬ ‫|‬ ‫‪122‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫المخرجات‪:‬‬

‫)'‪('S', 'a', 'm', 'm', 'y‬‬

‫لمَّ ا ك ان باإلمك ان الم رور (‪ )iterate‬على مح ارف السالس ل النص ية‪ ،‬فيمكنن ا تحويله ا إلى‬

‫صفوف باستخدام التابع )(‪ .tuple‬أمَّ ا أنواع البيانات غير القابلة للتك رار‪ ،‬مث ل األع داد الص حيحة‬

‫فستطلِق عملية تحويلها خطًأ‪:‬‬


‫ُ‬ ‫واألعداد العشرية‪،‬‬

‫))‪print(tuple(5000‬‬

‫والناتج سيكون‪:‬‬

‫‪TypeError: 'int' object is not iterable‬‬

‫في حين أن ه من الممكن تحوي ل ع دد ص حيح إلى سلس لة نص َّية‪ ،‬ومن ثم تحوي ل السلس لة‬

‫النص ية إلى ص ف‪ ،‬كم ا في ))‪ ،tuple(str(5000‬فمن األفض ل تجنب مث ل ه ذه التعليم ات‬

‫َّ‬
‫المعقدة‪.‬‬ ‫البرمجية‬

‫التحويل إلى قوائم‬

‫يمكن أن يك ون تحوي ل القيم‪ ،‬وخاص ة الص فوف‪ ،‬إلى ق وائم مفي ًدا عن دما تحت اج إلى نس خة‬

‫قابلة للتغيير من تلك القيم‪.‬‬

‫ألن ص ياغة الق وائم‬


‫سنس تخدم الت ابع )(‪ list‬لتحوي ل الص ف الت الي إلى قائم ة‪ .‬ونظ رً ا َّ‬

‫تس تخدم األق واس‪ ،‬تأك د من تض مين أق واس الت ابع )(‪ ،list‬وك ذلك األق واس الخاص ة‬

‫بالدالة )(‪:print‬‬

‫)))'‪print(list(('blue coral', 'staghorn coral', 'pillar coral‬‬

‫▲‬ ‫|‬ ‫‪123‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫المخرجات هي‪:‬‬

‫]'‪['blue coral', 'staghorn coral', 'pillar coral‬‬

‫ُأ‬ ‫تش ير األق واس المعقوف ة [] إلى َّ‬


‫أنه ق د رجعَ ت قائم ة من الص ف األص لي ال ذي مُ ِّرر ع بر‬

‫الدالة )(‪.list‬‬

‫لجعل الشيفرة سهلة القراءة‪ ،‬يمكننا إزالة أحد أزواج األقواس باستخدام متغيِّ ر‪:‬‬

‫)'‪coral = ('blue coral', 'staghorn coral', 'pillar coral‬‬

‫)‪list(coral‬‬

‫إن طبعنا )‪ ،list(coral‬فسنتلقى المخرجات نفسها الموجودة أعاله‪.‬‬

‫تمامً ا مثل الصفوف‪ ،‬يمكن تحويل السالسل النصية إلى قوائم‪:‬‬

‫))'‪print(list('shark‬‬

‫الناتج‪:‬‬

‫]'‪['s', 'h', 'a', 'r', 'k‬‬

‫ِّ‬
‫يوفر لنا نسخة قابلة للتغيير من القيمة األصلية‪.‬‬ ‫ُح ِّو َلت هنا السلسلة ‪ shark‬إلى قائمة‪ ،‬وهذا‬

‫‪ .9‬خالصة الفصل‬
‫في هذه المرحلة‪ ،‬يُ ف ترض أن يك ون ل ديك فهم جي د لبعض أن واع البيان ات الرئيس ية المتاح ة‬

‫طبيعيا من حياتك كمبرمج للغة بايثون‪.‬‬


‫ً‬ ‫جزءا‬
‫ً‬ ‫في بايثون‪ .‬أنواع البيانات هذه ستصبح‬

‫كيفية تحويل العديد من أنواع البيانات األص لية المهمَّ ة إلى‬


‫َّ‬ ‫ً‬
‫أيضا في هذا الفصل‬ ‫لقد وضحنا‬

‫أنواع بيانات أخرى‪ ،‬وذلك باستخدام التوابع المُ ضمّ نة‪ .‬يوفر تحويل أنواع البيان ات في ب ايثون ل ك‬

‫▲‬ ‫|‬ ‫‪124‬‬


‫البرمجة بلغة بايثون‬ ‫أنواع البيانات والتحويل بينها‬

‫ً‬
‫إضافية في مشاريعك البرمجية‪ .‬يمكنك التعرف على المزيد من التفاص يل عن ه ذه األن واع‬ ‫ً‬
‫مرونة‬

‫وطرائق التحويل بينها في موسوعة حسوب‪.‬‬

‫▲‬ ‫|‬ ‫‪125‬‬

You might also like