Python 3.5根据一个人的小时工资和小时工资率计算其工资

Python 3.5根据一个人的小时工资和小时工资率计算其工资,python,python-3.x,Python,Python 3.x,根据某人的工资率和工作时间计算其工资。下面的代码计算为: <function salary at 0x000002326B31D048> 如何使用下面的代码运行此操作 payrate= input("How much do you get paid per hour") hrsworked= input("How many hours have you worked?") def salary(pay): if hrsworked<=4

根据某人的工资率和工作时间计算其工资。下面的代码计算为:

<function salary at 0x000002326B31D048>  
如何使用下面的代码运行此操作

 payrate= input("How much do you get paid per hour")
    hrsworked= input("How many hours have you worked?")

    def salary(pay):
        if hrsworked<=40:
            salary=payrate*hrsworked
        elif hrsworked>40:
            salary=payrate*(1.5*(hrsworked-40))
        return salary
    print (salary)
您没有调用您定义的salary函数,您定义了一个从未使用过的参数。将函数定义更改为:

def salary(payrate, hrsworked):
    if hrsworked<=40:
        salary=payrate*hrsworked
    elif hrsworked>40:
        salary=payrate*(1.5*(hrsworked-40))
    return salary
请注意,在这种情况下,函数不需要接受参数,因为它可以读取您设置的全局变量,但这样做是最佳实践;除非重写全局变量,否则无法重用的函数,因为它不是非常灵活/可重用的。

您没有调用定义的薪资函数,并且定义了一个从未使用过的参数。将函数定义更改为:

def salary(payrate, hrsworked):
    if hrsworked<=40:
        salary=payrate*hrsworked
    elif hrsworked>40:
        salary=payrate*(1.5*(hrsworked-40))
    return salary

请注意,在这种情况下,函数不需要接受参数,因为它可以读取您设置的全局变量,但这样做是最佳实践;除非重写全局变量,否则无法重用的函数,因为它不是非常灵活/可重用。

您正在尝试通过执行printsalary来打印函数。从这个函数中删除pay参数,它什么也不做

最后,您可能需要的打印函数是printsalary,它将实际调用salary函数并打印其值


Shadow的答案更好,因为它不依赖全局变量,这很容易成为程序中的一个问题

您正试图通过执行printsalary来打印函数。从这个函数中删除pay参数,它什么也不做

最后,您可能需要的打印函数是printsalary,它将实际调用salary函数并打印其值

Shadow的答案更好,因为它不依赖全局变量,这很容易成为程序中的一个问题

这里的东西很少

您正在尝试打印薪水,薪水可以是变量,也可以是函数。我建议重命名函数或变量。 我想你是想在print函数中调用salary。但是,您已将pay设置为打印函数中未使用的参数。印刷工资 您使用的是数字,因此最好直接将输入函数转换为int,如-payrate=intinputh您每小时获得多少工资,对另一个也一样。 我修复了代码,现在可以使用了

另外,我不确定我们是应该在这里给出答案,还是只是引导他们通过它。不管怎样,我会给你的,如果我是新来的,请告诉我不应该这样做:

这里没什么

您正在尝试打印薪水,薪水可以是变量,也可以是函数。我建议重命名函数或变量。 我想你是想在print函数中调用salary。但是,您已将pay设置为打印函数中未使用的参数。印刷工资 您使用的是数字,因此最好直接将输入函数转换为int,如-payrate=intinputh您每小时获得多少工资,对另一个也一样。 我修复了代码,现在可以使用了

另外,我不确定我们是应该在这里给出答案,还是只是引导他们通过它。不管怎样,我会给你的,如果我是新来的,请告诉我不应该这样做:

比:

因为您使用的是全局变量和复杂代码,这可能会有问题

另一项说明: 您有一个名为salary的函数和一个名为salary的变量。那太糟糕了,请更改一个的名称

比:

因为您使用的是全局变量和复杂代码,这可能会有问题

另一项说明:
您有一个名为salary的函数和一个名为salary的变量。这很糟糕,请更改一个程序的名称。

理想情况下,给他们答案,但请解释为什么它有效,以便任何人都能理解。此外,你应该在帖子中内联程序,而不是发布到外部网站。保持谦虚!理想情况下,给他们答案,但解释为什么它有效,以便任何人都能理解。此外,你应该在你的帖子中内联程序,而不是发布到外部网站。保持谦虚!
payrate   = int(input("How much do you get paid per hour"))
hrsworked = int(input("How many hours have you worked?"))

    def salary():
        if hrsworked <= 40:
            salary = payrate * hrsworked
        elif hrsworked > 40:
            salary = payrate * (1.5 * (hrsworked - 40) )
        return salary

    print(salary())
 def salary(payrate, hrsworked):

 # And

 print(salary(payrate, hrsworked))
 def salary():