我不断收到 TypeError: 'str' object is not callable,我不知道如何修复它

时间:2021-03-09 03:48:48

标签: python string helper

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

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

2 个答案:

答案 0 :(得分:2)

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

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

你应该得到一个类似于我在下面输入 4 所做的输出。 enter image description here

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

答案 1 :(得分:0)

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

<块引用>

print('perimeter:' + str(perimeter))

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

<块引用>

newperi = str(perimeter)

<块引用>

print('perimeter:' + newperi)