[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.46029 Reply
File: pylogo0.png
Png, 126.61 KB, 800×642 - Click the image to expand
edit Find source with google Find source with iqdb
pylogo0.png
Предыдущий >>37139 ушёл в бамплимит.

Краткая справка для новичков:
Официальный сайт: http://python.org/
Документация по стандартной библиотеке и разнообразные Tips & Tricks: http://docs.python.org/
неСвежая тема для священной войны, или руководство по выбору между версиями: http://wiki.python.org/moin/Python2orPython3
Ссылка для вопящих про дикие тормоза: http://speed.pypy.org/
Python для микроконтроллеров http://micropython.org или http://www.github.com/micropython
>> No.46061 Reply
Аноны, подкиньте годных подробных, внятных и понятных материалов по ООП и модулю sys() в python 3. Как раз это и вызывает у меня затруднение
>> No.46064 Reply
>>46061
Сомневаюсь что есть материалы чисто по sys. Мне хватало официальной доки, это же просто набор методов и данных относящихся к текущему окружению/интерпретатору. Разве что разница с os может быть неочевидна.
>> No.46098 Reply
Нужно ли новичку читать эти книги?
* С. Макконнелл «Совершенный код»
* Кнут «Искусство программирования»
Очень часто советуют, говорят что без них хорошо кодить не получится. Что думаете на этот счет, аноны?
>> No.46099 Reply
Как правильно настроить рабочее окружение/среду разработки ?(Git'ы, pip'ы там всякие...) В планах еще установка Джанги.
>> No.46105 Reply
>>46099
Просто ставишь virtualenv и там просто ставишь джангу, просто.
>> No.46106 Reply
>>46098
Почитай, совершенный код вообще хорошо читается.
>> No.46209 Reply
File: Ai_Yori_manga.jpg
Jpg, 51.99 KB, 251×352 - Click the image to expand
edit Find source with google Find source with iqdb
Ai_Yori_manga.jpg
Привет опять, анаконды. Такой вопрос (на этот раз не глупый): какую самую сложную программу на Питоне вы написали?
>> No.46211 Reply
Привет, ребят. Хорошо пишу на питоне бэкенд, а вот с графическим интерфейсом не выходит. Могу легко сделать утилиту для терминала, но привязать ее к гуи не удается, только ANSI ESC. Помогите, пожалуйста, куда копать, что читать?
>> No.46217 Reply
>>46211
Читать гуёвые фреймворки. Копать в сторону биндингов этих фреймворков к этому своему питону, если ты ни на чем другом писать не собираешься.
>> No.46218 Reply
>>46209
Проект на джанге по продажам
>> No.46270 Reply
File: Calvintrigun.jpg
Jpg, 64.97 KB, 578×592 - Click the image to expand
edit Find source with google Find source with iqdb
Calvintrigun.jpg
Почему такая большая разница между второй и третьей версиями Пайтона?
>> No.46271 Reply
>>46270
Потому что мажорный апдейт. Ваш КО.
Конкретное смотри отдельные pep'ы, причины обычно указаны.
>> No.46284 Reply
File: picview_tmpDungeon_crawl.png
Png, 171.27 KB, 720×458 - Click the image to expand
edit Find source with google Find source with iqdb
picview_tmpDungeon_crawl.png
>>46029
Анон, спасай, кроме тебя мне больше не на кого положиться.
Необходимо, чтобы в консоли винды при запуске программы на питоне размеры символа были близки к квадрату (для рисования символами). Более часа в гугле не дали мне ничего, видимо не умею я в гугл. И если с цветом и позиционированием символа помогают куча библиотек (в моем случае colorama), то тут мне приходит в голову только архикостыль с изменением реестра программой.
Спасай, анон, пукан готов отправится в кругосветное путешествие.
>> No.46285 Reply
File: picview_tmpNrogue2a.png
Png, 107.30 KB, 500×600 - Click the image to expand
edit Find source with google Find source with iqdb
picview_tmpNrogue2a.png
>>46284
Хотя пик как раз не особо отражает. Нужна менее вытянутая форма.
>> No.46286 Reply
>>46284
Ты норкоман? Любой моноширинный шрифт годится, terminal самый популярный.
>> No.46287 Reply
>>46284
Обязательно использовать консоль? Чому не сделать как в ДФ - лепить символы на холст через OpenGL. Если в консоли, то ищи квадратный моноширный шрифт, гугл подсказывает Topaz 8, устанавливай его на клиентскую машину и ставь его в консоль через что там в вашем питоне может вызвать SetCurrentConsoleFontEx.
>> No.46288 Reply
>>46287
Вот я и ищу этот метод сменить шрифт терминала средствами питона.
>> No.46289 Reply
>>46288
Сейчас нашел пример кода, где меняют шрифт, используя ctypes. Уже хорошо.
>> No.46291 Reply
>>46271
> Потому что мажорный апдейт. Ваш КО.
Почему мажорные апдейты например в плюсах и джаваскрипте не ломают обратную совместимость, а в питоне ломают?
>> No.46293 Reply
>>46291
Потому что изначально криво сделано было и лучше переделать раньше, а то это превратится в груду костылей, как в похапе. Его вон тоже созрели ломать несовместимо, после стольких лет, лол.
>> No.46297 Reply
>>46293
И вот теперь имеем комьюнити поделенное на две половины, несовместимые друг с другом опенсорцные либы, а транслятор из второго питона в третий - точно такой же костыль.
>> No.46298 Reply
>>46297
> на две половины
Да ну. Переезд на третий питон вполне себе идет.
>> No.46299 Reply
>>46298
Волне себе идет уже который год.
>> No.46300 Reply
>>46299
>>46298
Восьмой год мы переезжаем со второй версии на третью. Восемь лет. Восемь. Лет. Со второй. На третью.
>> No.46301 Reply
Аноны, неужели, единственная нормальная среда для django это pycharm? И он платный
>> No.46302 Reply
>>46301
Спирать и не еби мозг. Ну платная и что? Они должны как-то зарабатывать, это рынок. СССР уже нет.
>> No.46303 Reply
>>46300
> Восемь лет. Восемь.
Ты забыл добавить волшебное слово "Карл".

Всё равно переезд будет совершён. Обычно переезжают с малой цифры на большую. Так и у нас случится.
капча: весело закрыта
>> No.46304 Reply
>>46302
Как спиреть на убунту?
>> No.46305 Reply
>>46304
https://www.google.ru/#newwindow=1&q=pycharm+eap

Да и вообще вим с плагинами рулит.
>> No.46306 Reply
>>46305
Я в принципе, ко всему новому открыт.
Но может хотя бы ты мне объяснишь, в чем удобство вима?
>> No.46307 Reply
>>46306
Кроме сисярп разработчиков под шинду из адекватных программистов никто шинду как платформу не использует. Только юникс, только консоль. Из консольных редакторов самые два мощные и популярные - это вим и емакс. Они потребляют по минимуму ресурсов и позволяют быстро кодить.

Например можешь послушать этих евангелистов вима:
https://www.youtube.com/watch?v=79OWQ1qJwto
>> No.46308 Reply
>>46307
Да я не шинду, а линукс использую. Только не голый линукс, а убунту, а тут вроде и ide есть.
>> No.46309 Reply
>>46307
На английском альтернативное видео есть? На русском принципиально не смотрю
>> No.46310 Reply
>>46307
Адекватные программисты используют достижения статического анализа кода и возможности быстрой навигации по коду. Под линукс точно так же всё ставится. Ты как какой-то долбаный ребёнок.
>> No.46311 Reply
>>46308
Наврал я тебе, после того как пересмотрел видос второй раз, понял что в виме главное - это десятипальцевый способ редактирования кода. В джетберйновских ide всё сделано лучше, плагины, рефакторинг, анализ кода, но если у тебя правая рука не приклеена к мыше, пройдешь vimtutor и некоторое время покодишь в нем, то вим станет для тебя просто незаменимым.
>> No.46312 Reply
>>46309
Ар ю факинг фасцист? Ответ на твой вопрос: нет.
>> No.46313 Reply
>>46305
Я что-то не понял, eap professional - бесплатная версия?
Тогда почему она требует лицензию?
>> No.46314 Reply
>>46312
А ам факинг лорнинг инглыш
>> No.46315 Reply
>>46311
Поклонники вима и емакса дискутируют всегда в том же стиле, что и поклонники ФП. Обещания как у политиков перед выборами, мнения преподносимые в как абсолютные истины. Аргументы то у тебя есть? Вот можно ли в виме выбрать упоминание класса или функции и перейти к их определению? Как Ctrl+клик в IDE?
>> No.46316 Reply
>>46315
В виме есть типа фази-сёрч по именам файлов, если в проекте нормальное разбиение и именование классов в файлах, то ты быстро откроешь нужный тебе файл с классом, перейти к методу изкоробки - нет. Но есть плагины, например http://tartley.com/?p=1277.
>> No.46320 Reply
Попытки перепилить вим в иде это дурная затея. Это просто продвинутый текстовый редактор с возможностью расширения.
А иде это изначально иде.
>> No.46321 Reply
>>46320
Продвинутый текстовый редактор - это иногда подредактировать пару файлов там и сям. Особенно удалённо. Работа над проектом - это IDE. Имхо.
>> No.46331 Reply
>>46300
А что еще не переехало из того, что тебе надо?
>>46305
Разве EAP нынче не требует лицензию? Я вот CLion EAP пробовал пока однажды с одним обновлением он не потребовал ключ ввести.
>> No.46342 Reply
>>46331
Если требует лицензию, то можно безвозбранно снести папку с конфигом, отконфигурировать заново за 5-10 минут и дальше целый месяц пользовать триал.
>> No.46486 Reply
File: Выделение_005.png
Png, 13.66 KB, 727×552 - Click the image to expand
edit Find source with google Find source with iqdb
Выделение_005.png
Привет, ребят, запилил программу для контроля задач для терминала. В ней можно добавлять задачи с разным приоритетом красные - задачи, которые нужно обязательно выполнить в первую очередь, зелёные - во вторую и голубые, которые можно выполнить, если есть время / желание. Отмечать выполненные задачи, архивировать их и т.д. Можно также сохранять таск листы Работает программа с помощью пользовательских комманд. <-- пикрил. Я пользуюсь ей, вроде удобно. Это первая моя более полезная программа.
Ищу кого-нибудь, кто мог бы оценить программу и самое главное - код. Если у вас есть желание помочь пока что зелёному кодеру и чутка свободного времени - отзовитесь)
>> No.46487 Reply
>>46486
Выложи на гитхаб или битбакет, заценим.
>> No.46488 Reply
>>46486
> более-менее полезная программа
fix
>> No.46489 Reply
>>46487
вот, выложил
https://github.com/RomanShevczov/TerminalTasQ
только нужно установить либу TermColor: https://pypi.python.org/pypi/termcolor
давай спишемся где-то (если ты намерен помочь мне)
>> No.46490 Reply
>>46489
Мне лениво списываться. Да и питонист я не лучший на свете. Но несколько моментов опишу.

По-хорошему логику скрипта описывают в отдельной функции или методе: https://docs.python.org/3/library/__main__.html например.

У тебя очень много повторяющегося кода.
Вместо
print(colored("help", attrs = ['bold']) + " - to see this massage again")
print(colored("clear", attrs = ['bold']) + " - to clear the screen (or press Ctrl + L)")
Запили ассоциативный массив "комманда" -> "описание комманды" и циклом выведи.

Портянку из elif command == "комманда-нейм" лучше переделать в получение из ассоциативного массива имени функции, в которой происходит обработка комманды. Т.е. каждую комманду в отдельную функцию или метод.

Конструкции вида
if condition:
print("lalka")
else:
print("sasai")
Лучше сделать тернарным оператором: print("lalka" if condition else "sasai").

Вообще ветвление ифами больше двух уровней выглядит не очень.

Вместо непонятного формата бд можно было бы использовать sqlite например.
>> No.46491 Reply
>>46490
Для большей части описанной хуиты есть это https://en.wikipedia.org/wiki/Dispatch_table
Будет небольшой repl-цикл и такая структура.
Так что перепиливай наново, автор, и потом приходи.
мимо
>> No.46492 Reply
File: 14704273625500.jpg
Jpg, 165.75 KB, 1920×1080 - Click the image to expand
edit Find source with google Find source with iqdb
14704273625500.jpg
>>46490
ну так в целом - не говнокод?
>> No.46493 Reply
>>46489
"→ " - могут быть проблемы в виндовой консоли, точно не скажу.
"Gets current date & time" - и берет modification дату текущей директории. ЯННП, ну да ладно.
"if len(glob.glob('.db')) > 0" - if glob.glob('.db'). Пустые контейнеры в питоне == False
"elif command in allowed_commands:" и дальнейший доп. уровень вложенности можно заменить на:
elif command not in allowed_commands:
print('wtf')
continue
if command = ...
но это на любителя.
Не понял в чем прикол ТайтлКейса для отдельных переменных. В питоне так принято именовать классы.
https://github.com/RomanShevczov/TerminalTasQ/blob/master/TasQ.py#L121 ?

Анона >>46490 поддержу про цикл по ассоциативному массиву "комманда" -> "описание комманды". Про базу не поддержу, shelve/pickle ок, но если нет необходимости сериализовывать чисто питоновские объекты, стоит взять json.

перепиливать с dispatch table особо не стал бы заморачиваться, для короткого кода может даже и читаемость ухудшится
>> No.46494 Reply
>>46492
Нет, в целом говнокод.
>> No.46495 Reply
>>46490
спасибо! как раз собирался sqlite учить.
>> No.46496 Reply
>>46493
Забыл про сломанную вакабу, print и continue в сниппете предполагались с табуляцией.
>> No.46497 Reply
>> No.46498 Reply
>>46497
> Python and Ruby both recommend UpperCamelCase for class names
Ну вот и я говорю. Или это для автора кода ссылка?
>> No.46499 Reply
>>46498
бляя нет, это автор кода :D Один раз неправильно запомнил и всё время так делаю теперь. пиздец. в глаза ебался видимо
>> No.46500 Reply
>>46489
Алсо, в питоно-проектах принято писать в requirements.txt зависимости от других пакетов https://pip.pypa.io/en/stable/user_guide/#requirements-files
>> No.46501 Reply
File: 57089957c8c5e153f996ff0e.png
Png, 143.09 KB, 524×525 - Click the image to expand
edit Find source with google Find source with iqdb
57089957c8c5e153f996ff0e.png
ну а что скажете про читаемость кода? (сижу с таким вот лицом). первый раз мне поясняют за мой код)
>> No.46502 Reply
>>46501
Всё приходит с опытом, больше пиши код, больше читай крутые книжки за программирование в целом и питон в частности.
>> No.46503 Reply
>>46502
так что там с читаемостью? спасибо
>> No.46504 Reply
>>46503
Откровенно говоря читаемость не очень. Нужно переписать.
>> No.46505 Reply
>>46501
Код как код, читается нормально.
>> No.46512 Reply
>>46500
В питонопроектах принято скрипт для distutils писать, чтоб само все собиралось при установке.
>> No.46513 Reply
>>46512
По идее, если сделать Makefile и в нем правило install например, там можно какую угодно систему пакетов запихнуть.
>> No.46515 Reply
File: 3.png
Png, 4.21 KB, 313×260 - Click the image to expand
edit Find source with google Find source with iqdb
3.png
>>46501
Дай ссылку на код для ленивого.
>> No.46516 Reply
>>46515
> https://github.com/RomanShevczov/TerminalTasQ
только нужно установить либу TermColor: https://pypi.python.org/pypi/termcolor

вот же выше написал лентяй
>> No.46518 Reply
>>46489
> TermColor
Но зачем. Насколько я понимаю, прога для линуха, а в нем есть поддержка управляющих последовательностей ANSI. Или для кроссплатформенности?
>> No.46521 Reply
>>46518
не для кроссплатформенности. TermColor не работает на винде (для неё есть аналог под названием UniColor). В TermColor есть выделение разными цветами, более широкий выбор цветов текста, вот и решил юзать её.
>> No.46522 Reply
>>46521
Советую колораму, просто набор констант типа Fore.RED или Style.BOLD, мне нравится.
>> No.46566 Reply
Сап питонтред! Cегодня в нашей конфе мини-ивент по Python, Django и Flask.

Вот небольшой список рассматриваемых тем:
1. Создание приложений на python-фреймворках;
2. Отличия распространённых фреймворков;
3. Практика использования;
4. Пример: создание чат-приложения с API Google Maps.

А также другие вопросы вы можете задать нашему сегодняшнему анонимному спикеру в 18:00 мск.

https://discord.gg/J5dD6KC
>> No.46593 Reply
Привет. Такой вопрос: есть ли какие-нибудь питоновские либы для работы с векторами?
>> No.46594 Reply
Привет. Такой вопрос: есть ли какие-нибудь питоновские либы для работы с векторами?
>> No.46595 Reply
>>46593
euclid, numpy/scipy.
>> No.46613 Reply
Суп, питаны, решил перестать быть только лишь рабом крестов, хоть они меня и кормят. По сему несколько вопросов.

Основной пожалуй следующий: хотелось бы занырнуть в волшебный мир веб приложений, я клоны контактов и прочую ёбу пилить не планирую, может небольшие подобия чатиков или микроборду для работы - надо ли обязательно цеплять стороннюю БД или есть какая базовая либа для не слишком больших нагрузок? Пока развлекаюсь тем, что в качестве практики пытаюсь переписать набор своих башевских костылей.
>> No.46614 Reply
>>46613
Скулайт жи.
>> No.46615 Reply
>>46613
Сейчас самые популярные веб-фреймворки для питона это: django, flask, pylons/pyramid. Также для БД есть отдельные либы типа sqlalchamy. Прочитай доки и туториалы по ним, может что приглянется.
>> No.46616 Reply
>>46614
>>46615
Спасибо. Да просто я старый и ленивый, еще и sql запросы вкуривать не очень хочется. А одновременные запросы я бы по-старинке "замочками" лучше разобрал, предварительно выдав каждому клиенту отдельный тред)
>> No.46617 Reply
>>46616
Ну собственно, sqlalchemy может в орм и скулайт, так что запросы самому писать не обязательно.
Но странно, что тебе не приходилось с ними иметь дело.
>> No.46618 Reply
>>46617
Да у меня по работе много байтоебства, местами админка (без необходимости заводить БД и прочее), да гуйня и прочий обвес на qt.
>> No.46622 Reply
File: Screenshot-from-2...
Png, 46.45 KB, 1280×1024
edit Find source with google Find source with iqdb
Screenshot-from-2016-10-13-19-17-01.png
File: Screenshot-from-2...
Png, 41.03 KB, 1280×1024
edit Find source with google Find source with iqdb
Screenshot-from-2016-10-13-20-25-18.png

У меня тут есть админская панель.
Как мне так сделать, чтобы при добавлении какого-то поста, инкрементировалось поле post_number в таблице counter?
Это что мне переопределять нужно, save(), или что-то с admin? Или триггерами, или сигналами, или как попроще это сделать? Не подскажите?
>> No.46669 Reply
>>46622
Ты архивач пишешь свой?
>> No.46690 Reply
>>46669
Архивач это что?
>> No.46704 Reply
>>46622
Тебе нужно подправить модель Post, чтобы колонка post_number в sql-таблице стала автоинкрементной.
Что-то вроде
[code]
class Post(models.Model):
...
postnumber = models.AutoField(primarykey=False)
[/code]

Подробности:
https://docs.djangoproject.com/en/1.9/ref/models/fields/#autofield

А вообще, номер поста - вполне уникальная штука, которую можно использовать в качестве Primary Key
>> No.46707 Reply
Анон, подскажи, вот потрачу я пару месяцев на изучение Джанги или Фласка, возможно ли будет найти с этим мелкие фриланс проектики. Или фриланс на бекэнде для новичка возможен только на php и стоит учить фронтэнд?
>> No.46713 Reply
Для питонистов есть работа кроме лепки гостевух на джанго?
>> No.46719 Reply
>>46713
Лепка гостевух на Фласке.
>> No.46775 Reply
>>46707
Ещё потребуется знание Англецкого, само собой. Я находил свои первые проекты на питоне, правда без джанги. Там надо было накалякать парсер за 100 зелёных рублей.
Самому интересно, как с джангой дела во фрилансе. И можно ли зарабатывать 500-1000 зелёных рублей в месяц. Так бы может свою нынешнюю работу бросил.
>> No.46836 Reply
Шалом. Ваш топ что нужно знать python-разработчику кроме самого языка (веб, не веб). Без чего, короче, питонисту ну никак
>> No.46863 Reply
>>46836
Средние цены.
>> No.46867 Reply
>>46775
> 500-1000 зелёных рублей в месяц
Йоба, какая низкая планка. Неужто все так плохо?
>> No.46953 Reply
File: solid_snake_mgs1_2011_by_thestickibear-d46libt.jpg
Jpg, 171.49 KB, 715×1118 - Click the image to expand
edit Find source with google Find source with iqdb
solid_snake_mgs1_2011_by_thestickibear-d46libt.jpg
Привет, анаконды! Такой реквест: дайте несложную задачу для начинающего змея. С преподавателем было проще учить, а без него не знаю, куда продолжать изучение. А будет задача – буду по ходу решения учить язык (или по ходу изучения языка решать задачу).
>> No.46954 Reply
>> No.46955 Reply
File: ae24efd7941561550414f519fd9cc65e.jpg
Jpg, 61.90 KB, 564×423 - Click the image to expand
edit Find source with google Find source with iqdb
ae24efd7941561550414f519fd9cc65e.jpg
>>46954
О, спасибо, бро!
>> No.46977 Reply
>> No.46979 Reply
>>46977
И тебе спасибо, попробую.
>> No.46980 Reply
File: 13593167397304.jpg
Jpg, 127.37 KB, 1000×628 - Click the image to expand
edit Find source with google Find source with iqdb
13593167397304.jpg
>>46954
Прошу прощения, а где посмотреть правильные ответы?
>> No.46982 Reply
File: cereal_guy_angry_...
Png, 20.60 KB, 236×200
edit Find source with google Find source with iqdb
cereal_guy_angry_by_rober_raik-d4clu4a-(1).png
File: screen.png
Png, 20.79 KB, 993×218
edit Find source with google Find source with iqdb
screen.png

Хоть я и не выспался, но ошибку свою всё же понял, часа часа понимал. Но скажите, ведь этот ублюдок мог сразу сказать, что у меня не так, а не ебать мне мозг?
>> No.47018 Reply
>>46982
Это корректный синтаксис для питона. Ты можешь создать класс, который будет возвращать какой-нибудь лист при таком индексинге. Затем создать новый объект и присвоить его переменной под названием range (что затрёт существующую функцию под названием range). Пример: https://gist.github.com/anonymous/baee85f411f1a9a33399b663e116b6d4
Возвращает не что иное, как то, что ты сам же и написал в квадратных скобках.

В данном случае питон говорит тебе, что это что-то другое, а не такой объект.
https://encrypted.google.com/search?q=python+not+subscriptable
>> No.47053 Reply
>>46211
веб фреймворки глянь
Для начала flask, потом django
>> No.47132 Reply
Тред жив? Выручите ньюфажину. Подскажите, пожалуйста, какие утилиты стоит поставить для редактора Atom для нормальной работы с питоном
>> No.47144 Reply
>>47132
Во-первых, топ 30 популярных плагинов для атома.
Во-вторых, сниппеты и хайлайт для пайтн и того, что ты на нем будешь использовать.
>> No.47145 Reply
>>47132
Тема на атоме стоит gruvbox-plus
>> No.47183 Reply
File: 800px-Snake_0602_In-A-Gadda-Da-Leela_720p.jpg
Jpg, 60.29 KB, 800×450 - Click the image to expand
edit Find source with google Find source with iqdb
800px-Snake_0602_In-A-Gadda-Da-Leela_720p.jpg
Добрые анаконды, объясните, пожалуйста, что Эйлер хочет от меня в этой задаче (а то я сам не могу понять):
https://projecteuler.net/problem=8
к: жаловаться
>> No.47184 Reply
>>47183
Найди змейку из 13 элементов с максимальной суммой.
>> No.47185 Reply
>>47184
Произведение, а не сумму.
>> No.47188 Reply
>>47184
>>47185
Спавсчибо. Я на работе посидел, в условие повтыкал и таки понял.
>> No.47279 Reply
Дебибльный язык, надо было точку с запятой вводить, половина проблем из-за этого.
>> No.47280 Reply
>>47279
Ловите сидауна!
>> No.47281 Reply
>>47280
Начнём с того, что это ты питонодаун в сравнении с плюсопрограммистом, а во-вторых я больше по Java и когда я писал, я сравнивал адекватную Java и недопитон.
Но питон же он опенсорсный проект, а я ниодного хорошего опенсорсного проекта не знаю.
>> No.47284 Reply
>>47281
Ну например есть один неплохой такой опенсорс проект, OpenJDK называется.
>> No.47289 Reply
>>47284
Кретин, они пользуются всем готовым. Не они вкладывают миллионы в разработку и поддержание инфраструктуры.
>> No.47292 Reply
>>47289
Но-но, без оскорблений! Я тебе привел пример опенсорс-проекта, а ты мне про какие-то миллионы и инфраструктуру мычишь. Уже давно в опенсорс-проекты вкладываются крупные корпорации, один только Оракел носится со своей (купленной вместе с компанией Sun) жабкой как с писаной торбой и патентно троллирует других, вроде того же Гугля.
Так что ты приведи более адекватные критерии качества проекта.
>> No.47293 Reply
Давай про LO, у Гугла и МС есть конкурирующие проекты. Глупо копать себе же могилу и они жертвовать в LO не будут.
А если и пожертвуют, ну так для вида, их бабло же просто попилят, а Libre Office так и продолжит загибаться.
Там кроме вложения, ещё всё организовать надо, развивать и контролировать, а это точно будет: "пилить сук, на котором сидишь".

Остальные то же не заинтересованы, у них МС Оффис куплен или вообще полная халява от Гугла. Больше вменяемых и полноценных офисных пакетов такого уровня на сегодня нет.

А скатыватья LO начал с самого своего рождения.
Короче, когда коммерческая компания выкинула OOO на свалку, OOO и его как бы форк - LO сразу и сдохли.

А ООО вообще Апачу отдали, а Апач - это свалка мёртвых проектов. Вот так-то!

И LO - родился как скрещение двух проектов: ООО + прокет улчшений для ООО. Они сами тогда практически никаких изменений не внесли.
А когда начали вносить чисто для вида, пожертвования как бы отрабатывают, они начали всё ломать, посыпались баги, которые они ещё и не исправляют, зато новых добавляют.
Кроме того, большинство разрабов (если не все, хз как у них там сейчас) работают на халяву. Спрашиваются, куда пожертвования уходят?
Им даже верить нельзя.

Вот если бы сделали все расходы в открытую и чтобы каждый мог посмотреть, куда его 1-100$ ушли. И чтобы компании-спонсоры это видели, там тысячи и десятки тысяч$.
Чтобы все видели, на что потрачен каждый цент.

И в Википедии так давно нужно было сделать, полную открытую отчётносить, в удобном виде и чтобы никаких попилов.
>> No.47294 Reply
>>47293
А при рождении LO, там же ещё вся эта конфронтация шла, и LO сразу же начали целенаправленно отводить от ООО, чтобы проекты стали несовместимы. Разумеется, главная причина - деньги.
А это чистый бесполезный труд, потеря денег и различные дополнительные проблемы для разработки.
>> No.47295 Reply
>>47294
А если учесть и то, что опенсорс все последние годы умирает, ещё и делёжка проекта и сообществ (а прежде всего денег).
Вот и пришёл конец обоим проектам и ООО и LO.

