使用 Python 3:def show_flashcard(): """ Show the user a random key and ask them to define it. Show the definition when the user presses return. it then asks if user knew definition or not if they do delets the word and then asks if they want to continue or quit. """ random_key = choice(list(glossary)) print('Define: ', random_key) input('Press return to see the definition') print(glossary[random_key]) import time time.sleep(1) # delay for 1 seconds print('Did you know the answer') user_input = input('y or n: ') if user_input == 'n': print( 'Do not give up you can only learn by practice') time.sleep(1) # delay for 1 seconds user_input = input('Enter s to show a flashcard and q to quit: ') if user_input == 'y': print( 'Congratulations , the word wil now be removed from the dictionary') del (glossary[random_key])# Set up the glossaryglossary = {'1: word1':'definition1', '2: word2':'definition2', '3: word3':'definition3'}# The interactive loopexit = Falsewhile not exit: if glossary == {''}: exit = True user_input = input('Enter s to show a flashcard and q to quit: ') if user_input == 'q': exit = True elif user_input == 's': show_flashcard() else: print('You need to enter either q or s.')当词汇表为空时,我似乎无法让这个循环自动退出。我已经尝试了很多东西,从if glossary = 0 then exit is true,但我似乎无法到达任何地方。它让我发疯。
2 回答

小唯快跑啊
TA贡献1863条经验 获得超2个赞
您的退出条件 ,if glossary == {''}:永远不会为真,因为您将词汇表dictaset与包含单个空字符串元素的 a进行比较。
您可以dict直接在条件中使用一个对象,它会评估False它是否为空。您还可以使用break以立即退出循环:
while True:
if not glossary:
break
user_input = input('Enter s to show a flashcard and q to quit: ')
if user_input == 'q':
break
elif user_input == 's':
show_flashcard()
else:
print('You need to enter either q or s.')
添加回答
举报
0/150
提交
取消