我正在解决一个问题,该问题使用字典来存储州和首都,然后要求用户进行测验。当状态随机显示时,用户应该输入首都。用户会收到通知,判断其正确与否。然后用户被要求再次玩。当输入“n”时,它应该停止并给出正确和错误答案的数量。但是当输入“n”时循环继续播放,并且我无法执行最后一条语句。提前致谢。 为了简洁起见,并未显示所有州和首府。
def main():
states_caps = {'Alabama' : 'Montgomery' ,'Alaska': 'Juneau', 'Arizona': 'Pheonix', 'Arkansas': 'Little Rock', 'California': 'Sacramento','Colorado': 'Denver', 'Connecticut': 'Hartford', 'Delaware': 'Dover', 'Florida': 'Tallahassee', 'Georgia': 'Atlanta', 'Hawaii': 'Honolulu'}
print('Welcome to the Capitals of States quiz!')
PlayAgain = "Y"
correct_answer = 0
incorrect_answer = 0
while (PlayAgain =="Y"):
for key in states_caps:
print('\nThe state is:', key)
capital = input('\nWhat is the capital? ')
if capital == states_caps.get(key):
print('You are correct!!')
correct_answer +=1
else:
print('\nSorry, that is not correct.')
print('The correct answer is,' , states_caps.get(key))
incorrect_answer +=1
PlayAgain = input("\nPlay again? (Y/N) ").upper()
print('\nYou had', correct_answer, 'correct answers and', incorrect_answer, 'incorrect answers.')
main()
最佳答案
要回答您的问题,这是因为您在询问用户是否想再次玩之前循环了所有状态。下面是一种解决方案(如果用户对“再次播放”回答 N,则循环按键并中断?
def main():
states_caps = {'Alabama' : 'Montgomery' ,'Alaska': 'Juneau', 'Arizona': 'Pheonix', 'Arkansas': 'Little Rock', 'California': 'Sacramento','Colorado': 'Denver', 'Connecticut': 'Hartford', 'Delaware': 'Dover', 'Florida': 'Tallahassee', 'Georgia': 'Atlanta', 'Hawaii': 'Honolulu'}
print('Welcome to the Capitals of States quiz!')
PlayAgain = "Y"
correct_answer = 0
incorrect_answer = 0
states = list(states_caps.keys())
for state in states:
print('\nThe state is:', state)
capital = input('\nWhat is the capital? ')
if capital == states_caps.get(state):
print('You are correct!!')
correct_answer +=1
else:
print('\nSorry, that is not correct.')
print('The correct answer is,' , states_caps.get(state))
incorrect_answer +=1
PlayAgain = input("\nPlay again? (Y/N) ").upper()
if PlayAgain == 'N':
break
print('\nYou had', correct_answer, 'correct answers and', incorrect_answer, 'incorrect answers.')
main()
关于python - 输入 'n' 时无法打印最终语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27532031/