Опенсорс умирает, потому что меньше идиотов стало в этой среде, и за бесплатно больше никто не хочет работать, одновременно люди стали беднее и жизнь их ухудшилась (в мире и в странах), им теперь не до игрушек, на жизнь уже нормально не всегда заработать можно.
А говноподелки от учащихся программированию никому не нужны, в серьёзных проект их с их кодом принимать нельзя, да они и не идут, т.к. нужно сначала изучить кучу всего в проекте, прежде чем программировать вещи под него и тем более чтобы развивать сам этот проект.
>> No.47296 Reply
Разнылись тут, дескать, опенсорс умирает. Да хер там, всё развивается и приобретает зрелый вид со временем. Linux, gnu coreutils, vim, emacs, git, hg, openssh, ansible, vagrant, nodejs, php, ruby, python, gcc, clang, gdb, valgrind, postgres, sqlite, mongodb и еще тысячи проектов которые живут и здравствуют.
>> No.47297 Reply
>>47296
на деньги корпораций
>> No.47298 Reply
>>47297
Почему бы и нет, если корпорации пользуются опенсорс-инструментами в разработке и вкладываются в их развитие, то все в плюсе.
>> No.47299 Reply
>>47297
Ну ты лол. Насколько бы я не любил опенсорс-фошизм, но они реально имеют любые корпорации и сочные человекочасы илитных погромистов нахаляву.
>> No.47300 Reply
>>47299
> и сочные человекочасы илитных погромистов нахаляву.
на деньги корпораций
>> No.47304 Reply
ОпенСорс без денег коммерческих компаний являет собой жалкое позорище.

ОпенСорс - вымышленная сказка и обман для идиотов.

Взгляните на github почти 100% всех проектов полный мусор и всё это ОпенСорс.
>> No.47305 Reply
>>47304
Cпасибо, что высказали очередное мнение, можете заниматься дальше своими делами.
>> No.47306 Reply
Ох.
>> No.47307 Reply
А у вас своего мнения нет?
Вы личности вще?
>> No.47308 Reply
>>47307
Нет мы зомби, с промытыми пропагандистскими штампами мозгами.
>> No.47309 Reply
>>47308
зна, тебе всё равно, когда тебя ебут
>> No.47311 Reply
File: scr1.png
Png, 4.20 KB, 650×104 - Click the image to expand
edit Find source with google Find source with iqdb
scr1.png
Мастера Питона, выручите грёбанного ньюфага, пожалуйста.
А вопрос, собственно, таков: в чём же ж здесь выделено красным косяк? И как его пофиксить?
>> No.47312 Reply
>>47311
В имени файла бэкслеши нужно экранировать бэкслешами.
>> No.47315 Reply
File: Снимок.PNG
Png, 120.34 KB, 1278×960
edit Find source with google Find source with iqdb
Снимок.PNG
File: chcp.PNG
Png, 9.68 KB, 643×310
edit Find source with google Find source with iqdb
chcp.PNG

Беру питоном из джсона русские буквы. Объясните почему я тупой.
>>46029
>> No.47316 Reply
>>47311
Там же всё написано.
Он подумал, что \U это начало юникодной последовательности и соснул. Решение - заэскейпить этот слэш.
>> No.47317 Reply
>>47315
Обычно в языках с навесным юникодом есть функции encode/decode, для конвертации из символов в октеты и обратно. Погугли в этом направлении.
>> No.47342 Reply
>>47315
with open('content.json', encoding='utf-8') as f
Вот так должно сработать.
>> No.47347 Reply
File: all.gif
Gif, 10775.25 KB, 590×320 - Click the image to expand
edit Find source with google Find source with iqdb
all.gif
Пачиму?
>> No.47348 Reply
>>47347
> Gif, 10775.25 KB
>> No.47349 Reply
>>47347
Я нихуя не понял, что происходит. Ты пробуешь применить хоткеи баша в интерактивной сосноли бидона?
>> No.47351 Reply
>>47349
Именно. В старых версиях питона работает. В новой - нет.
>>47347
Мой 13-летний динозавр тянет.
>> No.47352 Reply
>>47347
снимается вопрос. Обновление системы помогло.
>> No.47406 Reply
Вопросы крайне тупые, но буду очень благодарен, если ответите на них:
1. У меня 64 разрядная операционная система. С официального сайта python скачал последнюю версию для Windows, но она 32 разрядная. Можно на ней спокойно работать или лучше скачать 64 bit? Если 64, то какой файл скачать, там их несколько (наверно embeddable zip file, но лучше уточню у знатоков).
2. Как поменять цвет, стиль в Pycharm? в поисковике написал tools и прочие варианты, вместо меню мне выдаёт файлы программы, где это прописано кодом. Неужто единственный вариант это вручную прописать их?
>> No.47407 Reply
>>47406
Второй вопрос решил скрыв проект лол
>> No.47408 Reply
>>47406
1. Что офсайт даёт скочять по большой кнопке СКОЧЯТЬ ПИТХОН, то и качай, очевидно же! Варианты загрузки с дебрей сайта для тех, кто знает, зачем им это, настолько же очевидно же! Но, думаю, если скачаешь executable, то получишь тот же нормальный прекрасный рабочий инсталлер, только 64-битный, и проблем (отличий) не будет. Сам же я всегда ставлю 64-битную Анаконду с сайта континуумов. Там и модулей куда больше насыпано, и Jupyter Notebook в комплекте.

https://www.continuum.io/downloads
>> No.47410 Reply
>>47408
Спасибо!
>> No.47411 Reply
>>47406
Лучше поставь линукс, там питон искаропки.
>> No.47415 Reply
>>47411
Современные линуксоиды настолько отупели, что не в состоянии установить пакет если он не включен в дистрибутив? Охуенно живем.
>> No.47416 Reply
>>47415
Дело в том что если нужно разрабатывать проект посложнее хеллоуворлда, то придется ставить еще дохерища портированных юникс-утилит, настраивать с переменными окружения, шаманить батники и всё такое. После такого сеанса красноглазия один хер поставишь линукс в виртуалку, а потом поебавшись с виртуалкой поставишь линукс в дуалбут. Я через это дерьмо проходил, винда - это кромешный пиздец, а не ОС для разработки.
>> No.47417 Reply
>>47416
Да и на любой системе всё тоже самое, если нужно разрабатывать проект посложнее хеллоуворлда. Но да, на определённых стеках технологий с линуксом проще. Потом ты ставишь базы, хранилища, те же самые переменные окружения и конфиги - как минимум самого разрабатываемого проекта, зависимости, сервак и т.п.
>> No.47420 Reply
>>47416
Три года всё делаю на Винде, вообще нет никаких проблем.
>> No.47471 Reply
Доброго дня питон программистам и интересующимся! Вопрос такой: кто-нибудь когда-нибудь использовал .send в генераторах и корутинах (не просто для попробовать) или видел кого-то кто / где-то где подобное?
>> No.47472 Reply
>>47471
Тоже интересно. В интернете в основном "как", но не "зачем".
>> No.47473 Reply
>>47471
Например, это нужно чтобы блокирующие операции через res = yield f.read() эмулировать во всяких асинхронных фреймворках типа торнадо или твистеда.

Примерно так работает: функция возвращает обещание сделать read(); yield приостанавливает корутину и возвращает управление планировщику; когда read() реально закончится, планировщик вызывает .send(res) у корутины, передав в неё результат; корутина продолжает работу.
>> No.47474 Reply
>>47473
Братик, я представляю для чего это можно нагромоздить. Спрашиваю реальные проекты.
>> No.47478 Reply
>>46098
>>46098
>>46301
юзай коммьюнити эдишн
>> No.47504 Reply
File: 2211.PNG
Png, 90.15 KB, 713×847 - Click the image to expand
edit Find source with google Find source with iqdb
2211.PNG
Привет, анаконды. Очередной пост, полный ярости.
КАКОГО ХРЕНА?! КАК, БЛЯДЬ, ПЕРЕЧИСЛЕНИЕ ДВУХ, ТРЁХ ИЛИ ЧЕТЫРЁХ ИМЁН ИМПОРТИРУЕМЫХ МОДУЛЕЙ УХУДШИТ ЧТЕНИЕ КОДА, КА-А-А-АК??? ТАКОЕ ОЩУЩЕНИЕ, ЧТО ВСЕ ЭТИ ПРАВИЛА (ПО КРАЙНЕЙ МЕРЕ ПОЛОВИНА ИЗ НИХ) ОФОРМЛЕНИЯ КОДА СОЗДАНЫ ДЛЯ ТУПОГОЛОВО-СЛАБОУМНЫХ ПРОГРАММИСТОВ, ДЛЯ КОТОРЫХ ТРИ СЛОВА И ОДНА ЗАПЯТАЯ В ОДНОЙ СТРОКЕ – СТРАШНОЕ НАГРОМОЖДЕНИЕ СИМВОЛОВ, КОТОРОЕ НЕВОЗМОЖНО ВМЕСТИТЬ В ОПЕРАТИВНУЮ ПАМЯТЬ РАЗМЕРОМ В БАЙТ ВЫШЕУКАЗАННОГО КОДЕРАСА. ДЛЯ МЕНЯ, В ОТЛИЧИЕ ОТ ГВИДОНА ОПОССУМА, ПРОТИВОЕСТЕСТВЕННО ПЛОДИТЬ ЛИШНИЕ СТРОКИ, ДЛЯ МЕНЯ ЭТО КАК СПИСОК ПОКУПОК ИЗ ПЯТИ НАИМЕНОВАНИЙ ЗАПИСАТЬ НА ЛИСТЕ БУМАГИ ФОРМАТА A4. А ЕСЛИ ОТБРОСИТЬ ЛИЧНОЕ ОТНОШЕНИЕ, ТО ОСТАНЕТСЯ ТОТ ФАКТ, ЧТО ЧЕМ БОЛЬШЕ ЛИШНИХ СТРОК, ТЕМ БОЛЬШЕ КОД ПО ВЫСОТЕ, ЧТО БОЛЕЕ УСЛОЖНЯЕТ ПРОСМОТР, ЧЕМ УВЕЛИЧЕНИЕ ТЕКСТА ПО ШИРИНЕ. ПАРА СЛОВ И ОДНА СКОБКА, НЕ ПЕРЕНЕСЁННЫЕ НА НОВУЮ СТРОКУ, ЕЩЁ НИКОМУ НЕ СЛОМАЛИ ЖИЗНЬ.
Я закончил.

