Обьясните код на питоне пожалуйста - Общение Python мододелов

Вопрос Обьясните код на питоне пожалуйста

Регистрация
29 Май 2013
Сообщения
85
Репутация
0
Спасибо
0
Монет
0
s = input()

r = ''

a = 0

b = 0

for b in s:

a = a + b == '('

if not a:

r = r + b

a = a - b == ')'

print(r)

 
Регистрация
7 Дек 2013
Сообщения
87
Репутация
0
Спасибо
0
Монет
0
input_str = input()
result = ''
a = b = 0
for symb in input_str:
a += symb == '('
if not a: # a - False, not a - True
result += symb
a -= symb == ')'
print(result) Хорошо, код там реально был не рабочий, но я его переделал более менее. Единственный способ применения, как я понял - исключать из текста всё, что написано в скобках Хорошо((Сейчас а - True)), прикольно - вывод будет без скобок (как я понял)
 
Регистрация
28 Июл 2013
Сообщения
74
Репутация
0
Спасибо
0
Монет
0
Сама идея кода заведомо ошибочна - даже если поправить. Например, для строки: Это просто одиночный символ ')', не имеющий пары он выдаст: Это просто одиночный символ ' Но задача - удалить ПАРНЫЕ круглые скобки и их содержимое.

В самом коде абсолютно бессмысленная ненужная строка: b = 0 И в двух местах забыты круглые скобки: a = a + (b == '(')
a = a - (b == ')')
 
Регистрация
4 Ноя 2012
Сообщения
204
Репутация
0
Спасибо
0
Монет
0
я думаю, что в коде забыли дописать чтобы брались именно значения keycodes от введенных строчных значений, а не их буквальные значения (строковые), и тогда идет сравнение что вычитание кейкода буквы из введенного значения равно кейкоду либо открывающей либо закрывающей круглой скобки
зачем это нужно - не понятно; равно как и не понятно зачем инициализировать b нулем, если она используется в цикле в качестве итератора
в данный момент - это бессмысленный код, он всегда будет выдавать последний символ введенного значения
 
Регистрация
1 Апр 2013
Сообщения
99
Репутация
1
Спасибо
1
Монет
0
Нечего там объяснять, код просто неправильный и бессмысленый. for b in s: Этот цикл перебирает символы в строке `s`
Причем объявление b = 0 ни на что не влияет, на каждой итерации b будет равняться очередному символу в строке. a + b == '(' Число (а) суммирует со строкой (b), на первой же итерации выдаст ошибку. Арифметику нельзя выполнять между числом и строкой (есть 1 исключение).
 
Сверху Снизу