单行if-else语句中给全局变量赋值报无效语法错误如何解决
报错原因及调整方案
报错原因
Python 中x if 条件 else y属于三元表达式语法,语法要求x和y位置只能是可返回值的表达式,不能是赋值语句。你写的wins += 1、lose += 1都属于赋值语句,不符合三元表达式的语法要求,因此触发无效语法报错。
调整方法
有两种可行的单行写法,你可以根据改造成本选择:
- 写法1:直接将原多行if语句按Python单行语句规则拼接,不需要修改原有逻辑,改造成本最低,适合批量处理5000条语句的场景:
if num > num2: wins += 1 else: lose += 1;
- 写法2:调整三元表达式的位置,将赋值逻辑移到三元表达式外部,三元分支仅返回要累加的数值:
wins += 1 if num > num2 else 0; lose += 1 if num <= num2 else 0;
内容的提问来源于stack exchange,提问作者Krisztian Nagy Zsolt
相关产品推荐
相关产品推荐

