Dúvida em Exercício de loop

30 views
Skip to first unread message

Matheus Motta

unread,
May 10, 2022, 4:29:11 PM5/10/22
to Python Brasil
Olá, 
Estou tentando entender porque o loop do while não está funcionando 100%. Ele roda, mas quando coloco o zero para fazer parar, ele não me dá o resultado da função criada 
retorna apenas None. 

--------------------------------------------
Hamb= 12
Cheese = 15
D_cheese = 20
C_fran = 18
Hot = 19

cod=float(input("Digite o código do lanche "))
qtde=int(input("Digite a quantidade desejada "))

def escolha(cod,qtde):
  if cod == 100:
    return print("Hamburguer","-","R$",Hamb ,"X",qtde ,"=",qtde * Hamb)
  elif cod == 200:
    return print("Cheeseburger","-","R$",Cheese ,"X",qtde,"=",qtde * Cheese)
  elif cod == 300:
    return print("Double Cheeseburger","-","R$",D_cheese ,"X", qtde,"=", qtde * D_cheese)
  elif cod == 400:
    return print("Cheese Frango","-","R$", C_fran,"X", qtde,"=", qtde * C_fran)
  elif cod == 500:
    return print("Hot Linguiça","-","R$",Hot,"X",qtde,"=" , qtde * Hot)

while cod != 0:
  cod=float(input("Digite o código do lanche "))
  qtde=int(input("Digite a quantidade desejada "))
  print(escolha(cod,qtde))

Lucas Daniel

unread,
May 11, 2022, 11:30:32 AM5/11/22
to Python Brasil
O problema é no final do codigo, você esta printando o retorno da escolha, mas oq a escolha retorna é um print por isso da none, basta você chamar assim no final:
escolha(cod, qtde)
que funcionara sem problemas, eliminei também a primeira varival cod e qtde, pois n fazia sentido ter elas ali  .

Recomendo a utilização do f string é muito melhor a vizualização do que esta a fazer: Imagem

Matheus Motta

unread,
May 12, 2022, 11:11:52 AM5/12/22
to Python Brasil
Fiz essas mudanças, mas ele só roda e diz que o código está ok, sem executar nada. Não chama o input que coloquei no While. E se colocar o input antes do While como estava antes, o mesmo erro de antes volta, que é pedir os valores, mas quando coloco o valor que para o While, ele não executa a função escolha(cod, qtde)

-----------------------------------
Hamb= 12
Cheese = 15
D_cheese = 20
C_fran = 18
Hot = 19



def escolha(cod,qtde):
  if cod == 100:
    return print("Hamburguer","-","R$",Hamb ,"X",qtde ,"=",qtde * Hamb)
  elif cod == 200:
    return print("Cheeseburger","-","R$",Cheese ,"X",qtde,"=",qtde * Cheese)
  elif cod == 300:
    return print("Double Cheeseburger","-","R$",D_cheese ,"X", qtde,"=", qtde * D_cheese)
  elif cod == 400:
    return print("Cheese Frango","-","R$", C_fran,"X", qtde,"=", qtde * C_fran)
  elif cod == 500:
    return print("Hot Linguiça","-","R$",Hot,"X",qtde,"=" , qtde * Hot)

while cod != -1:
  cod=float(input("Digite o código do lanche "))
  qtde=int(input("Digite a quantidade desejada "))
escolha(cod,qtde)

Marcio Freire Silverio

unread,
May 16, 2022, 7:07:19 PM5/16/22
to python...@googlegroups.com
Boa tarde, acredito que esteja realizando testes, treinando... eu estou nessa etapa, leitura, treino, prática... Peguei seu código para testar aqui e se for pra realizar o cadastro de apenas um item, você pode mudar o final do código:

while True:

    cod=float(input("Digite o código do lanche "))
    qtde=int(input("Digite a quantidade desejada "))
    parar_sistema=int(input('Informe 0 para parar.'))
    if parar_sistema == 0:
        break                      
   
escolha(cod,qtde)

Mas se for para cadastrar mais itens, seria preciso alterações na função.

--
--
------------------------------------
Grupo Python-Brasil
https://wiki.python.org.br/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/a2505633-75a4-4aa0-b53a-29cf885b9b26n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages