Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 15, 2014 23:49:21

BlackRabbit
Зарегистрирован: 2013-12-03
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите плиз СРОЧНО нужно решить задачку

Спасибо, но мне нужно на Python3.3

Офлайн

#2 Янв. 15, 2014 23:49:22

BlackRabbit
Зарегистрирован: 2013-12-03
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите плиз СРОЧНО нужно решить задачку

Спасибо, но мне нужно на Python3.3

Офлайн

#3 Янв. 16, 2014 00:19:43

TroSer
От: Харьков
Зарегистрирован: 2013-11-13
Сообщения: 65
Репутация: +  3  -
Профиль   Отправить e-mail  

Помогите плиз СРОЧНО нужно решить задачку

версия для 3 питона, с небольшим изменением

import re
 
row = 50
page = row * 40
choice = 'yes'
textfile = open('text.txt', 'r')
text = textfile.read()
textfile.close()
 
pages = (len(text)-1)//page + 1
print ('Text contains %d pages' %pages)
 
while choice == 'yes':
    fortune_telling = input('Enter page number, row number and word number separated by commas: ')
    input_list = fortune_telling.split(',')
    numbers = [int(x.strip()) for x in input_list]
 
    required_page = text[page*(numbers[0]-1):page*numbers[0]]
    required_row = required_page[row*(numbers[1]-1):row*numbers[1]]
    #you can add any additional separator to re.split
    required_words = re.split(r'[ ,]', required_row)
 
    for word in required_words:
        if word == '':
            required_words.remove(word)
    print ('That magic word - %s' %required_words[numbers[2]-1])
    choice = input('Do you want to repeat? yes or no: ')

Отредактировано TroSer (Янв. 16, 2014 10:39:36)

Офлайн

#4 Янв. 16, 2014 02:24:24

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Помогите плиз СРОЧНО нужно решить задачку

TroSer
ошибка во первых в том что в 3 питоне / дает float, во вторых зачем там делать -1 мне не ясно,в третьих, например длина текста 4000, в таком случае в вашем коде страниц будет 3, хотя их должно быть две.
Я в таком случае решаю проблему следующим образом:

pages = (len(text))//page + bool(len(text)%page)
дальше код не смотрю ибо поджало время :)



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Янв. 16, 2014 08:00:51

TroSer
От: Харьков
Зарегистрирован: 2013-11-13
Сообщения: 65
Репутация: +  3  -
Профиль   Отправить e-mail  

Помогите плиз СРОЧНО нужно решить задачку

JOHN_16
например длина текста 4000, в таком случае в вашем коде страниц будет 3
ой да, я затупил, в третьем питоне там float, а если длина 4000, то минус один не дает считать страницу с пустым символом (4000-1) // 2000 + 1 == 2?
ну и ваш пример рассчета страниц нагляднее конечно, чем мои танцы с бубном и минус единицей

Отредактировано TroSer (Янв. 16, 2014 08:52:03)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version