используя несколько операторов if else в одной строке - PullRequest
0 голосов
/ 24 марта 2020

Можно ли использовать несколько операторов if else в одной строке?

Я знаю только пару операторов if else, как указано ниже:

weight = 50

if weight > 60:
    weight = 'heavy'
else:
    weight = 'light'

print(weight)
weight = 50
weight = 'heavy' if weight > 60 else 'light'
print(weight)

Если я напишите две пары if else или используйте если еще еще elif, как я могу написать это в одном предложении?

weight = 50
height = 165

if weight > 60:
    if height > 170 = 'skinny'
        else : 'fat'
else:
    if height > 160 = 'skinny'
        else : 'fat'    
print(weight)

Я знаю, что это не рекомендуется, но просто хочу знать.

Спасибо

Ответы [ 3 ]

2 голосов
/ 24 марта 2020

Вы можете использовать многоуровневый if-else s

    weight = 50
    height = 165
    ans = ('skinny' if height>170 else 'fat') if weight>60 else ('skinny' if height>160 else 'skinny')
    print(ans)
0 голосов
/ 24 марта 2020

Если вы хотите, чтобы оно было кратким (за счет читабельности), вы можете написать это так:

score = "skinny" if height > [160,170][weight>60] else "fat"

или это:

score = ["fat","skinny"][height>[160,170][weight>60]]
0 голосов
/ 24 марта 2020

Более сумасшедший и нечитаемый способ: (В вашем коде есть ошибки, поэтому я не знаю, как пересмотреть ваш код.)

a = 4

if a > 3:
    if a > 4:
        j = ">4"
    else:
        j = "3< <=4"
else:
    j = "<=3"

# there are the same.
print(j)
print(a>3 and (a>4 and ">4" or "3< <=4") or "<=3")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...