@KeTTle_07
Чайник каких ещё поискать нужно, учу python и js

Почему не выводит print?

a = str(input('Какую пиццу хотите заказать(Пеперони, Маргарита, 4 сыра)?: '))
b = float(input('Сколько пицц хотите заказать(1, 2, 3)?: '))
c = float(input('Сколько сантиметров(25, 33, 44)?: '))

if a == 'Пеперони':
    if b == '1':
        if c == '25':
            print("К оплате 250 рублей")

elif a == 'Пеперони':
    if b == '2':
        if c == '25':
            print('К оплтате 500 руб')
        
elif a == 'Пеперони':
    if b == '3':
        if c == '25':
            print("К оплтате 750 руб")


Проблема в том что не выводится print (и если кто знает то подскажите как загуглить эту проблему, чтобы не писать на форум каждый раз как какая-та фигня не работает)
  • Вопрос задан
  • 2246 просмотров
Решения вопроса 1
1) Типы данных:

b = float(input('Сколько пицц хотите заказать(1, 2, 3)?: '))
c = float(input('Сколько сантиметров(25, 33, 44)?: '))

if b == '1':
if c == '25':

Вы сравниваете тип данных float с типом данных str.

Необходимо изменить на:

b = int(input('Сколько пицц хотите заказать(1, 2, 3)?: '))
c = int(input('Сколько сантиметров(25, 33, 44)?: '))

if b == 1:
if c == 25:

2) У вас в задаче print() отработает только при очень строгой последовательности входных данных.

Если выбрать Пеперони, то мы идём по первому условию так как оно True:

if a == 'Пеперони':
if b == '1':
if c == '25':
print("К оплате 250 рублей")

Далее сравниваем результат input('Сколько пицц хотите заказать(1, 2, 3)?: ') с if b == 1:

Если Вы ввели не 1, то мы получаем False и программа завершается.
Если ввели 1 то True, продолжаем.

Далее сравниваем результат input('Сколько сантиметров(25, 33, 44)?: ') с if c == 25:

Если Вы ввели не 25, то мы получаем False и программа завершается.
Если ввели 25 то True и только в этом случаем отработает print("К оплате 250 рублей")

Если решать задачу через IF и без сложных проверок введённых данных то получится следующее:

"""
Условие:

Пеперони   /   Маргарита  /  4 сыра
25 - 100       25 - 120     25 - 135
33 - 125       33 - 140     33 - 155
44 - 150       44 - 160     44 - 175

"""
pizza_name = str(input('Какую пиццу хотите заказать(Пеперони, Маргарита, 4 сыра)?: '))
if pizza_name in ('Пеперони', 'Маргарита', '4 сыра'):
    pizza_size = int(input('Сколько сантиметров(25, 33, 44)?: '))
    if if pizza_size in (25, 33, 44)::
        pizza_count = int(input('Сколько пицц хотите заказать(1, 2, 3..)?: '))
        if pizza_count > 0:
            if pizza_name == 'Пеперони':
                if pizza_size == 25:
                    print('Цена 1 пиццы - 100 руб. Сумма Вашего заказа:',pizza_count * 100,'руб.')
                elif pizza_size == 33:
                    print('Цена 1 пиццы - 125 руб. Сумма Вашего заказа:',pizza_count * 125,'руб.')
                elif pizza_size == 44:
                    print('Цена 1 пиццы - 150 руб. Сумма Вашего заказа:',pizza_count * 150,'руб.')     
            elif pizza_name == 'Маргарита':
                if pizza_size == 25:
                    print('Цена 1 пиццы - 120 руб. Сумма Вашего заказа:',pizza_count * 120,'руб.')
                elif pizza_size == 33:
                    print('Цена 1 пиццы - 140 руб. Сумма Вашего заказа:',pizza_count * 140,'руб.')
                elif pizza_size == 44:
                    print('Цена 1 пиццы - 160 руб. Сумма Вашего заказа:',pizza_count * 160,'руб.')     
            elif pizza_name == '4 сыра':
                if pizza_size == 25:
                    print('Цена 1 пиццы - 135 руб. Сумма Вашего заказа:',pizza_count * 135,'руб.')
                elif pizza_size == 33:
                    print('Цена 1 пиццы - 155 руб. Сумма Вашего заказа:',pizza_count * 155,'руб.')
                elif pizza_size == 44:
                    print('Цена 1 пиццы - 175 руб. Сумма Вашего заказа:',pizza_count * 175,'руб.')       
        else:
            print("Вы ввели некорректное кол-во пицц!")
    else:
          print("Такого размера пиццы не существует!")   
else:
    print("Такой пиццы не существует!")
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@twistfire92
Python backend developer
Учите основы! Начинайте с самых простых вещей и с математики. Вы вместо того, чтобы обозначить цену одного товара, а затем умножить на количество (задача начальной школы), перебираете варианты с количеством, под каждый подставляя свою цену.

Размножили одно и то же условие по if`ам зачем?
Короче. Изучайте самые азы азов. Гуглите.

Касательно вопроса - внимательнее с типами данных.
Ответ написан
@Old_TyT
a = str(input('Какую пиццу хотите заказать(Пеперони, Маргарита, 4 сыра)?: '))
b = int(input('Сколько пицц хотите заказать(1, 2, 3)?: '))
c = int(input('Сколько сантиметров(25, 33, 44)?: '))
price = 250


if a == 'Пеперони':
    if c == 25:
        print('К оплате ' + str(price * b) + ' рублей')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы