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

Python自定义input函数报takes 0 positional arguments错误如何解决?

错误原因

你自定义的函数使用了input作为名称,直接覆盖了Python内置的input()函数。当你在自定义函数内部执行input("Enter your number in to list = ")时,实际调用的是你写的无参自定义input,传入的字符串参数和函数定义的参数规则不符,因此触发TypeError: method() takes 0 positional arguments but 1 was given报错。

修复方案
  • 给自定义函数重命名,避免和内置函数重名,比如改为get_input_number
  • 同步修改末尾的函数调用语句即可

修复后的完整代码如下:

list_number = list()

def get_input_number():
    while True: 
        try:    
            number = input("Enter your number in to list  =  ")
            if number == "Quit":
                break   
            number = int(number)  
            list_number.append(number)
            print(list_number)
        except ValueError as e:
            print(e)
       

def diagram():
    display = ""
    for i in list_number:
         for j in range(i):
             display = display +"@"
         print(display)
         display = ""       

get_input_number()
diagram()
注意事项

不要使用Python内置的函数名、关键字作为自定义变量、函数的命名,否则会覆盖原有内置功能,触发各类意料之外的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:57:01