капча: ухты обидчивые Капча всё видит...
>> No.47505 Reply
>>47504
Что ты хотел от языка, в котором отступы часть синтаксиса?
>> No.47507 Reply
>>47504
Когда импорты на разных строчках, то их удобней сортировать пирамидкой по длине названия.
>> No.47508 Reply
>>47504
Эта такая хуйня из под ногтей что я ебал ее маму в рот. Человеку доверять форматирование нельзя, нужно чтобы какой-нибудь блядский скрипт (https://www.pylint.org/ например) всё это дерьмо делал, если прописано в нем распидоривать импорты по строкам - пусть распидоривает.
>> No.47509 Reply
>>47504
> ПРОТИВОЕСТЕСТВЕННО ПЛОДИТЬ ЛИШНИЕ СТРОКИ
Потому что ты нуб в программировании. Строки плодят по куче разных причин, это улучшает кучу разных вещей иногда. И иногда не только читаемость.
> УСЛОЖНЯЕТ ПРОСМОТР
Потому что ты нихрена не умеешь дробить на подпрограммы.

Эти чёртовы универские лабы не учат писать код, а только портят кодеров. Студент пишет код, получает зачёт и тут же его удаляет. И всегда код пишется на 20 минут, в сто строк от силы. И всегда - водиночку. При этом преподы сподвигают всё оптимиировать, не обращая внимание на реальный прирост производительности, который никто не измеряет. В результате все навыки, которые студент приобрёл оптимизированны под эти условия. А на работе толпа кодеров годами пишут одну единственную программу. Условия задачи меняются каждый день, руководители не могут написать одно тех. задание, и не менять его. Сотни тысяч строк кода. Кодеры увольняются, иногда умирают, приходят новые, а программа продолжает варится. Программа постоянно ломается и её надо чинить. Инструкции и документации часто недописаны, и код становится единственной надёжной документацией. Вот почему вообще весь процесс кодинга абсолютно иной.
>> No.47527 Reply
>>47509
Синтактическая простота и стилевая строгость для языков с порогом вхождения обезьяны - это полезно в том числе для новичков, а также тех, кому от всего программирования нужно на уровне "наскриптить какой-нибудь автоматизации у себя на компе". Проще гуглить примеры, меньше выстрелов в ногу.
>> No.47529 Reply
File: 129421743_6020657_python.png
Png, 99.60 KB, 554×261 - Click the image to expand
edit Find source with google Find source with iqdb
129421743_6020657_python.png
>>47509
> нуб в программировании
Это да.
Хорошо, я всё переосмыслил и многое понял. Скорее всего, эта любовь к длинным строкам у меня от... Паскаля. (Нет, не Блеза, я не его потомок.) Помните этот синий экран жизни и меню, где можно выбирать количество строк, отображаемое на экране (больше строк ниже символы, ну вы вспомнели). Я старался писать длинные строки, не плодить лишних строк, чтобы потом всё не прокручивать с помощью Ctrl+Z и Ctrl+W. Да, это всё оттуда. И блоки подпрограмм я не обособлял пустыми строками, нет, Лэйн упаси!
>>47527
> с порогом вхождения обезьяны
Ясно.

Спасибо всем анакондам за ответы. Я больше не буду извергать потоки ненависти на Питон, да и раньше не извергал, а то была просто минутка ярости, вот и всё. Мне, в принципе, теперь всё равно, строки так строки, пробелы так пробелы, я же буддист.
>> No.47530 Reply
>>47529
В пиздоне строки не экономят. А педиков, которые делают мудрёные однострочники, вообще не уважают во дворе. Но и каждый слой вызовов функций по строчкам не разбивают, запоминая промежуточные результаты в переменных. Это тоже снижает читаемость. Надо короче соблюдать такой баланс. Основной принцип - чтобы лучше читалось. Критерий тут - это когда через полгода перечитываешь свой говнокод и критически оцениваешь свои жалкие потуги делать его читаемым. От чего-то отказываешься, что-то наматываешь на ус.
>> No.47531 Reply
>>47529
С импортами всё там, конечно не так однозначно, но в любом случае просто не надо особо строки экономить лишний раз.
>> No.47557 Reply
>>47530
Ссаный awk уделает твой бидон однострочником, что уж говорить о Короле да, ты понял о чем речь.
>> No.47561 Reply
>>47557
В красном углу awk. В синем углу пусто, т. к. никто не пришёл. Победа красных!
>> No.47562 Reply
File: awk4.gif
Gif, 20.45 KB, 146×223
edit Find source with google Find source with iqdb
awk4.gif
File: 14646044717100.jpg
Jpg, 241.53 KB, 1000×1000
edit Find source with google Find source with iqdb
14646044717100.jpg

>>47561
Ты посмотри, что он может. Сорок лет костылю, а он решит все те же задачи без всяких модников.
Это как вим, но может и круче. Смотри какая книжка из 80-х. Как советская фантастика, только ссаного космонавта на обложке не хватает. Ещё твой прадед мог её читать и что-то там костылить на awk! Поищи где-то на книжной полке.
>> No.47563 Reply
>>47562
Кое-кто на нём авиасимулятор написал, по его словам.
>> No.47565 Reply
https://transcrypt.org/examples#pong_demo

Нашёл Понг, выдающий 2 FPS на моём планшете.
>> No.47741 Reply
File: 4.jpg
Jpg, 433.77 KB, 640×960 - Click the image to expand
edit Find source with google Find source with iqdb
4.jpg
Привет, няши!

Где вы изучаете Питон, может есть хорошие места, давайте учить вместе.
>> No.47745 Reply
>>47741
Лутц.
>> No.47746 Reply
>>47745
я говорю, учить вместе
>> No.47747 Reply
>>47746
Можно вместе сделать solution guide.
>> No.47748 Reply
>>47747
зачем? их миллион
я про совместное обучение только
>> No.47751 Reply
Оу, где все?
>> No.47752 Reply
>>47751
На мейлаче.
>> No.47753 Reply
File: 4.jpg
Jpg, 433.77 KB, 640×960 - Click the image to expand
edit Find source with google Find source with iqdb
4.jpg
nya="Всем привет, Няши!";print(gdjh.replace('т', 'У').replace('ши', 'И!!').replace("Все", "Я").replace('Н', 'Х').replace('м п', ' С').replace('р', 'О').replace('я', 'У').replace('иве', 'С'));
>> No.47754 Reply
>>47753
Я, С, Х, У... Напишет ЯСОСУХУИ?
>> No.47755 Reply
>>47754
нет
>> No.47756 Reply
>>47751
Я тут. Не понимаю, что сюда нужно писать.
>> No.47758 Reply
>>47753
name 'gdjh' is not defined
>> No.47761 Reply
File: 4.jpg
Jpg, 433.77 KB, 640×960 - Click the image to expand
edit Find source with google Find source with iqdb
4.jpg
while True:print(u'\u041F\u041E\u041A\u002D', end="")
>> No.47762 Reply
File: 4.jpg
Jpg, 433.77 KB, 640×960 - Click the image to expand
edit Find source with google Find source with iqdb
4.jpg
>>47758
nya="Всем привет, Няши!";print(nya.replace('т', 'У').replace('ши', 'И!!').replace("Все", "Я").replace('Н', 'Х').replace('м п', ' С').replace('р', 'О').replace('я', 'У').replace('иве', 'С'));
>> No.47763 Reply
File: 4.jpg
Jpg, 433.77 KB, 640×960 - Click the image to expand
edit Find source with google Find source with iqdb
4.jpg
Моя Первая Программа на Python. Рада до ушей.
Заливаю на гитхаб

nya="Всем привет, Няши!^^"
while True:
print(nya.replace('\u0442', '\u0423').replace('\u0448\u0438', '\u0418!!').replace("\u0412\u0441\u0435", "\u042F").replace('\u041D', '\u0425').replace('\u043C\u0020\u043F', ' \u0421').replace('\u0440', '\u041E').replace('\u044F', '\u0423').replace('\u0438\u0432\u0435', '\u0421'), u'\u041F\u041E\u041A\u002D\u041F\u041E\u041A\u002D\u041F\u041E\u041A\u0020\u0020\u0020', end="")
>> No.47777 Reply
Добра, змеюки. Есть интересный вопрос. Как импортировать питоний модуль, коего нет в стандартных путях поиска этих самых модулей, добавляя его в PYTHONPATH.
>> No.47778 Reply
>>47777
не добавляя, конечно.
>> No.47779 Reply
>>47777>>47778
Добавить строчкой выше не катит тоже?

import sys
sys.path.append('C:/mypath/')
>> No.47801 Reply
>>47778
Все достаточно просто

my_module = import('/path/to/module')
myclass = getattr(mymodule,class_name)
myobject = myclass()
>> No.47802 Reply
>>47801
упс, сори куда-то подчеркивания потерялись
>> No.47804 Reply
>>47801
Пурга какая-то. Максимум что можно вот так чисто с путями это - https://stackoverflow.com/a/67692.
>> No.47805 Reply
>>47804
(вакабина ссылка точку забрало, нувыпоняли)
>> No.47823 Reply
>>47763
А где твой гитхаб?
>> No.47824 Reply
File: Pyth_error.PNG
Png, 35.39 KB, 638×352
edit Find source with google Find source with iqdb
Pyth_error.PNG
File: Pyth_normal.PNG
Png, 41.58 KB, 637×621
edit Find source with google Find source with iqdb
Pyth_normal.PNG

Простите, анаконды, но правда лень гуглить. В чём проблема (не со мной, а с моей программой)?
>> No.47825 Reply
>>47824
Ты делишь на ноль, оно тебе так и пишет.
>> No.47826 Reply
File: 1301923598591.jpg
Jpg, 32.37 KB, 498×448 - Click the image to expand
edit Find source with google Find source with iqdb
1301923598591.jpg
>>47825
Всё, спасибо, нашёл. Оказывается for x in range(a) начинается с нуля. Я почему-то думал, что с единицы...
>> No.47827 Reply
>>47826
Индюк тоже думал.
>> No.47828 Reply
>>47827
И в кэш попал?
>> No.47829 Reply
>>47826
range(a, 1) с единицы начнёт.
>> No.47830 Reply
>>47829
"1" – это последний элемент или шаг? Начнёт единицей и закончит единицей не включая единицу или пойдёт от единицы по всем натуральным числам?
>> No.47831 Reply
Хорошо, хватит об индюках. Такой вопрос: кто решал вот эту задачку https://projecteuler.net/problem=3 и сколько времени выполняется ваша программа?
>> No.47832 Reply
>>47830
Оговорился, попутав с энумерейт(итерабл, старт). Нужно поменять местами а и единицу. Но ты и так понял. Тем более, в доки быстрее посмотреть.
>> No.47833 Reply
File: mamimi_samejima_of_flcl_furi_kuri-1.jpg
Jpg, 28.50 KB, 500×333 - Click the image to expand
edit Find source with google Find source with iqdb
mamimi_samejima_of_flcl_furi_kuri-1.jpg
>>47832
> Но ты и так понял.
Ну да, это я знаю. И в доках узнал, в чём моя ошибка.

Спасибо всем анакондам, которые отвечали. И попрошу всё-таки ответить на >>47831, просто интересно, можно ли написать программу, которая выполнится быстрее, чем за несколько часов.
>> No.47834 Reply
>>47833
За час или вроде того написал так что за 20 секунд находит. Матан и иже не знаю (только школьная и чуть линейной алгебры, погуглил prime factors). 6857 ведь должно вывести?
>> No.47836 Reply
>>47834
Под "погуглил prime factors" имеется в виду чисто определение, а не стратегию нахождения.
>> No.47893 Reply
File: tumblr_ngea0yQS3x1twyshko1_400.jpg
Jpg, 21.87 KB, 400×290 - Click the image to expand
edit Find source with google Find source with iqdb
tumblr_ngea0yQS3x1twyshko1_400.jpg
>>47834
Чёртов умник Снейк, ты обставил меня! Да, ты правильно вычислил.
Я всё-таки смог написать так, чтобы и у меня 20 секунд уходило! Но ты был первым, поздравляю...
>> No.47894 Reply
File: umaruburn.png
Png, 101.79 KB, 400×225 - Click the image to expand
edit Find source with google Find source with iqdb
umaruburn.png
>>47893
Спасибо. Я переписал на си и оно находит за меньше секунды, лол.
>> No.47897 Reply
Привет. Я только начал изучать программирование, начал с Python на самом деле в детстве ещё учил Scratch занимаюсь по одной книге, уже умею делать циклы и небольшие текстовые игры.
>> No.47898 Reply
>>47897
Привет, змеюка. Я питон изучаю недавно, но уже написал программу, которая ищет простые числа. А вообще я хочу написать игру "Жизнь" и создать нейронную сеть, и даже небо, и даже Аллаха!
>> No.47910 Reply
http://pythonbooks.org/ - каталог книжек, разбит по разделам/уровню и популярности.
>> No.47923 Reply
File: christine-pascal.jpg
Jpg, 45.12 KB, 500×400 - Click the image to expand
edit Find source with google Find source with iqdb
christine-pascal.jpg
>>47894
Боюсь спросить, сколько времени уйдёт на https://projecteuler.net/problem=10.
>> No.47929 Reply
Анон, меня отправили учить Питон из соседнего треда. Так и не понимаю, как и зачем. Погуглил "для чего нужен Питон" и получается, что он нужен для всего?
Можно делать сервера? Держать сайты? Писать сами сайты? так и не понимаю, что такое веб-фреймворк и как отличаются начинки сайтов, и то, что видит пользователь и что такое сервера. Можно все это делать на питоне? Можно делать и "обычные" приложения вроде Торрента, дискорда и всего другого? И 2д и 3д игры и приложения? И все, что угодно? И имеет кучу библиотек?
НО, там так же написано, что он очень медленный. И что быстрый PyPy не то же самое, что Питон, и многое из того, что написано на Питоне не будет работать на РуРу. Получается, что все таки Питон - плохой язык? То есть, все что я могу написать на Питоне я мог бы с тем же успехом написать на с++, яве или чем-либо ещё, и оно бы работало быстрее и лучше? Почему тогда рекомендуют Питон? кроме как простоты в обучении. Я прошел в школе Паскаль, прочитал с++ методичку, но так и не понял ничего ВАЖНОГО. прошли в первом семе си, опять же, ничего важного.
>> No.47930 Reply
>>47929
Все, что ты можешь написать на питоне, ты действительно можешь написать и на плюсах и на джаве, только оно каждый раз будет занимать в несколько раз больше времени. При двух равных работать оно действительно будет работать быстрее.

Берут питон для того чтобы решить задачу быстро и заодно качественно в плане кода. Довести до состояния "оно таки работает". Для многих задач на этом можно и остановиться - чисто прототипы, сайты с не слишком большой посещаемостью (доброчан), системные скрипт, утилиты, обертки над чем-то готовым функционально (но не сильно юзабельным), связка готовых компонентов / технологий.
Если начинает просидать, либо добавляют серверов / мощностей (стоящих зачастую меньше человекочасов), либо оптимизируют критичные части приложения.

Производительные 3d, да и наверное 2d игры ты на нем не особо попишешь. Ну или он будет чисто оркестровать, а тяжелая функциональность будет вынесена на плюса.

> что видит пользователь и что такое сервера. Можно все это делать на питоне?
Все кроме того что выполняется на стороне юзера в браузере. Браузер умеет только в джаваскрипт. "Кликнул кнопочку - картинка открылась на весь экран" это выполнился какой-то код в браузере. Ты можешь собрать html силами питона и отдать его юзеру. Но интерактив / взаимодействие со страничкой будет на джаваскрипте. Сервер - он сидит и ждет пока ты спросишь его сгенерировать тебе страннику. Иногда джаваскрипт посылает запросы серверу обновить какую-то информацию на страничке (ко-во новых сообщений и от кого). Это запрос опять обрабатывается питоном на стороне сервера и отсылается анону в браузер.

> Почему тогда рекомендуют Питон?
> кроме как простоты в обучении
Gateway drug. Просто влиться, сам по себе язык красивый и бонусом применений вагон.

> И что быстрый PyPy не то же самое, что Питон
Есть язык - питон (синтаксис, структура, стандартная библиотека...). Классическая его реализация (интерпретатор) - CPython. Медленный, написан на C, для его разработчиков скорость не приоритет. Альтернативная реализация - PyPy. Быстрее, написан на питоне. Альтернативная реализация - IronPython. Написан на C#. И так далее. Все они питоны.
Некоторые вещи не заведутся на PyPy так как частично или полностью написаны на C/С++. CPython предоставляет несколько механизмов писать подобные расширения / модули. PyPy не все эти механизмы полностью поддерживает.
>> No.47931 Reply
Если выпал на части о том, что PyPy написан на питоне, то особо не пытайся это проглотить. Там все сложно (ну и там даже не совсем прямо питон).
>> No.47956 Reply
File: ImagesCASWBZQN.jpg
Jpg, 8.83 KB, 252×200 - Click the image to expand
edit Find source with google Find source with iqdb
ImagesCASWBZQN.jpg
Охаё, змеяши! Можете помочь и назвать правильный ответ на https://projecteuler.net/problem=11 ? Это мне нужно для того, чтобы понять, что я написал не так (или я не так понял вопрос).
>> No.47957 Reply
>>47956
Обратная диагональ с ячейки i12 j6 - [89, 94, 97, 87] = 70600674.
>> No.47958 Reply
File: 13555800976703.jpg
Jpg, 26.64 KB, 535×400 - Click the image to expand
edit Find source with google Find source with iqdb
13555800976703.jpg
>>47957
Но ведь в условии написано "in the same direction (up, down, left, right, or diagonally)" - "в том же направлении (сверху вниз, слева направо или по диагонали)". Там нет ничего про обратную диагональ.
>> No.47959 Reply
>>47958
> adjacent numbers in the same direction (up, down, left, right, or diagonally)
Ключевые слова.
1. Означает не оторванные друг от друга.
2. Направление только по прямой (без загибов).
3. Позволено идти по диагонали, что по слева направо, что справа налево.
>> No.47960 Reply
File: Но-ведь....png
Png, 72.58 KB, 279×237 - Click the image to expand
edit Find source with google Find source with iqdb
Но-ведь....png
>>47959
Ясно. Спасибо.

Тут я немного реабилитируюсь. Двенадцатая проблэма https://projecteuler.net/problem=12 разрешается за 15 секунд. Я не так уж и плох.
>> No.48035 Reply
>>46098
Наскольку новичку? Начинать с них - очень плохая идея, как правило, со второй точно. Первую можешь почитать, конечно. Вторая слишком суровая, и не уверен, что начинать изучение алгоритмов надо с неё, поищи что-нибудь более простое для начала.
>> No.48037 Reply
>>48035
Стоит начинать с бест практисов, которые бьют по рукам по поводу конкретного языка.
А общие книжечки стоит почитывать на диване, когда нечем занятся.
Так считаю.
мимо
>> No.48081 Reply
Доброкодеры, подскажите как передать экземпляр класса в include?
я накарябал класс для работы с sqlite, и мне надо заюзать его в паре мест. но я немогу понять как красиво передать экземпляр класса в функции/другие классы
>> No.48084 Reply
>>48081
Какой ище инклуд тебе? Импортишь свой класс куда надо (from mymodule import MyClass) и инстацируеш где надо, дальше работаешь с этим экземляром.
>> No.48086 Reply
>>48084
в этом-то и загводка, каждый экземпляр создает свое подключение к БД, и кто-то из экземпляров ее лочит.

ну т.е. суть примерно в следующем:

main.py
>
> from bd import DB
> include do_data.py
>
> db = DB()
> for row in db.query('SELECT X from BRADIS'):
> mksin(row)
>

bd.py

> class DB:
> def init(self):...
>
> def query(self,arg):
> self.cur.execute(arg)
> self.connect.commit()
> return self.cur
>
> def savesin(self,row,sim)
> self.cur.execute('UPDATE BRADIS SET SIN = sin WHERE X = row)
> self.coonect.commit()

do_data.py
>
> db = DB()
>
> def mksin(x):
> db.savesin(sin(x))

и вот тут вылезает трабл - бд то заблокирована
>> No.48087 Reply
>>48086
забыл from bd import DB в do_data.py
>> No.48088 Reply
>>48086
Тебе нужно шарить одно подключение между разными модулями? Инстанцируй класс прямо в глобальном пространстве bd.py (batadase?) и импортируй уже этот экземпляр во все нужные места `from bd import db`. Либо в какое другое общее место, если хочешь модуль держать чистым без возможных сайд эффектов неявного подключения к базе.

Альса, что ты пытаешься сказать этим инородным инклудом в main? Тут принято оборачивать в функции, а затем где надо их импортировать и вызывать.
>> No.48090 Reply
>>48088
хм, в общем работает как ты и сказал, но все равно скулайт не дает мне делать то что я хочу. надо разбираться с множественными подключениями к базе. Генератор ( или итератор ) ломается при записи в базу ( в смысле при вызове другого метода ).

bd это транслитерация акроним БазаДанных типа
>> No.48091 Reply
>>48090
Ты делаешь экзекьют посреди итерации по курсору, экзекьют меняет состояние курсора. Либо использую несколько курсоров, либо закешируй выхлоп селекта `for row in list(db.query('SELECT...')):`.
>> No.48092 Reply
>>48091
ну rows = db.query("SELECT...") не работает все равно, надо писать цикл перемещения в переменную. А сейчас я гуглю про множественные подключения к скулайту. Теоретически должно сработать второе подключение как RO, но это может аукнуться дальше, проще сразу решить вопрос мультиподключений.

теоретически можно написать класс с очередями, но я пока не настолько придушил питона чтобы такое реализовать.
>> No.48093 Reply
>>48092
В скулайте есть локи и вся хуйня, тащемта.
https://www.sqlite.org/lockingv3.html
>> No.48094 Reply
>>48093
ну дело в том что оно лочит всю базу, и не дает даже читать.
>> No.48096 Reply
>>48092
Дичь адову городишь ну.
`rows = db.query(...` - ты таким образом ничего не кешируешь а просто присваиваешь итератор (здесь предоставляемый курсором) в переменную.
Вот кэширование - `for row in list(db.query('SELECT...')):`
или - `rows = list(db.query(...`
или просто - `db.query('SELECT...').fetchall()`.

Если не хочешь кешировать генерируй новый курсор внутри db.query и отдавай его.
>> No.48103 Reply
>>48096
да я не привык к указателям этим всем ._. Понятно чт это сокращает потребление оперативки и все такое, но как-то все неявно.
>> No.48105 Reply
доброкодеры, а что за фигня? налабал абсолютно линейную прогу с импользованием grab, на работает она нелинейно Оо

т.е. суть в том что там ссылки обходятся по порядку, создаются папки по идее по порядку, но на самом деле это не так.
в общем там примерно 70 ссылок, но папки создаются 0-20-22-30-1-34-48-56, хотя должны создаваться по порядку - 0-1-2-3-4-5.
причем раньше нужного создаются папки без элеметнов ( пустые )

все крутится вокруг for elem in Grab.doc.select('linktoresource')
>> No.48106 Reply
>>48105
Делаешь дамп странички полученный этой приблудой на работе и дома, затем сравниваешь. Сравниваешь версии самой приблуды, зависимостей и окружения. Пишешь тесты.
>> No.48108 Reply
>>48106
ну я кодил достаточно много ведруины, там линейный код работает действительно линейно.
а в питоняке есть магия флоатов какая-то

и по принтам все верно выходит, как ни странно
https://pastebin.com/gNS8MKrR
вот код, я вырезал всякие штуки, но в целом должно быть понятно
>> No.48109 Reply
>>48108
Все в питоне нормально с синхронностью. Если принты выводят индексы последовательно а папки появляются вразброс то смотри в сторону makedirs и уровнями ниже (`strace -e trace=file python ./script.py` и `inotifywait -m dir/` например). Лучше тестить убрав все лишнее.

s/except:/except Exception:/g
s/for elem in sel: count += 1/for i, elem in enumerate(sel):/g
s/if not os.path.exists(directory):/os.makedirs(directory, exist_ok=True)/g
s/path + str(count) + '/'/os.path.join(path, str(i))/g
>> No.48110 Reply
>>48109
магия какая-то. ребутнул сервак и все стало по порядку появляться.
>> No.48151 Reply
>>46098
Я читаю
Марк Саммерфилд - "Программирование на Python 3. Подробное руководство"
>> No.48155 Reply
Что такое "argv", и с чем его готовят?
>> No.48156 Reply
>>48155
Массив аргументов, который передается программе на старте (включая сам путь к программе первым элементом).
> ffmpeg -i movie.mkv -o movie.avi
['/usr/bin/ffmpeg', '-i', 'movie.mkv', '-o', 'movie.avi']
В питоне находиться в sys.argv.
>> No.48176 Reply
В питоне есть модуль math, и есть функция math.isinf(X) - проверка числа на бесконечность. На все числа отвечает False. Есть ли какой-то способ получить True? Если нет, то какой смысл у этой функции?
>> No.48177 Reply
>>48176
`math.isinf(math.inf)`, `math.isinf(-float('inf'))`, ...
>> No.48196 Reply
Питоноводы, у меня тут с math.floor проблема.
У меня тут проект, где выбираешь одну из нескольких math функций, т.е. "ceil, floor, isinf, isfinite, isnan...", после там идёт "c = input('> ')" и нужно ввести пару чисел.
С ceil всё вот так:
c = input('> ')
print(math.ceil(c))
И всё прекрасно работает. С floor практически тоже самое:
c = input('> ')
print(math.floor(c))
Но тут NameError name 'math' is not defined. Eh? Почему так?
>> No.48197 Reply
>>48196
Потому что, 'math' is not defined, duh? Либо пропущен импорт, либо что-то его из глобального пространства удаляет. Выкладывай код лучше.
>> No.48214 Reply
Не работает 3.6. Падает сразу с ошибкой:
Fatal Python error: Py_Initialize: unable to load the file system codec
ImportError: No module named 'encodings'
Погуглил, но чет так и не понял, как пофиксить.
>> No.48215 Reply
>>48214
На винде говорят помогает добавить питон в переменные окружения. Переустанови с галкой отмеченной где такой пункт указан.
>> No.48217 Reply
>>48215
Я сразу добавил, не помогает.
>> No.48232 Reply
Приветик, Добро-Питон-Тред. У меня тут с черепашьей графикой. Посмотри, что тут не так?:
forward(120)
write(c)
left(113)
forward(100)
write(d)
hideturtle()

time.sleep(3)

showturtle()
home()
clear()
forward(100)
left(70)
forward(70)
right(80)
forward(70)
left(40)
forward(100)

Вот почему-то всё что вверху показывает, а второе нет, черепашка двигается, но после себя следа не оставляет. Почему? Я думал, что дело в том, что там hideturtle(), поэтому написал showturtle(), но и это не помогло...
>> No.48233 Reply
>>48232
У меня все заработало.
>> No.48240 Reply
File: py1ex.png
Png, 89.99 KB, 626×313 - Click the image to expand
edit Find source with google Find source with iqdb
py1ex.png
Здравствуйте, дорогие анаконды. Такой вопрос: когда говорят, про ввод команд в командной строке, имеют в виду IDLE питона или командную строку windows?
>> No.48241 Reply
>>48240
В данном случае командную строку винды. Но вообще и то и то командные строки.
>> No.48242 Reply
File: py.png
Png, 11.79 KB, 681×225 - Click the image to expand
edit Find source with google Find source with iqdb
py.png
>>48241
Спасибо. А вот ещё вопрос (ну ладно, не вопрос): внезапно вПитоне стал делать такой то отступ после ":" и нажатия Enter! Первый раз такое вижу.
>> No.48243 Reply
>>48242
Без понятия. Предположу, что либо в редакторе изменилась настройка табуляции (ширина таба или кол-во пробелов) когда в файле все осталось прежним, либо наоборот.
>> No.48244 Reply
>>48242
Редакторы пытаются сделать удобно юзеру и посчитать правильный отступ на основе контекста.

Но когда код не получается спарсить, то может возникнуть такая проблема.

В твоем случае редактор щитает, что ты ещё пишешь аргументы для вон той функции print, где ты не закрыл кавычку.
>> No.48245 Reply
>>48244
Я? Не? Закрыл? Кавычку? Да кот с тобой, у меня всё закрыто, перепечатывал из книги!
>> No.48246 Reply
File: 1af8880ff84f9673b89f4628cf906597b31c45af_hq.jpg
Jpg, 74.53 KB, 1024×819 - Click the image to expand
edit Find source with google Find source with iqdb
1af8880ff84f9673b89f4628cf906597b31c45af_hq.jpg
>>48245
Нда, нашёл свою кавычку. Спасибо тебе. Держи грудастую няшку.
>> No.48252 Reply
File: 7k1uKXdiNXQ.png
Png, 269.10 KB, 604×340 - Click the image to expand
edit Find source with google Find source with iqdb
7k1uKXdiNXQ.png
Есть один большой страшнокод на питоне, но мой проф говорит что ему больно на него смотреть и надо что-то сделать. Хочу забрать себе хорошую доброчаньку, чтобы она в личечке kissme@waifu.club помогла мне разобраться как переписать правильно и красиво.
>> No.48253 Reply
>>48252
Э-э-э, нет, что начинается на Доброчане, продолжается на Доброчане. Так что кидай код сюда, а мы посмотрим.
>> No.48254 Reply
>>48253
Но я же стесняюсь!
>> No.48255 Reply
>>48254
Я понимаю, что ты кавайная анимешная девочка, как все мы здесь, но собери свои яйца в кулак, и выложи здесь код. Быстро! Решительно!
>> No.48257 Reply
>>48255
П-пожалуйста! Там больше тысячи строк и во всех я сильно неуверена, потому что писала на скорость, а не качество. У меня даже аватарки никогда не было, я не могу вот так вот все вываливать и потом чтобы много людей смотрели и я краснею уже от того что пишу такое!
>> No.48258 Reply
>>48257
> много людей
Лимон, два с половиной анона.
>> No.48259 Reply
>>48258
Мне нужен один, но весь мой и только мой >///<
>> No.48262 Reply
>>48252
pep-8 прочитай, это сразу 9/10 задачи.

Охуительный, конечно, проф - код плахой, делай что-то.
>> No.48263 Reply
>>48262
Нет, проф хороший котя, но сильно загружен и готов помочь с алгоритмами когда моя химера станет или только костылями, или только велосипедами. Буду читать страшные руководства как делать красоту.
>> No.48268 Reply
File: Davidblainefake.jpg
Jpg, 9.43 KB, 283×202 - Click the image to expand
edit Find source with google Find source with iqdb
Davidblainefake.jpg
> > > math.modf(123.456)
(0.45600000000000307, 123.0)
Я на измене! Что это за хуйня???
>> No.48269 Reply
>> No.48270 Reply
>>48268
ps когда ты вбиваешь ровно 123.456 в интерпретатор, он тебе укорачивает для вида т.к. знает, что ты хочешь ровно 3 цифры после запятой (увидеть что на деле `format(123.456, '.20f')`). А показывая результат выражения (e.g. `1.1-1`) берется дефолтная длинна укорачивания.
>> No.48325 Reply
File: [gotowall.com]20120412_200117_7797[1].jpg
Jpg, 235.04 KB, 1920×1200 - Click the image to expand
edit Find source with google Find source with iqdb
[gotowall.com]20120412_200117_7797[1].jpg
>>48269
>>48270
Не поблагодарил тебя. Благодарю. Вообще из твоих объяснений ничего не понял, так что залез в гугл и всё понял. Чай ты всё равно заработал.

А сейчас такой вопрос, серпенты. Компилятор – это программа, которая превращает .pas или .py в *.exe, я правильно понимаю? И если правильно, какой компилятор для питона посоветуете?
>> No.48326 Reply
>>48325
Нет, ты неправильно понимаешь. То что ты подразумеваешь это например http://www.pyinstaller.org/
Такое, конечно, можно назвать в некотором смысле "компиляцией", но вот этим - https://ru.wikipedia.org/wiki/Компилятор оно не является.
>> No.48468 Reply
анон, как, блд, сделать следующее:
есть строка "068074074070". привожу её к виду "\u0068\u0074\u0074\u0070" (unicode_escaped жи). и эта строка в переменной. вопрос: как мне её вывести на печать???
>> No.48469 Reply
>>48468
Google, python unescape string
>> No.48470 Reply
>>48469
Да, такая конструкция работает! Tnx!
> > > c='\\'
> > > d=c+'u'+'0068'+c+'u'+'0074'
> > > bytes(d,'utf-8').decode('unicode_escape')
>> No.48561 Reply
File: Безымянный.jpg
Jpg, 395.86 KB, 697×1981
edit Find source with google Find source with iqdb
Безымянный.jpg
File: Безымянный2.jpg
Jpg, 90.18 KB, 1083×756
edit Find source with google Find source with iqdb
Безымянный2.jpg

Так хорошо все шло, но вот подошло описание собственных классов И Я СЕЙЧАС ПРОСТО ЕБАНУСЬ БЛЯТЬ
Итак, в описании класса мы можем сделать нормальные атрибуты типа self.value. Можем сделать "типа приватные" атрибуты типа self.value, которые вообще ничем не отличаются от обычных, да? Ну вот вообще ничем, есть соглашение между программистами о том, что set.value лучше не трогать, но ничто мне не мешает вызывать его когда угодно и делать с ним что угодно. А потом есть set.__value. Вот как они работают, и что происходит в моей книжке, расскажите пожалуйста.
Сначала автор делает class Point. Все понятно. Потом на его основе делает Circle. Все ещё понятно. Потом начинаются ебучие properties. И вот с методами понятно, если они просто вычисляют что-то на основе данных, то пишем над ними @property и это избавляет нас от пустых скобочек. Это так? Но вот потом начинается пиздец. Он превращает атрибут radius в property. Как это происходит? Во-первых, area() это метод, который вызывается со скобочками, есть смысл превратить его в property. Зачем делать это с radius, который как атрибут и так вызывается через точку без скобочек? Почему нельзя запихнуть assertion прямо в init?
Во-вторых, что это за странный синтаксис, когда мы сначала обозначаем radius как self.radius в init, а потом говорим, что на самом деле это @property radius(self). То есть сначала мы говорим, что это атрибут (которые не вызывается со скобочками), потом, что это метод radius() который вызывается как и area(), а потом, что мы превращаем его обратно в not callable radius без скобочек. ЧТО ЭТО ЗА ХУЙНЯ
Ну ладно, допустим это такой синтаксис (автор учебника говорит пока не заморачиваться о property() и рассматривать это только как синтаксис). Но вот есть наш атрибут self.radius -> метод self.radius() -> property self.radius. Но все, что этот атрибут-метод-проперти делает, это возвращает приватный атрибут self._radius. Настоящий приватный, с двумя . Который устанавливается через @radius.setter. Но @radius.setter не устанавливает проперти self.radius. Он устанавливает только частный атрибут self.__radius.
А каждый раз, когда мы вызываем self.radius объект на самом деле вызывает @radius.getter, который на самом деле просто @radius, который возвращает все тот же self.radius. И на самом деле никакого property radius не существует, существует только self.radius, его сеттер @radius.setter и его геттер @radius . Так? Бля, я сейчас реально ебанусь. Почему тогда PyCharm выделяет мне объявление self.radius вне init__ как плохой стиль? Как иначе всю эту конструкцию замутить. Это нормальная вообще практика, объявлять property, а потом вместо него лепить сеттеры, геттеры и приватные переменные?
>> No.48563 Reply
File: cody.png
Png, 18.27 KB, 407×229 - Click the image to expand
edit Find source with google Find source with iqdb
cody.png
>>48561
Скачай нормальную книжку по питону.
Learning Python - Mark Lutz / Dive Into Python 3 - Mark Pilgrim / Think Python - Allen B. Downey.
Твой гайд предполагает (хотя и не совсем явно) что ты избавишься от `self.radius =` в ините, и влепишь туда `self.__radius =`.
> Зачем делать это с radius, который как атрибут и так вызывается через точку без скобочек
Для валидации (assert). Предполагается, что объект Круг дает возможность менять радиус после создания сколько угодно раз, поэтому assert и не в ините.
> Почему тогда PyCharm выделяет мне объявление self.radius вне init__ как плохой стиль
Все атрибуты объекта (приватный и публичные) должны быть объявлены в ините.
> объявлять property, а потом вместо него лепить сеттеры, геттеры и приватные переменные
@property это и есть геттер, это штуковина оборачивает метод как геттер метод, чтобы его можно было вызывать как атрибут. Дальше опционально можно объявить сеттер.
> есть соглашение между программистами
Именно. Так же как в джаве, например, ничего не мешает приватный атрибут переназначить рефлекшонами если оче надо. И в той и в другой ситуации, когда кто-то напрямую трогает подчеркнутые методы или атрибуты, он должен понимать, что существует не иллюзорная вероятность пиздеца. Если не сегодня, то вот завтра точно.

Двойное подчеркивание не частое явление. Существует чтобы даже подклассы не могли с этим атрибутом работать (или случайно переназначить). Подстраховка (aka возня) для параноиков.

Алсо, выпей фруктового чай и прогуляйся. Слишком много накопленной фрустрации.
>> No.48571 Reply
File: Безымянный.jpg
Jpg, 26.62 KB, 398×291 - Click the image to expand
edit Find source with google Find source with iqdb
Безымянный.jpg
>>48563
Хм, в другом месте мне предложили просто добавить self.radius в init. И мне кажется, я наконец то понял эту штуку, и должно быть вот так. Ведь если мы просто заменим 'self.radius =' на 'self.radius', то хотя вызовы вроде 'a.radius = -1' пусть а это экземпляр Круга будут вызвать ошибки, ничто не мешает изначально создать неправильный круг a = (1, 1, -1).
Разве нет? И остается тогда ещё вопрос, в init я пишу self.radius = radius. Это я уже в init объекта обращаюсь к его свойству, получается?

А касательно книги, мне сказали читать Programimng in Python 3. Сначала Саммерфилда, а потом Лутца..
>> No.48572 Reply
>>48571
Сначала Саммерфилда, а потом всё, что нравится по всем остальным языкам, включая и Лутца тоже.
И вот здесь раздел «Языки», — http://www.curlie.org/World/Russian/Компьютеры/Программирование/
>> No.48575 Reply
Собственно как я это вижу. Какие подводные камни?
https://pastebin.com/qbXwKmZM
>> No.48605 Reply
File: book.programming_...
Jpg, 370.21 KB, 1008×1299
edit Find source with google Find source with iqdb
book.programming_in_python_3.summerfield-(pdf.io).jpg
File: book.programming_...
Jpg, 334.52 KB, 1008×1299
edit Find source with google Find source with iqdb
book.programming_in_python_3.summerfield-(pdf.io).jpg
File: book.programming_...
Jpg, 303.98 KB, 1008×1299
edit Find source with google Find source with iqdb
book.programming_in_python_3.summerfield-(pdf.io).jpg

Снова столкнулся с проблемой, спросил на Дваче, но там пока ничего путного не ответили, спрошу и тут:
Как работают сопрограммы? Это и есть начало асинхронного программирования?
Как работает пример из книги? Я уже понял про yield и gen.send(), но вот смотри: у нас есть for matcher in matchers: matcher.send(html). Matcher'ы это генераторы, т.е. обычные функции но с yieldom - дырой, позволяющей выбрасывать и принимать инфу из других частей программы. Ну значит в этом for переборе функций мы вызываем первый matcher через matcher.send(), он отправляет находку в reciever, тот выводит инфу если она есть, начинает новый цикл while True, приходит к yield'у, выбрасывает обратно в matcher, тот приходит к своему yield'у и выбрасывает обратно в for in:.. После чего мы вызываем второй matcher, а потом третий. Последовательно вызываем три функции. Не будет же картины как на таблице, когда coroutine1, 2 и 3 одновременно обрабатывают свои данные step 6 на таблице. Этот пример же вообще просто для того чтобы показать, как можно создавать сопрограммы? Я могу написать его на обычных функциях, и для каждого файла по очереди вызвать функцию нахождения нужного regex'а и вывода его куда надо. Разницы в этом случае не будет же?
>> No.48635 Reply
File: 15221552146640.jpg
Jpg, 457.57 KB, 1000×1414 - Click the image to expand
edit Find source with google Find source with iqdb
15221552146640.jpg
Предположим, пилится протокол поверх TCP или RS-232, например. Есть более эффективный вариант, чем стейт-машина, жующая по одному байтику?
>> No.48647 Reply
Есть у кого SICP переписанный под питон?
>> No.48700 Reply
File: 2018-04-16-090618_200x127_scrot.png
Png, 3.43 KB, 200×127 - Click the image to expand
edit Find source with google Find source with iqdb
2018-04-16-090618_200x127_scrot.png
Анон, подскажи нубу, куда копать. Хочу заменить zenity питоном:
for i in $(seq 0 100); do echo $i; sleep .05; done | zenity --progress --title " t i t l e"
Интересует момент получения входных данных скриптом на питоне.
>> No.48707 Reply
>>48647
Нету такого. И не будет. Потому, что это невозможно.

В МИТ просто заменили один курс (в котором использовалась схема и SICP в качестве учебника) на совсем другой (в котором используется пайтон). А какие-то идиоты сделали из этого вывод, что теперь "SICP переписали под пайтон" и распространяют в инете этот дурацкий слух.

Это не так: схема по-прежнему божественна, пайтон по-прежнему говно, и никому, кто прочитал SICP, никогда даже в голову не придёт такая чушь, как "переписать SICP под пайтон".
>> No.48708 Reply
>>48707
И что это за новый курс с Пайтоном? Где обмазаться?
>> No.48712 Reply
>>48708
> И что это за новый курс с Пайтоном?
6.0001 Introduction to Computer Science Programming in Python
> Где обмазаться?
В MIT.
>> No.48715 Reply
>>48707
Вот тут, кстати, разъяснение:
https://habrahabr.ru/post/282986/

Коротко говоря, в 80-х, когда создавался курс на основе Scheme и писался SICP, нужны были грамотные специалисты, способные строить с нуля сложные абстракции. Сейчас это не актуально, сейчас нужны хорошо обученные макаки, способные быстро наговнякать софт из кучки готовых библиотек. Отсюда и смена курса.
>> No.48718 Reply
File: noob.jpg
Jpg, 30.50 KB, 373×234 - Click the image to expand
edit Find source with google Find source with iqdb
noob.jpg
Первый опыт в питоне:
https://pastebin.com/ZK4TAkXp
Покритикуй, что-ли, анон.
>> No.48720 Reply
>>48718
не все условия учтены в init() для корректной логики
>> No.48723 Reply
Можно ли в питоне поменять кусок файла не переписывая его полностью.
>> No.48726 Reply
>> No.48728 Reply
>>48718
переосмыслил и переписал:
https://pastebin.com/FSPq3GLh
>> No.48738 Reply
File: 14440559092710.jpg
Jpg, 62.80 KB, 640×632 - Click the image to expand
edit Find source with google Find source with iqdb
14440559092710.jpg
>>48728
мнение другого вкатывальщика без какого-либо реального опыта. скажу о твоем коде то же, что сказали в первый раз о моем
1) Весь код - одно большое нарушение PEP8. Есть строки больше 80 символов, пустых строк между определениями функций 1, а не 2. Может ещё че есть, это просто в глаза бросилось.
2) цитата того анона, что обосрал мой первый код"декомпозировать, разделить обязанности, предусмотреть варианты возможных изменений в текущем коде и инкапсулировать их, предусмотреть возможные варианты развития и не усложнять их." Более подробно я описать эту проблему не особо могу. У тебя и логика игры (таблица чисел с пустым местом), и само графическое выведение, и перестановка этих чисел - все в одном месте. Это плохо. Вот что бы мне пришлось делать, если бы я хотел вывести твои пятнашки в консоль, а не в gui? Пришлось бы вообще все переделывать. Нихуя не maintaiability код.

