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'
添加回答
举报
