Задать вопрос
@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 числа. Хотя цикл отрабатывает все итерации.
Пробовал на нескольких ПК, результат одинаковый.
  • Вопрос задан
  • 129 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы