Я написал следующую программу для расчета заработной платы плюс полтора раза за все, что превышает 40 часов.
Код: Выделить всё
x = input(‘Enter Hours:’)
y = input(‘Enter Rate:’)
xy = float(x)*float(y)
text = ‘Pay:’
xr = ((float(x)-40)
xrt = (float(xr))*float(y)*0.5
ot = float(xrt+xy)
if(float(x))40:
print(text,it)
Я пытаюсь переписать свою программу с помощью try и кроме, чтобы она корректно обрабатывала нечисловой ввод, печатая сообщение о выходе из программы. Вот что у меня получилось на данный момент, за исключением:
Код: Выделить всё
try:
x = input(‘Enter Hours:’)
y = input(‘Enter Rate:’)
xy = float(x)*float(y)
text = ‘Pay:’
xr = ((float(x)-40)
xrt = (float(xr))*float(y)*0.5
ot = float(xrt+xy)
if(float(x)) 40:
print(text,ot)
except:
print(‘Error, please enter numeric input’)
Если пользователь вводит неверный ответ, когда он говорит «Введите часы»: скажем, они поставили «сорок», он все равно запрашивает следующий ввод «Введите скорость»: и только после этого он печатает «Ошибка, введите». числовой ввод. Но я хочу, чтобы он остановился и напечатал «Ошибка», введите числовой ввод, как только они введут «сорок» или что-то недопустимое (что-то, что не является числом), как мне это сделать? Я знаю, что есть более простые способы написать этот код, и я знаю, что обычно не следует использовать числа с плавающей запятой для денег, меня это не беспокоит, я просто хочу знать, как достичь поставленного выше вопроса, где как только вы вводите строку вместо числа, и оно печатает мое сообщение об ошибке?
Подробнее здесь:
https://stackoverflow.com/questions/791 ... o-i-fix-it