【发布时间】:2020-01-07 18:15:06
【问题描述】:
我正在编写一个函数来查看用户的输入是否在列表中,如果是,则用户输入被删除,并要求他们再次猜测,直到他们退出。
我想计算正确猜测的数量并在调用函数后打印它,出于某种原因,无论正确猜测的数量如何,它都会打印为零。我做错了什么? (代码和示例如下)
# [ ] Complete Foot Bones Quiz
foot_bones = ["calcaneus", "talus", "cuboid", "navicular", "lateral cuneiform","intermediate cuneiform", "medial cuneiform"]
guess =''
already_guessed = []
def foot_bone_quiz(guess, foot_bones):
correct_guess = 0
while True:
guess = input("Guess a foot bone, enter q to quit. ")
if guess.lower() in already_guessed:
print("You already guessed that!")
elif guess != 'q':
for bone in foot_bones:
if bone.lower() == guess.lower():
correct_guess = correct_guess + 1
print("Yes", guess, "is a bone in the foot!")
already_guessed.append(guess.lower())
foot_bones.remove(guess.lower())
else:
pass
elif guess == 'q':
print('finished')
break
else:
print("Invalid Entry")
return already_guessed, correct_guess
foot_bone_quiz(guess, foot_bones)
print("You had", correct_guess, "correct guesses. You guessed: ", already_guessed)
示例输出:
Guess a foot bone, enter q to quit. navicular
Yes navicular is a bone in the foot!
Guess a foot bone, enter q to quit. talus
Yes talus is a bone in the foot!
Guess a foot bone, enter q to quit. q
finished
You had 0 correct guesses. You guessed: ['navicular', 'talus']
【问题讨论】:
标签: python function while-loop