كيفية كتابة الفروع الشرطية باستخدام عبارات if في بايثون

اعمال

اشرح التفريع الشرطي باستخدام عبارات if في بايثون.

  • أساسيات عبارات if (if ، elif ، else)
  • حدد الشروط مع عوامل المقارنة ، إلخ.
  • حدد الشروط حسب الرقم ، القائمة ، إلخ.
  • حدد شروطًا أو حالات نفي متعددة باستخدام عوامل منطقية (و ، أو ، لا)
  • التعبيرات الشرطية على الأسطر الجديدة والأسطر المتعددة

هناك أيضًا عامل تشغيل ثلاثي يصف الفرع الشرطي في سطر واحد. انظر المقال التالي.

أساسيات عبارات if (if ، elif ، else)

الشكل الأساسي لبيان if هو كما يلي

if Conditional expression 1:
    `Processing to be performed if Expression 1 is True.`
elif Conditional expression 2:
    `Processing to be performed when expression 1 is false and expression 2 is true.`
elif Expression 3:
    `Process when expression 1 and 2 are false and expression 3 is true.`
...
else:
    `Processing when all conditionals are false.`

يتوافق “elif” مع “else if” بلغات C ولغات أخرى ، وقد يكون هناك أي عدد من “elifs”.

إذا كان هناك تعبير أو معالجة شرطية واحدة فقط عندما لا تكون القيمة false ضرورية ، فيمكن حذف كتلي “elif” و “else”.

حدد الشروط مع عوامل المقارنة ، إلخ.

حدد الشرط من خلال عملية تُرجع نوعًا منطقيًا (صواب ، خطأ) ، مثل عامل المقارنة.

عوامل مقارنة بايثون هي كما يلي

المشغل أو العاملنتيجة
x < yصحيح إذا كان x أقل من y
x <= yصحيح إذا كانت x أصغر من y أو تساويها
x > yصحيح إذا كان x أكبر من y
x >= yصحيح إذا كان x أكبر من أو يساوي y
x == yصحيح إذا تساوت قيم x و y
x != yصحيح إذا كانت قيم x و y غير متساويتينx is yصحيح إذا كان x و y لهما نفس الشيءx is not yصحيح إذا كانت x و y ليسا نفس الشيءx in yصحيح إذا كانت x موجودة في yx not in yصحيح إذا لم يتم تضمين x في y

مثال. للراحة ، يتم تعريفها على أنها دالة مع بيان def.

def if_test(num):
    if num > 100:
        print('100 < num')
    elif num > 50:
        print('50 < num <= 100')
    elif num > 0:
        print('0 < num <= 50')
    elif num == 0:
        print('num == 0')
    else:
        print('num < 0')

if_test(1000)
# 100 < num

if_test(70)
# 50 < num <= 100

if_test(0)
# num == 0

if_test(-100)
# num < 0

يمكن كتابة ما يلي بطريقة تنفرد بها لغة Python. راجع المقالة التالية للحصول على التفاصيل.
a < x < b

def if_test2(num):
    if 50 < num < 100:
        print('50 < num < 100')
    else:
        print('num <= 50 or num >= 100')

if_test2(70)
# 50 < num < 100

if_test2(0)
# num <= 50 or num >= 100
  • #ERROR!
  • !=

ما ورد أعلاه هو مقارنة بين القيم ؛ لمقارنة هويات الكائن ، استخدم ما يلي

  • is
  • is not

على سبيل المثال ، عند مقارنة عدد صحيح ورقم فاصلة عائمة ، فإن “==” ترجع صوابًا إذا كانت القيم مكافئة ، ولكن “is” ترجع خطأ لأنها كائنات مختلفة.

i = 10
print(type(i))
# <class 'int'>

f = 10.0
print(type(f))
# <class 'float'>

print(i == f)
# True

print(i is f)
# False

من الممكن أيضًا جعل الشرط ما إذا كانت القائمة أو السلسلة تحتوي على عنصر (حرف) معين.

  • in:تضمن
  • not in:لا يشمل
def if_test_in(s):
    if 'a' in s:
        print('a is in string')
    else:
        print('a is NOT in string')

if_test_in('apple')
# a is in string

