0

Good evening,
I am new to this website. And I am also new to Python. Actually I am currently in a Python class at school. I am having some difficulty with this Payroll Program. I was wondering if anyone could help. Here is my code:

def hours():
hours = input("How many hours did they work?: ")
return hours

def payrate():
payrate = input("How much is their payrate?: ")
return payrate

def calchours(pr, h):
if h > 40:
rh = 40
oh = h - 40
if h > 60:
print "Can't exceed 60 hours in a week!"
if h <= 0:
print "Can't work less than 1 hour a week!"
else:
rh = h
oh = 0

def main():
hrs = hours()
pyr = payrate()
calchours (pyr, hrs)

main()

What I am looking for is trying to get the message that pops up if someone works less than 1 hour a week. I have the greater than 60 hours working, but I can't get the less than 1 hour working. This is just the start of the program. I also am trying to get this to loop until anyone types DONE. Any help would be grateful.

(P.S. I would like to thank Vegaseat for his prior code).

(P.S.S. I know I have the tabbing correct. I just don't know how to paste it like actual code).

5
Contributors
8
Replies
10
Views
8 Years
Discussion Span
Last Post by woooee
0

PLEASE use code tags; re-edit your above post. As you can see, your indentation gets lost without them, and it's essential for Python.

Shouldn't

if h <= 0:
    print "Can't work less than 1 hour a week!"

be changed to

if h < 1:
    print "Can't work less than 1 hour a week!"

Tell me if that changes your error message for less than 1 hour a week.

0

Good evening,
I am new to this website. And I am also new to Python. Actually I am currently in a Python class at school. I am having some difficulty with this Payroll Program. I was wondering if anyone could help. Here is my code:

def hours():
    hours = input("How many hours did they work?: ")
    return hours
 
def payrate():
    payrate = input("How much is their payrate?: ")
    return payrate
 
def calchours(pr, h):
    if h > 40:
        rh = 40
        oh = h - 40
        if h > 60:
            print "Can't exceed 60 hours in a week!"
            if h <= 0:
                print "Can't work less than 1 hour a week!"
    else:
        rh = h
        oh = 0
    
def main():
    hrs = hours()
    pyr = payrate()
    calchours (pyr, hrs)
 
main()

What I am looking for is trying to get the message that pops up if someone works less than 1 hour a week. I have the greater than 60 hours working, but I can't get the less than 1 hour working. This is just the start of the program. I also am trying to get this to loop until anyone types DONE. Any help would be grateful.

(P.S. I would like to thank Vegaseat for his prior code).

(P.S.S. I know I have the tabbing correct. I just don't know how to paste it like actual code).

0

Well I hoped that worked. I very new to this website. But the information I have found on this website has been helpful.

0

This is the kind of this that makes for an angry employee on pay day:

print "Can't exceed 60 hours in a week!"

Yes, I know it's probably part of your instructions.

You've already determined that h > 40 , so you know this will never be true:

if h <= 0:
    print "Can't work less than 1 hour a week!"

Also, you're testing for the wrong condition if you are checking for less than 1 hour worked.

0

Shouldn't

if h <= 0:
    print "Can't work less than 1 hour a week!"

be changed to

if h < 1:
    print "Can't work less than 1 hour a week!"

That wont change anything because h<=0 will be true if h is 0 or below, the same will be for h<1. That is though, if we are only working with integers. So if the user enters a float or the program is working with floats then you would be correct shadwickman.

0

My assignment involves me to check for both parameters that are if the employee has worked no more then 60 hours in a week and less then 1 hour. Those are both the parameters I need to meet. So in order for it to check if then would work less then 1 I would need to set up a float?

0

Well only if you expect the employee to work for lets say 14.5 hours, then you would have to use

if h<1:
    print "error"

But if you are only dealing with whole numbers then you can stick with what you have got

if h <=0:
    print "error"

Does that make sense?

0

Depending on the version of Python you are using, this may or may not return a string
hours = input("How many hours did they work?: ")
If it is a string and not a float
print type(hours),
the function should
return float(hours)
Hopefully, it is obvious why you want to do this.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.