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。以上代码不正确,有人可以帮我解决吗?基本上我只想在答案是肯定的情况下重复循环一次,或者如果答案为否则突然循环。返回True / False不会返回while循环?
答案 0 :(得分:3)
它只需要一些小修正:
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()
答案 1 :(得分:1)
您需要使用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()
答案 2 :(得分:0)
你需要打破循环而不是返回函数。
这将是:
if answer == 'yes':
break
if answer == 'no':
pass
# do nothing
您不需要if answer == 'no'
部分。 return
语句将执行该函数。
答案 3 :(得分:0)
break
打破while循环:answer
是否在('yes',)
中,因为。{
默认情况下,while True
循环将继续循环:answer in ('no')
与answer in 'no'
相同,只有answer
如果'n'
为'o'
或'no'
或answer == 'no'
,则为True。那可能不是
你是什么意思。最好使用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
等于元组中的某个项,则会满足条件。逗号在这里有很多意义!{{1}}
答案 4 :(得分:0)
return
终止该功能。要停止循环,请使用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 != 'yes':
break
print countries
add_country()
请注意我是如何更改answer in ('no')
的,因为它没有达到您的预期(它检查answer
是'n'
还是'o'
)。
答案 5 :(得分:0)
在答案为“否”之前,您不希望return
。返回将结束函数的执行。你想要continue
循环。