重复while循环,直到可以

2024-04-23 15:46:04 发布

您现在位置:Python中文网/ 问答频道 /正文

countries={'TW':'Taiwan','JP':'Japan','AUS':'Australia'}

def add_country():

    while True:
        new_short=raw_input('Country Name in short:')
        new_full=raw_input('Country Name in full:')
        countries[new_short]=new_full
        answer=raw_input('want to add more?')
        if answer in ('yes'):
            return True 
        if answer in ('no'):
            return False

    print countries

add_country()

我刚开始学Python。上面的代码不对,有人能帮我修一下吗?基本上,如果答案是yes,我只想重复一次循环,如果答案是no,我想跳出循环。返回True/False不返回while循环?


Tags: answernameinaddtruenewinputraw
3条回答
  • 使用break中断while循环:
  • 不需要测试answer是否在('yes',)中,因为 while True默认情况下循环将继续循环:
  • answer in ('no')answer in 'no'相同,后者只会 如果answer'n''o''no',则为True。那可能不是 你的意思。最好使用answer == 'no'。如果您在answer in ('no',)中添加了逗号,那么('no',)将是一个元组,并且如果answer等于元组中的一个项,则满足条件。逗号在这里有很多意义!

def add_country():
    while True:
        new_short=raw_input('Country Name in short:')
        new_full=raw_input('Country Name in full:')
        countries[new_short]=new_full
        answer=raw_input('want to add more?')
        if answer == 'no':
            break
    print countries

它只需要一些小的修正:

def add_country():

    while True:
        new_short=raw_input('Country Name in short:')
        new_full=raw_input('Country Name in full:')
        countries[new_short]=new_full
        answer=raw_input('want to add more?')
        if answer == 'no':
            return False
        print countries

add_country()

您需要使用break命令退出循环。

countries={'TW':'Taiwan','JP':'Japan','AUS':'Australia'}

def add_country():

    while True:
        new_short=raw_input('Country Name in short:')
        new_full=raw_input('Country Name in full:')
        countries[new_short]=new_full
        answer=raw_input('want to add more?')
        if answer in ('yes'):
            answer = True
            break
        if answer in ('no'):
            answer = False
            break
        print countries        
        return answer


add_country()

相关问题 更多 >