Даже современный C++...

Mar 30, 2017 14:02

...понимает толк в построчном чтении из файла.

"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."

Питон хуже C++!!!

c++, языки программирования

Leave a comment

Comments 52

dtim March 30 2017, 11:31:21 UTC
Неоткусывание перевода строки еще в перле было в доисторические времена (while <> { chomp; ... }), так что, можно сказать, необходимость .strip() освящена традицией :).

Я последнее время тоже делаю на питоне разные задачки, в основном из NLP. Есть куча (иногда неприятных) особенностей, конечно, особенно после ocaml/haskell/scala, но это все мелочи по сравнению с главным: питон - это суперклей для кучи всяких полезных готовых библиотек. Только ради этого им стоит пользоваться. Насколько я понимаю, еще R близок по разнообразию готовых инструментов, но там, на мой взгляд, уже другой мир и совсем другой взгляд на то, что такое язык программирования (в каком-то смысле более последовательный, но для меня непривычный). Так что питон - вполне себе рабочий компромисс между «нормальными» языками (в смысле programming in large) и коллекцией проводков, в которой всегда можно найти что-то нужное.

Reply

thesz March 30 2017, 12:11:59 UTC
У меня тоже NLP, своего рода. Я в speechkit яндекса работаю.

Из всех библиотек я использую только regexp и codecs, которые в тикле встроены и удобней на несколько корпусов.

Reply

avnik March 30 2017, 13:11:08 UTC
а удобство -- это уже вопрос привычки.
Мне вот после питона в го регекспы показались ужасно неудобными.

Вот codecs и правда своеобразное, и местами косое.

Reply

thesz March 30 2017, 13:46:09 UTC
Не, дядя.

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

Up