البرمجة بلغة بايثون (الفصل الاول)
- أبريل 1, 2023
- تم النشر بواسطة: كود خانة
- الفئة: البرمجة بلغة بايثون
لغات البرمجة:
اول الامور التي تحتاج ان تعرفها عن لغات البرمجة هي:
- لغات تستخدم لمخاطبة الالة ( الحاسوب ):
اللغات البرمجية ببساطة هي مجموعة من الاوامر والتعليمات يستطيع الحاسوب فهمها حيث يقوم المبرمج بكتابة سلسلة من الاوامر او التعليمات للحاسوب ثم يقوم الحاسوب بدوره بتنفيذ هذه الاوامر او التعليمات - تسمى سلسلة الاوامر بــ ( برنامج ):
هذه الاوامر او التعليمات المتسلسلة والمترابطة التي ينفذها الحاسوب تسمى برامج حيث كل برنامج يقوم بكتابته المبرمج يحتوي بداخله مجموعة اكواد او سطور برمجية هذه الاكواد هي التعليمات التي يوجهها المبرمج الى الحاسوب من اجل تنفيذها مثلا اختر اللون الاحمر او اضف اسم احمد الى قائمة الاصدقاء او احذف الرقم الاخير من القائمة والخ.. - ينفذ الحاسوب الامر الذي يكتبه المبرمج:
وحتى نفهم الموضوع بشكل اوضح لنقم بكتابة برنامج بسيط جداً يقوم بطباعة جملة ترحيبية مثلاً الجملة hello world ومن اجل القيام بذلك كل ما علينا فعله هو كتابة الامر print والتي تعني اطبع ومن ثم كتابة الجملة التي نريد طبعاتها والتي هي hello world
1 |
print("hello world") |
بعد كتابة هذا الامر سوف ينفذ الحاسوب الامر الذي قمنا بكتابته وسيقوم بطباعة الجملة hello world
اضغط على زر Run لتنفيذ الكود وشاهد الناتج
print("hello world")
اصناف لغات البرمجة:
يتم تصنيف لغات البرمجة على حسب قربها من لغة الانسان حيث يوجد ثلاث مستويات من لغات البرمجة:
- لغات عالية المستوى:
وتمتاز هذه اللغات انها مشابهة جداً للغة الانسان وعلى سبيل المثال لغة Python هي من اشهر اللغات عالية المستوى وذلك لان الاوامر والاكواد في لغة بايثون تشبه الكلمات في اللغة الانجليزية وكما شاهدنا قبل قليل الامر print يستخدم للطباعة وهذا الامر يشبه جداً كلام الانسان العادي فكلمة print باللغة الانجليزية تعني اطبع وفي لغة بايثون البرمجية ايضاً تعني اطبع - لغات متوسطة المستوى:
هذا النوع من اللغات يكون متوسط الصعوبة وذلك لأن هذا النوع من اللغات يكون فيه اوامر سهلة الفهم وفيه ايضاً اوامر صعبة الفهم بالنسبة للبشر واشهر لغات المستوى المتوسط هي لغة C - لغات منخفظة المستوى:
هذا النوع من اللغات يكون صعب الفهم بالنسبة للأنسان واشهر لغات المستوى المنخفض هي لغة Assembly
وللتوضيح اكثر ، الامثلة الثلاث التالية توضح الفرق بين المستويات الثلاثة في طباعة الجملة hello world
وكما هو واضح في الصورة التي في الاعلى ، لو استخدمنا لغة Python البرمجية ستجد ان الامر سهل جداً ولو استخدمنا لغة C البرمجية ستجد ان الامر اكثر صعوبة ولو استخدمنا لغة Assembly ستجد ان الموضوع معقد جداً وصعب الفهم ، وبسبب ذلك اصبحت اللغات عالية المستوى مثل بايثون هي الاكثر استخداما حول العالم لكونها سهلة الفهم وبالامكان تعلمها واستخدمها بسهولة
مميزات لغة بايثون:
بايثون هي لغة برمجية رائعة تصنف من اللغات ذات المستوى العالي high-level ومن السهل فهمها واستيعابها حتى لو كنت جديدا في عالم البرمجة
هناك عدة اسباب تدعونا لاستخدام لغة بايثون اهمها:
- لغة بايثون لغة قويه جداً
- وسريعه جدا
- ومرنه وتتعامل مع باقي اللغات البرمجية الاخرى
- لغة بايثون صديقة وسهله التعلم والفهم
- وتعمل على كافة المنصات وفي مختلف المجالات
- لغة بايثون مفتوحة (مجانية)
- و توفر لنا عدد كبير جداً من الادوات القوية جداً في مجال علم البيانات والذكاء الاصطناعي
لغة بايثون هي لغة المستقبل وهي اللغة البرمجية الاكثر استخداماً في العالم وهذا ما تشير اليه جميع الاحصاءات العالمية لكبرى الشركات المختص في البرمجة
حيث يتوقع اغلب المبرمجين ان لغة بايثون سوف تغزو العالم بالكامل في الوقت الذي تتراجع فيه لغات برمجية اخرى كبيرة وسوف تبدأ بالاندثار
حيث بدأت لغة بايثون بغزو جميع المجالات التقنية وذلك لأمكانياتها الهائلة حيث بأمكانك القيام بأي شيء بأستخدام لغة بايثون
واهم ميزة في لغة بايثون انه يوجد فيها عدد كبير جدا من الادوات والمكتبات البرمجية والتي تمكنك من القيام بأي شيء وبسهولة واكثر البرامج الموجودة في العالم اليوم هي برامج مكتوبة بلغة بايثون واقوى الشركات في العالم تعتمد على بايثون ومن هذه الشركات هي شركة Google وشركة Facebook وشركة Instagram وشركة Netflix والعديد من الشركات الاخرى وتقريبا لايوجد شركة عالمية متقدمة لاتستخدم هذه اللغة كما ان اكثر المبرمجين في العالم يتقنون ويعشقون هذه اللغة وذلك لان ماتحتاج الى تنفيذه بخمس سطور او اكثر بلغات برمجية مثل C, C++, Java بأمكانك تنفيذه بلغة بايثون بسطر واحد وربما كلمة او كلمتين فقط وبنفس الاداء او افضل
بايثون هي المستقبل
لغة بايثون تجعل الصعب سهل وتجعل المستحيل ممكن ولذلك بدأ يتوجه اكثر المحترفين اليها خاصة في علم البيانات والذكاء الاصطناعي والروبوتات وانترنيت الاشياء وباقي انواع العلوم التي سوف يبنى عليها المستقبل
مؤسس هذه اللغة العظيمة هو العالم الهولندي الشهير جايدو ڤان روسم حيث قام هذا الشخص الرائع بتطوير هذه اللغة في نهاية الثمانينات من القرن الماضي
Guido van Rossum
لنبدأ الممارسة:
يتم تعلم البرمجة واحترافها من خلال الممارسة ، فتعلم البرمجة يشبه تعلم قيادة السيارة او تعلم السباحة ولايمكن تعلم هذه الامور من خلال مشاهدة الفديوهات ( حتى لو شاهدت الف فديو لن تتعلم بدون ممارسة )
نحن في منصة كود خانة نؤمن بأن البرمجة يتم تعلمها من خلال الممارسة والتدريبات والتفكير الخوارزمي ومواجهة المشاكل والاخطاء وحلها ولذلك في هذه الدورة سوف نجعلك تتعلم كل شيء في لغة بايثون من خلال الممارسة العملية
والان لنبدأ التعلم…
اول مهمة برمجية لك هي: أكتب الكود التالي
1 |
print("مرحباً بك") |
في خانة الادخال ثم قم بالضغط على زر Submit لأرسال الاجابة والتحقق من الناتج او قم بالضغط على زر Solution لمشاهدة الحل
print("مرحباً بك")
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
امر الطباعة ()print
اول شيء سنتعلمه في لغة بايثون هو امر الطباعة والمقصود بأمر الطباعة هو ان تقوم بتوجيه امر للحاسبة تطلب فيه من الحاسبة ان تقوم بطباعة شيء معين لك قد يكون رقم او نص او اي شيء اخر
في لغة بايثون بأمكانك طباعة اي رقم او نص او عملية رياضية او باقي الامور التي سنتعلمها في هذه الدورة من خلال استخدام الامر print ثم تقوم بفتح قوسين بالشكل التالي ( ) ثم نكتب داخل هذين القوسين الشيء الذي تريد طباعته
- طباعة رقم: نستطيع في لغة بايثون طباعة اي رقم سواء كان رقم صحيح او كسري ، موجب او سالب ولنأخذ مثال بسيط عن ذلك ولنفترض اننا نريد طباعة الرقم 100 ومن اجل القيام بذلك كل ما علينا فعله هو كتابة الامر print ثم نفتح قوسين ( ) وبداخل هذين القوسين نكتب الرقم 100 وبعد تنفيذ الكود سيتم طباعة الرقم 100
1 |
print(100) |
1 |
100 |
وبنفس الطريقة بأمكانك ايضاً طباعة اي رقم اخر ( مثل 5 , 10.36 , 82- )
- طباعة نص: ايضاً في لغة بايثون نستطيع طباعة النصوص مثل الكلمات والجمل وغيرها ومن اجل القيام بذلك كل ما علينا فعله هو استخدام الامر print ثم نفتح قوسين ( ) ثم نكتب النص الذي نريده داخل علامتي تنصيص ” ”
– علامتي التنصيص تخبر الحاسبة ان الشيء المراد طباعته هو نص وليس رقم او شيء اخر ولذلك نحتاج الى وضع النصوص التي نريد طباعتها داخل علامتي التنصيص
– على سبيل المثال سنستخدم الامر print ثم سنفتح قوسين ثم سنكتب الجملة My name is Yaseen داخل علامتي تنصيص ” ” وبعد تنفيذ هذا الكود سيتم طباعة الجملة My name is Yaseen
1 |
print("My name is Yaseen") |
1 |
My name is Yaseen |
قم بتجربة طباعة اي شيء تريده ( رقم او نص ) في المساحة التجريبية التالية ثم اضغط على زر Run لتنفيذ الكود
كتابة الملاحظات (comments):
من الامور الاساسية في كل اللغات البرمجية هو كتابة الملاحظات فمثلاً في المشاريع البرمجية الكبيرة لن يكون لدينا امر برمجي بسيط واحد مثل الامر print بل سيكون لدينا عدد كبير من السطور البرمجية والاوامر وستكون الامور اكثر تعقيداً ولذلك من المفيد جداً كتابة بعض الملاحظات التي توضح دور كل سطر برمجي في البرنامج حيث سيساعدنا ذلك في تذكر فائدة هذا السطر البرمجي وماهو دوره وايضاً سيستطيع الاخرون الذين يعملون معنا على نفس المشروع او البرنامج من قراءة هذه الملاحظات من اجل فهم ما هو دور كل سطر برمجي في البرنامج ولماذا تم كتابة هذا السطر
- والملاحظة ببساطة هي كتابة نص معين او ارقام او معادلات او اي شيء اخر داخل البرنامج ولكن من دون تنفيذها فهي مجرد ملاحظة او تعليق نستخدمه من اجل تذكر فائدة كود قمنا بكتابته او من اجل الشخص الذي يعمل معنا على نفس البرنامج يستطيع فهم لماذا قمنا بكتابة هذا الكود او لاغراض الشرح او اي شيء اخر ومن اجل كتابة اي تعليق نحتاج فقط الى كتابة علامة الهاشتاك # في بداية السطر وبعدها نكتب اي شيء نريده وعند تنفيذ الكود هذا السطر لن يتم تنفيذه لأنه مسبوق بهاشتاك
1 |
# This is a comment |
- وعلى سبيل المثال سنقوم بطباعة الجملة التالية “Monday 01-01-1990” وهذا التاريخ لو اردنا قرائته بعد فترة معينة لربما سننسى ما الذي يعنيه هذا التاريخ او لو قام شخص اخر بقرائته لن يفهم ما الذي يمثله هذا التاريخ ولذلك سنكتب فوقه ملاحظة توضيحية والتي هي هاشتاك يوم ميلاد احمد Ahmed Birthday# هذا سيساعدنا اكثر في فهم الكود
1 2 |
# Ahmed birthday print("Monday 01-01-1990") |
1 |
Monday 01-01-1990 |
لاحظ انه عند تنفيذ هذا الكود تم طباعة “Monday 01-01-1990” فقط ولم يتم تنفيذ سطر الملاحظة وذلك لان السطر المسبوق بعلامة # لا يتم تنفيذه وتفهمه الحاسبة على انه ملاحظة وليس امر برمجي
- وضع في بالك انه بامكانك كتابة اي ملاحظة تريد وبأي لغة تريد حتى لو كانت مليئة بالاخطاء الاملائية فهي موجودة لمساعدتك في تذكر فائدة الكود والشيء الاهم الذي يجب ان تضعه في بالك هو ان كل سطر برمجي مسبوق بعلامة هاشتاك يعتبر ملاحظة او تعليق ولن يتم تنفيذ هذا السطر ابداً
- على سبيل المثال نستطيع كتابة الملاحظات باللغة العربية وعلى الرغم من ان هذا الشيء غير احترافي ولا ينصح به ولكن بامكانك القيام بذلك لو اردت
- وايضاً بامكانك تحويل اي سطر برمجي الى ملاحظة من اجل عدم تنفيذه في حال رغبت في عدم تنفيذ سطر برمجي معين فمثلاً لو اردت تنفيذ الكود الواضح امامك سوف يتم طباعة فقط كلمة Baghdad ولن يتم طباعة كلمة Najaf لأننا قمنا بتحويلها الى ملاحظة
1 2 3 |
# المدينة - مسقط الرأس # print("Najaf") print("Baghdad") |
1 |
Baghdad |
والان قم بتجربة كتابة اي ملاحظة تريد ( مسبوقة بـ # ) في المساحة التجريبية التالية ثم اضغط على زر Run لتنفيذ الكود
ملاحظات هامة:
- لغة بايثون حساسة للحروف ولذلك يجب ان تنتبه للحروف فمثلاً امر الطباعة print يجب ان تكون جميع حروفه صغيرة ولو قمت بكتابة الامر print بأستخدام حروف كبيرة سوف تحصل على خطأ
- عند كتابة نص معين يجب ان تضع هذا النص داخل علامتي تنصيص وفي لغة بايثون بامكانك استخدام علامات تنصيص مزدوجة ” ” او مفردة ‘ ‘ ولا يوجد اي فرق بينهما ولكن لا يجوز استخدام علامة تنصيص مزدوجة في بداية الجملة ثم استخدام علامة تنصيص مفردة في نهاية الجملة ولذلك يجب عليك استخدام علامات تنصيص من نفس النوع في بداية ونهاية الجملة
- في امر الطباعة print بامكانك طباعة اكثر من قيمة في نفس الوقت وذلك من خلال الفصل بين القيم بأستخدام علامة الفاصلة , فمثلاً بامكانك طباعة قيمة رقمية مع قيمة نصية في نفس الوقت
1 |
print(10, "students") |
1 |
10 students |
- في لغة بايثون لو كان هناك خطأ معين في الكود لأي سبب من الاسباب مثلاً بسب خطأ املائي في كتابة الكود في هذه الحالة لن يتم تنفيذ الكود بسبب هذا الخطأ وسوف تحصل في الناتج على خطأ Error
ولذلك يجب عليك التأكد من الكود واصلاح الخطأ ان وجد فمثلاً لو قمنا بكتابة امر الطباعة بشكل خاطئ مثلاً كتبنا vrint سوف نحصل في ناتج الكود على خطأ Error يخبرنا انه امر vrint غير معرف
vrint("hello")
وضع في بالك انه في عالم البرمجة ستواجه دائماً عدد كبير من الاخطاء وهذا الامر طبيعي جداً وكل المبرمجين في العالم يخطئون عدة مرات لحين بناء برنامج او مشروع سليم خالي من الاخطاء وهذه الاخطاء هي التي ستعلمك وستحسن من مستواك البرمجي بشكل كبير جداً
تمرين برمجي (1):
في هذا التمرين البسيط المطلوب منك هو القيام بالتالي:
- قم بكتابة الملاحظة او التعليق التالي My first code
- قم بطباعة الجملة التالية I love python
# My first code
print("I love python")
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
– من اجل كتابة الملاحظة بشكل صحيح لا تنسى استخدام علامة الهاشتاك
– من اجل القيام بعملية الطباعة استخدم الامر print ثم افتح قوسين
– لا تنسى وضع الجملة النصية داخل علامتي تنصيص مزدوجة او مفردة
تعليمات:
– لأرسال الاجابة والتحقق من الناتج (صحيح او خطأ) اضغط على Submit
– للحصول على تلميح ومساعدة في حل التمرين اضعط على Hint
– لمشاهدة حل التمرين اضغط على Solution
بايثون كحاسبة:
بالامكان استخدام لغة بايثون كحاسبة فهي ممتازة في جميع العمليات الرياضية مثل:
- الجمع + والطرح – مثلاً ( 2+6 ) سيكون الناتج 8
- الضرب * مثلاً ( 5*2 ) سيكون الناتج 10
- الاس ** كـ التربيع او تكعيب مثلاً اثنان تكعيب ( 3**2 ) سيكون الناتج 9
- القسمة العادية / مثلاً سبعة تقسيم اثنان ( 7/2 ) سيكون الناتج 3.5
- القسمة بدون كسر // مثلاً سبعة تقسيم اثنان ( 2//7 ) سيكون الناتج 3
- باقي القسمة % مثلا باقي قسمة السبعة على اثنان ( 2%7 ) سيكون الناتج 1 لكن باقي قسمة 6 على اثنان ( 2%6 ) هو صفر لان 6 تقبل القسمة على 2 من دون باقي ولكن 7 عندما نقسمها على 2 يتبقى 1
- والمزيد من العمليات الرياضية التي سنتعرف عليها في الدورات القادمة
هذه العلامات الواضحة امامك من المهم جداً ان تحفظها فهي بسيطة جداً ومهمة جداً وستحتاج الى استخدامها في البرمجة بكثرة للقيام بالعمليات الرياضية
تمرين برمجي (2):
قم بطباعة ناتج العمليات الرياضية التالية:
1- 33 ناقص 33
2- 3 ضرب 10
3- 4 تربيع
4- 60 تقسيم 2
5- 9 تقسيم 2 ( بدون كسور )
6- 9 تقسيم 2 ( باقي القسمة )
#1 Subtraction
____________
#2 Multiplication
____________
#3 Exponentiation
____________
#4 Division
____________
#5 Floor Division
____________
#6 Remainder
____________
#1 Subtraction
print(33-33)
#2 Multiplication
print(3*10)
#3 Exponentiation
print(4**2)
#4 Division
print(60/2)
#5 Floor Division
print(9//2)
#6 Remainder
print(9%2)
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
– للقيام بعملية الطرح استخدم الاشارة –
– للقيام بعملية الضرب استخدم الاشارة *
– للقيام بعملية التربيع استخدم الاشارة **
– للقيام بعملية القسمة استخدم الاشارة /
– للقيام بعملية القسمة بدون كسور استخدم الاشارة //
– للقيام بعملية حساب باقي القسمة استخدم الاشارة %
تمرين برمجي (3):
افترض ان لديك 100$ بأمكانك استثمارها في مشروع ما وعائد هذا المشروع هو 10% بالسنة الواحدة وبعد سنة واحدة سيكون لديك من المال
1 |
print(100 * 1.1) |
1 |
110 |
بعد سنتين سيكون لديك
1 |
print(100 * 1.1 * 1.1) |
1 |
121 |
كم سيكون لديك بعد 9 سنوات؟
ملاحظة: يجب ان يكون الجواب ذكي ومختصر
# After 9 years
___________________
# After 9 years
print(100 * 1.1**9)
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
المتغيرات ( Variables ):
المتغير هو اسم يخزن في الذاكرة يحتوي على قيمة معينة نقوم بأعطائها له وبأمكاننا استداعاء هذا المتغير متى ما احتجنا اليه فمثلا نقوم بإنشاء متغير اسمه المدخرات savings ونقوم بخزن قيمة معينة في داخل هذا المتغير على سبيل المثال نقوم بخزن القيمة 100 في المتغير savings
1 |
savings = 100 |
الان لو قمنا بطباعة المتغير savings سنحصل على الرقم 100 لاننا قمنا بتخزين هذه القيمة بداخله
1 |
print(savings) |
1 |
100 |
ولنأخذ مثال ثاني ولنقم بإنشاء متغير اخر اسمه name ولنقم بخزن قيمة نصية بداخله على سبيل المثال الاسم “Yaseen”
1 |
name = "Yaseen" |
الان لو قمنا بطباعة المتغير name سوف نحصل في الناتج على الاسم Yaseen
1 |
print(name) |
1 |
Yaseen |
ملاحظات:
قبل البدء بالممارسة لنتعرف على بعض الملاحظات المهمة التي تحتاج ان تضعها في بالك عند استخدام المتغيرات :
- تحديث المتغيرات: الملاحظة الاولى هي قيمة المتغير تستطيع تحديثها وتغييرها واستبدالها بقيمة اخرى وضع في بالك ان قيمة المتغير ستكون هي اخر قيمة تم خزنها في المتغير
يعني لو قمنا بخزن القيمة 10 في المتغير x ثم قمنا بعدها بتغيير قيمة x وجعلناها تساوي 5 عندما سنقوم بطباعة x سوف يتم طباعة اخر قيمة تم خزنها في x والتي هي 5
1 2 3 |
x = 10 x = 5 print(x) |
1 |
5 |
- العمليات الرياضية: الملاحظة الثانية هي اننا بأمكاننا القيام بالعمليات الرياضية بأستخدام المتغيرات مثلاً نقوم بخزن القيمة 4 في المتغير x ثم نقوم بطرح قيمة x من 1 وعندما نطبع x سوف يكون الناتج 3 لأن 1-4 يساوي 3
1 2 3 |
x = 4 x = x - 1 print(x) |
1 |
3 |
- اختصار العمليات الرياضية: الملاحظة الثالثة هي اننا نستطيع اختصار العمليات الرياضية بأستخدام المتغيرات فمثلاً بدل ان نقوم بكتابة x=x-1 نستطيع كتابة x-=1 وهذا الاختصار يعني اطرح من قيمة x واحد واخزنه في x وعندما سنقوم بطباعة x سيكون الناتج ايضاً 3
1 2 3 |
x = 4 x -= 1 print(x) |
1 |
3 |
شروط تسمية المتغيرات:
هناك بعض الشروط البسيطة لتسمية المتغيرات:
- يبدأ بحرف: اول شرط هو يجب ان يبدأ المتغير بحرف صغير او كبير المهم يبدأ المتغير الذي تريد إنشائه بحرف او علامة _ مثلاً نريد إنشاء متغير اسمه name هذا المتغير يجب ان يبدأ بحرف سواء كان كبير او صغير او يبدأ بعلامة _ ولا يجوز ان يبدأ المتغير برقم او علامة ( ما عدا علامة underscore )
- فقط حروف او ارقام او underscore: الشرط الثاني هو يجب ان يحتوي اسم المتغير على حروف او ارقام او علامة _ فقط ولا يجوز استخدام باقي العلامات
- بايثون حساسة للحروف: الشرط الثالث هو الحساسية للحروف فمثلاً لو قمت بإنشاء متغير بأسم name بأستخدام الحروف الصغيرة يجب ان تقوم بكتابة اسم المتغير بنفس الشكل عندما تريد استدعائه لأي غرض مثل الطباعة او غيرها
وايضاً من الامور المهمة عن المتغيرات هي اعطاء اسم ذو معنى للمتغير من اجل تسهيل الامور وذلك لأن اعطاء اسماء عشوائية او اسماء بدون معنى او حروف سيجعل البرنامج صعب الفهم ومعقد
فمثلاً احد الاشخاص قد يكون مدير الشركة او استاذ في الجامعة طلب منا بناء برنامج بسيط لحساب مؤشر كتلة الجسم والذي يعرف عالمياً بأسم BMI والمعادلة الرياضية للـ BMI موجودة على الانترنت وهي الوزن weight بالكيلو غرام تقسيم مربع الطول height بالمتر (وكمعلومة اضافية مقياس الـ BMI هو اداة تستخدم لتقييم الوزن الطبيعي للأنسان حسب طوله)
- لو قمنا ببناء هذا البرنامج بأستخدام متغيرات لا تحمل اسمائها اي معنى مثل a , b , c ( كما هو واضح في البرنامج الاول الذي في الاسفل ) سيكون من الصعب على الاخرين فهم هذا البرنامج وحتى نحن قد ننسى ما الذي تعنيه هذه الحروف بعد فترة من الزمن
- ولكن لو قمنا بأعطاء اسماء ذو معنى لهذه المتغيرات ( كما هو واضح في البرنامج الثاني الذي في الاسفل ) سيكون من السهل جداً فهم دور هذا البرنامج وما الذي تعنيه هذه المتغيرات وعلى الرغم من ان كلا البرنامجين يؤدي نفس الدور ويعطي نفس الناتج ولكن البرنامج الاول مكتوب بطريقة غير احترافية وغير مفهومة والبرنامج الثاني مكتوب بطريقة احترافية ومفهومة
والصورة التالية توضح كيفية حساب الـ BMI لشخص طوله 180 سم ووزنه 80 كيلو غرام
تمرين برمجي (4):
قم بإنشاء متغير اسمه a واجعل قيمته تساوي 2 ثم قم بإنشاء متغير اخر اسمه b واجعل قيمته تساوي 5 ثم قم بطباعة حاصل جمع المتغيرين
# Create variable a
_____
# Create variable b
_____
# Print out the sum of a and b
_____________
# Create variable a
a = 2
# Create variable b
b = 5
# Print out the sum of a and b
print(a + b)
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
تمرين برمجي (5):
هذا التمرين هو نفس مثال الاستثمار السابق ولكن هذه المرة المطلوب منك هو القيام بالعملية الحسابية بأستخدام المتغيرات ومن اجل القيام بذلك اتبع الخطوات البسيطة التالية
1- قم بإنشاء متغير اسمه المدخرات savings واجعل قيمته تساوي 100
2- قم بإنشاء متغير ثاني اسمه factor واجعل قيمته تساوي 1.1
3- قم بإنشاء متغير ثالث اسمه الناتج result واجعل قيمته هي كم سيكون لديك من المال بعد 9 سنوات ( أستخدم المتغيرين savings & factor في العملية الحسابية ولا تنسى استخدام الاس 9** )
4- اطبع الناتج result
#1 Create variable savings
_____________
#2 Create variable factor
_____________
#3 Calculate the result
_____________________________
#4 Print out the result
_____________
#1 Create variable savings
savings = 100
#2 Create variable factor
factor = 1.1
#3 Calculate the result
result = savings * factor **9
#4 Print out the result
print(result)
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
انواع المتغيرات (type):
هناك عدة انواع للبيانات وللمتغيرات وسنتعرف الان على الانواع الاساسية للبيانات في لغة بايثون وسنتعرف لاحقاًعلى الانواع الاخرى:
- الارقام الصحيحة: اول نوع من البيانات هو الاعداد الصحيحة واسمها integer ومختصرها في بايثون ()int وتشمل جميع الارقام الصحيحة مثل
7, -3, 0, 640, etc..
- الارقام الكسرية: النوع الثاني هو الاعداد الكسرية واسمها ()float وتشمل جميع الارقام الكسرية مثل
2.4, 3.0, -5.1, 0.0, etc..
- النصوص: النوع الثالث هو النصوص واسمها string واختصارها في بايثون ()str وتشمل اي نص او حروف او ارقام بين علامتي التنصيص المفردة ‘ ‘ او المزدوجة “ “ مثل
‘Friday’, “hi”, ‘100’, “-7.5”, etc..
- المنطقية: النوع الرابع هو المنطقية واسمها boolean واختصارها في بايثون ()bool وتشمل الصح والخطأ فقط وانتبه جيداً في لغة بايثون تكتب الـ True والـ False بحرف كبير في البداية
True, False
ولمعرفة نوع اي متغير او اي قيمة في لغة بايثون نقوم بأستخدام الوظيفة ()type ونكتب داخل الاقواس المتغير او الرقم او النص او اي شيء نريد معرفة نوعه
فمثلاً لو كان لدينا المتغيرات الاربعة التالية
1 2 3 4 |
savings = 100 factor = 1.1 year = "1st Year" profit = True |
لو استخدمنا الوظيفة ()type لطباعة نوع البيانات في كل متغير من هذه المتغيرات الاربعة سنجد في ناتج الكود ان المتغير الاول رقم صحيح والمتغير الثاني رقم كسري والمتغير الثالث نصي والمتغير الرابع منطقي
1 2 3 4 |
print(type(savings)) print(type(factor)) print(type(year)) print(type(profit)) |
1 2 3 4 |
<class 'int'> <class 'float'> <class 'str'> <class 'bool'> |
ملاحظات هامة:
من الملاحظات الهامة التي تتعلق بموضوع انواع البيانات هي:
- صحيح مع صحيح: عندما نقوم بعملية رياضية كالجمع او الطرح او الضرب بين رقم صحيح ورقم صحيح اخر سيكون الناتج رقم صحيح ( على سبي المثال 5 ضرب 5 سيكون الناتج 25 )
- صحيح مع كسري: ولكن عندما نقوم بعملية رياضية بين رقم صحيح ورقم كسري سيكون الناتج كسري ( على سبيل المثال 5 ضرب 5.0 سيكون الناتج 25.0 )
- ناتج القسمة / : اما فيما يخص القسمة فسيكون الناتج دائما كسري في حال استخدمنا علامة / ( على سبيل المثال 15 تقسيم 2 سيكون الناتج 7.5)
- ناتج القسمة // : ولكن لو استخدمنا // سيكون الناتج صحيح وسيتم تجاهل الكسر ( على سبيل المثال 15 تقسيم 2 سيكون الناتج 7 )
ايضاً من الامور التي تحتاج الى معرفتها من اجل البرمجة بلغة بايثون بشكل صحيح واحترافي هي:
- نص + نص: نستطيع دمج نصين معاً بأستخدام اشارة الزائد وهنا سيكون دور الزائد هو دمج نص مع اخر ( على سبيل المثال نستطيع دمج النص I have مع النص 100$ بأستخدام علامة الزائد وسيكون الناتج I have 100$ )
- خزن اكثر من قيمة: ونستطيع ايضاً خزن قيمتين في متغيرين من خلال فصل المتغيرين بعلامة الفارزة وفصل القيمتين بعلامة الفارزة ( على سبيل المثال نصنع متغيرين x, y ونجعل قيمتهما 20 ,10 حيث سيتم خزن القيمة 10 في x وسيتم خزن القيمة 20 في y ) وبنفس الطريقة نستطيع خزن ثلاث قيم او اكثر في ثلاث متغيرات او اكثر
- طباعة بشكل مباشر: وايضاً كمعلومة اضافية بأمكاننا طباعة اي شيء نريده بشكل مباشر بدون استخدام الوظيفة print (على سبيل المثال نكتب x ونقوم بتنفيذ الكود وسيتم طباعة قيمة x والتي هي 10 )
تحويل انواع البيانات:
الان سنتعلم كيف نقوم بتحويل نوع البيانات او المتغير من نوع الى اخر لأن ذلك سيكون مفيد جداً في كثير من المشاريع والتطبيقات
- من رقم الى نص: نستطيع تحويل اي رقم صحيح او كسري الى نص بأستخدام الوظيفة str ( على سبيل المثال لو كان لدينا متغير اسمه x وقيمته رقم كسري 5.2 نستطيع تحويل x الى نص من خلال استخدام الوظيفة ()str ولو قمنا بطباعة قيمة x سنجد انها 5.2 ولكن لو قمنا بطباعة نوعها سنجد انها متغير نصي str
1 2 3 4 |
x = 5.2 x = str(x) print(x) print(type(x)) |
1 2 |
5.2 <class 'str'> |
وللتأكد اكثر لو قمنا بطباعة x+x لن يكون الناتج 10.4 لأن x حالياً ليست رقم بل نص ولذلك سيتم دمج النصين وسيكون الناتج 5.2 مع 5.2 )
1 |
print(x+x) |
1 |
5.25.2 |
- من رقم كسري او نص “رقم” الى صحيح: نستطيع تحويل اي رقم كسري الى صحيح بأستخدام الوظيفة ()int والتي ستحول الرقم الى integer اي بمعنى رقم صحيح بدون كسور وايضاً نستطيع تحويل اي نص الى رقم صحيح بأستخدام الوظيفة ()int بشرط ان يكون داخل علامات التنصيص رقم صحيح فقط
فعلى سبيل المثال لو كان لدينا متغيرين الاول a وقيمته الرقم الكسري 3.5 والمتغير الثاني b قيمته النص 4 نستطيع تحويل a, b الى رقم صحيح بأستخدام الوظيفة ()int وللتأكد سنقوم بطباعة هذين المتغيرين وسنجد ان الاول تم تحويله الى 3 بدون كسر والثاني تم تحويله الى 4
1 2 3 4 5 6 |
a = 3.5 b = "4" a = int(a) b = int(b) print(a) print(b) |
1 2 |
3 4 |
ولو قمنا بطباعة نوع هذين المتغيرين سنجد انه تم تحويلهما الى integer ولو قمنا بجمعهما سيكون الناتج 7
1 2 3 |
print(type(a)) print(type(b)) print(a+b) |
1 2 3 |
<class 'int'> <class 'int'> 7 |
- من رقم صحيح او نص “رقم” الى كسري: وبطريقة مشابهة نستطيع تحويل اي رقم صحيح الى كسري بأستخدام الوظيفة ()float والتي ستحول الرقم الى float اي بمعنى رقم كسري وايضاً نستطيع تحويل اي نص الى رقم كسري بأستخدام الوظيفة ()float بشرط ان يكون داخل علامات التنصيص رقم كسري فقط
فعلى سبيل المثال لو كان لدينا متغيرين الاول a وقيمته الرقم الصحيح 3 والمتغير الثاني b قيمته النص 4.2 نستطيع تحويل a, b الى رقم كسري بأستخدام الوظيفة ()float وللتأكد سنقوم بطباعة هذين المتغيرين وسنجد ان الاول تم تحويله الى 3.0 والثاني تم تحويله الى 4.2
1 2 3 4 5 6 |
a = 3 b = "4.2" a = float(a) b = float(b) print(a) print(b) |
1 2 |
3.0 4.2 |
ولو قمنا بطباعة نوع هذين المتغيرين سنجد انه تم تحويلهما الى float ولو قمنا بجمعهما سيكون الناتج 7.2
1 2 3 |
print(type(a)) print(type(b)) print(a+b) |
1 2 3 |
<class 'float'> <class 'float'> 7.2 |
- من 1 الى True ومن 0 الى False: اما فيما يخص عمليات الصح والخطأ فنستطيع تحويل اي عملية من العمليات المنطقية والتي سنتعرف عليها لاحقاً الى True or False وايضاً نستطيع تحويل الـ 1 او الصفر الى True or False بأستخدام الوظيفة ()bool وكمعلومة مهمة يجب ان تعرفها في لغة بايثون وفي العمليات المنطقية يتم اعتبار رقم 1 كـ True ويتم اعتبار الرقم 0 كـ False فالعملية تشبه عملية الـ On and Off وهي مهمة جداً وتستخدم بشكل كبير في مختلف انواع المشاريع
وعلى سبيل المثال لو كان لدينا متغيرين الاول a وقيمته الرقم 1 والثاني b وقيمته الرقم 0 نستطيع تحويلهما الى True و False بأستخدام الوظيفة ()bool وللتأكد سنقوم بطباعتهما وطباعة نوعيهما بعد عملية التحويل
1 2 3 4 5 6 7 8 |
a = 1 b = 0 a = bool(a) b = bool(b) print(a) print(b) print(type(a)) print(type(b)) |
1 2 3 4 |
True False <class 'bool'> <class 'bool'> |
تمرين برمجي (6):
1- قم بتحويل المتغير savings من رقم كسري الى رقم صحيح integer
2- قم بتحويل المتغير factor من نصي الى رقم كسري float
3- قم بتحويل المتغير years من نصي الى رقم صحيح integer
4- قم بحساب الناتج result ( كم سيكون لديك من المال بعد 9 سنوات ) وذلك بأستخدام المتغيرات الثلاث السابقة
5- قم بطباعة الجملة بشكل سليم وذلك من خلال استبدال كل فراغ بالمتغير المناسب بحيث يصبح معنى الجملة بالشكل التالي
“لقد بدأت بمبلغ 100 دولار والان بعد 9 سنوات لدي المبلغ 235.7947691000002 دولار”
savings = 100.0
#1 Convert savings to integer
savings = ____________
factor = "1.1"
#2 Convert factor to float
factor = ____________
years = "9"
#3 Convert years to integer
years = ____________
#4 Calculate the result
result = ________________________
#5 Print out the result
print("I started with $" + str(_______) + " and now after " + str(_______) + " years I have $" + str(_______))
savings = 100.0
#1 Convert savings to integer
savings = int(savings)
factor = "1.1"
#2 Convert factor to float
factor = float(factor)
years = "9"
#3 Convert years to integer
years = int(years)
#4 Calculate the result
result = savings * factor **years
#5 Print out the result
print("I started with $" + str(savings) + " and now after " + str(years) + " years I have $" + str(result))
Ex().has_equal_ast(exact=False)
success_msg("اجابة صحيحة، احسنت")
– لتحويل المتغير savings استخدم الوظيفة int
– لتحويل المتغير factor استخدم الوظيفة float
– لتحويل المتغير years استخدم الوظيفة int
– المتغير result يساوي savings في factor أس years
– لطباعة الناتج بشكل صحيح استبدل الفراغ الاول بالمتغير savings والفراغ الثاني بالمتغير years والفراغ الثالث بالمتغير result