如何从输入变量中相乘?

我无法弄清楚如何增加我的用户输入。


我尝试将“int”变量的函数更改为“float”和“str”,但我似乎无法弄清楚。我的代码:


pops = input("Enter your favorite pop: ")

cost = input("Enter how much they cost: ")

how_many = input("Enter how many pops you have: ")


print('My favorite pop is ' + pops + '!')

print('They cost about ' + cost + ' dollars.')

print('I have about ' + how_many + ' pops!')


result = str(cost) * str(how_many)


print("You have spent over " + result + " dollars on pops!")

我有下一个错误:


结果 = str(cost) * str(how_many) TypeError:不能将序列乘以“str”类型的非整数


偶然的你
浏览 137回答 3
3回答

慕村225694

首先,我强烈建议您从一些指南/教程开始,或者至少阅读官方 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))

函数式编程

您正在尝试将两个字符串相乘。你应该像这样乘法:result = float(cost) * int(how_many)但不要忘记在最后一行将结果重新转换为字符串,否则它会给你另一个错误(TypeError在这种情况下)print("You have spent over " + str(result) + " dollars on pops!")

慕后森

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'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python