3 回答
TA贡献1880条经验 获得超4个赞
首先,我强烈建议您从一些指南/教程开始,或者至少阅读官方 python 文档以了解语言基础知识。
关于你的问题。我将向您展示如何使用官方文档找到解决方案的基本算法。
input()
让我们检查一下函数文档。然后该函数从输入中读取一行,将其转换为字符串,然后返回。
python 中的字符串表示为
str
. 所以,执行完input()
variables后pops
,cost
并how_many
包含str
值。在您的代码中,您正在使用
str()
函数。让我们在文档中检查这个函数的作用:返回对象的str版本。
现在您理解了这些表达式
str(cost)
并str(how_many)
转换str
为str
这意味着..什么都不做。如何将输入中的值相乘?
您需要将两个值相乘,这需要转换
str
为一种数字类型。因为
cost
我们将使用float
,因为它可以包含小数。因为how_many
我们可以使用int
原因计数通常是整数。要转换str
为数字,我们将使用float()
和int()
函数。在您的代码中,您只需编辑发生错误的行并
str()
用适当的函数替换无用的调用:result = float(cost) * int(how_many)
乘法的结果
float
将int
是float
。如何打印结果?
您正在使用的代码将引发错误,因为您无法对
str
和float
. 有几种方法可以打印所需的消息:转换
result
为str
.这是最明显的方式 - 只需使用
str()
函数:print("You have spent over " + str(result) + " dollars on pops!")
使用功能特点
print()
:在文档中写道:
打印( *对象,sep='',end='\n',file=sys.stdout,flush=False )
将对象打印到文本流文件,以sep分隔,后跟end。
正如我们所见,对象之间的默认分隔符是空格,所以我们可以只列出字符串的开头,
result
并以print()
函数的参数结尾:print("You have spent over", result, "dollars on pops!")
这是一个非常复杂的主题,您可以通过以下提供的链接阅读更多信息,我将向您展示一种使用
str.format()
函数的方法:print("You have spent over {} dollars on pops!".format(result))
TA贡献1807条经验 获得超9个赞
您正在尝试将两个字符串相乘。你应该像这样乘法:
result = float(cost) * int(how_many)
但不要忘记在最后一行将结果重新转换为字符串,否则它会给你另一个错误(TypeError
在这种情况下)
print("You have spent over " + str(result) + " dollars on pops!")
TA贡献1802条经验 获得超5个赞
str(item)
转换item
为字符串。同样,float(item)
转换item
为浮点数(如果可能)。
编码:
result = float(cost) * int(how_many)
不会产生与您指示的相同的错误,但ValueError
如果给定的输入不是您所期望的,则可能会引入 a 。
例子:
a = "b" float(a)
输出
ValueError: could not convert string to float: 'b'
添加回答
举报