Мой код будет ниже. Я практикую Python и хотел сделать простой калькулятор чаевых в ресторане. Он работает нормально, но мне кажется, что я слишком сильно полагался на циклы while. Для каждого приглашения ввода я хотел, чтобы сценарий проверял, был ли ввод типом int / float, и если нет, он будет продолжать циклы до тех пор, пока не будет дан правильный ввод.
* 1002 хороший способ go о такой «проверке»?
ТАКЖЕ:
Прежде, чем я помещу «# ОПРЕДЕЛЕНИЕ ПРОЦЕНТА СОВЕТОВ НА ОСНОВЕ КАЧЕСТВА» и следующие разделы отдельно, пока я oop (изначально они были сами по себе в конце кода, НЕ в al oop), мне не удалось заставить скрипт перейти к этим разделам после «Как было качество ваших услуг?» раздел. Скрипт продолжал зацикливаться ТОЛЬКО в этом разделе. Есть идеи, почему? Кажется, он отформатирован точно так же, как и два других цикла while перед ним.
Всем спасибо. Вот мой код:
while True :
try :
total = float(input('Enter the total cost of the meal: '))
if total < 1 :
print('Please enter a value greater than 0. ')
continue
except :
print('Please enter a numerical value. ')
continue
while True :
try :
guests = int(input('How many guests? '))
if guests < 1 :
print('Please enter a value greater than 0. ')
continue
except :
print('Please enter a numerical value. ')
continue
while True :
try :
quality = int(input('How was the quality of your service? 1 - 3: '))
if quality > 3 or quality < 1 :
print('Please enter a value between 1 and 3. ')
continue
except :
print('Please enter a numerical value. ')
continue
#DETERMINING TIP PERCENTAGE BASED ON QUALITY
while True :
if quality == 1 :
tip_percent = 0.15
elif quality == 2 :
tip_percent = 0.20
elif quality == 3 :
tip_percent = 0.25
#CALCULATING PER PERSON TIP AMOUNT
gross_tip = total * tip_percent
perperson_tip = (total / guests) * tip_percent
#PRINTING TIP PER PERSON AND GROSS TIP
print('Per-person tip: ' + str(perperson_tip) + '\nGross tip: ' + str(gross_tip))
exit()