我在python代码中遇到了一个条件问题。 这是一个数学应用程序,下面是代码中运行不好的部分:
def askNumber():
"""Asks the number to test"""
a=raw_input("Select the number to test (type 'exit' for leaving):")
if len(a)!=0 and a.lower!="exit":
try:
b= int(a)
processing(b)
except ValueError:
print "Your input is not valid. Please enter a 'number'!"
time.sleep(1)
askNumber()
elif len(a)!=0 and a.lower=="exit":
answer()
else:
print "Your input can't be 'empty'"
time.sleep(1)
askNumber()
因此,当在“a”的原始输入中键入“exit”时,假定要应用的条件是elif1,但最后应用if1,最后打印“您的输入无效”。请输入‘数字’!”对不起,如果这是显而易见的,我是个乞丐,尽管我试过好几次找到错误。在
您需要调用
.lower()
函数。在不需要测试
^{pr2}$len(a)!=0
,只需测试a
本身:在布尔上下文中,空字符串的值为
False
。在您可以更改以下项的条件:
请注意,yo不需要
len(a) != 0
,只要使用a
就可以计算它是否为空。在你的程序流程有点内翻,我可以提出一些改进意见吗?在
实际上,
not a
分支也可以消除(空输入将在except
中处理)。在相关问题 更多 >
编程相关推荐