使用if语句有多种可能性?

时间:2015-04-10 17:31:29

标签: python text

这是一个基于文本的小型RPG,我开始用Python编程:

#global variables
cpu = "[WOPR] "

print("%sLet's play a game within Python 3.4.\n\n%sWhat is your name User?" % (cpu, cpu))
#this is the first question 
q1 = str.lower(input("Would you like to tell %s your name?\n" % cpu))
if q1 == 'yes' or q1 == 'yeah' or q1 == 'ok' or q1 == 'okay' or q1 == 'alright' or q1 == 'y':
    name = input("What is your name?\n")
    user = "(%s) " % name
elif q1 == 'no' or q1 == 'nah' or q1 == 'nope' or q1 == 'n':
    print("%sAlright I'll just call you Scrub from now on" % cpu) 
    name = "Scrub"
    user = "(%s) " % name
else: #this is just a catch all, will cause an error if this activates(so it ends the script)
    print("u dun messed up m8")

是否可以缩短

if q1 == 'yes' or q1 == 'yeah' or q1 == 'ok' or q1 == 'okay' or q1 == 'alright' or q1 == 'y':

到一些不那么笨重的东西(我试过if q1 == 'yes' or 'yeah'等但它没有用)。

在我想问一个是或否的问题时,我必须一遍又一遍地输入所有这些东西,这有点烦人,但我想在那里有所有的选择,以便它接受是或否的所有变体。

我找到了Python 3 input and if statement,但没有看到有关缩短代码行的任何内容,只是关于如何解决他所遇到的问题。

1 个答案:

答案 0 :(得分:0)

您可以使用in来测试会员资格:

if q1 in {'yes', 'yeah','ok', 'okay' ,'alright', 'y'}

你也可以在输入时调用lower:

q1 = input("Would you like to tell %s your name?\n" % cpu).lower()