NameError: name 'p' is not defined in

前端 未结 3 552
猫巷女王i
猫巷女王i 2021-01-29 01:52

This code executes, however, an error message \" NameError: name \'p\' is not defined in lines 7 and 11 - I tried adding float( ) around everything - same error - any ideas ???

3条回答
  •  [愿得一人]
    2021-01-29 02:22

    If you read your script from top to bottom:

    def computepay(hrs,rate):
    

    The interpreter uses this to define a local function with name computepay. It then ignores everything in the block:

    if 0 < hrs <=40:
        print (hrs * rate)
    elif hrs > 40:
        print (40 * rate + (hrs-40)*rate*1.5)
    return p
    

    Then it executes input, converts the result into a float object using float, and creates a name rate which points to the float object:

    rate = float(input("Enter Rate per Hour:"))
    

    Then it executes computepay which does its thing and tries to return p, however, the intepreter has not yet seen any definition of p in the local scope. Even if we said global p to tell the interpreter to look in the global scope, it has not yet created the NAME which points to any object. So you get a NameError:

    p = computepay(hrs,rate)
    

提交回复
热议问题