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

Python定义双输入除法函数时遇TypeError问题求助

问题分析与解决方案

你的错误根源是:传给函数的是input这个函数对象,而非调用input()得到的用户输入数值。函数对象本身不能直接做除法运算,所以抛出TypeError。

正确代码示例(保留你传递函数参数的思路)

def calculate_division(attempts_func, completions_func):
    # 调用传入的input函数获取输入,转为整数
    attempts = int(attempts_func())
    completions = int(completions_func())
    # 处理除零错误,避免程序崩溃
    if completions == 0:
        return "错误:除数不能为0"
    return attempts / completions

# 传入input函数,让函数内部调用获取用户输入
result = calculate_division(input, input)
print(result)

更直观的简化写法(直接在函数内获取输入)

如果不需要把输入函数作为参数传递,这种写法更易读:

def calculate_division():
    attempts = int(input("请输入attempts数值:"))
    completions = int(input("请输入completions数值:"))
    if completions == 0:
        return "错误:除数不能为0"
    return attempts / completions

print(calculate_division())

关键修改点

  1. 获取输入值:必须调用input()(带括号)才能得到用户输入的字符串,再用int()转为整数类型,才能进行数学运算。
  2. 避免除零错误:增加除数为0的判断,防止程序运行时崩溃。
  3. 函数参数用途明确:如果一定要把输入函数作为参数传递,要在函数内部调用它获取值,而不是直接对函数对象做运算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:45:37