Pull to refresh
40

Инженер-программист

37
Subscribers
Send message
Я не понимаю ваших претензий.
Это у нормальных людей строки — это частный случай бинарных данных. В python3 — нет.

Давайте не переходить на уровень «настоящих шотландцев». Что вы подразумеваете, под тем, что в python3 строки не бинарные данные?

А в python возможно? Да неужели?
>>> 'Ху**ня'[4]
'н'
>>> 'Ху*ня'[4]
'я'

У вас в первом случае должна быть [3]? Ну выглядит как логичное и ожидаемое поведение, строка — последовательность символов, индексируясь по ней — получаем символы. Ещё раз есть языки, в которых на такой операции вы получите ошибку компиляции, это лучше?

Я вообще не знаю ни одного практически полезного алгоритма, для которого такая индексация годилась бы, а побайтовая индексация UTF-8 текста — не годилась бы.

1. encode вам в помощь.
2. ну и не работайте в таком случае не с python, зачем грызть кактус?) Есть C, который гораздо лучше подходит под обработку бинарных данных, python вообще не про это.

Но за эту блажь платится усложнением реализации, замедлением и усложнением языка. Впрочем это всё в духе Python, так что, в принципе, неудивительно.


Критикуешь — предлагай. Как вы посоветуете переписать реализацию? Можно хоть в виде PEP на оф. сайте. Всё сообщество будет вам благодарно.

Python3 по сравнению с Python2 — это как C++ по сравнению с C: выстрелить в ногу слегка сложнее, но всё равно не очень сложно, а разрушений — намного больше.


Всё смешалось, кони-люди. В C++ выстрелить в ногу сложнее или в C? Какие разрушения вы получите в случае с python? Я пытался, я менял служебные поля в рантайме, в большинстве случаев получал падение интерпретатора, никуда буферы не текли, стеки не переполнялись, произвольный код не выполнялся. Хотя достичь этого можно, но надо прям специально постараться, это не выстрел в ногу — это осознанный суицид.

Работать с данными как с последовательностью байт. А кодировку использовать там и тогда, когда это реально нужно.


Так используйте) Кто вам не разрешает?

Какой процент строк из вашей программы у вас отображается на экране? Зачем засорять работу с теми из них (а это, в типичном случае 90%, а во многих программах и 99%) сущностью, которая вам не нужна?


Вот здесь вообще не понял.
Я сам с удивлением узнал, впрочем, это действительно затрудняет парсинг и создаёт возможные уязвимости.
Вот здесь есть несколько примеров.
Касательно именно длинной арифметики, у меня данных нет, к сожалению.
По идее, операции написаны на C, используют в том числе и алгоритм Карацубы, правда, вряд ли создатели интерпретатора задавались целью применить столько же оптимизаций, сколько могут сделать создатели специализированных библиотек, в общем, если у кого есть бенчмарк, будем рады.

Я пока могу судить только по вычислению биномиальных коэфициентов и прочих чисел Фибоначчи — лично меня скорость устраивала. :)
Потому что вся работа со строками в Python3 построена вокруг двух предположений:
1. Строки (текст) и бинарные данные строго отделены друг от друга.
2. Во всех случаях когда мы работаем со строками мы всегда заранее знаем кодировку.
Поскольку в реальном мире оба этих предположения неверны, то строки в Python — это боль и содомия. Чего одна история с path-like объектами стоит!


Что для вас отстоят отдельно? Разные типы? Ну это логично, строки — частный случай бинарных данных, вполне можно навесить дополнительных проверок и операций, чтобы облегчить работу программисту. Как я уже упоминал, в некоторых языках даже индексирование не возможно.

Насчёт кодировок — константы всегда приходят из исходника с известной кодировкой, при чтении файлов, её тоже можно указать. Если он не известна то, что вы предлагаете делать?
Ждём от Вас статьи про std::string. Я не в курсе, слышал только про 2 реализации всех строковых алгоритмов в java: для ascii и для не ascii строк и флаг, указывающий на тип.

Ну и самое простое — это хранить массив из 4 байт на каждый символ. Вот только эффективно ли это?

В cpython удалось добиться не большого расхода памяти, при этом скрыть особенности реализации от пользователя, благодаря чему он может, например, обращаться по индексу, в отличие от Rust или Julia.

А так ли важно, сколько там наворотов, если абстрация не течёт? :)
Действительно, так работает, но вот в фигурных скобках, указывать нельзя:

>>> a = ["a", "b"]
>>> f"{'\n'.join(a)}"
SyntaxError: f-string expression part cannot include a backslash
Нельзя, но, если очень хочется, то можно.
Опять же, многие не переставали быть членами Единой России, вроде бы, просто не афишировали это.
Я, конечно, не в теме, поэтому могу ошибаться, но разве беспартийные, ВНЕЗАПНО, не подоставали членские билеты Единой России и не сформировали свою группу?
А были железные пруфы?
Я помню только один пример утечки документов, железно подтверждающих слежку правительственными организациями.
Утечку организовал Сноуден, вот только в списке США нет, зато есть государство, которое дало ему вид на жительство.
Или раз от АНБ всё равно не укрыться, то США можно не включать в этот список?
Это вы какую-то конкретную историю имеете ввиду? Можно объяснение для тех, кто не в теме?
Так, глядишь, и настоящих констант дождёмся.

Ну джавы в python уже почти дождались.
>Python очень удобный и многогранный язык,
>но по умолчанию не имеет такой структуры данных как связный список или LinkedList.
И это ещё один плюс :)

Ну здесь рекомендация простая: нужна математика — не используйте python, но если очень хочется — вот вам numpy.
Это, конечно, не оптимальный вариант, но жить можно, и очень неплохо.

Да, что-то я не подумав сказал, спасибо за замечание.
Как уже было замечено в наших краях хорошее школьное образование, плохое высшее и отвратительные магистратуры, в США всё наоборот.

Возвращаясь к компиляторам: есть курс от computer science center www.youtube.com/watch?v=DKr45aBUtFU&list=PLlb7e2G7aSpQ4Ym2TWTYyMcfMevxpKoxj

Он там не один такой, есть прочитанные в другое время. Я сам не интересовался, за качество отвечать не берусь, но ознакомиться можете.
Я про то, что url, иконка да и название похожи. Нет, я не обвиняю в плагиате, просто информирую, что вот так получилось.
А откуда берётся информация о добавках? Видимо, о добавках с номерами больше 1000, информации там не было.
P.S. Зачем украили эмблему https://e-dostavka.by/? :)
Присоединяюсь к просьбам указать адрес события :)
Не знаю, как обстоит дело с качеством предсказывания аудитории для авторов, но вот предсказывание статей для читателей, похоже, сломано совсем.

Краткое содержание: хохлы обосрались, пиндосы обосрались, санкции не работают, украина лучше всех, Россия скоро распадётся, доллар рухнет, Беларусь анексируют, доллар растёт, шокирующие подробности о <типо кто-то известный>, 10 лайфхаков со сливочным маслом, Нострадамус предсказал смерть человечества в 2019.

Одна техническая или научная статья или пусть даже политическая, но написанная нормальным тоном за день — хороший результат.

Information

Rating
Does not participate
Registered
Activity