Python理解疑难解答

2024-04-26 00:52:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法正确设置if语句

这是我的密码:

def task_13():
    Main_meal=['Meat','Cheese','Fish']
    addons=['Potatoes','Rice','Salad']
    my_meal=[(x+y) for x in Main_meal for y in addons if (x+y)!= 'FishRice' and 'CheeseRice']
    print(my_meal)

我的问题是,为什么Python会过滤掉“cheesercie”,而只过滤掉“FishRice”选项呢

这是我的输出:

['MeatPotatoes', 'MeatRice', 'MeatSalad', 'CheesePotatoes', 'CheeseRice', 'CheeseSalad', 'FishPotatoes', 'FishSalad']

谢谢你的建议


Tags: in密码fortaskifmainmydef
1条回答
网友
1楼 · 发布于 2024-04-26 00:52:55

这里是官方的reference on Python operator precedence,注意and的优先级比!=低,因此!=首先被求值。另外and是一个简单的运算符,它接受两边的布尔值,并返回一个表示它们的逻辑and的布尔值,它不会执行您试图让它执行的操作

而不是

if (x+y)!= 'FishRice' and 'CheeseRice'

您需要:

if (x+y)!= 'FishRice' and (x+y) != 'CheeseRice'

或者

if (x+y) not in ('FishRice', 'CheeseRice')

相关问题 更多 >

    热门问题