1
resposta

como somar elementos, linha a linha de um arquivo.txt

Olá! quero que esse código me retorne a média dos elementos do arquivo.txt, eu consigo abrir o arquivo.txt nesse código porém não consigo fazer a soma entre os elementos pra poder tirar a média. Tem que somar linha a linha.

# coding=utf-8

print("*************")
print("*** MÉDIA ***")
print("*************")

arquivo = open("arquivo_estatistica.txt", "r")

#Somando os 12 números da tabela.

print("(1, 2, 1.5, 27,  16.8, 9, 41, 49, 1, 18, 3, 50)")

conteudo = arquivo.readlines()
arquivo.close()

for linha in conteudo:
    soma = 0
    num = linha.split()
    soma += float(num)

Aguardo helps :D

1 resposta

Faaala Nayma, tudo tranquilo?

Você está no caminho certo, só pecou no for. Alguns pontos:

  • Precisamos inicializar a variável de soma fora do laço, já que caso ela esteja dentro do laço, toda vez que ele se repetir ela irá zerar.
  • Podemos somar diretamente o valor da soma com a linha(desde que ela seja convertida para float).

Algo como:

# coding=utf-8

print("*************")
print("*** MÉDIA ***")
print("*************")

arquivo = open("arquivo_estatistica.txt", "r")

#Somando os 12 números da tabela.

# print("(1, 2, 1.5, 27,  16.8, 9, 41, 49, 1, 18, 3, 50)")

conteudo = arquivo.readlines()
arquivo.close()

soma = 0

for linha in conteudo:
    linha = float(linha)
    soma += linha

print('Média dos números do arquivo txt: {:.2f}'.format(soma/12))

E para fazer a média caso a quantidade de números no arquivo seja desconhecida, poderia fazer uma variável auxiliar para ser incrementada toda vez que algum elemento fosse lido dentro do laço de repetição.

Exemplo:

soma = 0
quantidade_linhas_arquivo = 0

for linha in conteudo:
    linha = float(linha)
    soma += linha
    quantidade_linhas_arquivo += 1

Qualquer dúvida é só falar. Espero ter ajudado. Abraços e bons estudos!