为何使用Python三元运算符时出现“表达式未被赋值”警告?如何解决?
消除三元表达式的"expression is assigned to nothing"警告
你的问题出在把三元表达式当成了流程控制语句用,Python的三元运算符本质是用来生成值的,不是执行带副作用的语句(比如print)。当你直接写print(...) if ... else print(...)时,表达式会返回print的返回值None,但你没接收这个值,所以静态检查工具会触发警告。
下面是两种解决方法:
方法一:正确使用三元表达式(推荐)
把三元表达式用来生成要打印的字符串,再传给print,这样表达式的结果被合理使用,警告自然消失:
age = int(input("Input your age: ")) print("Teen" if age >= 15 else "Kids") print("End program")
方法二:显式忽略返回值(不推荐)
如果非要保留原来的写法,可以把表达式的返回值赋值给下划线_(Python中用来表示不需要的变量),告诉检查工具你是故意忽略这个值:
age = int(input("Input your age: ")) _ = print("Teen") if age >= 15 else print("Kids") print("End program")
不过更建议用第一种方法,因为这才符合三元表达式的设计初衷,代码也更简洁易读。
内容的提问来源于stack exchange,提问作者Imtae
相关产品推荐
相关产品推荐

