我遇到了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
...
答案 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(..))
,具体取决于它是整数还是小数。