Python子程序问题:输入年龄打印功能报错及变量命名咨询
问题排查与修复方案
你的代码为什么出错?
你的代码有两个关键问题:
- 函数参数不匹配:你定义
findAge时给它加了一个参数userAge,但调用函数时却写成了findAge()——没有传递任何参数,Python会直接抛出TypeError,因为它期待你传入一个参数,但你没给。 - 冗余参数无意义:就算你传了参数,函数内部又重新给
userAge赋值为input的结果,这个参数从始至终都没被用到,完全是多余的。
修正后的代码
最简单的修复方式是去掉函数的冗余参数,让函数逻辑更清晰:
def findAge(): userAge = int(input("Enter your age please: ")) return userAge age = findAge() print(age)
如果想更贴合Python的PEP8命名规范(下划线分隔的小写命名),可以改成这样:
def get_user_age(): user_age = int(input("Enter your age please: ")) return user_age user_age = get_user_age() print(user_age)
变量名修改规则
哪些能改,哪些不能改:
- 可以自由修改的:
- 函数名:比如
findAge可以改成get_user_age、fetch_age等,只要符合“见名知意”+Python命名规则(字母、数字、下划线,不能以数字开头)。 - 自定义变量名:
userAge、age都可以改成你觉得清晰的名字,比如user_age、input_age、result_age等。
- 函数名:比如
- 绝对不能改的:
- Python的关键字:
def、return这些是定义函数的关键字,改了代码直接失效。 - 内置函数/类型:
int、input、print是Python自带的工具,改了会导致功能无法实现。 - 函数调用与定义的一致性:如果你把函数名改成
get_user_age,调用时必须同步写成get_user_age(),不能还是用原来的findAge()。
- Python的关键字:
内容的提问来源于stack exchange,提问作者Tahreen Akther




