Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Ajuda com lista

Escrevi esse codigo para treinar listas e if , mas surgiu uma duvida , toda vez que uso o for in para dar os sabores , mesmo que o valor seja == , o programa ainda inicializa o else , dando mensagem de que a opção é invalida , mas ele adiciona corretamente a escolha na lista , no final do programa tudo funciona normalmente , mas para isso eu tenho que ocultar os else , como faço para que o else somente execute , quando o sabor/tamanho/extras for != dos contidos na lista ?

print("Bem Vindo ao Pizza-Express") print("Aqui você escolhera os ingredientes da sua pizza ")

pizza = [] tamanho_pizza = ["Large" , "Medium" , "Small"]

sabores_disponiveis = ["Marguerita" , "Calabresa" , "Portuguesa" , "Mussarela"]

extras = []

tamanho_escolhido= input("Qual o tamanho da pizza Large , Medium ou Small ? ") for tamanho in tamanho_pizza: if tamanho_escolhido.title() == tamanho: pizza.append (tamanho_escolhido) '''elif tamanho_escolhido.title () != tamanho : print("Coloque um tamanho valido")'''

print (pizza)

sabor_escolhido = input("Qual o sabor desejado? Marguerita , Calabresa , Portuguesa , Mussarela " )

for sabor in sabores_disponiveis: if sabor_escolhido.title() == sabor: pizza.append (sabor_escolhido)

'''else:
    print("Escolha um sabor valido ")'''

escolha = int(input("Você tem direito a 1 extra , deseja usar ? [1] Sim [2] Não "))

if escolha == 1 : extrar = input ("Escolha : Cogumelos , Pimentão , Queijo extra ") if escolha == extras: pizza.append (escolha ) print("Você escolheu com sucesso ")

'''else: print ("Escolha um extra valido ")'''

print ("\nTerminamos de fazer tua pizzaaa") if escolha == 1 : print (f"O pedido foi tamanho {tamanho_escolhido} sabor : {sabor_escolhido} Extra:{extrar} ") else: print(f"O pedido foi tamanho {tamanho_escolhido} sabor : {sabor_escolhido} ")

edit : ficou meio estranho a formatação aqui , segue o link para executar online https://repl.it/join/hvxekixu-joovitorvitor29

1 resposta
solução!

Olá,

for sabor in sabores_disponiveis:
    if sabor_escolhido.title() == sabor:
        pizza.append(sabor_escolhido)
    else:
        print("Escolha um sabor valido ")

O que acontece com o código acima é que seu if está verificando se o sabor_escolhido é igual ao atual sabor lido na lista. Isso faz com que a condição retorne false pelo menos 3 vezes no loop.

Precisava entender pq vc utilizou um for nesse caso. Talvez um while seria melhor, onde seria verificado que enquanto o usuário quisesse adicionar um novo sabor a condição seria true, permitindo com que fosse inserido um novo sabor e verificando com o operador in se o sabor está presente na lista.