Это общие замечания были. Теперь о самом коде.

3)Не знаю как другие программисты, но я не люблю, когда функции изменяют переменные за пределами своего скоупа. Считать какую-то глобальную для всей программы переменную - ок, изменить - хуйня. Так что global стэйтмэнты я не люблю. Опять же, импортирую твой код для использования в своей графической программке например, а у меня original_seq и другие отвечают за мои собственные последовательности, с которыми я работают ну например у меня вычисляется 100000000 член последовательности фиббоначи через рекурсивные вызовы, я решил в это время пятнашки сложить. И че произойдет? Все обвалиться нахуй из-за global.
4)Че ты бля делаешь в bones_shufle? Меняешь по две косточки 100 раз? Это можно сделать намного проще, подумай как. Да и сам while со счетчиком прекрасно заменяется на for i in range(100), если тебе он очень нужен.
4.5) Так же я не нашел проверки на то, что составленная тобой игра вообще решаема. Хотя может если ты меняешь по 2 косточки, то всегда получишь решаемую таблицу. Но мой вариант реализации все равно кажется мне проще.возможно это не так
5) 52 и 53 строки можно заменить одной с помощью divmod().
6) В каждый момент времени из всех кнопок нажатие как минимум 75% ни приведет ни к чему. Это не очень.

