如何实现循环让用户重复输入直至输入正确的国家名称
实现循环输入国家名称直至匹配字典的解决方案
问题分析
你当前的代码仅支持最多两次输入验证,无法持续让用户输入直到匹配字典内的国家名称。另外原代码存在一处关键问题:country.lower()调用后没有重新赋值给变量——字符串是不可变类型,这个操作不会改变原变量的值,会导致输入大写字母时无法匹配字典里的小写键。
优化后的代码
population ={ 'china': '143', 'india': '136', 'usa': '32', 'pakistan': '21' } population['bhutan'] = 2 print(population['china']) while True: # 输入后直接转小写并赋值,确保和字典键的格式一致 country = input("enter country name-").lower() if country in population: print(f"population {country} is: {population[country]} crore") # 匹配成功,跳出循环结束程序 break else: print("input again")
代码说明
- 用
while True创建无限循环,只要用户输入不匹配就会持续要求重新输入 - 每次输入后直接调用
.lower()并赋值给country,彻底解决大小写不匹配的问题 - 当输入的国家存在于字典中时,打印人口信息并通过
break跳出循环,结束流程
原代码的额外修正点
- 修正拼写错误:把原代码里的
countri改为country,避免误导用户 - 消除冗余代码:将两次重复的判断逻辑合并到循环内,减少不必要的代码重复
内容的提问来源于stack exchange,提问作者Swarnim Singh
相关产品推荐
相关产品推荐

