Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

msmsms

programa que analisa as temperaturas medias de 4 cidades

Recommended Posts

msmsms

gostaria que me ajudassem a perceber esta resolução:

- as partes que me custam e entender sao mais as dos ciclos...

# calcula as temperaturas medias de 4 cidades
# cada linha do ficheiro corresponde a 1 cidade

def temp(f):
    linha = f.readline()
    while linha == '\n':
        linha = f.readline()
    if linha == '':
        return -1 #retorna -1 porquê?
    else:
        a = linha[:-1].split()   
        for i in range (len(a)):
            a[i] = float(a[i])        
        return a
    
def medias(fich):
    f = open (fich, 'r')
    media = []
    linha = temp(f)
    while linha != -1:
        soma = 0
        for elem in linha:
            soma = soma + elem
        media.append(soma/len(linha))
        linha = temp(f)
    return media

if __name__ == '__main__':
    print medias('C:\\ficheiros\\temperaturas.txt')

EXERCICIO

- desenvolver um programa que analise as temperaturas medias de 4 cidades

- as temperaturas encontram-se num ficheiro: temperaturas.txt

- determinar os valores maximos e minimos

- mostrar o grafico do resultado

- cada linha do ficheiro corresponde aos dados de uma cidade

FICHEIRO: temperaturas.txt

10.5 11.3 12.8 14.5 16.7 19.4 21.5 21.9 20.4 17.4 13.7 11.1

9.3 10.3 11.8 13.5 16.0 18.9 20.8 21.1 19.7 16.1 12.3 9.7

9.2 10.3 11.5 13.3 15.7 18.5 20.1 20.1 18.8 15.7 12.1 9.4

12.0 12.5 13.7 15.2 17.8 20.7 23.3 23.6 22.0 18.8 15.1 12.7

Share this post


Link to post
Share on other sites
HIT_Braga

O

return -1

normalmente os programadores usam números negativos para definir ERRO. No teu caso Se existir uma linha em Branco a função def retorna -1 e a função que calcula a média não faz o calculo porque é uma linha branca.

Se não tivesses isto, se por acaso o ficheiro tivesse uma linha em branco o programa ia brekar, porque não sabia o que fazer com "NADA".

Atenção: eu também estou a iniciar em Python, mas tenho quase a certeza que é isto...

Posso ajudar em mais alguma coisa

Sds,

HIT


" Elogios não me elevam, ofensas não me rebaixam, sou o que sou e não o que acham! "

Share this post


Link to post
Share on other sites
hmiguel

Resolução um bocado confusa...

def medias(fh):

f = open(fh,'r')

cidades = f.readlines() #lista com 4 elementos, que sao as 4 linhas

for temp in cidades: #Por cada elemento
	temperaturas = [float(x) for x in temp.split()] #transforma para lista de floats
	print "Media:",sum(temperaturas)/len(temperaturas)
	print "Maxima:",max(temperaturas)
	print "Minima:",min(temperaturas)
	print

medias('temperaturas.txt')


"Homem que é Homem não usa Java!"

Share this post


Link to post
Share on other sites
msmsms

eu gostava que a teu programa funciona-se mas a verdade é que não funciona...

Resolução um bocado confusa...

def medias(fh):

f = open(fh,'r')

cidades = f.readlines() #lista com 4 elementos, que sao as 4 linhas

for temp in cidades: #Por cada elemento
	temperaturas = [float(x) for x in temp.split()] #transforma para lista de floats
	print "Media:",sum(temperaturas)/len(temperaturas)
	print "Maxima:",max(temperaturas)
	print "Minima:",min(temperaturas)
	print

medias('temperaturas.txt')

Share this post


Link to post
Share on other sites
hmiguel

eu gostava que a teu programa funciona-se mas a verdade é que não funciona...

Então?

fica aí o output...

hmiguel@laptop ~/Desktop $ python cidades.py
Media: 15.9333333333
Maxima: 21.9
Minima: 10.5

Media: 14.9583333333
Maxima: 21.1
Minima: 9.3

Media: 14.5583333333
Maxima: 20.1
Minima: 9.2

Media: 17.2833333333
Maxima: 23.6
Minima: 12.0


"Homem que é Homem não usa Java!"

Share this post


Link to post
Share on other sites
HIT_Braga

Acho que mais importante do que funcionar, é perceberes o que se está a fazer.

O código que colocas-te funciona bem, tem mais linhas do que este último mas funca, então deves procurar entender.

Sds,

HIT


" Elogios não me elevam, ofensas não me rebaixam, sou o que sou e não o que acham! "

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.