Суммирование случайного списка чисел в цикле i - PullRequest
0 голосов
/ 18 октября 2018

Я создал программу, которая генерирует список номеров по выбору пользователей, от 1 до 500. Затем программа записывает список в файл, читает файл и перечисляет все числа.Мне нужно сложить цифры и показать количество.Вот мой код ...

numberFile = open("random_number.txt", "w" )

for i in range(int(input("How many random numbers?: "))):
   numbers = str(randint(1, 500))
   numberFile.write(numbers)
   print(numbers)


numberFile.close()

Любая помощь с благодарностью.

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Если вы хотите pythonic зашифрованный код, вы можете сделать это в 2 * 2 строки (+1 строка импорта):

import random

# create file
with open("t.txt","w") as nf:
    nf.write( '\n'.join(map(str,random.choices(range(1,501),
                                               k=int(input("How many numbers?"))))))

Первая использует введенное значение,делает его целым, использует его как параметр «сколько» для random.choices () , который возвращает столько же случайных чисел из заданного диапазона (1,501) , которые затем передаются в map () , чтобы сделать их строками, так что join () может сделать из них большую строку, которая затем будет записана в файл.

# read / sum file
with open("t.txt","r") as nf:
    print(sum(map(int,(x.strip() for x in nf.readlines() if x.strip()) ) ) )

Это читает всефайл в виде списка строк, вырезает новые строки, преобразует их в целые и суммирует их.(см. Встроенные функции Doku для int, map, sum )


Вывод сгенерированного материала:

with open("t.txt","r") as nf: 
    print(nf.read())

Sum:

2371

Выходной файл:

320
13
138
112
369
339
447
44
211
15
110
253
0 голосов
/ 18 октября 2018

Вы можете добавить это к своему коду.

numberFile = open("random_number.txt", "r" )
sum = 0
for i in numberFile:
    sum += int(i)

print(sum)

Сначала сумма равна 0. Программа считывает каждое значение и добавляет значение к сумме.

...