Форум сайта python.su
Привет)
У меня есть файл с именем info.txt . Вот примерное содержимое этого файла (описываю его формат):
—–
Время: 12:00
Событие: Перехвачена радиограмма внеземного разума
Время:10:29
Событие: НЛО вылетело из Аризоны
Время: 02:00 AM
Событие: Тараканы разбежались :D
—-
Вот такой формат.. Значит алгоритм такой: Мне нужно взять случайное число ran = random.randint(0, len(f.readline()))
и это число - случайный индекс строки ф файле info.txt
потом нужно проверить условие Если первая буква строки = “В” -> то это нужная строки и надо ее распечатать (имеется ввиду строка начинающаяся с “Время”),
если это оказалась строка, первая буква которой НЕ “В” -> то это ненужная строка, и надо попытаться найти близлижайшую строку начинающуюся на “В”. Как вы можете увидеть… от “В” до другой “В” расстояние составляет 3 строки..
Нуен код)) help!
Офлайн
очень странное у вас задание…
а нельзя просто отфильтровать все строки “Время:…” и выбрать случайное?
print random.choice([line.strip() for line in open('info.txt') if line.startswith('Время')])
Офлайн
Если формат файла не меняется, то можно наверное и так:
import random
f=open('info.txt')
lines=[]
for line in f.readlines():
lines.append(line)
n=random.randint(0,len(lines))
k=n%3
if (k==1):
print lines[n]
elif (k==0): print lines[n-2]
else: print lines[n-1]
Офлайн
А если проще:
n = random.randrange(0, len(lines), 3)
Офлайн