Ваши вопросы в этой линии:
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
В чем проблема? Опишите это чуть точнее? – fr33g
Что именно вы хотите сделать, когда говорите «R1 = print» Pay: ', (Hours-40) * Rate * 1.5 + (40 * Rate) ' –
У меня есть недействительный синтаксис – user3438349