Как соединить два input() в одну переменную?

zakaz = ('Какое дополнение для пиццы желете?'
         '\\nЕсли дополнения не требуются, напишите НЕТ:')
zakaz2 = ('Какое еще дополнение для пиццы желете?'
         '\\nЕсли дополнения не требуются, напишите НЕТ:')

while True:
    message = input(zakaz)
    if message != 'нет':
        print(f'{message.title()} , добавлен!')
        input(zakaz2)
        continue
    else:
        print('Ваша пицца готова')
        break

Подскажите, пожалуйста, как сделать, чтобы после введения данных в input(zakaz2) они становились значением message и цикл while начинался заново?


Ответы (3 шт):

Автор решения: NikShel
zakaz = ('Какое дополнение для пиццы желете?'
         '\\nЕсли дополнения не требуются, напишите НЕТ:')
zakaz2 = ('Какое еще дополнение для пиццы желете?'
         '\\nЕсли дополнения не требуются, напишите НЕТ:')
while True:
    message = input(zakaz)
    if message != 'нет':
        print(f'{message.title()} , добавлен!')
        message2 = input(zakaz2) 
        print(f'{message2.title()} , добавлен!') 
        continue
    else:
        print('Ваша пицца готова')
        break

проверяйте

→ Ссылка
Автор решения: Amgarak

Я бы сделал как-то так:

order = "Введите дополнение для пиццы (или 'нет' для завершения): "

def get_pizza() -> list:
    pizza = []
    while topping := input(order).strip().lower():
        if topping == 'нет':
            break
        
        pizza.append(topping.title())
        print(f"{topping.title()} добавлен!")
        
    return pizza

def print_pizza(pizza: list):
    if pizza:
        print(f"Ваша пицца готова с добавками: {', '.join(pizza)}.")
    else:
        print("Вы выбрали пиццу без добавок.")

if __name__ == "__main__":
    toppings = get_pizza()
    print_pizza(toppings)
  • Не вижу особого смысла иметь 2 разных описания для input(), ведь они почти идентичные.

  • А сами дополнения наверное стоит сохранить? Что бы можно было с ними в дальнейшем работать.

введите сюда описание изображения


Ваш код можно поправить так:

zakaz = ('Какое дополнение для пиццы желете?'
         '\\nЕсли дополнения не требуются, напишите НЕТ:')
zakaz2 = ('Какое еще дополнение для пиццы желете?'
         '\\nЕсли дополнения не требуются, напишите НЕТ:')

message = input(zakaz).strip().lower()
while True:
    if message != 'нет':
        print(f'{message.title()} , добавлен!')
        message = input(zakaz2).strip().lower()
    else:
        print('Ваша пицца готова')
        break
  • Первый input() вызывать до цикла, второй input() уже внутри while перезаписывая переменную message.
  • continue - тут не нужен, цикл и без этого пойдёт дальше.
  • .strip().lower() - уберёт лишние пробелы и приведёт всё к нижнему регистру.
→ Ссылка
Автор решения: S. Nick

Как вариант:

txt_zakaz = input('''
Пожалуйста, перечислите через запятую, 
дополнительные ингредиенты для вашей пиццы.
Если дополнения не требуются, напишите Enter:
''')

list_dop_zakaz = list(map(lambda x: x.strip(), txt_zakaz.split(','))) 
print('\n\n')

if list_dop_zakaz:
    for dop_zakaz in list_dop_zakaz:
        if dop_zakaz:
            print(f'\t- добавлен: {dop_zakaz.title()};')

print('Ваша пицца готова!\n\n')

введите сюда описание изображения

→ Ссылка