@dik_small

Почему не происходит запись значений в файл?

Задача: записать в файл числа от 1 до 1000 + через пробел квадрат этого числа + через пробел куб этого числа.

f=open('Otvet.txt',"w")

for i in range(1,1001):
    a=str(i) + " " +str(i**2) +" " + str(i**3)
    print(a)
    f.write(a)  
    f.write('\n')
f.close

Когда программа отрабатывает, то в файле только числа от 1 до 810. Оператор вывода добавил для контроля. Программа в окно выводит все числа от 1 до 1000. Что интересно, если оставить только вывод в файл самого числа, то файл пустой, если число + его квадрат то до 730 числа. Хотя цикл отрабатывает все итерации.
Пробовал на нескольких ПК, результат одинаковый.
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
Не закрыл файл на гарантировал, очистку буфера и как следствие не гарантировал, что его содержимое целиком окажется в файле. Как по мне это абсурд, что это вообще, работает без исключений или хотя бы предупреждений.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Zzzz9
f = open('Otvet.txt', "w")

for i in range(1, 1001):
    a = str(i) + " " + str(i ** 2) + " " + str(i ** 3)
    print(a)
    f.write(a)
    f.write('\n')
f.close()


Otvet.txt
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
...
997 994009 991026973
998 996004 994011992
999 998001 997002999
1000 1000000 1000000000
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы