Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/190: Рейтинг темы: голосов - 190, средняя оценка - 4.85
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56

Вывод предложений

22.03.2018, 22:29. Показов 38662. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать два класса: LeftParagraph и RightParagraph для печати абзаца с выравниванием по левому и правому краю. При инициализации экземпляры обоих классов должны принимать целое число — ширину поля вывода. В обоих классах нужно реализовать метод add_word для добавления слова в абзац и метод end для обозначения конца абзаца. Слова должны выводиться через пробел.

Гарантируется, что длина любого слова меньше ширины поля вывода.

Формат ввода
Каждый тест представляет собой код, в котором будут использоваться ваши классы. Файл c решением не обязательно называть solution.py, он будет переименован автоматически. Тест запускается с вашими классами, а его вывод сравнивается с правильным решением.

Пример
Ввод Вывод
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from solution import LeftParagraph, RightParagraph
 
lp = LeftParagraph(8)
lp.add_word('abc')
lp.add_word('defg')
lp.add_word('hi')
lp.add_word('jklmnopq')
lp.add_word('r')
lp.add_word('stuv')
lp.end()
print()
 
rp = RightParagraph(8)
rp.add_word('abc')
rp.add_word('defg')
rp.add_word('hi')
rp.add_word('jklmnopq')
rp.add_word('r')
rp.add_word('stuv')
rp.end()
print()
abc defg
hi
jklmnopq
r stuv

abc defg
hi
jklmnopq
r stuv
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.03.2018, 22:29
Ответы с готовыми решениями:

Регулярные выражение, вывод предложений
Всем привет! Новичок в Питоне и в текстовом анализе. Нуждаюсь в помощи: из текстового файла считывается русский текст. Необходимо...

Вывод предложений, состоящих только из заданного количества слов
Написать программу, которая вводит строку символов и выводит на экран только предложения, состоящие из заданного количества слов.

Подсчет предложений в файле
Как посчитать количество предложений в файле, чтобы учитывались не только точки, но и многоточия? вот фрагмент кода, но он читает...

7
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
23.03.2018, 05:16
Хоть один класс попробуешь сам написать?
0
7 / 7 / 0
Регистрация: 15.02.2018
Сообщений: 56
23.03.2018, 08:33  [ТС]
Я писал некоторые. Но скоро задачи закроются а мне нужно рейтинг поднять а то я вылечу
0
6 / 6 / 1
Регистрация: 04.02.2018
Сообщений: 10
18.04.2018, 21:56
Извините, что беспокою, но я пытался написать эту программу (я только начал изучать программирование ), поэтому допускаю наиглупейшие ошибки, если Вас не затруднит, не могли бы Вы сказать, где я допустил ошибку в коде? (Он выводит не все слова, иногда пропускает пробелы...)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class LeftParagraph():
    def __init__(self, lenth):
        self.lenth =lenth
        self.array=['']
    def add_word(self, world):
        k=0
        if len(self.array[-1])+len(world)<=self.lenth-1:
            if k!=0:
                self.array[-1]+=' '+world
            elif self.array[-1]=='':
                self.array[-1]+=world
                k=1
        else:
            self.array[-1].ljust(self.lenth)
            self.array.append(world)
    def end(self):
        if self.array[0]=="":
            del self.array[0]        
        for i in self.array:
            print('{0:<{1}}'.format(i, self.lenth))
        self.array=['']
class RightParagraph():
    def __init__(self, lenth):
        self.lenth =lenth
        self.array=['']
    def add_word(self, world):
        k=0
        if len(self.array[-1])+len(world)<=self.lenth-1:
            if k!=0:
                self.array[-1]+=' '+world
            else:
                self.array[-1]+=world
                k=1
        else:
            self.array[-1].ljust(self.lenth)
            self.array.append(world)        
        
    def end(self):
        if self.array[0]=="":
            del self.array[0]
        
        for i in self.array:
            print('{0:>{1}}'.format(i, self.lenth))
 
        self.array=['']
2
0 / 0 / 0
Регистрация: 27.03.2019
Сообщений: 2
27.03.2019, 10:02
Taranboy, как с тобой можно связаться?
0
27.03.2019, 12:35

Не по теме:


Цитата Сообщение от Rtye Посмотреть сообщение
как ... связаться
Уже никак - его отчислили. Ты следующий.

0
31 / 27 / 5
Регистрация: 08.11.2019
Сообщений: 58
21.03.2020, 11:28
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
class LeftParagraph():
    def __init__(self, length):
        self.length = length
        self.array = ['']
        self.k = 0
 
    def add_word(self, world):
        if len(self.array[-1]) + len(world) <= self.length - 1:
            if self.k != 0:
                self.array[-1] += ' ' + world
            elif self.array[-1] == '':
                self.array[-1] += world
                self.k = 1
        else:
            self.array[-1].ljust(self.length)
            self.array.append(world)
 
    def end(self):
        if self.array[0] == "":
            del self.array[0]
        for i in self.array:
            print('{0:<{1}}'.format(i, self.length))
        self.array = ['']
 
 
