Python如何从字典中取值使其可在while循环中正常运行
代码存在的问题
- 缩进不符合Python语法规范,while循环体内的代码没有缩进,运行会直接报错
- 输入值类型不匹配:
input()返回的是字符串类型,和sterling["age"]的整数类型直接对比永远不相等,会陷入死循环 - 最终输出逻辑不合理,固定打印
answer没有对应业务意义
可正常运行的基础版本
sterling = { "name": "Hifenn Sterling", "age": 23, "ethnicity": "Haitian American"} guess = None while guess != sterling["age"]: # 把输入的字符串转为整数再做对比 guess = int(input("你觉得Sterling多大年纪?: ")) print("猜对了!")
兼容非法输入的优化版本
如果要避免用户输入非数字时程序直接崩溃,可以增加异常捕获逻辑:
sterling = { "name": "Hifenn Sterling", "age": 23, "ethnicity": "Haitian American"} guess = None while guess != sterling["age"]: try: guess = int(input("你觉得Sterling多大年纪?: ")) except ValueError: print("请输入有效的数字年龄") print("猜对了!")
内容的提问来源于stack exchange,提问作者Jeremiah Sterling
相关产品推荐
相关产品推荐

