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
一起使用?
答案 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