简体   繁体   中英

why do I keep getting a bad input error on line five? are my variables alright? the declaration of function?

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?

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

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

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!')

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM