如何修复Google Colab中的“TypeError:print()接受1个位置参数,但给出了5个”

2024-10-02 08:26:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我该怎么办?你知道吗

我把这个代码放进了Google Colab

def student(sid, name, age):
    print(sid, name, '(', age, ')')

student(age=23, name=Choe, sid='2016129020')

科拉布说

TypeError                                 Traceback (most recent call last)
<ipython-input-44-0beaaa7e73eb> in <module>()
      2   print(sid,name,'(',age,')')
      3 
----> 4 student(age=23, name='Choe', sid='2016129020')

<ipython-input-44-0beaaa7e73eb> in student(sid, name, age)
      1 def student(sid, name, age) :
----> 2   print(sid,name,'(',age,')')
      3 
      4 student(age=23, name='Choe', sid='2016129020')

TypeError: print() takes 1 positional argument but 5 were given

我不明白。:( 预期的输出是:2016129020 Choe ( 23 )


Tags: 代码nameininputagedefipythongoogle
2条回答

把它改成

print(' '.join(sid,name,'(',age,')'))

.join()是任何string的函数,它将使用string连接其参数以形成单个字符串。你知道吗

另一个选项是使用字符串的.format()函数

print('{sid} {name} ( {age} )'.format(sid=sid, name=name, age=age))

当我运行您的代码时,它可以正常工作:

def student(sid, name, age):
    print(sid, name, '(', age, ')')

student(age=23, name='Choe', sid='2016129020')
# 2016129020 Choe ( 23 )

是否可能是您无意中在某个地方重新定义了内置打印函数?例如,我可以这样重现您的错误:

def print(x):
    pass # do nothing

def student(sid, name, age):
    print(sid, name, '(', age, ')')

student(age=23, name='Choe', sid='2016129020')
# TypeError: print() takes 1 positional argument but 5 were given

如果是这样,您应该重新启动运行时并重新执行代码,小心不要覆盖内置函数。你知道吗

相关问题 更多 >

    热门问题