python 上的缩进

Indentation on 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 程序不是 运行。我确定我遗漏了一些东西,但我很确定我只是缩进错了。谁能帮我一把?谢谢!

感谢您的评论;我删除了无效的东西并继续编写程序。

您遗漏了几个语法错误。您需要关闭 advancedPay 输入中的括号,完成 DetermineCommRate 的声明,缩进 if pay 块,然后将该声明(参数的编号和名称)与使用 (一个参数)。

您还遇到了最终打印的格式问题。再次检查示例并修复规范以打印 pay.

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()

据我所知,salesmain() 中的局部变量,而您正试图在 DetermineCommRate 中访问它,并且您在定义中存在语法错误该功能

def DetermineCommRate(sales):

目前,您正在将销售额传递给它,但不接受它。

此外,您的下一行应在 main()

中缩进到 运行
if pay < 0:
    print("The salesperson must reimburse")
    print("the company")

这一行也有语法错误

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