Python中create_tree函数输入x=-1时为何未返回None?
问题根源与修复方案
嘿,我一眼就瞅出问题所在了——输入类型不匹配导致你的判断逻辑完全没生效!
核心问题分析
看这段关键代码:
x=input() if x==-1: return None
input()函数从控制台获取的输入默认是字符串类型,而你这里把它和整数-1做相等比较。比如用户输入-1时,变量x的值是字符串"-1",和整数-1永远不可能相等,所以这个return None的分支永远不会被触发,函数自然不会返回None,反而会继续执行后面的代码。
快速修复方案
只需要把输入转换成整数类型即可,修改第一行:
x = int(input())
这样当用户输入-1时,x会被转换成整数-1,此时x == -1的判断成立,函数就会正确返回None了。
额外优化建议
你的create_tree函数里的while(True)循环完全没必要——里面直接写了break,相当于只执行一次循环体,直接去掉while循环,代码会更简洁:
def create_tree(): x = int(input()) if x == -1: return None root = tree() root.val = x print(root) print(root.val) print(root.right) print(root.left) print("reach1") root.left = create_tree() root.right = create_tree() print("reach2") return root
内容的提问来源于stack exchange,提问作者Ishaan Kalsi
相关产品推荐
相关产品推荐