В общем все надо нахуй выкидывать и переделыватьили нет, опять же, я сам только вкатываюсь. Если решишь прислушаться к моему мнению, то после того как все переделаешь можешь посмотреть мою реализациюможешь и до, но я настоятельно советую после, у меня вышло в 190 строк.
>> No.49074 Reply
Дорогие питонисты, помогите советом. С python.org скачал установочник 3.7 для x64, поставил, запускаю – открывается чёрный IDLE без командной строки – точь-в-точь командная строка винды. Если через контекстное меню открыть файл *.py в IDLE для редактирования, там уже всё как раньше у меня было в Python 3.3. И вот теперь вопрос: какого чёрта?
Да, вот такой я ламер.
>> No.49076 Reply
File: IDLE-Python.png
Png, 62.73 KB, 507×625 - Click the image to expand
edit Find source with google Find source with iqdb
IDLE-Python.png
>>49074
Эврика. Нашёл правильный ярлык для запуска. До этого запускал не тот. Просто после установки на рабочий стол был помещён "не тот" ярлык.
>> No.49099 Reply
>>49076
Вечера, господа питоньеро. Есть внезапный вопрос, в связи с вот ЭТИМ:
https://www.opennet.ru/opennews/art.shtml?num=49256
Какие еще лексемы могут начать шатать в ближайшем будущем от оскорбленных анонимок? Как подстелить соломку (ну кроме очевидного и неправильного "собирай статичное питоновское окружение" или "юзай ветку 2.х") для софта, который будет введен в продакшн по самым пессимистичным меркам на 7-8 лет и на работу которого не должен влиять никто?
>> No.49100 Reply
>>48738
> 1) Весь код - одно большое нарушение PEP8.
Почему в Питоне придумали какой-то там PEP8 и все его стараются соблюдать, а в других языках ничего такого нет?
Понятно что есть какие-то договоренности на тему кодинг стайла, но у разных проектов/огранизаций они разные.
>> No.49101 Reply
>>49100
Потому, что сначала Гвидо соговнокодеры не смог в нормальный интерпретатор, хотя бы уровня пёрла но со своим ЧИТАЕМЫМ тимоди, а потом этот баг с отступами был превращен в охуеть какую фичу. Защитники Гвидо могут идти лесом со своим "это было by design".
>> No.49102 Reply
>>49099
> на 7-8 лет
Не используй питон.
>> No.49110 Reply
Привет, питоноводы. Можете ленивому недонепрограммисту подсказать библиотеку для работы с графикой. Так, чтобы как в Паскале с модулем Graph: чтобы можно было нарисовать точку, линию, прямоугольник, небо, Аллаха, и, конечно, грабить корованы.
P.S. Какого чёрта у меня NameError: name 'Tk' is not defined в копипасте из интернета:
import tkinter
window = tk()
>> No.49115 Reply
>>49110
PyQt5
>> No.49137 Reply
Нужен нормальный алгоритм отрисовки графа.
ТЗ: Не более 16 вершин, у каждого ребра есть вес, который нужно обозначить на рисунке(т.е. на самом ребре). Очень желательно, чтобы ребра не пересекались.

