为了账号安全,请及时绑定邮箱和手机立即绑定

当字典为空时循环不会退出

当字典为空时循环不会退出

饮歌长啸 2021-06-14 16:04:20
使用 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.')


查看完整回答
反对 回复 2021-06-16
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

它可以更精简:


while glossary:

    user_input = ...


查看完整回答
反对 回复 2021-06-16
  • 2 回答
  • 0 关注
  • 363 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号