Нужно руководство по вложенности оператора if в операторах if - PullRequest
0 голосов
/ 08 декабря 2018

Чтобы дать вам некоторый контекст, проект, которым я занимаюсь, - это создание счета на основе входных данных от пользователя, а часть проекта предусматривает скидку, если пользователь желает заплатить в течение 10 дней.

Наш учитель сказал, что мы должны вкладывать утверждения if в наш проект, но я не уверен, почему и как.

Я пропустил урок вложенности и понятия не имею, как успешно реализовать оператор if и все, что я могуЯ вижу, что онлайн намного выше моего уровня навыков, и я не вижу, где я ошибаюсь с моим кодом.

#finding out the potential discount for paying within 10 days

if pay == "no":
    discount = 0

    if pay == "yes" and firstBill > 100 and firstBill < 200:
        discount = (firstBill * 0.015)

    elif pay == "yes" and firstBill > 200 and firstBill < 400:
        discount = (firstBill * 0.03)

    elif pay == "yes" and firstBill > 400 and firstBill < 800:
        discount = (firstBill * 0.04)

    elif  pay == "yes" and firstBill > 800:
        discount = (firstBill * 0.05)

    else:
        print("error")

else:
    print("error")

1 Ответ

0 голосов
/ 08 декабря 2018

Вы имеете в виду что-то подобное?Первый if проверяет, является ли pay значением "no", и пропускает остальную часть кода.Все в elif pay == "yes": будет выполняться, только если pay равно "yes".

if pay == "no":
    discount = 0
elif pay == "yes":
    if 100 <= firstBill < 200:
        discount = (firstBill * 0.015)
    elif 200 <= firstBill < 400:
        discount = (firstBill * 0.03)
    elif 400 <= firstBill < 800:
        discount = (firstBill * 0.04)
    elif firstBill >= 800:
        discount = (firstBill * 0.05)
    else:
        print("error")
else:
    print("error")

Кстати, вы можете связать операторы сравнения, такие как x < y < z.Кроме того, ваш код печатает «ошибка» для точно 200 или точно 400 и так далее.Я предполагаю, что это было непреднамеренно и исправило это.

Вы также можете написать оператор if по-другому:

if pay == "yes":
    if 100 <= firstBill < 200:
        discount = (firstBill * 0.015)
    elif 200 <= firstBill < 400:
        discount = (firstBill * 0.03)
    elif 400 <= firstBill < 800:
        discount = (firstBill * 0.04)
    elif firstBill >= 800:
        discount = (firstBill * 0.05)
    else:
        print("error")
elif pay == "no":
    discount = 0
else:
    print("error")

И он будет работать точно так же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...