为了账号安全,请及时绑定邮箱和手机立即绑定

如何从输入变量中相乘?

如何从输入变量中相乘?

偶然的你 2022-05-24 09:27:35
我无法弄清楚如何增加我的用户输入。我尝试将“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”类型的非整数
查看完整描述

3 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

首先,我强烈建议您从一些指南/教程开始,或者至少阅读官方 python 文档以了解语言基础知识。

关于你的问题。我将向您展示如何使用官方文档找到解决方案的基本算法。

  1. input()让我们检查一下函数文档。

    然后该函数从输入中读取一行,将其转换为字符串,然后返回。

    python 中的字符串表示为str. 所以,执行完input()variables后popscosthow_many包含str值。

  2. 在您的代码中,您正在使用str()函数。让我们在文档中检查这个函数的作用:

    返回对象的str版本。

    现在您理解了这些表达式str(cost)str(how_many)转换strstr这意味着..什么都不做。

  3. 如何将输入中的值相乘?

    您需要将两个值相乘,这需要转换str为一种数字类型

    因为cost我们将使用float,因为它可以包含小数。因为how_many我们可以使用int原因计数通常是整数。要转换str为数字,我们将使用float()int()函数。

    在您的代码中,您只需编辑发生错误的行并str()用适当的函数替换无用的调用:

    result = float(cost) * int(how_many)

    乘法的结果floatintfloat

  4. 如何打印结果?

    您正在使用的代码将引发错误,因为您无法对strfloat. 有几种方法可以打印所需的消息:

    1. 转换resultstr.

      这是最明显的方式 - 只需使用str()函数:

      print("You have spent over " + str(result) + " dollars on pops!")
    2. 使用功能特点print()

      在文档中写道:

      打印( *对象sep=''end='\n'file=sys.stdoutflush=False 

      将对象打印到文本流文件,以sep分隔,后跟end

      正如我们所见,对象之间的默认分隔符是空格,所以我们可以只列出字符串的开头,result并以print()函数的参数结尾:

      print("You have spent over", result, "dollars on pops!")
    3. 字符串格式化

      这是一个非常复杂的主题,您可以通过以下提供的链接阅读更多信息,我将向您展示一种使用str.format()函数的方法:

      print("You have spent over {} dollars on pops!".format(result))


查看完整回答
反对 回复 2022-05-24
?
函数式编程

TA贡献1807条经验 获得超9个赞

您正在尝试将两个字符串相乘。你应该像这样乘法:

result = float(cost) * int(how_many)

但不要忘记在最后一行将结果重新转换为字符串,否则它会给你另一个错误(TypeError在这种情况下)

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


查看完整回答
反对 回复 2022-05-24
?
慕后森

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'



查看完整回答
反对 回复 2022-05-24
  • 3 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信