将给定的输入从字符串转换为整数或python中的浮点数,如果输入是字符串或字符,它可以处理吗?

时间:2018-12-18 16:52:28

标签: python string python-2.7 floating-point integer

输入:'aa''22''2.45'

input ='22'
try:
   print int(input)
except ValueError:
   print float(input)

当输入为“ aa”或“ example”时如何处理以上代码?

3 个答案:

答案 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)