مفهوم الشروط في بايثون
شروط: تعني conditions في اللغة الإنجليزية. و نستخدم الشروط لتحديد طريقة عمل البرنامج.
كما أنه يمكنك وضع العدد الذي تريده من الشروط في البرنامج الواحد, تستطيع وضع الشروط بداخل بعضها البعض أيضاً.
لا تقلق ستفهم كل شيء من الأمثلة.
جمل الشرط في بايثون
طريقة وضع الشروط (Syntax) :
if condition: # إذا كان الشرط صحيحاً نفذ هذا الكود elif condition: # إذا كان الشرط صحيحاً نفذ هذا الكود else: # إذا لم يتحقق أي شرط نفذ هذا الكود
ملاحظة
لست بحاجة إلى إستخدام الجمل الثلاثة في كل شرط تضعه في البرنامج, و لكنك مجبر على إستخدام جملة الشرط if مع أي شرط.
تابع كل الدرس حتى تتعرف على جميع طرق وضع الشروط.
أمثلة على جمل الشرط في بايثون
| إسم الجملة | دواعي الإستخدام |
|---|---|
| IF Statement | if في اللغة العربية تعني " إذا ".و هي تستخدم فقط في حال كنت تريد تنفيذ كود معين حسب شرط معين. |
| Else Statement | else في اللغة العربية تعني " أي شيء آخر ".و هي تستخدم فقط في حال كنا نريد تنفيذ كود معين في حال كانت نتيجة جميع الشروط التي قبلها تساوي false.يجب وضعها دائماً في الأخير, لأنها تستخدم في حال لم يتم تنفيذ أي جملة شرطية قبلها. |
| Else IF Statement | elif تستخدم إذا كنت تريد وضع أكثر من إحتمال ( أي أكثر من شرط ).جملة أو جمل الـ elif يوضعون في الوسط, أي بين الجملتين if و else. |
أمثلة تطبيقية على جمل الشرط في بايثون
الجملة الشرطية if
الجملة if في اللغة العربية تعني " إذا ".
و هي تستخدم فقط في حال كنت تريد تنفيذ كود معين حسب شرط معين.
المثال الأول
•إذا كانت قيمة المتغير S أكبر من 5 سيتم طباعة الجملة: S is bigger than 5.
S = 0
if S > 5:
print('S is bigger than 5')
•سنحصل على النتيجة التالية عند التشغيل.
•هنا سأل نفسه التالي: هل قيمة المتغير S أكبر من 5؟
فكان جواب الشرط كلا ( false ) , لذلك لم ينفذ أمر الطباعة الموجود في الجملة الشرطية.
المثال الثاني
•إذا كانت قيمة المتغير S أكبر من 5 سيتم طباعة الجملة: S is bigger than 5.
S = 30
if S > 5:
print('S is bigger than 5')
•سنحصل على النتيجة التالية عند التشغيل.
•هنا سأل نفسه التالي: هل قيمة المتغير S أكبر من 5؟
فكان جواب الشرط نعم (true), لذلك نفذ أمر الطباعة الموجود في الجملة الشرطية.
الجملة الشرطية else
الجملة else في اللغة العربية تعني " أي شيء آخر ".
و هي تستخدم فقط في حال كنا نريد تنفيذ كود معين في حال كانت نتيجة جميع الشروط التي قبلها تساوي false.
يجب وضعها دائماً في الأخير, لأنها تستخدم في حال لم يتم تنفيذ أي جملة شرطية قبلها.
إذاً, إذا نفذ البرنامج الجملة if أو else if فإنه سيتجاهل الجملة else.
و إذا لم ينفذ أي جملة من الجمل if و else if فإنه سينفذ الجملة else.
المثال الأول
•إذا كانت قيمة المتغير S تساوي 5 سيتم طباعة الجملة: S is equal 5.
•إذا كانت قيمة المتغير S لا تساوي 5 سيتم طباعة الجملة: S is not equal 5.
S = 5
if S == 5:
print('S is equal 5')
else:
print('S is not equal 5')
•سنحصل على النتيجة التالية عند التشغيل.
•هنا سأل نفسه التالي: هل قيمة المتغير S تساوي 5؟
فكان جواب الشرط نعم ( true ) , لذلك نفذ أمر الطباعة الموجود في الجملة if.
المثال الثاني
•إذا كانت قيمة المتغير S تساوي 5 سيتم طباعة الجملة: S is equal 5.
•إذا كانت قيمة المتغير S لا تساوي 5 سيتم طباعة الجملة: S is not equal 5.
S = 20
if S == 5:
print('S is equal 5')
else:
print('S is not equal 5')
•سنحصل على النتيجة التالية عند التشغيل.
•هنا سأل نفسه التالي: هل قيمة المتغير S تساوي 5؟
فكان جواب الشرط كلا ( false ) , لذلك نفذ أمر الطباعة الموجود في الجملة else.
الجملة الشرطية elif
الجملة elif تستخدم إذا كنت تريد وضع أكثر من إحتمال ( أي أكثر من شرط ).
جملة أو جمل الـ elif يوضعون في الوسط, أي بين الجملتين if و else.
مثال
•إذا كانت قيمة المتغير number تساوي 1 سيتم طباعة الكلمة: one.
•إذا كانت قيمة المتغير number تساوي 2 سيتم طباعة الكلمة: two.
•إذا كانت قيمة المتغير number تساوي 3 سيتم طباعة الكلمة: three.
•إذا كانت قيمة المتغير number أكبر أو تساوي 4 سيتم طباعة الجملة: four or greater.
•إذا كانت قيمة المتغير number أصغر من 0 سيتم طباعة الجملة: negative number.
number = 3
if number == 1:
print('one')
elif number == 2:
print('two')
elif number == 3:
print('three')
elif number >= 4:
print('four or greater')
else:
print('negative number')
•سنحصل على النتيجة التالية عند التشغيل.
•هنا سأل نفسه التالي: هل قيمة المتغير number تساوي 1؟
فكان جواب الشرط كلا ( false ) , فانتقل إلى الشرط الذي يليه.
•ثم سأل نفسه التالي: هل قيمة المتغير number تساوي 2؟
فكان جواب الشرط كلا ( false ) , فانتقل إلى الشرط الذي يليه.
•ثم سأل نفسه التالي: هل قيمة المتغير number تساوي 3؟
فكان جواب الشرط هذه المرة نعم ( true ) , فقام بتنفيذ أمر الطباعة الموجود في الجملة الشرطية الثالثة, ثم تجاوز جميع جمل الشرط التي أتت بعده.
أفكار و أساليب أخرى لوضع الشروط في بايثون
طرق وضع الشروط عديدة و متنوعة, و يمكننا وضع شروط بداخل بعضها و يسمى ذلك Nested Conditional.
كما يمكننا وضع أكثر من شرط بداخل جمل الشرط if أو else if باستخدام العوامل المنطقية.
بإمكانك أن تضع أكثر من شرط بداخل جملة الشرط باستخدام العامل and أو or.
العامل and يستخدم في حال كنت تريد تنفيذ كود معين إذا كان جواب جميع الشروط الموضوعة يساوي true.
العامل or يستخدم في حال كنت تريد تنفيذ كود معين إذا كان جواب شرط واحد على الأقل يساوي true.
المثال الأول
•إذا كانت قيمة المتغير a بين 0 و 20 إطبع الجملة: acceptable number.
a = 14;
if a >= 0 and a <= 20:
print("acceptable number")
•سنحصل على النتيجة التالية عند التشغيل.
•نلاحظ أنه قد تم تنفيذ أمر الطباعة لأن قيمة المتغير a بين 0 و 20
•هنا سأل نفسه سؤالين.
•السؤال الأول: هل قيمة المتغير a أكبر أو تساوي 0؟
فكان جواب الشرط الأول true.
•السؤال الثاني: هل قيمة المتغير a أصغر أو تساوي 20؟
فكان جواب الشرط الثاني أيضاً true.
•بما أن كلا الجوابين كانا true قام بتنفيذ أمر الطباعة.
المثال الثاني
•إذا كانت قيمة المتغير a بين 0 و 20 إطبع الجملة: acceptable number.
a = 26;
if a >= 0 and a <= 20:
print('acceptable number')
•سنحصل على النتيجة التالية عند التشغيل.
•نلاحظ أنه لم يتم تنفيذ أمر الطباعة لأن قيمة المتغير a ليست بين 0 و 20
•هنا سأل نفسه سؤالين.
•السؤال الأول: هل قيمة المتغير a أكبر أو تساوي 0؟
فكان جواب الشرط الأول true.
•السؤال الثاني: هل قيمة المتغير a أصغر أو تساوي 20؟
فكان جواب الشرط الثاني false.
•بما أن واحداً من الجوابين لم يكن true لم ينفذ دالة الطباعة.
المثال الثالث
•إذا كانت قيمة المتغير a تساوي 1 أو 2 أو 3 إطبع الجملة: you choose a valid number.
a = 2
if a == 1 or a == 2 or a == 3:
print('you choose a valid number')
•سنحصل على النتيجة التالية عند التشغيل.
•نلاحظ أنه قام بتنفيذ أمر الطباعة لأن قيمة المتغير a تساوي 2
•هنا سأل كان سيسأسل نفسه ثلاثة أسئلة لأنه يوجد ثلاث شروط, لكنه سأل نفسه سؤالين فقط.
•السؤال الأول: هل قيمة المتغير a تساوي 1؟
فكان جواب الشرط الأول false فانتقل للشرط الذي يليه.
•السؤال الثاني: هل قيمة المتغير a تساوي 2؟
فكان جواب الشرط الثاني true.
•بما أن واحداً من الأجوبة كان true نفذ مباشرةً أمر الطباعة و لم ينظر حتى للشرط الأخير.
هنا وضعنا مثال يعلمك طريقة وضع الشروط بداخل بعضها.
نستطيع وضع الشروط بداخل بعضها, و يمكننا وضع العدد الذي نريده من الشروط.
في البرامج الفعلية يقوم المبرمج بوضع العديد من الشروط بداخل بعضها, و ذلك حسب الفكرة التي يريد تنفيذها في برنامجه, و سنعطيك مثال بسيط يعلمك كيف تفكر و تحلل.
الآن لنفترض أننا نريد تحويل هذه الصورة إلى برنامج
مثال
•في البداية عندنا متغير يمثل الجنس إسمه sex و متغير يمثل العمر إسمه age.
sex = 'female'
age = 14
if sex == 'male':
print('Gender: male')
if age <= 21:
print('he is a young boy');
elif sex == 'female':
print('Gender: female')
if age <= 21:
print('she is a young girl')
•سنحصل على النتيجة التالية عند التشغيل.
she is a young girl
•هنا سأل نفسه التالي: هل قيمة المتغير sex تساوي male؟
فكان جواب الشرط false , فانتقل إلى جملة الشرط الثانية elif.
•هنا سأل نفسه التالي: هل قيمة المتغير sex تساوي female؟
فكان جواب الشرط true , فقام بتنفيذ دالة الطباعة الموجودة فيها, فطبع الجملة Gender: female.
•ثم وجد شرطاً آخر بداخل الشرط السابق, فسأل نفسه التالي: هل قيمة المتغير age أصغر أو تساوي 21؟
فكان جواب الشرط true , فقام بتنفيذ دالة الطباعة الموجودة فيها, فطبع الجملة she is a young girl.
امثلة على استخدام if-else في python
برنامج يطبع العدد الاكبر بين عددين:
a = 33
b = 200
if b > a:
print("b is greater than a")
نفس المثال لكن مكتوب بكود ادق اكثر.
a = 200
b = 33
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
else:
print("a is greater than b")
برنامج بايثون يطلب من الطالب ادخال علامته ومن ثم يطبع النتيجة اما ناجح او راسب:
#write python program that prompts student to enter his mark, then prints the result, either "pass" or "fail"
mark=int(input("enter your mark:"))
if mark>=60:
print("pass")
else:
print("fail")
نفس البرنامج السابق مع اضافة بعض التحسينات, العلامة يجب ان تكون بين 0 الى 100 حصرا, والا يطبع رسالة خطأ :
#write the same previous program but with enhancements: mark should be between 0 and 100, otherwise print "invalid entry"
mark=int(input("enter your mark:"))
if mark<=100 and mark>=60:
print("pass")
else:
print("fail")
ايضا ممكن نكتبها بشكل اخر:
#in another way:
mark=int(input("enter your mark:"))
if mark<=100 and mark>=60:
print("pass")
elif mark>=0 and mark
وشكل اخر ايضا:
#also in another way:
mark=int(input("enter your mark "))
if mark>=60:
print("pass")
elif mark
برنامج يطلب من المستخدم ادخال رقم ومن ثم يتحقق ما اذا كان الرقم موجب او سالب:
#write python program to check if the number entered by is positive or negative
number=int(input("enter number: "))
if number>=0:
print("number is positive")
else:
print("number is negative")
برنامج يطلب من المستخدم ادخال رقم ومن ثم يتحقق ما اذا كان الرقم المدخل زوجي او فردي:
#write python program to check if the number entered by user is even or odd
number=int(input("enter number: "))
if number%2==0:
print("number is even")
else:
print("number is odd")
Test if a is greater than b, AND if c is greater than a:
a = 200
b = 33
c = 500
if a > b and c > a:
print("Both conditions are True")
Test if a is greater than b, OR if a is greater than c:
#Test if a is greater than b, OR if a is greater than c:
a = 10
b = 33
c = 500
if a > b or a > c:
print("At least one of the conditions is True")
else:
print("else is executed")
print("bye")
برنامج يقارن بين عددين ويطبع من هو الاكبر.
a = 33
b = 33
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
اكتب برنامج بلغة بايثون يقرأ عدد من المستخدم ومن ثم يقرر ما اذا كان العدد المدخل هو عدد زوجي ام عدد فردي.
ملاحظة: العدد الزوجي هو اي عدد يقبل القسمة على 2,
#write python program to read a number from keyboard then check if it is odd or even
num=int(input('please enter number'))
if num%2==0:
print('number is even')
else: print('number is odd')
اكتب برنامج بلغة بايثون ليقرأ عدد من المستخدم ومن ثم يتأكد من انه موجب ام سالب.
#write python program to read number from user then check if it is positive or negative
num=int(input('please enter number'))
if num>=0:
print('number is positive')
else: print('number is negative')
اكتب برنامج بايثون يقرأ من الكيبورد علامة الطالب, ومن ثم يطبع نتيجة الطالب ان كان ناجح ام راسب.
#write python program to read student mark and check if he passed or failed(pass mark is 60 or higher)
num=int(input('please enter student mark'))
if num>=60:
print('student passed')
else:
print('student failed')
لعبة تحزير الارقام guess number
يقوم المستخدم بادخال رقم عشوائي, ليتحقق البرنامج بدوره من ان هذا الرقم يتطابق مع الرقم المخزن بذاكرة البرنامج ام لا.
#guess game
correctNumber=int(input("please enter the number "))
guess=int(input("enter your guess:"))
if guess==correctNumber:
print("congratulations,, you guessed it!")
elif guess>correctNumber:
print("wrong number, your number is bigger than correct number")
elif guess
اكتب برنامج باستخدام بايثون ليقرأ رقم اليوم بالاسبوع ومن ثم يطبع اسم اليوم
#write a python program to read the number of week's day then prints the name of equavalent day name
num_of_day=int(input('enter the number of day, between 1 to 7'))
if num_of_day == 1:
print('saturday')
elif num_of_day == 2:
print('sunday')
elif num_of_day == 3:
print('monday')
elif num_of_day == 4:
print('tuesday')
elif num_of_day == 5:
print('wednsday')
elif num_of_day == 6:
print('thursday')
elif num_of_day == 7:
print('friday')
else:
print('invalid entry')
guess game example
#write guess game using python
name = 'meshal'
guess = input('Enter your guess: ')
if guess == name:
# New block starts here
print('Congratulations, you guessed it.')
print('(but you do not win any prizes!)')
# New block ends here
else:
print('wrong guess.')
print('Done')
اكتب برنامج بايثون يطلب من الطالب ادخال علامته الرقمية من 100, ومن ثم يقوم بحساب وطباعة درجة الطالب الموافقة للعلامة.
#Exercise : Write python program that prints the letter grade (A+, A, B+, B, C+, C, D+, D, or F)
# relative to a grade g given by the user.
mark=int(input('enter the mark'))
if mark>=95:
print('the grde is A+')
elif mark>=90:
print('A')
elif mark>=85:
print('B+')
elif mark >= 80:
print('B')
elif mark >= 75:
print('C+')
elif mark >= 70:
print('C')
elif mark >=65:
print('D+')
elif mark >= 60:
print('D')
else:
print('F')
اكتب برنامج بايثون يتحقق من ان اسم اليوم المدخل من المستخدم هو يوم عطلة ام يوم
#Exercise : Write python program that determines whether a day given by the user is a workday or weekend day.
import sys
day=input('enter the day')
if day=='saturday' || day == 'friday':
print('weekend')
elif day == 'sunday' || day == 'monday' || day == 'tuesday' || day == 'wednsday' || day == 'thuresday':
print('workday')
else:
print('invalid entry')
sys.exit()
امثلة عن استخدامات Continue
var = 10
while var > 0:
var = var -1
if var == 5:
continue
print ('Current variable value :', var)
print("Good bye!")
امثلة عن استخدامات Break
#this exerice to practice on using the break statement
#write a program that keep asking user to enter any thing in keyboard untill user enters the word 'quit'
while True:
s = input('Enter something : ')
if s == 'quit':
break
print('Length of the string is', len(s))
print('Done')