Ir para conteúdo

Arquivado

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

indio mal

em Python

Recommended Posts

Salve galera...Sou iniciante na área e não consigo resolver uma parada...tava fazendo um exercício de um tutorial básico e não consigo resolver um questão:

tenho o seguinte código:

 

#desprepl.py - calculo de despesas da republica

 

print 'Balanço de despesas da Republica Recanto Suiço'

print

print '(deixe um nome em branco para encerrar)'

print

total = 0

contas = {}

while 1:

pessoa = raw_input('digite o nome da pessoa: ')

if not pessoa: break

while 1:

resp = raw_input('quanto gastou %s? ' % pessoa)

try:

gasto = float(resp)

break

except:

print 'Numero invalido. Coloque . e não , para os numeros decimais'

contas[pessoa] = gasto

total = total + gasto

 

num_pessoas = len(contas)

print

print 'numero de pessoas: %d' % num_pessoas

print 'Total de gastos: R$ %.2f' % total

media = total/num_pessoas

print 'Gastos por pessoa: R$ %2.f' % media

print

for nome in contas.keys():

saldo = contas[nome] - media

print 'Saldo de %s: %.2f' % (nome, saldo)

 

- A bronca é a seguinte: o final da operação de veria retornar o total de gastos, os gastos por pessoa (bem como a media) e o saldo de cada pessoa segundo

a media de gastos, mas não consigo fazer o loop funcionar, de maneira que só aprece como resultado o gasto total, o gasto médio por pessoa e o saldo do último nome digitado...

Dá uma ajuda aê galera...agradeço a mão...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, primeiramente vamos pelo mais básico: python valoriza muito a identação, por isso quando você for escrever algo dentro de uma repetição ou teste logico, etc. você precisa afastar a proxima linha para a direita o equivalente a quatro espaços. Exatamentee quatro espaços, nem mais, nem menos. Exemplo:

 

while 1:
	print 'apertei  barra de espaço quatro vezes'
	print 'este codigo e executado eternamente'
print 'este codigo esta fora do while. e executado uma vez'

Se nao fizer isso o python achará qu o seu while estará vazio e prosseguira como se nada tiversse acotecido

 

 

XX

 

outra coisa: me parece que nas primeiras linhas de codigo você quer que o USuario preencha nomes de varias pessoas. ISso precisa então ser uma lista. Da forma que você fez seria uma variavel normal, e esta só pode guardar um valor apenas. use uma lista e procure sobre o metodo append(), que adinionará um elmento na lista

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.