You need to enable JavaScript to run this app. Python新手疑问:执行自定义Person_Info代码后无任何输出的原因
优惠活动
大模型
产品
解决方案
定价
更多

Python新手疑问:执行自定义Person_Info代码后无任何输出的原因

代码无输出的核心原因

你当前的代码完全颠倒了函数定义、函数调用的逻辑顺序,叠加多处语法错误,最终导致程序运行没有任何有效输出,具体问题点如下:

  • 代码块缩进逻辑完全错位:你把3次Person_Info的调用语句,全部缩进到了def Person_Info的函数体内部。这意味着这三行调用代码只有在Person_Info函数被主动触发时才会运行,但你从头到尾没有在全局作用域写过任何主动调用该函数的语句,整个函数体从头到尾都没有被执行过,自然不会产生任何输出。
  • 错误嵌套的递归隐患:就算你后续主动触发了函数,由于函数内部第一行就是调用自身的代码,会直接形成无终止的递归循环,直到Python解释器触发栈溢出报错,根本走不到后续的print打印逻辑。
  • 打印语句本身存在多处语法错误:
  • 整数类型Age直接和字符串做+拼接,会触发类型不匹配报错,无法正常运行
  • print括号内的表达式多写了一个逗号在加号前("Age " + Age, + Work),会把原本连续的拼接表达式拆成两个独立的传参内容,那个单独的+ Work属于语法冗余
  • 打印语句也被缩进到函数调用的后方,即使不触发递归,也会因为缩进顺序问题无法正常运行
可正常运行的修正代码
def Person_Info(Age, Work, Sex):
    # 用f-string做格式化输出,无需手动做类型转换
    print(f"Age {Age}, {Work} work, {Sex} sex")

# 函数定义完成后,在全局作用域主动调用,传入对应参数
Person_Info(21, "Java", "male")
Person_Info(24, "C", "male")
Person_Info(31, "Java", "female")
新手需要注意的Python语法规则
  • Python依靠缩进划分代码块,def声明后缩进的代码块属于函数内部逻辑,和def行保持同缩进的代码属于全局作用域,不会被自动包含在函数内
  • 函数定义本身不会执行内部代码,必须在全局作用域显式写调用语句,才会触发函数逻辑
  • 字符串拼接时,非字符串类型(比如整数、浮点数)需要先转为字符串类型才能和字符串直接用+连接,推荐用f-string做格式化输出,减少手动转类型的报错
  • 不要在自定义函数的函数体内部写该函数自身的调用语句,否则会形成无限递归,最终触发栈溢出错误

内容的提问来源于stack exchange,提问作者Wall e Walye

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 22:36:03