Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для WARASHiLO
0 / 0 / 0
Регистрация: 23.12.2015
Сообщений: 21

Запоминание позиций!

23.12.2015, 04:04. Показов 1655. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#3
#Пользователь вводит текст в нём может быть а может и не быть, скобки
#программа выводит текст, заключённый в скобки, если скобок нет, выводит сообщение!!!
print("Вас приветствует программа <СКОБОЧКИ>")
print("\nПрограмма работает со следующими типами скобок: (), [], {}, <>.")
text = input("\nВведите текст:  ")
skob1 = input("\nВведите открывающую скобку:")
skob2 = input("\nВведите закрывающую скобку:")
pos1 = []
pos2 = []
i = 0
y = 0
#Тело цикла
if skob1 in text and skob2 in text :
    for letter in text:
        if letter == skob1 :
            pos1 = [i]
        if letter == skob2 :
            pos2 = [i+1]
        i += 1
    for i in range (len(pos2)-1,-1,-1) :
        print("Элементы заключённые в скобки:", text[pos1[y]:pos2[i]])
    y += 1
else:
    print("Текст не содержит элементов заключённых в данные скобки скобки!")
input("\nHaжмитe Enter,  чтобы выйти!")
Не корректно выводит когда вводишь (qqq(qwqw(q(qq)))aaaa), выводит только: (qq)))aaaa)! Подскажите в чём проблема! За рание всем спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.12.2015, 04:04
Ответы с готовыми решениями:

Поток чисел в консоли до 0 и их запоминание
Помогите решить задачку по python. Условия: В консоль вводятся целые числа не равные 0, по одному в строке. Это продолжается до тех пор,...

Запоминание данных перед завершением работы программы
Немного странный вопрос, но решил спросить на будущее Можно ли сделать так, чтобы программа запоминала что мы ей скажем, и при...

