I15*_*159 4 python conditional
我使用三元运算符进行短条件变量定义.我想知道表达式何时返回True而不是在表达式值中给出.
>>> digits = '123456'
>>> conv_d = digits != None if int(digits) else None
>>> conv_d
>>> True
>>> int(digits)
>>> 123456
Run Code Online (Sandbox Code Playgroud)
请解释一下,这是怎么回事?Python中的三元运算符和常规条件表达式之间的逻辑区别是什么?
int(digits) == 123456这是一个真正的价值.所以conv_d = digits != None.既然digits不是None,conv_d则设置为true.
你可能想要这个:
conv_d = int(digits) if digits is not None else None
Run Code Online (Sandbox Code Playgroud)
请记住,包含不是数字的字符串会引发异常!如果您对这些值更喜欢0或None,请编写一个小函数:
def toint(s):
try:
return int(s)
except (ValueError, TypeError):
return None # or 0
Run Code Online (Sandbox Code Playgroud)
Python条件运算符的顺序与其他语言的顺序不同.None除非你确定需要,否则你永远不应该比较平等.
conv_d = int(digits) if digits is not None else None
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
724 次 |
| 最近记录: |