【问题标题】:I keep getting TypeError: 'str' object is not callable and I am not sure how to fix it我不断收到 TypeError: 'str' object is not callable 我不知道如何修复它
【发布时间】:2021-06-06 23:12:11
【问题描述】:

这是我编写的代码,它应该告诉我圆的半径,但我一直收到错误。

PI = 3.141593
radius_p = float(input('radius'))
perimeter = 2 * PI * radius_p
print('perimeter: ') + str(perimeter)
# Ask the user for the radius of the room
# Calculate the perimeter
# Print the perimeter

this is what I get after 

```
TypeError                                 Traceback (most recent call last)
<ipython-input-80-ba1678e7ffca> in <module>()
      2 radius_p = float(input('radius'))
      3 perimeter = 2 * PI * radius_p
----> 4 print('perimeter: ') + str(perimeter)
      5 # Ask the user for the radius of the room
      6 # Calculate the perimeter

TypeError: 'str' object is not callable

【问题讨论】:

  • print('perimeter: ' + str(perimeter))
  • @SeanHsieh 我把它改成了那个,但仍然出现同样的错误
  • 我猜问题是您在代码中的某处使用了str 作为变量名。不要使用内置名称作为变量名。
  • 那么你接受的答案为什么会出现同样的错误

标签: python string helper


【解决方案1】:

问题是print() 函数将一个值打印到 shell 或控制台而不返回任何内容。这就是为什么当您将返回NoneTypeprint() 与字符串格式的str() 函数连接时,会导致错误。 Python 不允许对不同类型的变量进行 concat 操作。这是您应该更正代码的内容。

PI = 3.141593
radius_p = float(input('radius'))
perimeter = 2 * PI * radius_p
print('perimeter:', str(perimeter))

您应该通过输入 4 获得类似于我在下面所做的输出。

注意:如果问题仍然存在,那么您需要与我们分享完整的代码,因为您可能在不正确的地方使用 str 对象作为变量名

【讨论】:

  • 谢谢你的工作。由于某种原因,它在我正在使用的程序中不起作用
【解决方案2】:

打印语句行的语法错误。应该是

print('周长:' + str(周长))

如果您仍然收到错误,只是为了检查将周长的字符串值分配给另一个变量并打印

newperi = str(周长)

print('周长:' + newperi)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 2018-01-26
    • 2023-03-18
    • 2014-11-25
    • 2021-02-03
    • 2016-01-01
    相关资源
    最近更新 更多