SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='? : python shorthand if-else

SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='? : python shorthand if-else

resources = {
    "water": 300,
    "milk": 200,
    "coffee": 100,
}

prompt = input("What would you like? (espresso, latte or cappuccino):")
if prompt == 'report':
    for i in resources:
        k = 'g' if i == 'coffee' else k = 'ml'
        print(f'{i} : {resources[i]}')

上述代码报错

"k = 'g' if i == 'coffee' else k = 'ml'
    ^^^^^^^
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?"

但是当我使用打印语句而不是赋值语句时有效 喜欢

print('g') if i == 'coffee' else print('ml')

你想要:

k = 'g' if i == 'coffee' else 'ml'

也就是说只有一个语句(整体k = ...); = 右侧的所有内容都是一个 表达式 ,其计算结果为 'g''ml',因此 k = 不能并且不应重复。

print('ml') 也是一个表达式(尽管计算结果为 None),所以它在那个位置有效;但是 k = 'ml' 只是一个语句,不能在 expression-only 上下文中使用。