2015-12-08 2 views
-3

Я пытаюсь написать Gross программы Наемного калькулятора в Python, и я считаю, я ударяя глобальную переменную ошибку:Python глобального переменная Error

NameError: глобальное имя «WorkedTimed» не определена

Моего кода ниже. Я считаю, что я определил WorkedTime с помощью команды raw_input, но по какой-то причине возвращается как не определен. Любая помощь приветствуется. Я в течение первых двух месяцев кодирования. Благодаря!

def GrossWage(): 
    WorkedTime = raw_input('Please enter hours worked for previous week.\n') 
    PayRate = raw_input('Please enter pay rate for previous week.\n') 
    OverTime = WorkedTime - 40 
    StandardTime = 40 

    if WorkedTimed > 40: 
     print ((StandardTime * PayRate) + (Overtime (PayRate + Payrate * .5))) 
    else: 
     print WorkedTime * PayRate 

GrossWage() 
+1

'WorkedTime' не' WorkedTimed'. – TigerhawkT3

+0

Если вы правильно проверили, вы определили «WorkedTime», и вы пытаетесь сравнить с помощью «WorkedTimed». –

+0

Спасибо. Извини, глупая ошибка. Я получаю ошибку операнда для Overtime = WorkedTime - 40 ... Я думал, что если я ввешу целое число как WorkedTime, он будет храниться как целое число. Но моя следующая ошибка говорит мне: неподдерживаемый тип операндов для -: 'str' и 'int' – AndrewC10

ответ

0

У вас есть ряд вопросов помимо того, что в вашем вопросе. Поэтому, чтобы ответить на ваш вопрос (как прокомментировал TigerhawkT3), вы определили WorkedTime, но использовали WorkedTimed. Простая опечатка, которая всегда будет пытаться найти, но научиться сначала искать эту причину, так как она сэкономит много головных болей.

Далее вы пытаетесь использовать строку и целое число в математике. Я склонен определять upfront, когда я устанавливаю переменную, переводя ее в нужный тип, в этом случае что-то вроде изменения вашей первой строки WorkedTime на WorkedTime = float(raw_input('Please enter hours worked for previous week.\n')).

Вы увидите, что подобное поможет исправить еще несколько проблем, которые вы собираетесь найти.

Вы также можете найти проблему с формулой для более чем 40 часов (это еще одна опечатка, где ваш отсутствующий оператор)