2016-10-17 7 views
-4

私のpythonプログラムは実行されていません。私は何かを逃していることを確認していますが、私はかなり間違ってインデントした。誰も私に手を貸すことができますか?ありがとうございました!Pythonのインデント

def main(): 
 
    sales = getSales() 
 
    advancedPay = getAdvancedPay() 
 
    commRate = DetermineCommRate(sales) 
 
    pay = (sales * commRate) - advancedPay 
 
    print("The pay is $". format(pay, ",.2f"), sep="") 
 
    
 
if pay < 0: 
 
    print("The salesperson must reimburse") 
 
    print("the company") 
 

 
def getSales(): 
 
    monthlySales = float(input("Enter the monthly sales: ")) 
 
    return monthlySales 
 

 
def getAdvancedPay(): 
 
    print("Enter the amount of advanced pay or ") 
 
    print("Enter 0 if no advanced pay was given. ") 
 
    advancedPay - float(input("Advanced pay: ") 
 
    return advancedPay 
 
    
 

 
def DetermineCommRate 
 
    if sales < 10000: 
 
     rate = 0.10 
 
    elif sales >= 10000 and sales <= 14999.99: 
 
     rate = 0.12 
 
    elif sales >= 15000 and sales <= 17999.99: 
 
     rate = 0.14 
 
    elif sales >= 18000 and sales <= 21999.99: 
 
     rate = 0.16 
 
    else: 
 
     rate = 0.18 
 

 
    return rate 
 

 
main()

私のpythonプログラムイマイチランニング。私は何かを逃していることを確認していますが、私はかなり間違ってインデントした。誰も私に手を貸すことができますか?ありがとうございました!

+0

'advancedPayこの行の構文エラー - フロート(入力(「高度な有料:DetectCommRate(): ')' '' ''を '='に置き換えて閉じ括弧を追加します –

+0

もう一つの問題は '' DetermineCommRate''が正しく書かれていないことです。 – idjaw

+3

あなたは文法が間違っています。コード。 – TigerhawkT3

答えて

1

salesmain()内のローカル変数であり、あなたがDetermineCommRateでそれにアクセスしようとしている、とあなたがその関数の定義

def DetermineCommRate(sales): 

に構文エラーがあります現在、あなたはそれに売り上げを渡していますが、受け入れていません。また、あなたの次の行がメインで実行するようにインデントされなければならない

()

if pay < 0: 
    print("The salesperson must reimburse") 
    print("the company") 

、あまりにも

advancedPay = float(input("Advanced pay: ")) 
0

コメントありがとうございます。私は無効なものを削除し、プログラムに取り組んでいました。

いくつかの構文エラーがありません。あなたはadvancedPayの入力で括弧を閉じ、DetermineCommRateの宣言を終了し、ブロックを支払う場合はをインデントし、その宣言(1つの引数)を使用してその宣言(数値&)を照合します。

また、最終的な印刷でフォーマットに問題があります。例をもう一度確認し、の支払いをに印刷するように仕様を修正してください。私が見ることができるものから、

def main(): 
    sales = getSales() 
    advancedPay = getAdvancedPay() 
    commRate = DetermineCommRate(sales) 
    pay = (sales * commRate) - advancedPay 
    print("The pay is $ {0:8.2f}". format(pay), sep="") 

    if pay < 0: 
     print("The salesperson must reimburse") 
     print("the company") 

def getSales(): 
    monthlySales = float(input("Enter the monthly sales: ")) 
    return monthlySales 

def getAdvancedPay(): 
    print("Enter the amount of advanced pay or ") 
    print("Enter 0 if no advanced pay was given. ") 
    advancedPay = float(input("Advanced pay: ")) 
    return advancedPay 

def DetermineCommRate(sales): 
    if sales < 10000: 
     rate = 0.10 
    elif sales >= 10000 and sales <= 14999.99: 
     rate = 0.12 
    elif sales >= 15000 and sales <= 17999.99: 
     rate = 0.14 
    elif sales >= 18000 and sales <= 21999.99: 
     rate = 0.16 
    else: 
     rate = 0.18 

    return rate 

main() 
+0

を使用しています。私はpython 3 –

+0

を使用していますが、問題は1つだけです。私はすべての数字を入力すると、私はouputを得る:: –

+0

"お金は$ですが、私はそれ以降の数字を取得しないでください –

関連する問題