Запоминание корзины AnonymousUser и последующая привязка ее к Logged-in user
Добрый день. Имеется примерно такая модель корзины models.py class Cart(models.Model): user=models.ForeignKey(User,...

7
11 / 11 / 5
Регистрация: 12.10.2013
Сообщений: 54
23.12.2015, 14:26
Напишите обычным языком условия задачи
0
 Аватар для WARASHiLO
0 / 0 / 0
Регистрация: 23.12.2015
Сообщений: 21
23.12.2015, 14:43  [ТС]
Пользователь вводит любой текст который может содержать, а может и не содержать скобки!
Программа должна выводить текст заключённый в скобки, если такого нет, то выводит сообщение!

Но при вводе три и более скобок "((((", некорректно выводит этот текст.

Добавлено через 4 минуты
Преподаватель объяснить не может, нервничает и психует, я решил поискать помощи у знающих людей!
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
23.12.2015, 15:33
Python
1
text[text.index(scob1) + 1:text.rindex(scob2)]
1
11 / 11 / 5
Регистрация: 12.10.2013
Сообщений: 54
23.12.2015, 15:33
Лучший ответ Сообщение было отмечено WARASHiLO как решение

Решение

Все довольно просто. Вы присваете каждый раз массив здесь:
Python
1
2
3
4
    if letter == skob1:
        pos1 = [i]
    if letter == skob2:
        pos2 = [i + 1]
И у вас
Python
1
 y += 1
явно хотел быть в цикле

А вообще, вот поправил
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
# coding=utf-8
 
# Пользователь вводит текст в нём может быть а может и не быть, скобки
# программа выводит текст, заключённый в скобки, если скобок нет, выводит сообщение!!!
print(u"Вас приветствует программа <СКОБОЧКИ>")
print(u"\nПрограмма работает со следующими типами скобок: (), [], {}, <>.")
text = u'(qqq(qwqw(q(qq)))aaaa)' # input(u"\nВведите текст:  ")
skob1 = u'('
skob2 = u')'
pos1 = []
pairs = []
 
# Тело цикла
if not(skob1 in text and skob2 in text):
    print(u"Текст не содержит элементов заключённых в данные скобки скобки!")
 
for i, letter in enumerate(text):
    if letter == skob1:
        pos1.append(i)
    elif letter == skob2:
        if len(pos1):
            pairs.append((pos1.pop(), i))
        else:
            print("Скобочная последовательность неверна")
 
for left, right in pairs:  # только полные пары
    print(u"Элементы заключённые в скобки: " + text[left:right + 1])
1
 Аватар для WARASHiLO
0 / 0 / 0
Регистрация: 23.12.2015
Сообщений: 21
24.12.2015, 03:26  [ТС]
Всем большое спасибо за помощь и уделённое время!!!!


Добавлено через 8 часов 18 минут
Судя по тексту Вашей программы независимо от того, есть во введённом тексте скобки или нет, идёт выполнение цикла и формальный вывод.
Это ошибка.

Далее, несогласна с выводом о наличии незакрытых скобок. В таком случае либо ничего не говорят (mauvais ton), либо сообщают, что есть незакрытые скобки, т.е. выводят сообщение, которое пользователь точно поймёт (bon ton), либо показывают в каком месте ошибка (самый лучший вариант).
Это имейте в виду на будущее.

Это комментарии преподавателя по данной программе!!!
0
 Аватар для WARASHiLO
0 / 0 / 0
Регистрация: 23.12.2015
Сообщений: 21
27.12.2015, 14:24  [ТС]
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
#Пользователь вводит текст в нём могут быть а могут и не быть, скобки
#Программа выводит текст, заключённый в скобки, если скобок нет, выводит сообщение!!!
("Вас приветствует программа <СКОБОЧКИ>")
print("\nПрограмма работает со следующими типами скобок: (), [], {}, <>.")
text = input("\nВведите текст:  ")
skob1 = input("\nВведите открывающую скобку:")
skob2 = input("\nВведите закрывающую скобку:")
pos1 = []
pairs = []
 
# Тело цикла
if skob1 in text and skob2 in text:
    for i, letter in enumerate(text):
        if letter == skob1:
            pos1.append(i)
        elif letter == skob2:
            if len(pos1):
                pairs.append((pos1.pop(), i))
            else:
                print("\nСкобочная последовательность неверна!!!")
    for left, right in pairs:  # только полные пары
        print("Элементы заключённые в скобки: " + text[left:right + 1])
        
else:
    print("\nТекст не содержит элементов заключённых в данные скобки скобки!")
input("\nНажмите Enter, чтобы выйти!")
Добавлено через 32 секунды
Вот как должна выглядеть эта программа!!!
0
11 / 11 / 5
Регистрация: 12.10.2013
Сообщений: 54
28.12.2015, 20:56
Плохо выглядит код, когда if на полстраницы. Поэтому я бы лучше написал в моей версии после
Python
1
print(u"Текст не содержит элементов заключённых в данные скобки скобки!")
Python
1
sys.exit(1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.12.2015, 20:56
Помогаю со студенческими работами здесь

Запоминание в FSM состояния из базы данных с дальнейшим выводом
Здраствуйте форумчане. Пишу телеграм бота для автопродаж на Aiogram. Есть FSM машина которая должна получать данные от пользователя и...

Запоминание, какие чекбоксы активны, а какие нет
Задача: Напишите программу «Заказ в Макдональдсе» с графическим пользовательским интерфейсом на PyQT. Пользователь должен иметь...

Сбросить запоминание позиций окон
при открытие программ их окна фиксируются в определенных позициях, используемых ранее. как отключить эту фичу ?

Составить 2 функции. Одна из функций циклически сдвигает массив длины N вправо на k позиций, а другая - на k позиций вле
Составить 2 функции. Одна из функций циклически сдвигает массив длины N вправо на k позиций, а другая - на k позиций влево. 1. Составить...

Зашифровать строку, поместив вначале все символы, с четных позиций строки, а затем все символы с нечетных позиций
Дана строка-предложение. Зашифровать ее, поместив вначале все символы, расположенные на четных позициях строки, а затем, в обратном...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru