"the next available input character is delim, as tested by Traits::eq(c, delim), in which case the delimiter character is extracted from input, but is not appended to str."
Неоткусывание перевода строки еще в перле было в доисторические времена (while <> { chomp; ... }), так что, можно сказать, необходимость .strip() освящена традицией :).
Я последнее время тоже делаю на питоне разные задачки, в основном из NLP. Есть куча (иногда неприятных) особенностей, конечно, особенно после ocaml/haskell/scala, но это все мелочи по сравнению с главным: питон - это суперклей для кучи всяких полезных готовых библиотек. Только ради этого им стоит пользоваться. Насколько я понимаю, еще R близок по разнообразию готовых инструментов, но там, на мой взгляд, уже другой мир и совсем другой взгляд на то, что такое язык программирования (в каком-то смысле более последовательный, но для меня непривычный). Так что питон - вполне себе рабочий компромисс между «нормальными» языками (в смысле programming in large) и коллекцией проводков, в которой всегда можно найти что-то нужное.
re.match не выполняет вытаскивание групп. re.search выполняет, но отдельным действием.
В результате в Питоне вытаскивание группы это r = re.search(expr, line) if r: v1 = r.group(1) v2 = r.group(3)
Для сравнения в тикле: if {[regexp $expr $line _ v1 _ v2]} { ..работаем с значениями v1 и v2 - если сравнение прошло, то они будут установлены (если присутствуют в expr...}
Питон это C# без типов. Тикль практически sed в этом конкретном случае.
На ровном месте в Питоне сделали хуже, чем в тикле и только потому, что у дизайнеров Питона были какие-то идеи о том, как язык должен выглядеть. Или не было мыслей о том, как язык может выглядеть.
Comments 52
Я последнее время тоже делаю на питоне разные задачки, в основном из NLP. Есть куча (иногда неприятных) особенностей, конечно, особенно после ocaml/haskell/scala, но это все мелочи по сравнению с главным: питон - это суперклей для кучи всяких полезных готовых библиотек. Только ради этого им стоит пользоваться. Насколько я понимаю, еще R близок по разнообразию готовых инструментов, но там, на мой взгляд, уже другой мир и совсем другой взгляд на то, что такое язык программирования (в каком-то смысле более последовательный, но для меня непривычный). Так что питон - вполне себе рабочий компромисс между «нормальными» языками (в смысле programming in large) и коллекцией проводков, в которой всегда можно найти что-то нужное.
Reply
Из всех библиотек я использую только regexp и codecs, которые в тикле встроены и удобней на несколько корпусов.
Reply
Мне вот после питона в го регекспы показались ужасно неудобными.
Вот codecs и правда своеобразное, и местами косое.
Reply
re.match не выполняет вытаскивание групп. re.search выполняет, но отдельным действием.
В результате в Питоне вытаскивание группы это
r = re.search(expr, line)
if r:
v1 = r.group(1)
v2 = r.group(3)
Для сравнения в тикле:
if {[regexp $expr $line _ v1 _ v2]} { ..работаем с значениями v1 и v2 - если сравнение прошло, то они будут установлены (если присутствуют в expr...}
Питон это C# без типов. Тикль практически sed в этом конкретном случае.
На ровном месте в Питоне сделали хуже, чем в тикле и только потому, что у дизайнеров Питона были какие-то идеи о том, как язык должен выглядеть. Или не было мыслей о том, как язык может выглядеть.
Reply
Leave a comment