3

私はいくつかの電気部品の税金を計算する簡単なプログラムを書きました、それはこのようになります:

print "How much does it cost?",    
price = raw_input()    
print "Tax: %s" % (price * 0.25)    
print "Price including tax: %s" % (price * 1.25)    
raw_input ("Press ENTER to exit")

そして、私はこのエラーを受け取り続けます:

Traceback (most recent call last):
  File "moms.py", line 3, in <module>
    print "Tax: %s" % (price * 0.25)
TypeError: can't multiply sequence by non-int of type 'float'
4

4 に答える 4

2

raw_input()によって返される文字列をfloat最初の文字列に変換する必要があります。

price = float(raw_input("How much does it cost?")) # no need for extra print 
于 2012-11-03T12:09:20.680 に答える
1

これは、それpriceが数字ではないことを意味します。実際、それは文字列です。それraw_inputが返されるものだからです。を使用して解析するfloatか、inputの代わりにを使用することをお勧めしますraw_input

于 2012-11-03T12:09:06.243 に答える
1

基本的に、文字列にフロートを掛けることはできません。

price = float(raw_input())
于 2012-11-03T12:09:17.077 に答える
1

price文字列です。入力した文字列からfloatを作成する必要があります。

>>> price_str = raw_input()
123.234
>>> print type(price)
<type 'str'>
>>> price = float(price_str)
>>> print type(price)
<type 'float'>
>>> print "Tax: %s" % (price * 0.25)   
Tax: 30.8085
>>> 
于 2012-11-03T12:11:20.417 に答える