Индексация списка: В random.randint(1, 5) используется диапазон от 1 до 5, но если spisok_factov содержит меньше элементов, это вызовет ошибку индексации. Рекомендуется использовать диапазон от 0 до длины списка минус 1.
Открытие файла: Всегда рекомендуется закрывать файлы после работы с ними, или использовать конструкцию with, которая автоматически закрывает файл.
Отступы: В Python отступы критичны. Убедитесь, что код внутри блока for имеет правильные отступы.
Вот исправленный:
import random
# Используем конструкцию with для открытия и закрытия файла
with open('facts', 'r', encoding='utf-8'
as file:
spisok_factov = []
# Считываем строки из файла и добавляем их в список
for line in file:
spisok_factov.append(line.strip()) # Используем strip(), чтобы убрать лишние пробелы и переводы строк
# Генерируем случайный индекс в диапазоне от 0 до длины списка - 1
if spisok_factov: # Проверяем, что список не пуст
random_index = random.randint(0, len(spisok_factov) - 1)
print(spisok_factov[random_index])
else:
print("Список фактов пуст."