You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python子程序问题:输入年龄打印功能报错及变量命名咨询

问题排查与修复方案

你的代码为什么出错?

你的代码有两个关键问题:

  1. 函数参数不匹配:你定义findAge时给它加了一个参数userAge,但调用函数时却写成了findAge()——没有传递任何参数,Python会直接抛出TypeError,因为它期待你传入一个参数,但你没给。
  2. 冗余参数无意义:就算你传了参数,函数内部又重新给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_agefetch_age等,只要符合“见名知意”+Python命名规则(字母、数字、下划线,不能以数字开头)。
    • 自定义变量名:userAgeage都可以改成你觉得清晰的名字,比如user_ageinput_ageresult_age等。
  • 绝对不能改的
    • Python的关键字:defreturn这些是定义函数的关键字,改了代码直接失效。
    • 内置函数/类型:intinputprint是Python自带的工具,改了会导致功能无法实现。
    • 函数调用与定义的一致性:如果你把函数名改成get_user_age,调用时必须同步写成get_user_age(),不能还是用原来的findAge()

内容的提问来源于stack exchange,提问作者Tahreen Akther

火山引擎 最新活动