python-3.x 如何在'float(input())'命令后添加字符串?[duplicate]

ogq8wdun  于 2022-11-19  发布在  Python
关注(0)|答案(3)|浏览(127)

此问题在此处已有答案

Cannot concatenate 'str' and 'float' objects? [duplicate](3个答案)
2天前关闭。
我正在制作一个厘米到英尺的转换器,但是我在添加字符串以跟随用户输入时遇到了麻烦

height = float(input("You are: "))
print (height * 0.0328 )
print (height + "feet tall!")

这是我收到的错误消息:

You are: 5.5760000000000005

Traceback (most recent call last):
  File "file0.py", line 3, in <module>
    print (height + "feet tall!")
TypeError: unsupported operand type(s) for +: 'float' and 'str'

程序只运行了一半,如果这有意义,我怎么解决?

41zrol4v

41zrol4v1#

您需要将相同的格式变量连接起来,例如
字符串+字符串=允许
字符串+数字=不允许。
您需要将int类型转换为str。

print (str(height) + "feet tall!")
liwlm1x9

liwlm1x92#

我们无法将float与string连接起来。在连接之前,需要将height变量转换为string类型。

print (str(height) + "feet tall!")

这应该可以解决您的问题。

xfb7svmp

xfb7svmp3#

这里有几个问题,但我将解决导致您的错误消息的问题,它是由下面的代码行引起的:

print (height + "feet tall!")

height存储为float(数字),而“feet tall!”存储为string(文本)。您无法将两者连接在一起,因此出现错误。要解决此问题,您需要使用str()将height转换为字符串,如下所示:

print (str(height) + "feet tall!")

现在进入第二个问题。如果我运行这个更新的代码,如果我输入高度175,我得到的输出是:

You are: 175
5.74
175.0feet tall!

正如你所看到的,代码在执行转换时并没有更新实际的身高数值。你不应该打印这一行,而是应该将它赋回height,这样它就会更新,如下所示:

height = height * 0.0328

现在运行我得到这个输出:

You are: 175
5.74feet tall!

把所有这些放在一起(并在英尺高之前添加一个额外的空间,这样它就更不稳定了),代码变成:

height = float(input("You are: "))
height = height * 0.0328
print (str(height) + " feet tall!")

相关问题