语法错误:语法无效。也许您的意思是“==”或“:=”而不是“=”? : python 简写 if-else

问题描述 投票:0回答:2
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')

python syntax-error conditional-operator
2个回答
3
投票

你想要:

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

也就是说,只有一个语句(整体

k = ...
);
=
右侧的所有内容都是一个 表达式,其计算结果为
'g'
'ml'
,因此
k =
不能也不应该重复。

print('ml')
也是一个表达式(尽管其计算结果为
None
),因此它在该位置起作用;但
k = 'ml'
只是一个陈述,不能在仅表达式的上下文中使用。


0
投票

文件“”,第 9 行 model.train=(数据=“数据”,纪元=“纪元”,批次=“批次”,优化器=“优化器”,lr0=“lr0”,lrf=“lrf”) ^ 语法错误:语法无效。也许您的意思是“==”或“:=”而不是“=”?

© www.soinside.com 2019 - 2024. All rights reserved.