Lesson 3
الشروط: if-then-else
1. بناء الجملة
تم تنفيذ جميع البرامج في الدرس الأول بالتسلسل ، بعد السطر. لا يمكن تخطي أي خط.
لنأخذ في الاعتبار المشكلة التالية: بالنسبة إلى العدد الصحيح X تحديد القيمة المطلقة. إذا كانت X> 0 ، فيجب أن يقوم البرنامج بطباعة القيمة X ، وإلا يجب أن يطبع X. لا يمكن الوصول إلى هذا السلوك باستخدام البرنامج المتسلسل. يجب أن يحدد البرنامج بشكل مشروط الخطوة التالية. هذا هو المكان الذي تساعد فيه الشروط:
x = int(input()) if x > 0: print(x) else: print(-x)
يستخدم هذا البرنامج بيانًا شرطيًا if
. بعد ذلك if
وضعنا شرطًا (x > 0)
متبوعًا بنقطتين. بعد ذلك نضع مجموعة من التعليمات التي سيتم تنفيذها فقط إذا كان الشرط صحيحًا (أي يتم تقييمه إلى True
). يمكن أن يتبع هذه الكتلة بكلمة else
والقولون وكتلة أخرى من التعليمات التي سيتم تنفيذها فقط إذا كان الشرط غير صحيحة (أي يقيم على False
). هي الحالة أعلاه ، الشرط غير صحيح ، لذلك يتم تنفيذ كتلة "آخر". يجب وضع مسافة بادئة لكل مسافات باستخدام مسافات.
لخلاصة القول ، فإن الجملة الشرطية في بايثون لها الصيغة التالية:
if condition : true-block several instructions that are executed if the condition evaluates to True else: false-block several instructions that are executed if the condition evaluates to False
قد يتم حذف الكلمة الأساسية else
مع الكتلة "false" في حالة عدم القيام بأي شيء إذا كان الشرط خاطئًا. على سبيل المثال ، يمكننا استبدال المتغير x
بقيمته المطلقة كما يلي:
x = int(input()) if x < 0: x = -x print(x)
في هذا المثال ، يتم تعيين x
للمتغير -x
فقط إذا كان x < 0
. في المقابل ، يتم تنفيذ تعليمات print(x)
كل مرة ، لأنه لا يتم وضع مسافة بادئة لها ، لذلك لا تنتمي إلى الكتلة "true".
المسافة البادئة هي طريقة عامة في Python لفصل كتل التعليمات البرمجية. يجب وضع مسافة بادئة لكل التعليمات الموجودة داخل نفس الكتلة بنفس الطريقة ، أي يجب أن يكون لها نفس عدد المسافات في بداية السطر. يوصى باستخدام 4 مسافات من أجل المسافة البادئة.
المسافة البادئة هي ما يجعل بايثون مختلفة عن معظم اللغات الأخرى ، حيث يتم استخدام الأقواس المتعرجة {
و }
لتشكيل الكتل.
بالمناسبة ، هناك وظيفة مبنية للقيمة المطلقة في بايثون:
x = int(input()) print(abs(x))
2. الشروط المتداخلة
يمكن وضع أي تعليم بايثون في كتل "حقيقية" وكتلة "خاطئة" ، بما في ذلك بيان شرطي آخر. بهذه الطريقة نحصل على ظروف متداخلة. يتم وضع مسافة بادئة على كتل من الظروف الداخلية باستخدام مسافات أكثر مرتين (على سبيل المثال. 8 مساحات). دعونا نرى مثال. بالنظر إلى إحداثيات النقطة على الطائرة ، اطبع ربعها.
x = int(input()) y = int(input()) if x > 0: if y > 0: # x أكبر من 0 ، y أكبر من 0 print("Quadrant I") else: # x أكبر من 0 ، y أقل أو يساوي 0 print("Quadrant IV") else: if y > 0: # x أقل أو يساوي 0 ، y أكبر من 0 print("Quadrant II") else: # x أقل أو يساوي 0 ، y أقل أو يساوي 0 print("Quadrant III")
في هذا المثال ، نستخدم التعليقات: النص التوضيحي الذي ليس له تأثير على تنفيذ البرنامج. يبدأ هذا النص مع التجزئة #
ويستمر حتى نهاية السطر.
3. عوامل المقارنة
عادة ما يكون الشرط بعده if
لديه واحد أو أكثر من عوامل التشغيل التالية:
-
<
- أقل - الشرط صحيح إذا كان الجانب الأيسر أقل من الجانب الأيمن.
-
>
- أكبر - الشرط صحيح إذا كان الجانب الأيسر أكبر من الجانب الأيمن.
-
<=
- أقل أو متساوية.
-
>=
- أكبر من أو يساوي.
-
==
- مساو.
-
!=
- غير متساوي.
على سبيل المثال ، تعني الحالة x * x < 1000
"قيمة التعبير x * x
أقل من 1000" ، والقيمة 2 * x != y
تعني "القيمة المضاعفة للمتغير x
لا تساوي القيمة للمتغير y
".
قد يتم تجميع عوامل المقارنة في Python معًا مثل: a == b == c
أو x <= y >= 10
. إنه شيء نادر بين لغات البرمجة.
4. كائنات منطقية ومشغلات منطقية
عند جمع مجموعتين صحيحتين باستخدام عامل التشغيل +
، مثل 2 + 5
، نحصل على كائن جديد: 7
. في نفس الطريق، وعندما نقارن عددين باستخدام <
المشغل، مثل 2 < 5
، وحصلنا على وجوه جديدة: True
.
print(2 < 5) print(2 > 5)
True
و False
على نوع خاص يسمى bool
. نظرًا لأنه يمكن استخدام كل اسم للكتابة في هذا النوع من الكائنات ، فدعنا نرى ما يقدمه هذا الرقم للأرقام:print(bool(-10)) # صحيح print(bool(0)) # خطأ - الصفر هو الرقم غير الصحيح الوحيد print(bool(10)) # صحيح print(bool('')) # خطأ - السلسلة الفارغة هي السلسلة الخاطئة الوحيدة print(bool('abc')) # صحيح
في بعض الأحيان تحتاج إلى التحقق من عدة شروط في وقت واحد. على سبيل المثال ، يمكنك التحقق مما إذا كان الرقم n
قابل للقسمة على 2 باستخدام الشرط n % 2 == 0
(يعطي n
الباقي 0
عند القسمة على 2
). إذا كنت بحاجة إلى التحقق من أن كل من الرقمين n
و m
مقسومان على 2 ، فيجب عليك التحقق من كل من n % 2 == 0
و m % 2 == 0
. للقيام بذلك ، يمكنك الانضمام إليها باستخدام عامل and
(منطقية AND): n % 2 == 0 and m % 2 == 0
.
لدى بايثون منطقية AND ، منطقية أو OR ونفي.
مشغل and
غير مشغل ثنائي الذي يقيم في True
إذا وفقط إذا كلا من الجانب الأيسر والجانب الأيمن و True
.
المشغل or
المشغل الثنائي الذي يقوم بالتقييم إلى True
إذا كان واحد على الأقل من جوانبه هو True
.
المشغل not
نفيًا واحدًا ، يتبعه بعض القيمة. يتم تقييمه إلى True
إذا كانت هذه القيمة False
والعكس صحيح.
دعونا نتحقق من أن واحدًا على الأقل من الرقمين ينتهي بـ 0:
a = int(input()) b = int(input()) if a % 10 == 0 or b % 10 == 0: print('YES') else: print('NO')
دعونا نتحقق من أن الرقم a
موجب وأن الرقم b
غير سلبي:
if a > 0 and not (b < 0):
بدلا من not (b < 0)
يمكننا أن نكتب (b >= 0)
.
5. كلمة "أليف"
إذا كان لديك أكثر من خيارين لتمييزهما باستخدام المشغل الشرطي ، فيمكنك استخدام if... elif... else
statement.
دعونا نظهر كيف يعمل عن طريق إعادة كتابة المثال بنقطة (س ، ص) على الطائرة وأربعة من الأعلى:
x = int(input()) y = int(input()) if x > 0 and y > 0: print("Quadrant I") elif x > 0 and y < 0: print("Quadrant IV") elif y > 0: print("Quadrant II") else: print("Quadrant III")
في هذه الحالة يتم التحقق من الشروط في if
و elif
واحدًا تلو الآخر حتى يتم العثور على الشرط الصحيح الأول. ثم يتم تنفيذ فقط كتلة حقيقية لهذا الشرط. إذا كانت جميع الشروط خاطئة ، فسيتم تنفيذ الحظر "else" ، إذا كان موجودًا.