Мне бы хоть концепт нормальный... А то сейчас вообще вершины по кругу и веса в легендах.
>> No.49146 Reply
>> No.49147 Reply
>> No.49195 Reply
>>49110
Может
`import tkinter`
`window = tkinter.tk()`

Или
`from tkinter import tk`
`window = tk()`
>> No.49196 Reply
>>49195
Я не знаю разметку.
>> No.49225 Reply
>>49115
Разве это то? По-моему, там только виджеты (по-русски – "окна") можно создавать.
>> No.49229 Reply
В чем пишете?
Я всякой мелкоткой балуюсь в фаре с подсветкой, но для сириус бизнеса это не годится.
>> No.49230 Reply
>>49229
Пользуюсь ворованными продуктами JetBrains (Pycharm, Goland)
Мне нравится. Оперативки много, да.
>> No.49232 Reply
>>49229
Я пока в стандартной идле. Говорят, для писанины удобен интерфейс с тёмным фоном. Правду говорят?
>> No.49235 Reply
>>49232
Не знаю.
Вроде бы и удобный, и классный, и модный.
И вроде как глаза не напрягает.

Но почему-то в конечном итоге все равно использую белый, хз.
>> No.49242 Reply
File: 1200px-Gadsden_flag.svg.png
Png, 111.61 KB, 1200×800 - Click the image to expand
edit Find source with google Find source with iqdb
1200px-Gadsden_flag.svg.png
Чего бы такого запилить для портфолио?
Нужны какие-то небольшие и законченные по своей мысли проекты. Есть собственный долгострой, но он пока не для посторонних глаз, а гитхаб хочется заполнить чем-то.
Может накидаете примеры таких работ?
>> No.49247 Reply
Как работает WSGI? Запускается постоянно висящий процесс и обрабатывает запросы? А если нужно дохуя запросов обработать?
Что происходит при эксепшне, например?
Как конкретный сервер управляет этим?
>> No.49248 Reply
>>49247
> Запускается постоянно висящий процесс и обрабатывает запросы?
Примерно так. И передаёт их на исполнение питоньему скрипту.
PEP-333 для подробностей почитать можешь.
> А если нужно дохуя запросов обработать?
Тоже что и с другими языками. Ставить их очередь, "параллельные" треды, ударяться в мультипроцессинг и прочее горизонтальное масштабирование. Ещё асинхронность и асинхронные фреймворки завезли. На крайний случай можно повышать качество и скорость работы кода Шутка
> Что происходит при эксепшне, например?
Смотря как ты код написал, обрабатываешь ошибки или нет.
> Как конкретный сервер управляет этим?
Поковыряй исходники фласка какого-нибудь. Или, если слишком сложно, то попробуй поискать туториалы, как в стандартной библиотеке свой фреймворк написать. https://realpython.com/python-web-applications/
>> No.49249 Reply
>>49248
> И передаёт их на исполнение питоньему скрипту.
Ну вот этот момент я и не понимаю.
CGI запускал интерпретатор на каждый запрос, что долго и накладно. Тут по идее что-то запущено постоянно, но что именно? Как этот висящий процесс передает запрос уже прикладному коду и при этом не запускает его каждый раз?
И потому же вопрос про эксепшены.
>> No.49250 Reply
>>49249
Возможно простейшие реализации wsgi и на питоне так делают, но современные фреймворки не такие. Я в такие дебри не залезал, но выглядит это примерно так, если сильно упростить:
При старте wsgi сервера необходимые скрипты загружаются в память обработчика, вызовы от wsgi передаются обработчику, возвращается ответ и приложение снова ожидает вызов. Почитай доки какого-нибудь gunicorn.
>> No.49251 Reply
>>49249
FastCGI, например, пользовался сокетом для передаче данных процессу и получения оных от него же.
А вот эти все gunicorn и uwsgi вшивают твой код в себя аки библиотеку. И тут уже можно вызывать сам твой код напрямую.
>> No.49252 Reply
>>49251
Есть, конечно один нюанс: wsgi сам по себе может паразитировать и на CGI, и на FastCGI, но канонiчным образом его пользую именно со вшиванием. Так-то сверху можно что угодно подружить с WGSI.
>> No.49280 Reply
Хочу написать простую 2D игру на питоне, основы знаю, куда дальше копать?
>> No.49281 Reply
>>49280
Берешь пакет pygame https://www.pygame.org/wiki/GettingStarted
Смотришь примеры у них на сайте https://www.pygame.org/tags/all
Понимаешь@Повторяешь@Делаешь своё
>> No.49283 Reply
>>49281
Ого, спасибо!
>> No.49287 Reply
>>49249
> Как этот висящий процесс передает запрос уже прикладному коду и при этом не запускает его каждый раз?
Ну я, это, неуверен, но всегда думал, что твой код сам по себе превращается в висящий процесс. Не?
>> No.49296 Reply
File: 0Untitled0.jpg
Jpg, 48.12 KB, 626×297 - Click the image to expand
edit Find source with google Find source with iqdb
0Untitled0.jpg
Пытаюсь понять почему различен результат в первом и втором случае (Пикрил). Какая-то магия по списками.
[:] это, по идее, указатель, чтобы создать список, который не зависим от "материнского", но я не могу понять как всё это работает в рамках цикла. Мы создаем не привязанную копию l и выполняем действия append с ней?
>> No.49297 Reply
>>49296
[:] — это слайс. [n:m] берёт кусок списка с индексами от n до m-1 и возвращает их в новом списке. [:] — это слайс от начала и до конца, то есть новая копия старого списка.

Оба твоих кусочка кода отличаются только списком в in. Обходится либо копия списка l, либо сам список l.

По сути, цикл, проходя по списку, убивает все элементы и добавляет в него частное от деления чётных чисел на 2, то есть из элементов 2, 4, 6 делает [1, 2, 3].

В первом случае цикл проходит по копии списка, пережёвывая все элементы из копии один за другим, после чего останавливается. l[:] не меняется.

Вот тут мои раздумья по поводу второго случая, которые оказались неверными:
Во втором случае цикл, пройдя первоначальные [1,2,3,4,5,6], обнаружит, что в списке есть ещё и [1,2,3]. И пойдёт работать дальше.
Если было бы так, то отдало бы целое ничего — двойка дала бы 1 и цикл бы прервался.

Но есть одно «но».

Во второй части ветка условия else никогда не наступает. CPython обрабатывает прохождение for-цикла по массиву так, как любой программист сделал бы это, например, в Си. Через индекс. Запоминает индекс и присваивает переменной i значение l[индекс] на каждой итерации.

Поэтому, на первой итерации CPython достаёт нулевой элемент, его же убирает из l, l становится равно [2,3,4,5,6].
На второй итерации CPython помнит, что индекс текущего элемента в l был равен нулю. И берёт первый элемент l. То есть, 3, единицу же убрали. Потом таким же образом обработает 5, четвёрка же сдвинулась к началу. И завершится.

Я тебе рекомендую не менять таким образом списки. Откуда Python знать, что ты со списком делаешь?
Хм, а питоньи списки подозрительно напоминают массивы. Будь там настоящий список, то всё это либо повалилось бы с диким грохотом, либо отдало пустоту. Немного склоняюсь ко второму варианту. Надо будет попробовать написать код с настоящими списками, пусть и не на питоне.

Лучше либо строить новый список в цикле, либо делать всё в while, заменяя элемент.

А ещё можно сделать вот это:

