输入包含Python中的字母时出错

时间:2016-03-06 20:12:49

标签: python

我遇到了eval(输入(...))的问题,输入字母时出现错误。

当我使用时:

  

first_input = km

它完美无缺。但我想让用户输入字母。

我找到了与我的问题相似的答案,但它们都与Python 2有关,并告诉我们使用raw_input,但它并不适合我。很可能是因为我的Python版本是3.5.1。

以下是我的代码的一部分:

    ...        

first_unit = eval(input("Enter the units for the first value (cm, m or km): "))

# convert units into m
if first_unit is 'cm':
   first_input = first_input / 100
elif first_unit is 'km':
   first_input = first_input * 1000
else:
   first_input = first_input

   ...

1 个答案:

答案 0 :(得分:4)

请勿使用eval !!!

要获得用户的输入,只需拨打input即可。它已经返回一个字符串。

其次:不使用is比较对象!使用==

first_unit = input("Enter the units for the first value (cm, m or km): ")

# convert units into m
if first_unit == 'cm':
   first_input = first_input / 100
elif first_unit == 'km':
   first_input = first_input * 1000
else:
   first_input = first_input

is运算符会比较身份而不是值。

注意:要从用户处获取号码,您应使用int(input(..))float(input(..)),具体取决于它是整数还是小数。