نحوه نوشتن شاخه های شرطی با دستور 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 و سایر زبان‌ها است و ممکن است هر تعداد “elif” وجود داشته باشد.

اگر فقط یک عبارت شرطی یا پردازش وجود داشته باشد که false لازم نباشد، بلوک‌های “elif” و “else” را می‌توان حذف کرد.

شرایط را با عملگرهای مقایسه و غیره مشخص کنید.

با عملیاتی که نوع bool (درست، نادرست) را برمی گرداند، مانند عملگر مقایسه، شرط را مشخص کنید.

عملگرهای مقایسه پایتون به شرح زیر است

اپراتورنتیجه
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 در y باشدx 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

موارد زیر را می توان به گونه ای نوشت که مختص پایتون است. برای جزئیات بیشتر به مقاله زیر مراجعه کنید.
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

به عنوان مثال، هنگام مقایسه یک عدد صحیح و یک عدد ممیز شناور، “==” اگر مقادیر معادل باشند، true را برمی گرداند، اما “is” false را برمی گرداند زیرا آنها اشیاء متفاوتی هستند.

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 (true، false) نیست.

if 10:
    print('True')
# True

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

در عبارت شرطی دستور Python if، اشیاء زیر نادرست در نظر گرفته می شوند.

اعدادی که صفر، رشته های خالی، لیست ها و غیره را نشان می دهند نادرست در نظر گرفته می شوند. همه بقیه درست در نظر گرفته می شوند.

نحوه قضاوت شی را می توان با bool() بررسی کرد.

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» True یا False را برمی‌گردانند، بلکه 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

می توانید از بک اسلش برای شکستن یک خط هر چند بار که دوست دارید استفاده کنید. به همین ترتیب، می توانید یک خط را هر چند بار در داخل پرانتز بشکنید. هیچ محدودیتی برای تورفتگی وجود ندارد.

توجه داشته باشید که این تکنیکی است که می تواند در هر جایی از کد پایتون استفاده شود، نه فقط در دستورات if.

Copied title and URL