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

Python中能否在def函数内使用input函数?为何以下代码报错?

问题解答:Python函数内使用input及代码报错原因

能不能在def函数内部用input?

完全可以。input()是Python的内置函数,没有限制只能在全局作用域调用,在函数内部使用它获取用户输入是完全合法的操作。

代码报错的原因

你的代码报错name and location not defined,问题出在函数调用的那一行:

print(function(namel=name,locationl=location))

这里的name和location是你在函数内部定义的局部变量,仅在函数执行时的局部作用域内有效,全局作用域中根本不存在这两个变量,所以Python在调用函数时找不到它们,就会抛出未定义的错误。

另外你定义的函数参数namel和locationl完全没有被使用,函数内部直接用input()重新获取了值,这两个参数属于冗余定义,没有实际作用。

修正后的代码示例

方式1:去掉冗余参数,直接在函数内获取输入

def function():
    name = input("Your name: ")
    location = input("Location: ")
    return name + location
print(function())

调用时无需传参,函数会自动获取用户输入并返回拼接结果。

方式2:保留参数(支持外部传值或内部输入)

如果想让函数既可以接收外部传入的参数,也能在无参调用时自动获取输入,可以改成这样:

def function(namel=None, locationl=None):
    # 有传参则用传入的值,无参则让用户输入
    name = namel if namel is not None else input("Your name: ")
    location = locationl if locationl is not None else input("Location: ")
    return name + location

# 两种调用方式均有效
print(function())  # 执行时会提示用户输入
print(function(namel="Ankit", locationl="Delhi"))  # 使用传入的参数值

内容的提问来源于stack exchange,提问作者Ankit Hatria

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:03:14