Как сложить все значения для чисел в строках в файле - PullRequest
1 голос
/ 18 февраля 2020

Я создаю программу, которая включает суммирование всех чисел в строках .txt файла. Файл генерируется случайным образом и состоит из 100 случайных чисел, каждое из которых занимает собственную строку. Что я хотел бы сделать, это создать список всех чисел в строках и затем взять сумму этого списка. По какой-то причине у меня не работает код:

import os
import math

filename = input("Enter file name: ")
if not os.path.exists(filename):
    print(filename, "does not exist")
else:
    fin = open(filename)
    counter = -1
    comments = 0
    total = 0

    for line in fin:
        if "#" in line:
            comments += 1
        counter = counter + 1

    newlist = [[]]
    fin = open(filename)

    for line in fin:
        newlist = [[]]
        val = []
        for value in line:
            val.append(value)
        newList.append(val)
        total = sum(newList)


    print("Count:", counter)
    print("Comments:", comments)
    print("Total:", total)

Верхняя часть работает нормально, но функция для «общего» значения (сумма, которую я пытаюсь вывести) не работает. Любой совет будет принята с благодарностью. Спасибо!

1 Ответ

0 голосов
/ 18 февраля 2020

Если у вас есть строка чисел , разделенных пробелами (в отличие от неразделенных цифр), ваш двойной for l oop не будет работать так, как вы думаете:

>>> line = '12 34 56 78 90'
>>> for value in line: print(value)
... 
1
2

3
4

5
6

7
8

9
0

Как указано выше, перебор строки (например, введенной вами строки) будет обрабатывать ее по одному символу за раз.

Для обработки разделенных пробелами слова в строке, вы можете использовать что-то вроде:

>>> for value in line.split(): print(int(value))
... 
12
34
56
78
90

Вы также захотите превратить их в целые числа (как показано), если хотите их сложить.

...