You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:07:18