Напишите программу, которая записывает в файл 100 случайных чисел, созданных случайным образом. Python File I / O - PullRequest
0 голосов
/ 25 апреля 2018
import random

afile = open("Random_intger.txt", "w")
for i in range(input("The 100 random integers written are: ")):
    line = str(random.randint(1,100))
    afile.write(line)
    print(line)
afile.close()

print("\nReading the file now." )
afile = open("Random_integer.txt", "r")
print(afile.read())
afile.close()

Когда я запускаю его:

  • Там написано TypeError: 'str' object cannot be interpreted as an integer
  • Создает файл с пометкой Random_intger.txt, но нет целых чисел.
  • также я использую MacBook Air, это часть проблемы?

Ответы [ 3 ]

0 голосов
/ 25 апреля 2018

Внесите следующие изменения в свой код.

for i in range(**int(input("The 100 random integers written are: "))**):

вам необходимо преобразовать данные из stdin в целое число, типом по умолчанию для функции ввода является строка.

Надеюсь, это решит вашу проблему.

0 голосов
/ 25 апреля 2018

В вашем коде несколько проблем.Во-первых, random.randint (1100) не дает вам 100 случайных чисел, а одно случайное значение от 1 (включительно) до 100 (включительно), и что ваш цикл for немного глючит (не используйте ввод здесь,или вы хотите что-то прочитать от пользователя?).

Следующее, что вы открываете файл "Random_intger.txt" для чтения и записи, но файл "Random_int *** e *** ger.txt "для доступа на запись

Фиксированный код:

import random

filename = "Random_integer.txt"

# use a with statement. Like this you don't need to
# remember to close the stream ...
with open(filename, "w") as afile:
    print("The 100 random integers written are: ")
    for i in range(100):
        line = str(random.randint(1,100))
        afile.write(line)
        afile.write("\n")
        print(line)

print("\nReading the file now." )
with open(filename, "r") as afile:
    print(afile.read())
0 голосов
/ 25 апреля 2018
import random
out_file = "Random_integer.txt"
afile = open(out_file, "w")
for i in range(100):
    line = str(random.randint(1,100)) + '\n'
    afile.write(line)
    print(line)

afile.close()

print("Reading the file now." )
afile = open(out_file, "r")
print(afile.read())
afile.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...