if_test_in('melon')
# a is NOT in string

حدد الشروط حسب الرقم ، القائمة ، إلخ.

يمكن أن يكون التعبير الشرطي لعبارة if رقمًا أو قائمة أو كائنًا آخر ليس من النوع bool (صواب ، خطأ).

if 10:
    print('True')
# True

if [0, 1, 2]:
    print('True')
# True

في التعبير الشرطي لبيان Python if ، تعتبر الكائنات التالية خاطئة.

تعتبر الأرقام التي تمثل الصفر والسلاسل الفارغة والقوائم وما إلى ذلك كاذبة ؛ كل الآخرين يعتبرون صحيحين.

يمكن التحقق من كيفية الحكم على الكائن باستخدام منطقي ().

print(bool(10))
# True

print(bool(0.0))
# False

print(bool([]))
# False

print(bool('False'))
# True

يمكن استخدام هذا ببساطة لكتابة العملية عندما تكون القائمة فارغة ، على سبيل المثال.

def if_test_list(l):
    if l:
        print('list is NOT empty')
    else:
        print('list is empty')

if_test_list([0, 1, 2])
# list is NOT empty

if_test_list([])
# list is empty

لاحظ أن السلسلة “False” ستكون صحيحة أيضًا ، لأنه كما هو موضح في المثال أعلاه ، فإن أي سلسلة غير فارغة في السلسلة ستكون صحيحة. لتحويل سلسلة محددة مثل “True” أو “False” إلى 1،0 ، استخدم strtobool () في الوحدة النمطية distutils.util.

حدد شروطًا أو حالات نفي متعددة باستخدام عوامل منطقية (و ، أو ، لا)

يمكن استخدام العوامل المنطقية (و ، أو ، لا) للتعامل مع الاقتران المنطقي ، والفصل المنطقي ، ونفي الشروط المتعددة.

المشغل أو العاملالنتيجة (في التعبير الشرطي لبيان if)
x and yصحيح إذا كان كل من x و y صحيحين
x or yصحيح إذا كانت x أو y صحيحة
not xخطأ إذا كانت x صحيحة ، صحيحة إذا كانت x خطأ
def if_test_and_not(num):
    if num >= 0 and not num % 2 == 0:
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_not(5)
# num is positive odd

if_test_and_not(10)
# num is NOT positive odd

if_test_and_not(-10)
# num is NOT positive odd

في الواقع ، لا تُرجع “x و y” و “x أو y” صواب أو خطأ ، ولكن إما أن تعرض x أو y. طالما يتم استخدامها في التعبيرات الشرطية في عبارات if ، فلا داعي للقلق بشأنها ، حيث يتم تقييمها إما إلى True أو False. راجع المقالة التالية للحصول على التفاصيل.

من الممكن استخدام و أو أكثر من مرة.

def if_test_and_not_or(num):
    if num >= 0 and not num % 2 == 0 or num == -10:
        print('num is positive odd or -10')
    else:
        print('num is NOT positive odd or -10')

if_test_and_not_or(5)
# num is positive odd or -10

if_test_and_not_or(10)
# num is NOT positive odd or -10

if_test_and_not_or(-10)
# num is positive odd or -10

التعبيرات الشرطية على الأسطر الجديدة والأسطر المتعددة

عند استخدام العديد من التعبيرات الشرطية عن طريق ربطها بـ “و” أو “أو” ويصبح كل سطر طويلاً ، فمن الضروري أحيانًا كسر التعبير الشرطي وكتابته على عدة أسطر.

يمكن إجراء فاصل أسطر باستخدام الشرطة المائلة للخلف أو بإحاطة السطر بأكمله بأقواس.

def if_test_and_backslash(num):
    if num >= 0 \
       and not num % 2 == 0:
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_backslash(5)
# num is positive odd

def if_test_and_brackets(num):
    if (num >= 0
        and not num % 2 == 0):
        print('num is positive odd')
    else:
        print('num is NOT positive odd')

if_test_and_brackets(5)
# num is positive odd

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

لاحظ أن هذه تقنية يمكن استخدامها في أي مكان في كود Python ، وليس فقط في عبارات if.

Copied title and URL