-2

here is my code

def computepay(h,r):
    if h>40.0:
        OT = 1.5*float(r)
        p=OT
    else:
            ck = float(h)*float(r)
            p=ck
            return 'p'
hrs = input("Enter Hours:")
rate = input("Enter rate:")
h = float(hrs)
r = float(rate)
p = computepay(h,r)
print("Pay", p)

here are the parameters it needs to fill 4.6 Write a program to prompt the user for hours and rate per hour using input to compute gross pay. Pay should be the normal rate for hours up to 40 and time-and-a-half for the hourly rate for all hours worked above 40 hours. Put the logic to do the computation of pay in a function called computepay() and use the function to do the computation. The function should return a value. Use 45 hours and a rate of 10.50 per hour to test the program (the pay should be 498.75). You should use input to read a string and float() to convert the string to a number. Do not worry about error checking the user input unless you want to - you can assume the user types numbers properly. Do not name your variable sum or use the sum() function.

here is the sample code given

def computepay(h, r):
    return 42.37

hrs = input("Enter Hours:")
p = computepay(10, 20)
print("Pay", p)

i've tried messing with indentation several times also removing else statement entirely can I get some advice?

  • Can you show us the full traceback? – Daniyal Warraich Aug 24 '21 at 05:14
  • 1
    i'm not getting the error you mentioned. Also its `return p` not `return'p'` and watch out for indentation – sittsering Aug 24 '21 at 05:14
  • Line five is the `else:`, I don't see how that could get you a "bad input error". – Kelly Bundy Aug 24 '21 at 05:18
  • _i've tried messing with indentation several times_ - as someone here has said, programming is not a game of guess-and-check, and it certainly is not a game of making the compiler stop crying. Either you know what you are doing or not, this is the very basics of python and SO is not meant to replace existing tutorials, so I would suggest that you repeat on what you have learned or watch some tutorial – Matiiss Aug 24 '21 at 05:18
  • Welcome to SO, please read [stackoverflow.com/help/how-to-ask](https://stackoverflow.com/help/how-to-ask), provide a brief introduction to your problem so others can understand and replicate it. – fpersyn Aug 24 '21 at 12:02

4 Answers4

0

instead of return 'p' in line 8 of your code... type return p so that it returns the variable instead of a string.

XBR12
  • 16
  • 1
0
def computepay(h,r):
    if h > 40.0 :
        reg = r * h
        OT = (h - 40.0) * (r * 0.5)
        p= reg + OT
    else:
        p = h * r
    return p
hrs = input("Enter Hours:")
rate = input("Enter rate:")
fh = float(hrs)
fr = float(rate)
p = computepay(fh,fr)
print("Pay",p)
0
def computepay(h,r):
    if h>40.0:
        p = 40.0*r
        p = p + (h-40.0)*1.5*r
    else:
        p = h*r
    return p
hrs = input("Enter Hours:")
rate = input("Enter rate:")
h = float(hrs)
r = float(rate)
p = computepay(h,r)
print("Pay", p)
sittsering
  • 1,219
  • 2
  • 6
  • 13
0

my code:

def computepay():
mhours = (h - 40) * (r * 1.5) + uhours*r
return mhours

uhours = 40 

try:   
    hours = input("Enter Hours please: ")
    rate = input("Enter Rate per hours please: ")
    h = float(hours)
    r = float(rate)
    if h <= uhours:
        print('Pay', h * r)
    elif h > uhours:
        print('Pay', computepay())
     
except ValueError:
    print('Please Enter a Number! not a word!')