ShirtNumber = input('How many shirts would you like to order?')
if ShirtNumber >= '12':
Discount = '0.70'
Shipping = '0'
elif ShirtNumber >= '6':
Discount = '0.80'
Shipping = '8.99'
elif ShirtNumber >= '3':
Discount = '0.90'
Shipping = '8.99'
TotalCost = (ShirtNumber * Discount) * 12.99 + Shipping
print('Your total cost comes out to:$ ', TotalCost)
错误是:
TotalCost = (ShirtNumber * Discount) * 12.99 + Shipping
TypeError: can't multiply sequence by non-int of type 'str'
我刚开始编程,所以我还没有完全理解,这只是我的第一个任务。我复习了笔记,似乎不明白自己做错了什么。你知道吗
该计划是基于订购衬衫与较大的数字是订购折扣。如果您有任何建议,将不胜感激。你知道吗
ShirtNumber
是一个字符串,不能在两个字符串之间进行数学运算。您可能需要先将其转换为int:类似的,代码中的每个数字都应该是数字,没有引号,比如
问题是您试图在算术中使用字符串。你知道吗
函数
input()
将返回string类型的值。因此,为了对ShirtNumber
进行算术运算,必须将其转换为整数或浮点数。要实现前者,可以使用函数int()
。这里的文档:https://docs.python.org/2/library/functions.html#int。你知道吗所以在你的代码里
您不必做,但也可能需要考虑的是,首先验证您收到的输入是否为整数形式。为此,可以使用https://docs.python.org/2/library/stdtypes.html中的函数
isdigit()
。你知道吗如果输入的是而不是的整数形式,您可能需要要求用户重新输入他们的答案。为此,可以使用while循环,如下所示:
最后一点注意:通常的做法是将变量名的第一个字符设置为小写。这取决于您,但这是最常见的约定(尽管在某些语言中不太常见,如C#)。http://en.wikipedia.org/wiki/Naming_convention_%28programming%29#Letter_case_and_numerals
你把字符串和数字搞混了。你知道吗
根据经验法则,你做的任何数学运算-加、减、除等等-都是一个数字。你知道吗
数字没有引号-
discount = 0.8
大多数其他东西都是字符串,即使它们包含数字。例如,电话号码是字符串-你永远不会增加或减少电话号码。你知道吗
字符串如下:
phonenumber='095801374'
。你知道吗字符串可以连接在一起(使用“+”符号)-“1”+“2”=“12”。你知道吗
使用input()读取的任何内容都将返回一个字符串(即使您知道它是一个数字)。您可以将字符串转换为数字,只需将其强制转换为:
ShirtNumber=int(ShirtNumber)
。请注意,如果在询问衬衫数量时,他们键入了five
(而不是5
),那么您将得到一个异常。你知道吗相关问题 更多 >
编程相关推荐