#python
Вопрос:
#Пожалуйста, помогите мне
def computepay(h, r):
if h>40:
reg=40*r
otp=(h-40.0)*1.5*r
else:
pay = h*r
return pay
hrs = input("Enter Hours:")
rate= input('enter rate per hour: ')
fh = float (hrs)
fr = float (rate)
p = computepay(fh, fr)
print("Pay", p)
Комментарии:
1. исправьте свой код, пожалуйста, он отображается неправильно
Ответ №1:
Если я правильно понимаю ваш код, ваш код вставлен неправильно, если h > 40 pay не присвоено никакого значения, только pay присваивается значение в остальном, вот почему вы получаете эту ошибку
Ответ №2:
Чтобы ответить на вопрос о том, на что ссылается «оплата» перед назначением, ваш код проходит через часть инструкции if в строке, где вы определяете computepay(). Вы никогда не добавляете reg и otp в переменную под названием pay, что, я полагаю, вы пытаетесь сделать.
Кроме того, в вашем заявлении else вы делаете pay = hr, которого не существует, поскольку python будет анализировать hr как одну переменную, а не две, обязательно используйте звездочки для правильного анализа всего.
Как бы я набрал определение computepay (), оно выглядело бы следующим образом:
def computepay(h, r):
if h>40:
reg=40*r
otp=(h-40.0)*1.5*r
pay=reg otp
else: pay = h*r
return pay
Однако основная функция ниже возврата оплаты-это штраф. Это должно работать идеально, удачи!