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

Python输入值可作函数参数吗?函数调用报NameError问题排查

问题分析与解决

关于Python输入值能否作为函数参数

完全可以。你可以直接将input()获取的用户输入值作为参数传递给函数,示例如下:

def calculate_total(price, quantity):
    return price * quantity

# 将输入值作为参数传入函数
unit_price = float(input("请输入商品单价:"))
buy_quantity = int(input("请输入购买数量:"))
total_price = calculate_total(unit_price, buy_quantity)

函数调用错误原因与修复

你遇到的NameError: name 'item_bought_1' is not defined,核心问题是函数内部定义的变量是局部变量,外部无法直接访问。

错误代码示例(模拟你的场景)

def question_asker():
    # 这里的变量是函数内部的局部变量,外部无法访问
    item_bought_1 = input("请输入商品名称:")
    price_1 = float(input("请输入商品单价:"))
    quantity_1 = int(input("请输入商品数量:"))
    total_1 = price_1 * quantity_1

question_asker()
print(item_bought_1)  # 外部访问局部变量,触发NameError

修复方案:让函数返回需要的数据,调用时接收返回值

修改函数,通过return语句输出需要的信息,调用时将返回值赋值给外部变量:

def question_asker():
    item_name = input("请输入商品名称:")
    price = float(input("请输入商品单价:"))
    quantity = int(input("请输入商品数量:"))
    total = price * quantity
    # 返回多个值,本质是返回一个元组
    return item_name, price, quantity, total

# 调用函数并接收返回的变量
item_bought_1, price_1, quantity_1, total_1 = question_asker()

# 后续可使用这些变量生成表格
print(f"| 商品名称 | 单价 | 数量 | 总价 |")
print(f"|----------|------|------|------|")
print(f"| {item_bought_1} | {price_1} | {quantity_1} | {total_1} |")

关键要点

  • 函数内部定义的变量默认是局部作用域,仅在函数内部有效
  • 若要在外部使用函数内的输入值或计算结果,必须通过return语句传递数据
  • 调用函数时,需要用变量接收返回内容,否则数据会直接丢失

内容的提问来源于stack exchange,提问作者Margret Mauno

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 10:42:40