Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rennanfelipe

Problema com variaveis

Recommended Posts

Estou com um problema com uma variavel que 'pega' os dados do usuario,se eu ponho ela no meio do while o python retorna afirmando que ela não foi definida,e se eu já defino o python retorna com o que eu já defini.Eu queria saber como ponho o input demtro do while sem problemas

 

Aqui o programinha com o problema que retirei do site do python brasil.

 

#####################################################################################################

#João Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o rendimento diário #

#de seu trabalho. Toda vez que ele traz um peso de peixes maior que o estabelecido pelo regulamento #

#de pesca do estado de São Paulo (50 quilos) deve pagar uma multa de R$ 4,00 por quilo excedente. #

#João precisa que você faça um programa que leia a variável peso (peso de peixes) e verifique se há #

#excesso. Se houver, gravar na variável excesso e na variável multa o valor da multa que João deverá#

#pagar.Caso contrário mostrar tais variáveis com o conteúdo ZERO. #

#####################################################################################################

sair=True

exedente=0

multa= 0

pergunta=str(raw_input('Você deseja sair do programa? [s/N]'))

while sair==True:

........peso=float(raw_input('Entre com o peso de pixes pescados: '))

........if peso > 50:

................excedente=peso-50

................multa= excedente*4

................print '------------------------'

................print 'Há excesso de peixes:'

................print 'Excesso: '+str(excedente)

................print 'Multa: R$'+str(multa)

................print '------------------------'

........else:

................print '------------------------'

................print 'Não há excesso de peixes'

................print 'Exesso: '+str(excedente)

................print 'Multa: R$'+str(multa)

................print '------------------------'

........#Se eu ponho assim o python retorna afirmando que a variavel pergunta

........# não foi definida

........pergunta=str(raw_input('Você deseja sair do programa? [s/N]'))

 

........#E se eu já defini, o python retorna com o valor definido logo assima

........print pergunta

........if pergunta == 'S' or 's':

................sair=False

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usei o código que você copiou no post e não deu erro algum no interpretador. Tem certeza de que não é algum problema de identação no seu arquivo?

 

A lógica está um pouco estranha. Eu reescreveria o código de outra forma:

 

#coding:utf-8
MULTA_KG = 4.00
LIMITE_PESO = 50

while True:
   resposta = raw_input('Deseja sair do programa? [s/n] ')
   if resposta.lower() in ['s']:
       break

   peso = float(raw_input('Informe o peso total: '))
   excedente = (peso - LIMITE_PESO) if peso > LIMITE_PESO else 0
   multa = (excedente * MULTA_KG) if excedente > 0 else 0.00
   print "Excedente: {0}\nMulta:{1}".format(excedente, multa)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.