class RightParagraph():
    def __init__(self, length):
        self.length = length
        self.array = ['']
        self.k = 0
 
    def add_word(self, world):
        if len(self.array[-1]) + len(world) <= self.length - 1:
            if self.k != 0:
                self.array[-1] += ' ' + world
            else:
                self.array[-1] += world
                self.k = 1
        else:
            self.array[-1].ljust(self.length)
            self.array.append(world)
 
    def end(self):
        if self.array[0] == "":
            del self.array[0]
 
        for i in self.array:
            print('{0:>{1}}'.format(i, self.length))
 
        self.array = ['']
k нужно было в инит поставить и добавить ему self
0
5 / 5 / 0
Регистрация: 07.03.2021
Сообщений: 20
24.03.2021, 15:39
Всем привет
Вот мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
class LeftParagraph:
    spisok = []
    a = ''
 
    def __init__(self, dlina):
        self.dlina = dlina
 
    def add_word(self, slovo):
        self.spisok.append(slovo)
 
    def end(self):
        for t, i in enumerate(self.spisok):
            if t == 0:
                self.a += i
            else:
                if self.a != '':
                    if len(self.a + i) + 1 < self.dlina:
                        self.a += ' ' + i
                    elif len(self.a + i) + 1 == self.dlina:
                        self.a += ' ' + i
                        print(self.a)
                        self.a = ''
                    elif len(self.a + i) + 1 > self.dlina:
                        self.a += ' ' * (self.dlina - len(self.a))
                        print(self.a)
                        self.a = i
                else:
                    if len(self.a + i) < self.dlina:
                        self.a += i
                    elif len(self.a + i) == self.dlina:
                        self.a += i
                        print(self.a)
                        self.a = ''
                    elif len(self.a + i) > self.dlina:
                        self.a += ' ' * (self.dlina - len(self.a))
                        print(self.a)
                        self.a = i
        if self.a != '':
            print(self.a)
        self.spisok = list()
        self.a = ''
 
 
class RightParagraph:
    spisok = []
    a = ''
 
    def __init__(self, dlina):
        self.dlina = dlina
 
    def add_word(self, slovo):
        self.spisok.append(slovo)
 
    def end(self):
        for t, i in enumerate(self.spisok):
            if t == 0:
                self.a += i
            else:
                if self.a != '':
                    if len(self.a + i) + 1 < self.dlina:
                        self.a += ' ' + i
                    elif len(self.a + i) + 1 == self.dlina:
                        self.a += ' ' + i
                        print(self.a)
                        self.a = ''
                    elif len(self.a + i) + 1 > self.dlina:
                        self.a = ' ' * (self.dlina - len(self.a)) + self.a
                        print(self.a)
                        self.a = i
                else:
                    if len(self.a + i) < self.dlina:
                        self.a += i
                    elif len(self.a + i) == self.dlina:
                        self.a += i
                        print(self.a)
                        self.a = ''
                    elif len(self.a + i) > self.dlina:
                        self.a = ' ' * (self.dlina - len(self.a)) + self.a
                        print(self.a)
                        self.a = i
        if self.a != '':
            print(' ' * (self.dlina - len(self.a)) + self.a)
        self.spisok = list()
        self.a = ''
но в нем что-то не так, помогите исправить пожалуйста:
Ввод:
from solution import LeftParagraph, RightParagraph

rp = RightParagraph(6)
rp.add_word('a')
rp.add_word('bc')
rp.add_word('d')
rp.add_word('e')
rp.add_word('fg')
rp.add_word('hi')
rp.add_word('j')
rp.add_word('k')
rp.add_word('l')
rp.end()
print()

lp = RightParagraph(2)
lp.add_word('a')
lp.add_word('bc')
lp.add_word('d')
lp.add_word('e')
lp.add_word('fg')
lp.add_word('hi')
lp.add_word('j')
lp.add_word('k')
lp.add_word('l')
lp.end()
print()

lp_2 = LeftParagraph(1)
lp_2.add_word('d')
lp_2.add_word('c')
lp_2.add_word('g')
lp_2.end()
print()
lp_2.add_word('c')
lp_2.add_word('e')
lp_2.end()
print()
Ожидаемый результат:
a bc d
e fg
hi j k
l

a
bc
d
e
fg
hi
j
k
l

d
c
g

c
e
Вывод:
a bc d
e fg
hi j k
l

a
bc
d
e
fg
hi
j
k
l
a
bc
d
e
fg
hi
j
k
l

d
c
g

c
e
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.03.2021, 15:39
Помогаю со студенческими работами здесь

Ввод предложений
Напишите два класса: LeftParagraph и RightParagraph для печати абзаца с выравниванием по левому и правому краю. При инициализации...

Оптимизировать вывод предложений
Задание звучит так: Написать программу, которая заменяет в текстовом файле порядок следования предложений на обратный. Вот...

Вывод предложений, начинающихся с тире
Здравствуйте, помогите пожалуйста! Написать программу, которая считывает текст из файла и выводит на экран только предложения,...

Вывод предложений, начинающихся с тире
Всем привет) У меня такое задание - написать программу,которая считывает текст из файла и выводит на экран только предложения начинающиеся...

Вывод предложений из файла в файл
Задача: &quot;в файле (в нашем случае, &quot;start.txt&quot;) находятся символы со знаками препинания. Необходимо в другой файл (&quot;end.txt&quot;)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru