如何检查input / raw_input是否包含列表中的项目。 Python代码

时间:2015-04-19 20:46:47

标签: python python-2.7

name = input(str('Please enter your name'))
names= ('name1','name2','nameetc')
if name in names:
    print "hi",name

如果我使用此代码和用户输入name1,则会收到错误name1 is not defined。如果用户将"name1"放在引号中,则它可以正常工作。我可以要求用户将名称放在引号中,但是如何检查以确保它在继续之前。最好我只需要问这个名字。如果我用int替换列表中的每个str,代码工作正常。如何使其与列表中的str一起使用?

2 个答案:

答案 0 :(得分:3)

您需要使用raw_input()。在Python 2中,input()尝试评估输入的字符串。

答案 1 :(得分:2)

在python2 input中评估用户键入的字符串。因此,当您输入name1时,python会尝试查找变量name1的值。该变量不存在,您将获得未定义的异常。使用raw_input代替只返回字符串:

name = raw_input('Please enter your name')
if name in ('name1', 'name2', 'nameetc'):
    print "hi",name