Найти - Пользователи
Полная версия: Вопрос
Начало » Python для новичков » Вопрос
1
Murderdoll666
Здравствуйте.
У меня следующия такая проблемка.
Вообщем, есть файл, с цитатами. Надо их по строкам распределить в список?(list) И потом выдавать случайно по одной цитате.
file=open("quotes.txt", "r")

a=[]
for line in file:
a.append(line)
from random import*
d=randint(1,len(a))
print d
Проблема в том, что мне выдаёт цифры в место строк. Я даже понимаю почему, но как написать иначе не знаю. К учителю обращаться не хочу, я его задол… надоела ему вообщем)
sp3
import random
text = open("quotes.txt", "r").read().split('\n')
print random.choice(text)
Murderdoll666
Хорошо работает, но учитель видел мою изначальную работу и знает, что бы я не дошла бы до таких выводов. Можно как нибудь по проще, по длиннее расписать?
Murderdoll666
Не то, что бы я просто хочу скопировать и показать учителю. Мне просто надо понять и вслучае объяснить, а тут я не совсем всё понимаю.
sp3
import random 
file = open("quotes.txt", "r") # отрываем файл
alltext = file.read() # читаем из него весь текст
spisok = alltext.split('\n') # разбиваем текст в список по символу "конец строки"
citata = random.choice(spisok) # выбираем из списка случайный элемент
print citata
понятнее ? :)
pyuser
Murderdoll666
учитель видел мою изначальную работу и знает, что бы я не дошла бы до таких выводов
не поверит, что Вы заглянули в справку по питону?
у объекта file есть метод readlines, который возвращает список строк, а дальше Вы уже сами все сделали :). Ваше d это индекс строки в массиве строк, т.е. Вам нужно писать не print(d), а print(spisok)
Murderdoll666
pyuser
Murderdoll666
учитель видел мою изначальную работу и знает, что бы я не дошла бы до таких выводов
не поверит, что Вы заглянули в справку по питону?
у объекта file есть метод readlines, который возвращает список строк, а дальше Вы уже сами все сделали :). Ваше d это индекс строки в массиве строк, т.е. Вам нужно писать не print(d), а print(spisok)
Да не то что бы зашла, просто тот изначальный вариант был ну уж слишком для меня. А написать свою программу опираясь на то решение у меня не получилось.
за совет большое спасибо, мой изначальный код теперь работает как надо)))
sp3, и Вам спасибо
Ed
по-моему тут напрашивается использование readlines вместо read и split.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB