داليتي سكول -

Daliaty School

   صفحة البيت  |

 

 

 

 

 

بايثون – פיתון – python

 

 

 

 

 

(1) الشرط – if

 

 

 

 

الشرط – if (condition - פקודת תנאי)

 

الجملة الشرطية (התניה):

المبرمج يستطيع كتابة برامج التي لا تقوم دائماً بنفس العمل، يمكن أن نضع بها مراحل يتم اتخاذ قرار:

إذا شرط معين تحقق – إذهب ونفذ مسار معين، وإذا لا إذهب ونفذ مسار آخر.

 

 

 

 

 

مبنى أمر الشرط if

 

if عبارة الشرط :

  تعليمات للتنفيذ إذا تحقق الشرط

 

·       if هو أمر شرط (إذا).

·       إذا كانت قيمة عبارة الشرط True، نقول ان الشرط تحقق.

إذا كانت قيمة عبارة الشرط False، نقول ان الشرط لم يتحقق.

 

·       في نهاية الجملة الشرطية توجد نقطتان  :_

الأوامر التي يتم تنفيذها بعد الشرط تأتي بعد إزاحة مقدارها مسافتين

(أو بعد 4 مسافات أن رغبت بذلك، بواسطة مفتاح الـ Tap على لوحة المفاتيح).

 

ماذا يفحص أمر الشرط؟

امر الشرط يفحص العلاقة بين قيمتين (أو أكثر).

مثل أكبر  >، أصغر < ، يساوي  ==، يختلف != ، ...

 

 

 

 

أمثلة:

 

أ)

if 5 > 4:

  print ("5 is greater than 4")

 

الشرط 5 > 4 قيمته True، لذلك يطبع:

              5 is greater than 4

 

 

 

 

ب)

if 9 != 5:

  print ("!=")

 

الشرط 9 != 5 قيمته True، لذلك يطبع:  !=

 

 

 

 

ج)

x = 20

y = 12

if x > y:

  print (x,">", y)

 

الشرط يتحقق لأن  x > y  الذي هو  20 > 12  قيمته True،

لذلك يطبع على الشاشة العبارة:    20 > 12

 

 

 

 

د)

x = 20

y = 25

if x > y:

  print (x,">", y)

 

الشرط لا يتحقق لأن التعبير x > y الذي هو 20 > 25 قيمته False ،

لذلك لا يطبع أي شيء على الشاشة.

 

 

 

 

ه)

n1, n2 = 5, 10

if n1 == n2:

  print ("=")

 

·       ما هي نتيجة الشرط؟

·       هل نحصل على طباعة لــ "="

 

الحل: نفحص هنا مساواة بين قيمتين.

نتيجة الشرط False لذلك لا يطبع أي شيء على الشاشة.

 

 

 

 

و)

n1, n2 = 10, 10

if n1 == n2:

  print ("=")

 

·       ما هي نتيجة الشرط؟

·       هل نحصل على طباعة لــ "=" 

 

الحل: نفحص هنا مساواة بين قيمتين.

نتيجة الشرط True لذلك يطبع على الشاشة   =

 

 

 

 

ز)

if True:

  print ("Hi")

لا يوجد شرط معين، ولكنه أخذ النتيجة True (الشرط تحقق) لذلك يطبع:  Hi

 

 

 

 

ح)

if False:

  print ("Hi")

 

لا يوجد شرط معين، ولكنه أخذ النتيجة False (الشرط لم يتحقق)، لذلك لا يطبع أي شيء.

 

  

 

 

 

الإزاحة - (القيمة البادئة – הזחה، Indentation):

 

تعتمد بايثون على المسافة البادئة (الإزاحة، باستخدام المسافات)،

وهي لتعريف النطاق في الكود (block).

لغات البرمجة الأخرى غالباً ما تستخدم أقواساً معقوفة لهذا الغرض {  }.

 

التصريح if، بدون مسافة بادئة (إزاحة) سيعطينا رسالة خطأ.

 

مثال:

عند تشغيل الكود التالي سنحصل على خطأ:

 

a = 33
b = 
200
if b > a:
print ("b is greater than a")

المشكلة أننا لم نضع مسافة في البداية

 

مثال:

 

num = 100

if num == 100:

  print ("The Value is 100")

  print ("Excellent")

print ("Good bye!")

 

سيطبع (المخرج):

The Value is 100

Excellent

Good bye! 

 

 

   ماذا سيطبع إذا استبدلنا السطر الأول بـقيمة أخرى،

   مثلا num = 200 ?

  الحل: سوف يطبع Good bye!

  لم يتحقق الشرط، لذلك التعليمات التابعة له لا تنفذ، سينفذ السطر الأخير وهو غير تابع للشرط.

 

 

 

 

تــــمــــارين

 

 

 

سؤال1   (تعريف الشرط)

 

أي من التالي يعتبر امر صحيح في الشرط if ، في لغة بايثون ؟

 

a) if a >= 22:

b) if (a >= 22)

c) if (a => 22)

d) if a >= 22

 

 

الحل:       if a >= 22:

 

 

  

 

سؤال

 

المصطلح block - كُتلة أو نِطاق من الكود.

مجموعة الأوامر البرمجية التي تأتي مع مسافات بادئة (تمت إزاحتها بفراغات)

وتعبر عن كتلة أو نطاق من الكود

 

 

ماذا يستعمل في بايثون لتعريف كُتلة من الكود  (block ، كُتلة ، نطاق ) ؟

 

a) الإزاحة – المسافات البادئة (فراغات)

b) الأقواس المعقوفة }   {

c) الأقواس (  ) 

d) إشارات الاقتباس " "

 

 

الحل:      a) الإزاحة – المسافات البادئة (فراغات)

 

 

 

 

سؤال

 

تمعن في الإدعاء (القول) التالي:  

في المقطع البرمجي الذي يحوي الصيغة الشرطية if-elif-else

البرنامج يقوم بتنفيذ كُتلة  واحده فقط من الكود من بين عدة كُتل

جد العبارة الصحيحة؟

 

a) القول صحيح

b) القول غير صحيح

c) هذا يتعلق بالتعبير الذي نستخدمه

d) elif غير موجود في لغة البايثون

 

 

الحل:     (a)

 

 

 

 

 

سؤال 

None هي قيمة خاصة في البايثون وتعني لا شيء (فارغ، خالي) وقيمتها False

إستنادا إلى هذا، جد المخرج الناتج من الكود التالي؟  

 

 

if None:

  print ("Hello")

 

أحط الإجابة الصحيحة:

( أ )   False     (ب)  True    (ج)  لا يطبع شي      (د)  يطبع  Hello

 

الحل:    ( ج )

 

 

  

 

سؤال    (مقارنة بين أعداد)

أكمل الأماكن الناقصة.

 

أ) أطبع العبارة "Hello World" إذا a أكبر من b.

 

a = 50

b = 10

if a  > b  : 

  print ("Hello World")

 

 

ب) أطبع العبارة "Hello World" إذا a لا يساوي لـ b.

 

a = 50

b = 10

if a != b  : 

  print ("Hello World")

 

 

  

 

 

سؤال  (مقارنة بين أعداد)  

 

a = int(input("a="))

b = int(input("b="))

if a > b :

  a = b

print (a, b)

 

ماذا يكون المخرج إذا كانت المدخلات:

(أ‌)             المدخل الأول 10 والثاني 20  

الشرط لا يتحقق، يطبع 10  20

 

(ب‌)      المدخل الأول 20 والثاني 10  

الشرط يتحقق، a يأخذ قيمة b (قيمة a السابقة يتم حذفها ) المخرج 10  10

 

 

  

 

 

سؤال       (فحص شرط ، الانقسام)  

 

أكتبوا برنامج الذي يقرأ عدداً صحيحاً ويطبع الرسالة "even" فقط إذا كان هو عدداَ زوجياً.

 

 

a = int(input("number="))

if a  % 2 == 0 :

  print ("even")

 

 

 

 

  

 

سؤال

 

أكمل الأماكن الناقصة في كل شرط من الشروط التالية.

 

 

 أ) نريد أن نفحص إذا كانت قيمة grade مساوية للعلامة 97. 

 

if grade  ==  97 

 

 

  

 

ب) نريد أن نفحص إذا كانت قيمة n مختلفة عن no.

 

if n  !=  'no' :

 

 

  

 

ج) أكتب شرط يفحص إذا كانت قيمة x ليست سالبة

 

if x  >= 0  :

 

 

  

 

 

د) أكتب شرط يفحص إذا m عدد زوجي (ينقسم على 2 بدون باقي)

 

if m  %   2  ==  0  :

 

 

  

 

 

هـ) أكتب شرط يفحص إذا m من مضاعفات الـ  7  (ينقسم على 7 بدون باقي)

 

if m  %    7  ==  0  :

 

 

  

 

 

و) أكتب شرط يفحص تحقق المساواة  

    تذكر: 

 

if a*a + b*b == c*c   :

 

 

-------------------------------------------------------------------------------------------------------------------------

 

الحل:

 

               if a*a + b*b == c*c   :

 

 أو    if a**2 + b**2 == c**2   :

 

عند كتابة الحل لا تعمل مسافات – فراغات

إمكانيات القوى: | a*a |  a * a  | a**2   | a ** 2

 

 

  

 

 

سؤال

 

أكتب برنامج يقرأ 3 أعداد. على البرنامج أن يفحص إذا

هذه الأعداد يمكن أن تشكل زوايا مثلث (مجموعها هو 1800

إذا تحقق الشرط البرنامج يطبع True، وإلا يطبع False.

 

 

الحل:

 

a = int(input("a="))

b = int(input("b="))

c = int(input("c="))

if a + b + c == 180:

  print ('a b c ', 'زوايا مثلث')

 

 

  

 

 

سؤال  (مقارنة بين أعداد، العدد الأكبر)

 

أكتب برنامج يقرأ عددان إلى متغيرين.

البرنامج يحسب العدد الأكبر، ورسالة ملائمة إذا العددان متساويان. 

 

x = float(input("n1="))

y = float(input("n2="))

max = x

if y > max:

  max =  y

print ('max=', max)

 

if x == y:

  print ("equal")

 

 

  

 

 

تمرين      (مقارنة مع عدد، المصدر فيراس)

 

إذا اشترينا وجبة وشراب بمبلغ أكبر من 100 شيكل نحصل

على تخفيض (خصم) بقيمة 15% من الثمن الكلي.

 

أكتبوا برنامج يقرأ ثمن الوجبة وثمن الشراب.

البرنامج يطبع ثمن الوجبة. وفي جميع الحالات يطبع 'صحتين'.

يجب اختيار أسماء لها معنى للمتغيرات.

 

 

  

 

 

الحل:

وجبة – מנה – mana

شراب – שתיה – shtia

 

أكمل الأماكن الناقصة.

 

mana = float(input('price of mana'))

shtiya = float(input('price of shtia'))

 

total = mana + shtiya

 

if total >  100 :

 

   total = total * 0.85  

 

print ('pay ', total)

print ('sahten')

 

 

  

 

 

سؤال   (تصحيح أخطاء، مفمار)

 

أمامكم برنامج الذي يقرأ علامة طالب، إذا نجح يطبع رسالة ملائمة.

في البرنامج وقع خطأ. جده؟ افترض أن القيمة المدخلة صحيحة.

 

 

grade = int(input("type your grade="))

if (grade >= 55):

  message = "you pass";

print(message)

 

 

             i.             المتغير  message يحتوي على قيمة فقط في حال الشرط يتحقق

          ii.             لا يوجد خطأ في البرنامج

        iii.            المتغير  message يحتوي على قيمة فقط في حال الشرط لا يتحقق

        iv.            المشكلة في الشرط if

 

 

الحل:        ( a ) 

 

  

 

 

الحل:

المتغير message يحصل على قيمة فقط في حال الشرط يتحقق (True).

 

نوضح: نفرض أن القيمة المدخلة 50 (grade=50) الشرط لا يتحقق،

عندما يصل البرنامج إلى تنفيذ أمر الطباعة: print(message)

هنا توجد مشكلة، لإنه لا توجد قيمة للمتغير message.

البرنامج سوف يعلن عن خطأ نحصل على الرسالة:

NameError: name 'message' is not defined

 

 

  

 

 

 

سؤال    (לקט בין תחומי הרצליה_ לידי דיויס, שאלות ב- if פשוט)

 

·       اقرأ عدد الدقائق. أطبع عدد الساعات فقط إذا عدد الساعات كان ساعات كاملة (بدون دقائق).

 

time = int(input(' Enter time in menits'))

if time % 60 == 0 :

  print ('Hours', time//60)

 

 

 

 

سؤال         (לקט בין תחומי הרצליה_ לידי דיויס, שאלות ב- if פשוט)

·       اقرأ عدد ثنائي المنزلة. أطبع "nice" إذا كانت المنزلتان متساويتان.

 

num = int(input(' Enter a number - two digits'))

if num % 10 == num // 10 :

 

  print ('nice')

 

 

 

 

سؤال        (לקט בין תחומי הרצליה_ לידי דיויס, שאלות ב- if פשוט)

·       اقرأ عددان. أطبع "power" إذا كان العدد الأول ضعف العدد الثاني؟

 

num1 = int(input(' num1'))

num2 = int(input(' num2'))

if num1 == num2 * 2 :

 

  print ('power')

 

 

 

 

 

سؤال      (לקט בין תחומי הרצליה_ לידי דיויס, שאלות ב- if פשוט)

·       اقرأ مقياس درجات الحرارة ليوم أمس واليوم، واطبع "ارتفاع في الحرارة" إن وجد ارتفاع في درجة الحرارة.

 

yesterday = int(input(' Enter tem yesterday'))

today = int(input(' Enter tem today'))

if today > yesterday :

  print('ارتفاع في الحرارة')

 

 

 

 

 

سؤال      (לקט בין תחומי הרצליה_ לידי דיויס, שאלות ב- if פשוט)

أكتب برنامج يقرأ عدد إلى المتغير x.

إذا كان العدد سالباً (أصغر من صفر)، البرنامج يجد قيمته المطلقة

وذلك من خلال تغيير قيمة المتغير x.

 

x = int(input(' Enter a number:'))

if x < 0 :     # فحص إذا العدد سالب

 

  x = -x       # xتغيير إشارة المتغير   

  print (x)

 

 

 

--------------------------------------------------------------------------------------------------------------

 

 

 

 

 

  

 

 

 

 

 

   

 

 

 

   

 

 

 

Daliaty School – Copywrite  2023

wahbem@gmail.com | https://daliaty.com

 

 

 

 

 

<meta name="viewport" content="width=device-width, initial-scale=1">