-1

我已经设置了一个脚本,当用户输入Yes. 但是,当用户说Yes. 我究竟做错了什么?

我正在使用 Python 2.7.2。
这是我的代码:

print 'Hi! Welcome!'
begin = raw_input ('Will you answer some questions for me? ')
if begin == 'yes':
    print 'Ok! Let\'s get started then!'
else:
    print 'Well then why did you open a script clearly entiled\'QUIZ\'?!'
4

3 回答 3

6

换行就好

if begin == 'yes':

if begin.lower() == 'yes':

因为字符串比较是区分大小写的,所以只有当用户以小写输入回复时才匹配

于 2012-04-08T11:46:03.673 回答
5

这里的问题是区分大小写。

>>> "yes" == "Yes"
False

在比较之前尝试str.lower()在用户输入上使用以忽略大小写。例如:

print 'Hi! Welcome!'
begin = raw_input ('Will you answer some questions for me? ')
if begin.lower() == 'yes':
    print 'Ok! Let\'s get started then!'
else:
    print "Well then why did you open a script clearly entiled\'QUIZ\'?!"

#如果在 print str 中使用了单个撇号,那么它必须被双撇号包围。

于 2012-04-08T11:44:29.380 回答
0

如果您只想从用户那里接受多个版本的字符串,Abhijit 的方法也适用。例如,我使用它来确认用户是否要退出:

confirm = input('Are you sure you would like to exit? N to re-run program')
  if confirm.lower() in ('n','no'): #.lower just forces the users input to be changed to lower case
    print("I'll take that as a no.")
    return confirm #this then just goes back to main()
  else:
    exit()

这种方式要么是'n'要么是'N';'no' 或 'NO' 或 'nO' 都是可接受的 'no' 情况。

于 2013-08-05T19:12:43.480 回答