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

Python函数内使用int(input())出现TypeError报错问题求助

解决TypeError: int() takes 0 positional arguments but 1 was given的问题

这个错误的核心原因很简单:你当前的Python环境里,内置的int()函数被意外覆盖了。

你的代码本身是没有语法问题的——我在干净的Python环境里测试了这段代码,输入合法的年龄和名字完全能正常运行。那为什么在你的函数里会报错呢?

大概率是你在运行这段函数之前,不小心在同一个环境里做了类似下面的操作:

  • 把int赋值成了一个变量,比如int = 10
  • 或者自己定义了一个叫int的无参函数,比如:
    def int():
        return 0
    

这两种操作都会把Python原本用来做类型转换的内置int给覆盖掉。当你在函数里调用int(input(...))时,实际调用的是你自己定义的那个无参的int(或者是一个非函数的对象),自然就会抛出"不需要参数但传入了一个"的错误。而函数外之前能正常运行,可能是因为你覆盖int的操作是在定义函数之后执行的,或是之前的测试环境是干净的,后来不小心污染了环境。

解决方法:

  • 如果是在Python交互环境(比如命令行的>>>模式)里遇到这个问题,直接重启Python解释器就行,重启后内置的int函数会恢复正常。
  • 如果是在脚本文件里,仔细检查整个脚本,找到所有把int当成变量名或者自定义函数名的地方,把名字改掉(比如换成my_int、custom_int这类不会和内置名称冲突的名字)。

验证一下

在干净的环境里运行你的代码:

def ea():
    x,y = int(input("enter age:")),input("enter name:")
    if x > 0:
        print(f"My name is {y} and I am {365*(x)} on earth")
    else:
        ea()

ea()

输入20和Alice,会输出:

My name is Alice and I am 7300 on earth

完全正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 06:08:10