Python斐波那契数校验代码运行结果不符合预期问题求助
问题诱因
- 核心原因是数据类型不匹配
Python的input()函数获取到的用户输入默认是字符串类型,而你生成的fibonacci列表中存储的全部是整数类型,用字符串值去整数列表中做成员判断,永远会返回False,这就是你明明输入了斐波那契数也会走到错误分支的直接原因。 - 补充说明:你贴出的代码片段缺少
fibonacci列表的初始化逻辑,直接运行会先触发NameError报错,你本地能正常生成列表说明你实际代码应该补充了类似fibonacci = [0, 1]的初始化步骤,这个不影响你当前遇到的判断逻辑问题。
修复方法
只需要把用户输入转换为整数类型即可,修改对应代码行:
# 原代码 guess = input("Number that you think is fibonacci: ") # 修改为 guess = int(input("Number that you think is fibonacci: "))
如果需要兼容用户输入非数字的场景,可以补充异常捕获逻辑:
try: guess = int(input("Number that you think is fibonacci: ")) except ValueError: print("请输入合法整数") else: if guess in fibonacci: print("This number is fibonacci") else: print("This number is not fibonacci")
内容的提问来源于stack exchange,提问作者Oliver Kopun
相关产品推荐
相关产品推荐

