2014-12-30 2 views
0

У меня есть новый вопрос. Вот мой сценарий. Я пытаюсь вычислить плату с дополнительной оплатой за сверхурочную работу. я не могу понять проблему здесь:Ошибка в моем скрипте python

def computePay(Hours,Rate): 
print 'Enter Hours:\t' 
Hours = float (raw_input()) 
print 'Enter Rate:\t' 
Rate = float (raw_input()) 
try: 
    if Hours > 40: 
    R1 = print 'Pay:', (Hours-40)*Rate*1.5 + (40*Rate) 
    return R1 
    else: 
    R2 = print 'Pay:', (Hours*Rate) 
    return R2 
except: 
    print 'Error, please enter numeric input!' 

Некоторые помогают пожалуйста. Я новичок в программировании

+1

В чем проблема? Опишите это чуть точнее? – fr33g

+0

Что именно вы хотите сделать, когда говорите «R1 = print» Pay: ', (Hours-40) * Rate * 1.5 + (40 * Rate) ' –

+0

У меня есть недействительный синтаксис – user3438349

ответ

2

Ваши вопросы в этой линии:

R1 = print 'Pay:', (Hours-40)*Rate*1.5 + (40*Rate) 
R2 = print 'Pay:', (Hours*Rate) 
  • Вы не можете использовать print при назначении строку переменной

Если вы хотите назначьте строку в R1 и R2, вы должны сделать:

R1 = 'Pay: ' + str((Hours-40)*Rate*1.5) + str((40*Rate)) 
R2 = 'Pay:' + str((Hours*Rate)) 

или вы также можете сделать:

R1 = 'Pay: %.2f %.2f' % (((Hours-40)*Rate*1.5), (40*Rate)) 
R2 = 'Pay: %.2f' % (Hours*Rate) 
  • Изменение %.2f для %.Nf быть N количество десятичных знаков

Ваша функция должна быть:

def computePay(): 
    print 'Enter Hours:\t' 
    Hours = float (raw_input()) 
    print 'Enter Rate:\t' 
    Rate = float (raw_input()) 
    try: 
     if Hours > 40: 
      R1 = 'Pay: %.2f %.2f' % (((Hours-40)*Rate*1.5), (40*Rate)) 
      return R1 
     else: 
      R2 = 'Pay: %.2f' % (Hours*Rate) 
      return R2 
    except: 
     print 'Error, please enter numeric input!' 

Если выполнить код вы получите:

Enter Hours:  
20 
Enter Rate: 
8 
Pay: 160.00 

Советы
  • отступов очень важно в Python! Вы должны проверитьPep8 Style Guide for Python Code

  • Ваше имя функция была def computePay(Hours,Rate):, но вы не посылаете часов или Rate. Вы просите их в функции, поэтому имя должно быть def computePay():

  • Существует несколько способов manage/concatenate строк в Python, и очень полезно иметь мало знаний об этом, чтобы выбрать лучшее решение для каждый положение дел. есть полезное и выборочное учебное пособие для этого: String concatenation and formatting in Python

+0

проверю. Я хочу, чтобы пользователь поставил свои часы и ставки, чтобы у него была его оплата.Ввод Часы: 45 Войти Цена: 10 Оплатить: 475.0 – user3438349

+0

@ user3438349 проверить ответ сейчас, в конце ваша функция без ошибок – AlvaroAV

Смежные вопросы