Python raw_input promp返回NameError

2024-04-25 08:19:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试创建一个for循环,提示用户输入一个爱好3次,然后将每个爱好附加到爱好上。在

到目前为止,我得出的结论是:

hobbies = []

for tries in range(3):
    hobby = raw_input(input("what's your favorite hobby?: "))
    hobbies.append(hobby)

当我在用户输入提示符处输入一个响应后,例如我的响应是“竞争性进食”,我在终端中得到以下错误:

^{pr2}$

我肯定我犯了一个非常愚蠢的错误,但我似乎不知道我做错了什么。在


Tags: 用户inforinputyourraw错误range
2条回答

input相当于eval(raw_input)。在你的例子中这是完全多余的。放下它,只保留raw_input

hobby = raw_input("what's your favorite hobby?: ")

编辑:
为了回答注释中的问题,input接受字符串并尝试将其作为一个python表达式进行求值(有关详细信息,请参见^{}'s documentation)。因为“竞争性饮食”不是你已经定义的变量,它不能被评估,因此NameError。在

您只需要raw_input,而不需要input后跟{}。使用

hobby = raw_input("what's your favorite hobby?: ")

在python3.x中,input做了raw_input在以前版本中所做的事情。但是在python3之前,input除了从stdin读取一行代码外,还将该行视为一个有效的Python表达式。raw_input是另一种选择,因此您应该使用其中一种,而不是两者都使用。在这里,raw_input是合适的。在

相关问题 更多 >

    热门问题