异常:“无法将sequence乘以'float'类型的nonit”

2024-09-30 18:24:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写非常简单的代码来计算文章的折扣。下面是代码,它在代码的第三行抛出异常。例外情况是:

Traceback (most recent call last):
  File "C:/Users/basam/AppData/Local/Programs/Python/Python35/discounts.py", line 3, in <module>
    discount=0.1*price
TypeError: can't multiply sequence by non-int of type 'float'

代码:

^{pr2}$

有人能告诉我问题出在哪里吗?在


Tags: 代码mostlocal文章callusersappdatafile
3条回答

键是int(price)input命令返回存储在变量price中的字符串。在

在第二行中,price被调用int(price)转换为一个数字,但结果不会存储在任何地方。它用于比较,然后丢弃。所以当你在第三行乘法时,你试着把一个数乘以一个字符串。在

更改为 discount=0.1*float(price)

正如@Silvio Mayolo所说,问题是price变量的类型是String。可以包装input()调用,将输入值强制转换为整数,这样可以使计算正常工作

price = int(input('how much is your item?'))
if price <= 10:
    discount = 0.1 * price

print(discount)
>> 0.5

或者更好——考虑到你处理的是可以有十进制值的“money”,使用“float”类型而不是“int”

^{pr2}$

相关问题 更多 >