Привет! В вашем коде возможно ошибка из-за того, что вы используете функцию `random.randint(1, 5)`, которая возвращает случайное целое число в диапазоне от 1 до 5. Однако, в Python индексация начинается с 0, поэтому вам следует использовать `random.randint(0, 4)` вместо `random.randint(1, 5)`, чтобы избежать ошибки "IndexError: list index out of range". Также убедитесь, что файл "facts" существует и содержит нужные данные. Надеюсь, это поможет исправить проблему!
Индексация списка: В 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("Список фактов пуст."
with open('facts', 'r', encoding='utf-8') as file:
spisok_factov = file.readlines()
if spisok_factov:
random_index = random.randint(0, len(spisok_factov) - 1)
print(spisok_factov[random_index].strip())
else:
print("Файл пуст или не содержит фактов.")