2017-03-07 5 views
-1

私はクラスのプロジェクトのための計算機を書くが、エラーで打た維持しようとしています:'float'型の非整数でシーケンスを掛けることはできませんか?

Traceback (most recent call last): File "C:\Users\shane\PythonPrograms\louie.py", line 56, in tax_percent = (price * tax) TypeError: can't multiply sequence by non-int of type 'float'

私のコードは以下の通りです。誰も私がこれをデバッグするのを手助けすること

size_types = {'mini', 
       'regular', 
       'large' 
} 

meat_types = {'pork', 
       'beef', 
       'chicken' 
} 

def price_pork_meal(size): 
    if size == 'mini': 
     return 3.00 
    if size == 'regurlar': 
     return 4.00 
    if size == 'large': 
     return 6.00 
    else: 
     return (input('Please try again:')) 
    return size 

def price_beef_meal(size): 
    if size == 'mini': 
     return 4.00 
    if size == 'regular': 
     return 7.00 
    if size == 'large': 
     return 9.00 
    else: 
     return (input('Please try again:')) 
    return size 

def price_chicken_meal(size): 
    if size == 'mini': 
     return 3.50 
    if size == 'regular': 
     return 6.00 
    if size == 'large': 
     return 8.00 
    else: 
     return (input('Please try again:')) 
    return size 

def final_price(price, tax_percent): 
    price = size 
    total_price = price + tax_percent 
    return total_price 


size = (input('Please enter mini, regular, or large:\n')) 

price = size 

tax = 0.825 

tax_percent = (price * tax) 

print(final_price(price, tax_percent)) 
+0

あなたの中にあなたの完全なコードを入れてください質問 – River

+0

変数 'price'は' list'や 'tuple'のようで、あなたは' float'でそれを乗算しようとしています。 – Abdou

答えて

1

あなたのアプローチはPythonでは無効です。エラーで記述されているように、シーケンスに浮動小数点値を掛けることはできません。

これは動作しません。

a = (1,2,3) 
b = a * 0.25 

あなたは次のようにこれをサポート(などがはるか)は、numpyを使用するか、これを自分で実装することができます。

a = (1,2,3) 
b = list(map(lambda x: x*0.2, a)) # or many other approaches; outer list needed in python3 to make it a list instead of an generator-expression 
関連する問題