如何在这里使用def * insert name *():函数?

时间:2017-10-11 20:40:24

标签: python

我是python的新手,除了def main()之外还有一个关于在代码中使用更多函数的问题:

我的代码可以使用,但我正在尝试将新的def添加到各自的区域。

所以就像一个名为def defPay():)的新def,计算出的小时数(regPay,overtimePay和total)作为3个单独的项目。  &安培; 还添加一个名为def defOutput():)的新def,该函数将从(overtimePay,regPay和totalPay)接收所有三个值并打印下面的消息。

如果有人可以向我解释如何使用除main之外的新功能,那将非常感激。

谢谢,这是我的代码:

def main():

    try:
        hoursWorked = float(input("How many hours did you work? "))


        if hoursWorked > 40:
                overtimePay = (hoursWorked - 40) * 15
                regPay = 40 *10
                totalPay =( overtimePay + regPay)

        else:
            regPay = hoursWorked * 10
            overtimePay = 0
            totalPay = (regPay + overtimePay)


        print("You earned",'${:,.2f}'.format(regPay),"in regular pay",'${:,.2f}'.format(overtimePay),
              "in overtime for a total of",'${:,.2f}'.format(totalPay))
    except:
        print("Sorry, that wasn't a valid number. Ending program")


main()

2 个答案:

答案 0 :(得分:0)

您可以在main函数声明之外声明函数,然后在main函数中使用它们(或在main函数中的其他函数内部)。

所以你可以这样做:

def calcPay(hours):
    # Does logic
    return [400, 30, 430]

def displayOutput(regPay, overtimePay, totalPay):
    # Prints formatted string

def main():
    hoursWorked = float(input("How many hours did you work? "))
    pay = calcPay(hoursWorked)
    displayOutput(pay[0], pay[1], pay[2])

main()

答案 1 :(得分:-2)

看看这些类似的问题:

  1. What does it mean to call a function?

  2. How to correctly define a function?

  3. Basic explanation of Python functions?

  4. 名为main的函数没什么特别之处。您可以随意命名函数。

    当你“调用”一个函数时,你只是从一个代码块跳到另一个代码块。当函数返回时,它返回到调用它的行。

    def something():
        print('something')
    
    def other():
        print('else')
    
    def a_value():
        return 100
    
    something()
    other()
    x = a_value()
    print(x)
    
    # ~~~~~ output
    something
    else
    100
    

    在您的示例中,功能的良好用途是计算员工的工资。

    def total_pay(hours_worked, hourly_rate, overtime_after=40):
        base_pay = min(overtime_after, hours_worked) * hourly_rate
        overtime_pay = max(0, hours_worked - overtime_after) * (hourly_rate * 1.5)
        return base_pay + overtime_pay
    

    此功能允许我们定义决定工人工资的三件事。 base_pay最多将是加班前的小时数。 overtime_pay将从0到“其他限制”,此处未定义。加班时间为一半(1.5)。