print filter(None, map(lambda i: None if (i % 2) else (i // 2), range(1, 7)))

или, поменяв местами filter и map:

map(lambda i: i // 2, filter(lambda i: not(i % 2), range(1, 7)))
Короче на один знак
map(lambda i: i // 2, filter(lambda i: i % 2 - 1, range(1, 7)))

И да, встретил проблему — трассируй руками, логи, принты делай внутри, дебаггер и REPL используй. Поможет.

В чём пишешь?
>> No.49302 Reply
File: Python1.jpg
Jpg, 54.79 KB, 947×285
edit Find source with google Find source with iqdb
Python1.jpg
File: Python2.jpg
Jpg, 36.17 KB, 671×207
edit Find source with google Find source with iqdb
Python2.jpg

>>49297
Благодарю за детальное пояснение, хотя я понял процентов 80 из того, что ты написал.
Я прохожу онайлн курс по Питону, первая пик это задание, вторая пик это мое решение, которое прошло проверку, пики их прошлого поста это решения других. Как видишь, моё более примитивное, чем предыдущие операции со списками, где все необходимые действия выполняются в рамках одного цикла. Использую Jupyter и всякие онлайн компиляторы.

Если кому интересно, могу выложить ссылку на курс, он бесплатный.
>> No.49304 Reply
>>49302
Выложи. Хоть посмотрю на этот ваш питон.
Там же будет что-то кроме хелоувордов? То есть, хотя бы мельком затронуты какие-то популярные фреймворки, библиотеки, etc.
>> No.49311 Reply
>>49304
https://stepik.org/course/67/syllabus

На портале есть курсы по питону различной сложности. Этот -- первый, и без вундерваффе.
>> No.49313 Reply
File: screen.png
Png, 18.97 KB, 810×575 - Click the image to expand
edit Find source with google Find source with iqdb
screen.png
>>49302
Я учил с питоньего мануала. Все эти dive into python дико не зашли.
Что-то объясняют для тех, кто в жизни не видел языка программирования, а что-то — как для того, кто перечитал весь мануал и знает кучу-кучу всего. Вот. Ну и где-то в глубинах сложность отрывом идёт вверх.

На курсы как-то записывался, но дальше старта дело не дошло, это надо регулярно вот этим всем заниматься, что с моими нервами не проходит.
ну и подозреваю, что где-то в середине курса, едва научившись писать программы-фильтры, заставят сразу взять и написать парсер json.

Если ты не хочешь в несколько циклов, можешь сделать всё через один while.

Я пользую лёгенькую IDE(Geany) на пеке или редактор и просто python.
Ещё пользовал repl на repl.it, хорошо помогло, когда надо было посчитать по мелочи, а пеки рядо не было.

>>49304
Разве в курсах впиливают фреймворки? Это по ним надо tutorial`ы отдельно искать. Пока зделоют курс, всё устареет.
Быстрее в какой-нибудь pydoc потыкать.
>> No.49334 Reply
File: Ulitka.jpg
Jpg, 39.56 KB, 936×385 - Click the image to expand
edit Find source with google Find source with iqdb
Ulitka.jpg
>>49313
Мудро сделано.

А такую задачу быстро решите?
Я мучился 2 вечера, сначала собрался решать в лоб, но ничего не получилось и мой мозг взорвался: я собрал остатки в кучку, расписал на листке индексы и написал фарш-код, который, тем не менее, прошёл всё проверки.
>> No.49354 Reply
>>49334
https://repl.it/repls/PreemptiveQuaintRedundantcode
Пять минут придумывал решение, 10 минут вспоминал как что в Питоне делается. Все же просто - спираль заполнятся строго по очередности 'вправо', 'вниз', 'влево', 'вверх', при этом каждый 3й ход не считая самого первого длина заполнения уменьшается на 1. Вспоминал 10 минут потому, что решив сделать красивый пет проджект для Джанги укатился во фронт нечаянно и теперь делаю мувисерчер, лол. Так что накидал везде nonlocal чтобы были кложурки как в жсе, наверняка можно переписать в более Питонском стиле.
>> No.49369 Reply
Можете для ленивой мудилы объяснить, как установить и настроить pygame? Я заходил на pygame.org, но ведь там всё по-английски, а я ведь ленивое мудило, мне лень сделать правый клик и нажать "Перевести на русский". Мне некогда переводить, я хочу писать игры с прыгающими квадратами, а ещё я ленивое мудило.
>> No.49370 Reply
>>49313
> написать парсер json
Вот было бы что писать, ну правда.
>> No.49375 Reply
File: 1555284764846.png
Png, 135.31 KB, 600×600 - Click the image to expand
edit Find source with google Find source with iqdb
1555284764846.png
Тут кто-нибудь работал с instagram через selenium без доступа к их апи или хотя бы есть люди, которые понимают, о чем речь в этом посте https://medium.com/@mottet.dev/lets-create-an-instagram-bot-to-show-you-the-power-of-selenium-349d7a6744f7 ? Сам я ньюфаг, язык учу какими-то обрывками, но позарез нужен бот, который собирает ссылки на все медиа определенного юзера и не только. Если вы можете помочь, отпишитесь, я покажу свои нелепые попытки это реализовать и свой косяк, с которым никак не разберусь.
>> No.49376 Reply
>>49375
В этой статье*
Фикс
>> No.49377 Reply
Linux Mint. Установил из менеджера программ pygame. В Python IDLE выдаёт, что не находит его. Что я делаю не так?
>> No.49379 Reply
File: Untitled9.png
Png, 19.03 KB, 1410×724 - Click the image to expand
edit Find source with google Find source with iqdb
Untitled9.png
Почему так неинтуитовно или я тупой?
Использую модуль numpy и играю с массивами.
a.shape это размерность массива

Первый пример: массив размерностью (2, 3). То есть, 2 строки и 3 ряда, все понятно.

Второй пример: массив с 7мью рядами и 1 строкой. Почему-то показывает размерность (7,). Почему-то ряды стали на место строк в размерности, а вместо строк пустота.

Третий пример: Аналогично как в предыдущем.

Четвертный пример: Не понятно что означате такая запись. Размерность () ? Скаляр?

Почему так путано?
>> No.49397 Reply
>>49377
Во первых:
Забудь про: "менеджер программ","магазин приложений","synaptic".
Только консоль, только репы. Ставишь софт через apt. Для библиотек от питона после того как поставишь python-pip (2 или 3 зависит от того на какой версии ты жить собрался)
После этого ставишь свою pygame через pip(pip3) install pygame. И радуешся жизни.
>> No.49399 Reply
>>49397
> Только консоль
> ставишь свою pygame через pip(pip3) install pygame
Так же делал.
>> No.49437 Reply
File: pink-snake.jpg
Jpg, 89.59 KB, 500×333 - Click the image to expand
edit Find source with google Find source with iqdb
pink-snake.jpg
Объясните баке на пальцах: если Питон весь такой высокоуровневый и удобный, но медленнее всяких языков пониже уровнем, то почему бы не писать код для какой-нибудь мега ИИ на Питоне, и уже потом каким-нибудь способом перевести код из Питона, скажем, в С или ассэмблер, что бы работало быстрее?
>> No.49438 Reply
File: +_c150853c82402b7a804ff1278d90eb61.jpg
Jpg, 20.43 KB, 400×400 - Click the image to expand
edit Find source with google Find source with iqdb
+_c150853c82402b7a804ff1278d90eb61.jpg
>>49437
Всякие либы, где скорость важна, уже написаны на си, на питоне всякая высокоуровневая логика, которая погоды не делает.
Ну а в случаях, если и так прижимает, то так и делают, как ты сказал. Это называется прототипирование.
>> No.49442 Reply
>>49437
Иногда проще (и быстрее) сразу писать на быстром языке, чем писать на питоне и потом переводить.
>> No.49469 Reply
>>49437
Питон нельзя эффективно скомпилировать в машинный код как си. Потому что он динамичный, как не удивительно. (для хитрожепых: скомпилировать в си, а си в машинный код тоже нельзя) В си структура - это набор байт, обращение к полю - обращение по адресу объекта + известное смещение (потому что набор и порядок полей статичен), вызов функции - один переход по известному адресу (потому что код функций статичен). В питоне обращение к методу/полю объекта - это поиск по строке в хештаблице, на секундочку. И без хештаблицы нельзя, потому что язык так устроен.
В си объекты часто лежат компактно в памяти друг за другом: поля структуры или переменные на стеке. Это хорошо утилизирует кеш процессора, благодаря чему программа работает быстрее. Питон так устроен, что каждый объект должен лежать отдельно в куче. В итоге все выполнение программы - это один большой кэшмисс.
Еще питону нужен сборщик мусора, он тоже имеет накладные расходы, в разных реализациях разные.

Существует интерпретатор питона, который пытается решать проблемы, описанные выше, эффективнее, чем стандартный CPython. Это pypy, он использует так называемую JIT-компиляцию. Он использует тот факт, что часто у объектов одного класса один и тот же набор полей, и методы чаще всего вызывают с параметрами одного и того же типа, либо с небольшим числом разных комбинаций. Для таких частых случаев он генерирует эффективный машинный код, как в си. При выполнении функции интерпретатор проверяет, с какими типами ее вызвали, и если может, то передает выполнение на быстрый скомпилированный код, а иначе идет по медленному пути. Pypy даже показывает производительность сравнимую с си в некоторых синтетических тестах, но в реальности догнать си не может, потому что все равно в ходе выполнения программы нужно тратить время на проверки типов и нужно тратить время на компиляцию кода во время выполнения. Еще люди пока не научились в сборщик мусора без оверхеда - даже хорошая реализация тормозит, тратит на себя цпу и отжирает память. Ну и самое главное: язык позволяет писать код, с которым уловки jit'а не работают, и люди такой код пишут (динамическая параша).
>> No.49470 Reply
File: dudka.jpg
Jpg, 126.51 KB, 577×687 - Click the image to expand
edit Find source with google Find source with iqdb
dudka.jpg
>>49437
Пайтон - это интерпретируемый яп, он компилируется в С. Чтобы код работал быстрее, можно писать сразу в С а то и в ассемблере, вопросов нет, но реализация даже самых простых вещей на этих языках - далеко не самая простая вещь. В этом и заключается преимущества пайтона: простота и лаконичность, множество всяких встроенных фич и полезных библиотек, которые облегчают создание программ, но платим за все эти удобства, конечно же, скоростью.
>> No.49472 Reply
> print("Введите команду: ", end=" ")
> command = input()
> if input() == "помогите!":
> file=open("help.txt", "r", encoding="utf-8")
> print(file.read())
> file.close()

В итоге при вводе команды выводит одну пустую строку и закрывается. ЧЯДНТ?
>> No.49473 Reply
>>49472
Уже разобрался, извините.
>> No.49474 Reply
>>49470
> компилируется в С
В каком месте?
>> No.49476 Reply
>>49437
Потому что это уже есть в лиспах.
>> No.49483 Reply
File: 1342424599833.jpg
Jpg, 95.10 KB, 350×480 - Click the image to expand
edit Find source with google Find source with iqdb
1342424599833.jpg
>>49470
> он компилируется в С
>> No.49489 Reply
>>49470
> он компилируется в С
Нет. В C компилируется Cython. Cython и обычный Python это не то же самое
>> No.49490 Reply
>>49470
> Чтобы код работал быстрее, можно писать сразу в С
Возможно. Чисто теоретически. Я бы советовал относиться к этим гипотезам с большим скептицизмом. Факторов всегда больше, чем кажется на первый взгляд. А результаты бенчмарков часто удивляют.
>> No.49540 Reply
File: pythongirl.png
Png, 1262.54 KB, 2000×2000 - Click the image to expand
edit Find source with google Find source with iqdb
pythongirl.png
Мне вот тут сказали, что прогу/скрипт (хз как правильно) надо оформлять в несколько файлов там, с классами и прочее... Как это правильно сделать ил где прочитать?
>> No.49541 Reply
>>49540
Находишь книжку A Byte of Python и читаешь. Можешь ещё посмотреть чужой код на гитхабе, чтобы увидеть примеры.
>> No.49542 Reply
>> No.49544 Reply
>>49540
В книжках для питона будет написано только как, а не зачем и как не сделать неправильно. В идиале бы тебе взять Макконела "Совершенный код" или что-то аналогичное.
>> No.49547 Reply
Значит так, берёшь книжку dive into python ....
>> No.49565 Reply
File: cirno-j.png
Png, 14.96 KB, 400×450 - Click the image to expand
edit Find source with google Find source with iqdb
cirno-j.png
>>49469
> Питон так устроен, что каждый объект должен лежать отдельно в куче. В итоге все выполнение программы - это один большой кэшмисс.

Надо сказать, по наблюдениям, кажется, что среди питоноводов процент в бытовом отношении свиней заметно выше среднего. Знала одного пассажира, который почти год дома у себя ходил в ведро, потому как у него унитаз сломался, а отремонтировать его было всё недосуг — гении ведь такой бытовой ерундой не заморачиваются. Т.ч. рассказы о том, как у них на работе программисты грызут ногти у себя на ногах, особого удивления не вызывает. Создали вокруг языка стереотип, что на нём сплошь одни асоциальные фрики, пишут — а потом ещё удевляютьса, что тёлки не дают.
>> No.49574 Reply
>>49565
Это ж basic нашего времени с претензиями на чистоту и правильность, рухнувшими с приходом третьей ветки окончательно, какие фрики?
>> No.49638 Reply
>>49574
А можно подробнее о рухнувших окончательно с приходом третьей Python ветки чистоты и правильности?

Прошу прощения за некропост
>> No.49639 Reply
>>49638
Тот анонче говорит о разнообразных фичах, горой наваленных в python последней ветки. Он стал сложнее, в некоторых местах очень сложным и непонятным. С другой стороны, никто не заставляет лезть в такие дебри, тем более новичкам. Но если нужно — u are welcome.
>> No.49643 Reply
>>49639
А. То есть, под чистотой и правильностью он подразумевал систематичность возможностей языка?
>> No.49644 Reply
>>49643
Вроде того, лаконичность, простота.
На мой взгляд, сейчас это посмотреть можно в Golang'е.
>> No.49672 Reply
File: 4317119750_4d5c719004.jpg
Jpg, 39.13 KB, 500×449 - Click the image to expand
edit Find source with google Find source with iqdb
4317119750_4d5c719004.jpg
>>49639
> о разнообразных фичах
> Он стал сложнее, в некоторых местах очень сложным и непонятным.
Можно конкретный пример, который поймёт и ньюфаг (я)?
>> No.49674 Reply
>>49672
А кто ж тебя знает, какой пример ты поймёшь и примешь, а с чем захочешь, несмотря на задекларированное ньюфажество, поспорить.

Меня, например, дико триггернуло появление (где-то в районе версии 3.5, ЕМНИП) в синтаксисе языка операции @ (матричное умножение). Это при том, что в языке такого типа, матрица, нет. Он есть, конечно, но только в дополнительных библиотеках.

Ты только вдумайся: в синтаксис языка жёстко зашита (а по-другому в пайтоне нельзя, в нём нет возможности определять инфиксные операторы) операция, но объектов, к которым эта операция может быть применена в языке попросту нет.

Однако же, кому-то такая неконсистентность кажется абсолютно недопустимой, а кто-то её особо и не замечает.

Вообще говоря, пайтон изначально задумывался как простенький скриптовый язычок, без особых возможностей расширения. А используется сейчас как повсеместный универсальный язык для всего. В результате тем, кто его поддерживает я бы сказал "создателям", но создатель плюнул на всё и ушёл на пенсию, приходится городить в нём кучу дополнительных фич. Но поскольку, как я уже говорил, возможностей расширения языка изначально в его дизайн Гвидо не заложил, то все эти фичи часто выглядят уродливой нашлёпкой. А поскольку нашлёпок этих уже много, то язык уже и сам превращается потихоньку в одну большую уродливую нашлёпку.
>> No.49675 Reply
>>49674
Ну я понял твой пример, и, что такое матрицы, знаю. А чем мешает эта операция? Ну есть в синтаксисе теперь "собачка", но она ведь не лает и никого не кусает, сидит себе спокойно. Или дело в том, что символ занят, когда можно было в матричной библиотеке создать хитровыдуманное слово вроде peremnozhenie_matrits?
Если написал непонятно, то прошу прощения за неровный почерк.
>> No.49676 Reply
>>49675
А чем мешает эта операция?
Тем, что таких операций и фич больше определённого порога, после которого python из языка "простенького" и "читаемого" превращается в просто урезанный перл. Зачем урезанный перл, когда
> когда можно было в матричной библиотеке создать хитровыдуманное слово вроде peremnozhenie_matrits
Если можно функцию, лучше делать функцию.
>> No.49703 Reply
Выручайте, доброчаньки. Можно ли на QPython и Pydroid создавать файлы в телефоне (я имею в виду f.open('path', 'w')
капча всё знает: омрачен подробно
>> No.49705 Reply
File: Screenshot_2020-0...
Jpg, 67.91 KB, 720×576
edit Find source with google Find source with iqdb
Screenshot_2020-04-07-15-03-30-727_ru.iiec.pydroid.jpg
File: Screenshot_2020-0...
Jpg, 77.16 KB, 720×527
edit Find source with google Find source with iqdb
Screenshot_2020-04-07-15-03-53-531_ru.iiec.pydroid.jpg

>> No.49707 Reply
>>49703
termux
>> No.49708 Reply
File: Screenshot_2020-04-11-08-58-17-632_com.termux~2.jpg
Jpg, 66.72 KB, 720×369 - Click the image to expand
edit Find source with google Find source with iqdb
Screenshot_2020-04-11-08-58-17-632_com.termux~2.jpg
>> No.49709 Reply
>>49708
termux-setup-storage должен создать ссылку в home.
>> No.49733 Reply
>>49709
Сдаюсь. Я гуглил, я писал "termux-setup-storage" в термуксе, я... Я не знаю, что ещё делать.
>> No.49743 Reply
>>49733
Напиши все действия и все их результаты.


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]