Форум сайта python.su
0
Здравствуйте.
У меня следующия такая проблемка.
Вообщем, есть файл, с цитатами. Надо их по строкам распределить в список?(list) И потом выдавать случайно по одной цитате.
file=open("quotes.txt", "r")
a=[]
for line in file:
a.append(line)
from random import*
d=randint(1,len(a))
print dОфлайн
18
import random
text = open("quotes.txt", "r").read().split('\n')
print random.choice(text)
Офлайн
0
Хорошо работает, но учитель видел мою изначальную работу и знает, что бы я не дошла бы до таких выводов. Можно как нибудь по проще, по длиннее расписать?
Офлайн
0
Не то, что бы я просто хочу скопировать и показать учителю. Мне просто надо понять и вслучае объяснить, а тут я не совсем всё понимаю.
Офлайн
18
import random
file = open("quotes.txt", "r") # отрываем файл
alltext = file.read() # читаем из него весь текст
spisok = alltext.split('\n') # разбиваем текст в список по символу "конец строки"
citata = random.choice(spisok) # выбираем из списка случайный элемент
print citata
Офлайн
36
Murderdoll666не поверит, что Вы заглянули в справку по питону?
учитель видел мою изначальную работу и знает, что бы я не дошла бы до таких выводов
Офлайн
0
pyuserДа не то что бы зашла, просто тот изначальный вариант был ну уж слишком для меня. А написать свою программу опираясь на то решение у меня не получилось.Murderdoll666не поверит, что Вы заглянули в справку по питону?
учитель видел мою изначальную работу и знает, что бы я не дошла бы до таких выводов
у объекта file есть метод readlines, который возвращает список строк, а дальше Вы уже сами все сделали :). Ваше d это индекс строки в массиве строк, т.е. Вам нужно писать не print(d), а print(spisok)
Офлайн
13
по-моему тут напрашивается использование readlines вместо read и split.
Офлайн