我正在制作一个Dichotomous Key程序,它在其中询问问题以确定所讨论生物的名称。这是现在的样子:
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变量?
-谢谢
答案 0 :(得分:0)
这是一个有效的示例:
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)
您可以使用更高级的技术来使其更好,但让我们保持简单:)