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

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

23.12.2015, 04:04. Показов 1619. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru