我正在制作一个二分法的关键程序,它会问一些问题来确定有问题的生物的名字。下面是它现在的样子:
step = 0
yes = ["y", "yes"]
no = ["n", "no"]
while step == 0:
q1 = input("Are the wings covered by an exoskeleton? (Y/N) ")
q1 = q1.lower()
if q1 in yes:
step += 1
elif q1 in no:
step += 2
else:
print("Huh?")
我如何将if和else语句放入一个函数中,这样我就可以对提出的每个问题重用它并更改step变量?
-Thanks
发布于 2018-07-27 02:16:41
这是一个有效的示例:
step = 0
def update_step(q):
yes = ["y", "yes"]
no = ["n", "no"]
global step
if q in yes:
step += 1
elif q in no:
step += 2
else:
print("Huh?")
while step == 0:
q = input("Are the wings covered by an exoskeleton? (Y/N)")
update_step(q.lower())
print(step)
但我不认为这是解决问题的好办法
更新:我喜欢简单,这就是为什么我会尽可能地摆脱状态。例如,我会这样写它:
total_steps = 0
def is_yes(answer):
return answer in ["y", "yes"]
def is_no(answer):
return answer in ["n", "no"]
def get_steps(answer):
if is_yes(answer):
return 1
elif is_no(answer):
return 2
return 0
while True:
answer = input('question? ')
steps = get_steps(answer.lower())
if steps == 0:
continue
total_steps += steps
break
print(total_steps)
您可以使用更高级的技术使其变得更好,但让我们保持简单:)
https://stackoverflow.com/questions/51545043
复制相似问题