这是一个基于文本的小型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,但没有看到有关缩短代码行的任何内容,只是关于如何解决他所遇到的问题。
答案 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()