我的打印声明有问题吗?

时间:2019-09-11 04:19:29

标签: python

我必须输入diameter,然后将其更改为浮点数,然后将diameter除以2。我的代码开头有效,但是当我编码时,print (radius)它停止工作了。也许我弄错了?

diameter = float(input("Enter a diameter:  "))
print(diameter)

#changing diameter to type float

myfloat = diameter

#creating a variable name radius
# assign radius the value og diameter/2

radius = (diameter/2)   # this where it went wrong

print = "The radius is equal to"  
print(radius)

我不断得到'str' object is not callable

4 个答案:

答案 0 :(得分:4)

Python是一种动态类型化的语言,这意味着您可以重新分配几乎所有内容,包括内置的print函数。

这样做的时候...

print = "The radius is equal to"

...您正在将print的值设置为str,这是不可调用的。相反,只需使用其他名称,例如foo

foo = "The radius is equal to"
print(foo)
print(radius)

答案 1 :(得分:2)

您尝试将print分配给您的字符串,而不是打印它。这使得print成为变量,而不是就代码而言的函数。这是工作代码。

diameter = float(input("Enter a diameter: "))
print(diameter)
myfloat = diameter
radius = (diameter/2)
print("The radius is equal to")
print(radius)

答案 2 :(得分:1)

您在代码中执行的操作是为现有方法string分配一个print值。在python中,您可以将任何值重新分配给任何值,因为python是“动态类型语言”之一。因此,print变成了string变量。现在,您正在做的是像使用print的方法那样调用(),因此类型为print的{​​{1}}不是一种方法,因此您不能那样调用,这就是为什么出现错误str的原因。

尝试以下操作:

'str' object is not callable

希望对您有帮助。

答案 3 :(得分:0)

我自由地重写了您的代码。希望你不要介意。如果您仍然不了解如何使用str()函数,则可能会有所帮助:https://www.youtube.com/watch?v=5cvM-crlDvg

'''这正在创建一个需要用户输入的变量。 浮点数只是作为预防措施,如果它们包含小数点''' num = float(input('输入数字:'))

'''然后输入方程式。''' 半径= num / 2

'''要打印此文件,请注意我如何使用“ str()”函数。这使它 这样就可以在字符串中添加数字。''' print('半径为'+ str(半径)) '''^                          |这是至关重要的。没有它,程序将无法工作。

'''

相关问题