输入:'aa'
,'22'
,'2.45'
input ='22'
try:
print int(input)
except ValueError:
print float(input)
当输入为“ aa”或“ example”时如何处理以上代码?
答案 0 :(得分:2)
我认为处理此问题的最简单方法是先检查输入字符串是否为数字:
https://www.tutorialspoint.com/python/string_isnumeric.htm
if input.isnumeric():
print int(input)
else:
try
print float(input)
except ValueError:
# Do nothing
但是,如果您可以完全避免异常,则代码会更好-异常处理可能会非常昂贵。
此测试整数的答案解释了为什么异常处理可能会很昂贵:https://stackoverflow.com/a/9859202/8358096
为避免定期遇到第二个异常,您可以使用下面提到的isalpha函数。
if input.isnumeric():
print int(input)
else:
if not input.isalpha():
try
print float(input)
except ValueError:
# Do nothing
答案 1 :(得分:0)
s = 'aa'
try:
print int(s)
except ValueError:
try:
print float(s)
except:
print 'its is a string'
答案 2 :(得分:0)
您应该使用str.isalpha
只有在input = 'a2'
这样的情况下,这种情况才会中断。
inputs = ['aa','22','2.45']
for input in inputs:
if not input.isalpha():
try:
print int(input)
except ValueError:
print float(input)