Dav*_*612 12 python if-statement
我写了一小段python代码.它有效,但我认为应该有一个更简化的方法来实现相同的结果.我只是没有看到它.有任何想法吗?
if tx_avt >= 100: tx = 1
elif tx_avt < 100 and tx_avt >= 50: tx = 2
elif tx_avt < 50 and tx_avt >= 25: tx = 3
elif tx_avt < 25 and tx_avt >= 12.5: tx = 4
else: tx = 5
Run Code Online (Sandbox Code Playgroud)
sam*_*hen 29
您可以将其更改为:
if tx_avt >= 100: tx = 1
elif tx_avt >= 50: tx = 2
elif tx_avt >= 25: tx = 3
elif tx_avt >= 12.5: tx = 4
else: tx = 5
Run Code Online (Sandbox Code Playgroud)
说明:
if tx_avt >= 100不是真的,那么你可以推断出tx_avt < 100 必须是真的.tx_avt < 100在检查" elif tx_avt < 100 and tx_avt >= 50:"中执行" "部分的需要.相同的逻辑级联下来并适用于其他elif案例.
相关阅读:为什么Python没有Switch语句及其替代方案.
Jor*_*ley 10
你不需要elifs的上限,因为这些都是通过上面的条款来解决的......
elif tx_avt >= 50 : #do something
elif tx_avt >= 25 : #somthing else
Run Code Online (Sandbox Code Playgroud)
你可以在python的旁注上做
if 3 < ab < 10 : #check if ab is between 3 and 10
Run Code Online (Sandbox Code Playgroud)
如果你的if-elif-else链很长,你可以使用这个方法:
for amt, tx in [(100, 1), (50, 2), (25, 3), (12.5, 4)]:
if tx_avt >= amt:
break
else:
tx = 5
Run Code Online (Sandbox Code Playgroud)
注意:循环的else子句for在break未遇到时执行.在这种情况下,它用于提供默认情况.