Сохранен F 501
https://2ch.hk/pr/res/532421.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Аноним 19/08/15 Срд 12:07:37 #1 №532421 
14399752570700.jpg
Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Прошлый: >>525512 (OP)

Слоупокам напоминаю, что в 2020 заканчивается поддержка второго питона и пора бы переходить на третий
http://legacy.python.org/dev/peps/pep-0373/
Аноним 19/08/15 Срд 12:25:25 #2 №532427 
>>532421 (OP)
>третий
Не нужен.
Аноним 19/08/15 Срд 12:28:39 #3 №532430 
>>532427
А вот и некрофил объявился.
Аноним 19/08/15 Срд 12:29:37 #4 №532432 
>>532427
Ретрограды из прошлого треда так и не смогли ответить что собираются делать после 2020 со своим вторым говном.
Только мычали что-то невразумительное.
Аноним 19/08/15 Срд 12:40:13 #5 №532441 
>>532432
К 2020 появится четвертый - такой же как второй, только лучше. А что будут делать люди с третьим решать уже им потому, что вливаться в четвертый смогут только второпитоногоспода.
Аноним 19/08/15 Срд 12:44:37 #6 №532443 
>>532441
Маняфантазии пошли. Гвидо только на последнем пайконе отвечал что выпуска версии с обратной совместимостью к 2.7 Н-Е Б-У-Д-Е-Т.
Аноним 19/08/15 Срд 13:40:48 #7 №532462 
>>532432
А что они должны делать? Ты так говоришь, будто первого января 2020го все интерпретаторы второго пистона перестанут работать.
Аноним 19/08/15 Срд 13:46:10 #8 №532467 
>>532462
ЛЕГАСИ
Е
Г
А
С
И

Братишка, если технология в айти перестает развиваться - она начинает умирать. Будет тебе второй перл.
Аноним 19/08/15 Срд 14:31:47 #9 №532497 
Двойкаёбы, как мне переключить дефолтную кодировку интерпретатора? Чтобы оно мне не выдавало тонны \ux9343\ux9343\ux9343\ux9343\ux9343\ux9343
Аноним 19/08/15 Срд 14:48:22 #10 №532503 
>>532421 (OP)
Ребята привет! Я тут начал читать за питон, и не могу въехать в задание подключиться к базе данных. Есть в наличие собственно python, postgresql. И ещё я понимаю что нужно юзать драйвер для подключения. А что мне со всем этим делать, в инете ничего понятного найти не удалось, хочу спросить у вас тут
Аноним 19/08/15 Срд 15:11:14 #11 №532516 
>>532503
Ну бля, как можно задавать такие вопросы? первые ссылки в гугле - python postgresql
https://wiki.postgresql.org/wiki/Python
Выбираешь драйвер, например как написано самый популярный Psycopg2
Идешь на офсайт, там все расписано.
установка pip install psycopg2
пример http://initd.org/psycopg/docs/usage.html
Аноним 19/08/15 Срд 15:50:34 #12 №532528 
>>532497
print u"Это текст"
print "Это текст".decode('utf-8')

Системную кодировку можно узнать через sys.stdout.encoding
Аноним 19/08/15 Срд 15:51:46 #13 №532529 
Наконец-то нормальний картинка. А то в прошлом страшная была.
Аноним 19/08/15 Срд 16:53:16 #14 №532537 
>>532528
Не. Проблема в интерактиве:

Python 2.7.9 (default, Jun 16 2015, 20:34:36)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> u'лол'
u'\u043b\u043e\u043b'
Аноним 19/08/15 Срд 17:01:22 #15 №532545 
>>532529
Зато в этом я название темы проебал.
Аноним 19/08/15 Срд 17:28:13 #16 №532557 
>>532545
Да похуй, по картинке понятно.
Аноним 19/08/15 Срд 17:28:40 #17 №532558 
Есть ли годные и производительные графические 2д либы под питон? Из того что есть одно говно. И что там с пигеймом, будет ли развитие? Неужели придется менять язык для разработки высоконагруженных игр?
Аноним 19/08/15 Срд 17:29:40 #18 №532559 
>>532558
pyglet самый шустрый из всех что я тыкал
>Неужели придется менять язык для разработки высоконагруженных игр
У меня для тебя плохие новости.
Аноним 19/08/15 Срд 17:51:12 #19 №532570 
>>532558
Владимир?
Аноним 19/08/15 Срд 17:52:59 #20 №532572 
>>532559
какие?
>>532570
Андрюха?
Аноним 19/08/15 Срд 17:58:12 #21 №532579 
>>532572
Такие, что графонистей какого-нибудь раймана или braid ты на скриптоте не напишешь.
Аноним 19/08/15 Срд 18:04:57 #22 №532583 
>Python developer
>500$
>Опыт, навыки, технологии: 1,5 года опыта
>куча фронтендопараши
до слёз
Аноним 19/08/15 Срд 18:10:01 #23 №532586 
>>532558
Сам задавался этим вопросом и моё исследование показало:
pygame - самое годное, хоть и медленное. Если руки не совсем крюки, то можно оптимизировать небо и аллаха за счёт грязных спрайтов в большинстве ситуаций, реальные проблемы только когда плавную прокрутку в фулХД запилить требуется. Твой выбор если ты сам хочешь сделать свою игру на питоне.
pyglet - быстра как понос относительно пайгейма (за счёт ускорения железом), но не может быстро в сотни слоёв. С одной стороны за тебя уже запилили часть скелета игры, который может тебе и не подойти, а с другой тебе придётся ебаться с опнглом на низком уровне частенько. Твой выбор если тебе не нужны сотни слоёв, твоя игра вписывается в их шаблоны и тебе норм ещё и опнгл паралельно учить.
cocos2d - надстройка над пайглетом, за тебя запилили ещё большую часть игры. При этом там замыливают твои пиксели и я не смог найти как это отключить. Можно быстро сваять казуалку, но если твоя игра не вписывается в их шаблон то тебя ждут весёлые баги, типа чёрных полос на стыках тайлов, или ненужного мыльца из за координат спрайтов с плавающей точкой, найти решение которых будет затруднительно, тк поиск насмерть засран кокосом2д для гейфонов на всяких сишарпах.
>И что там с пигеймом, будет ли развитие?
А чего тебе в нём сейчас не хватает?
>>532559
>pyglet самый шустрый
Не всегда. Там сортировка по высоте только через группы, а если у меня карта в 100 тайлов по высоте и нужно, чтобы деревце с Y верхушкой кроны закрывало корень деревца Y-1 b и при этом это не между ними мог влезть персонаж, так чтобы он закрывал головой деревце выше его, а деревце ниже его закрывало его, то тогда нужно пилить 200 групп, что по скорости будет тормознутее пайгейма. Но если у тебя вся игра помещается в 5-10 слоёв, то он самый быстрый да.
Аноним 19/08/15 Срд 18:16:54 #24 №532593 
14399974147160.png
Анон,что я делаю не так ? В гугле по второй ошибке ничего не нашел.
Аноним 19/08/15 Срд 18:19:11 #25 №532595 
>>532593
Поставь виртуалку с линуксом, половина пакето-проблем уйдет.
Аноним 19/08/15 Срд 18:19:45 #26 №532596 
>>532558
Алсо, учитывай, что через то время, что ты запилишь игру производительность процессоров скакнёт и пайгейм станет в 2-4 раза быстрее за счёт этого на десктопах.
Аноним 19/08/15 Срд 18:22:25 #27 №532600 
>>532586
Питоновский кокос разве еще живой? По их сайту создается впечатление трупа.
Аноним 19/08/15 Срд 18:47:48 #28 №532612 
>>532600
Незнаю. А какая разница?
Аноним 19/08/15 Срд 18:48:47 #29 №532613 
>>532612
Большая.
Аноним 19/08/15 Срд 18:54:20 #30 №532617 
>>532586
>>А чего тебе в нём сейчас не хватает?
sdl2, pythonic, python3
>>532596
Не думаю что процессоры в ближайшие годы станут сильно производительней, особенно учитывая тот факт что амд умирает.
>>532600
Ты взгляни на сайт того же pygame.org, зеленый пиздец из 2000. Так они еще несколько дней назад поставили переадресацию на новый сайт, где дизайн еще хуже. Весь сайт на большом дашборде, который еще проматывать вправо нужно, при это все лагает. Пиздец короче.


Даже не знаю что делать. Лучше пережду пару годков, а там надеюсь станет понятней что выбирать для разработки, глядишь выйдет новый движок или тот же пигейм обновят для работы с вулканом.
Пока смотрю в сторону godot engine, но с кастомным языком не сильно хочу работать.
Аноним 19/08/15 Срд 19:00:28 #31 №532620 
>>532617
>новый сайт
Феерический пиздец. Даже с музякой и плеером на главной. Давно я так не проигрывал.
Аноним 19/08/15 Срд 19:00:48 #32 №532621 
>>532613
Например?
Ты же не баба, чтобы моде следовать и бездумно брать то что новее типа третьего питона. Аргументы давай.
Аноним 19/08/15 Срд 19:03:23 #33 №532622 
>>532407
Наверни a byte of python и пили проектики, Лутц и говносайты не нужны.
Аноним 19/08/15 Срд 19:07:24 #34 №532625 
>>532617
>sdl2
И зачем он нужен? Алсо:
>Tom Rothamel has announced that Pygame_sdl2 development is underway. Pygame_sdl2 uses SDL2 and implements a large portion of the pygame API. For now, Pygame_sdl2 is available at https://github.com/renpy/pygame_sdl2.

>pythonic
Чито?

>python3
Есть, хоть и не нужен.
Аноним 19/08/15 Срд 19:11:16 #35 №532630 
>>532617
>зеленый пиздец из 2000
>дизайн
Тебе шашечки или ехать?
Аноним 19/08/15 Срд 19:14:37 #36 №532633 
>>532622
Лучше дайту пасту про погруджение в питон.

>>532630
Это че еще? Иди нахуй
Аноним 19/08/15 Срд 19:15:15 #37 №532635 
>>532621
Аргументы против использования мертвой поделки? Ты серьезно? Ну ладно.

Отсутствие багфиксов. Никто не пишет идеальный код, всего есть что чинить.
Отсутствие новых фич. Опять таки идеальных фреймворков не существует, даже лучшие развиваются до сих пор.
Отсутствие новых платформ. Один пека в 2015 не катит.
Отсутствие секурити фиксов. Для игровой библиотеки не актуально, но все же.
Отсутствие улучшений производительности. Никто не будет вылизывать алгоритмы для хуйни, которой никто не пользуется. Очень актуально.
Неизбежное снижение пользовательской и кодовой базы. Больше не сделаешь import new_cool_module, потому что никто его не напишет.
Мне продолжать?

Ты дебил какой-то. Или зеленый. Иди нахуй на коболе под os/2 пиши.
Аноним 19/08/15 Срд 19:16:53 #38 №532636 
>>532625
Нахуй иди, сказали же тебе.
Аноним 19/08/15 Срд 19:21:44 #39 №532639 
>>532633
>Это че еще? Иди нахуй
Охуеть ты школота.
Аноним 19/08/15 Срд 19:24:41 #40 №532641 
>>532639
>ПОК-ПОК-ПОК РАЗВИТИЕ НИНУЖНО НОВЫЕ ФИЧИ НИНУЖНЫ
>МАМ СМАРИ Я ЗАТРАЛЕЛ ШКАЛЬНИКОВ))0
Аноним 19/08/15 Срд 19:30:33 #41 №532647 
>>532635
> Отсутствие багфиксов. Никто не пишет идеальный код, всего есть что чинить.
В старых и мёртвых либах все критические вещи уже пофикшены.
> Отсутствие новых фич. Опять таки идеальных фреймворков не существует, даже лучшие развиваются до сих пор.
1) Ты в любом случае пишешь игру сейчас и не можешь ориентироваться не некоторые неопределённые фичи, что могут быть.
2) Новые фичи - новые баги.
> Отсутствие новых платформ. Один пека в 2015 не катит.
И какие платформы там не работают?
> Отсутствие секурити фиксов. Для игровой библиотеки не актуально, но все же.
Сам сказал, что неактуально.
> Неизбежное снижение пользовательской и кодовой базы. Больше не сделаешь import new_cool_module, потому что никто его не напишет.
Если у самого руки прямые, то несущественно, тк решаешь задачи сам и так как именно тебе нужно, а не тащишь чужие баги.
> Мне продолжать?
Может хоть 1 валидный пункт придумаешь.
Аноним 19/08/15 Срд 19:31:57 #42 №532650 
>>532641
>Пост про то что петушок смотрит на дизайн сайта, а не на функционал либы.
>ПОК-ПОК-ПОК РАЗВИТИЕ НИНУЖНО
Ты у мамы особенный как я погляжу.
Аноним 19/08/15 Срд 21:29:51 #43 №532695 
def square(x, y): # x, y - параметры
result = xy
print "%d в степени %d = %d" % (x, y, result)



square(x, y) # А это уже аргументы! Чувствуете?
Аноним 19/08/15 Срд 21:41:02 #44 №532702 
Термин «аргумент» подразумевает, что конкретно и какой конкретной функции было передано, а параметр — в каком качестве функция применила это принятое. То есть вызывающий код передает аргумент в параметр, который определен в члене спецификации функции.
Аноним 19/08/15 Срд 21:58:19 #45 №532712 
Метод это функция класса.
Аноним 19/08/15 Срд 21:59:32 #46 №532713 
Пифон — ето язык программирования
Аноним 19/08/15 Срд 22:03:52 #47 №532722 
>>532695>>532702>>532712
А нахуя ты это всё пишешь сюда, да ещё и в отдельнх постах?

>>532647
>1) Ты в любом случае пишешь игру сейчас и не можешь ориентироваться не некоторые неопределённые фичи, что могут быть.
Но ведь он игру не забросит после написания, а будет её, наверное, развивать, не? Да, в первой версии никаких "будущих" фич модуля не будет, а через полгода раз и свистелку добавят, которая будет ему как раз. А используя мёртвый модуль и сама игра получается мёртвой изначально. Это как начинать писать игру на заброшенном движке, далеко не в графоне же разница. Конечно, ты в состоянии сам всё реализовать, если что-то конкретное нужно, но в таком случае отстаивается позиция "модули не нужны", и "современные и поддерживаемые модули не нужны" лишь одна из её частей.
Аноним 19/08/15 Срд 22:06:42 #48 №532725 
>>532722
>А нахуя ты это всё пишешь сюда, да ещё и в отдельнх постах?
Чтобы знали.
Аноним 19/08/15 Срд 22:07:06 #49 №532726 
>>532712
>>532713
Язек программирования — ета программированный язек.
Аноним 19/08/15 Срд 22:07:34 #50 №532727 
>>532725
И разбирались в терминах, а то интерфейс от класса не могут отличить, блядь.
Аноним 19/08/15 Срд 22:10:08 #51 №532730 
>>532722
>Но ведь он игру не забросит после написания, а будет её, наверное, развивать, не?
С 99,9% вероятности, не будет даже если напишет.
Аноним 19/08/15 Срд 22:18:07 #52 №532736 
>>532730
Я вообще игру не пишу, а тот чувак видимо только спросил и сразу нахуй послал. Ну и правильно сделал.
Я только говорил что писать новый код используя дохлые библиотеки - говноедство. Хотя у тебя похоже легаси ЫНТЫРПРАЙЗ головного мозга и использовать то, что еще не разложилось и не завоняло ты считаешь зашкваром и детскими шалостями.
Аноним 19/08/15 Срд 22:29:11 #53 №532745 
>>532630
Дизайн сайта - хороший показатель качества либы. Если какое-то хуйло не может фронтэнд сверстать нормально в 2015 году, что вообще ему можно доверять? Хуже пхп-макаки.
>>532712
А мандада, как известно, это масив.
Аноним 19/08/15 Срд 22:44:16 #54 №532756 
>>532736
Я считаю, что нужно смотреть на возможности либы, а не на дату.
Например:
"В этой конкретной библиотеке нет такой-то критичной для меня возможности." - аргумент.
"Библиотека не обновлялась пару лет и только поэтому я не буду даже смотреть, что она может." - подход дегенератов без мозга.
Аноним 19/08/15 Срд 22:47:34 #55 №532757 
>>532756
"Библиотека не обновлялась пару лет поэтому древние версии системных либ с которыми она работает можно найти разве что в четвертом редхате."
Аноним 19/08/15 Срд 22:51:01 #56 №532760 
>>532757
>2015
>не использовать божественный четвертый редхат
Туда ли ты зашел, петушок? У нас тут клуб любителей питона 2.6
Аноним 19/08/15 Срд 22:55:48 #57 №532761 
>>532757
Всегда можно поставить другой питон с нужными либами.
Аноним 20/08/15 Чтв 00:29:31 #58 №532798 
>>532761
А если проект уже в третьем питоне?
Аноним 20/08/15 Чтв 00:34:57 #59 №532801 
>>532798
Таких не бывает, все пишут под 2.6, это продакшн.
Аноним 20/08/15 Чтв 00:38:51 #60 №532803 
>>532745
При всем при этом им делали макеты нормальных сайтов, хотели помочь, а они в итоге сделали сайт не из 2015, а из 2006
Аноним 20/08/15 Чтв 08:55:52 #61 №532849 
>>532761
Т.е. подстраиваться под устаревшую либу, вместо того, чтобы просто новую взять? Что-то это беседа уже скатилсь хер знает куда.
Аноним 20/08/15 Чтв 08:58:29 #62 №532851 
>>532516
Спасибо, я просто совсем нуб, дочитываю только Луца
Аноним 20/08/15 Чтв 11:35:26 #63 №532896 
>>532849
Это просто зеленый. У него и питон 3 не нужен. Не кормите.
Аноним 20/08/15 Чтв 13:55:07 #64 №532948 
>>532497
>второй пистон
>2015
Аноним 20/08/15 Чтв 17:20:47 #65 №533048 
Почему нельзя сделать простую и удобную графическую библиотеку как http://www.ness-engine.com/, почему обязательно нужно делать мертворожденные клоны и форки пигейма?
Аноним 20/08/15 Чтв 17:22:15 #66 №533051 
>>533048
Потому что как нам пояснили эксперты - мертвое - значит стабильное, значит надежное и можно наконец использовать в продакшыне.
Аноним 20/08/15 Чтв 19:06:17 #67 №533171 
14400867770230.gif
Анон, на питоне можно писать простые 2д игры? С пиксельным графоном например. И во что питон, по сравнению с другими языками, не может?
Аноним 20/08/15 Чтв 19:12:03 #68 №533173 
>>533171
Можно.
Зависит от языка с которым сравниваешь.
Аноним 20/08/15 Чтв 19:12:10 #69 №533174 
>>533171
Можно.
>И во что питон, по сравнению с другими языками, не может?
В скорость.
Аноним 20/08/15 Чтв 19:12:16 #70 №533175 
>>533051
В производительность и многопоточность.
Всякое мелкое говно можно написать практически в любом языке, а вот тот же клон террарии сделать, чтобы он не лагал, уже очень проблематично сделать. Попробуй godot engine, синтаксис похож на питоновский, либо ебись с пигеймом без экспорта на мобилки. Выбор невелик.
Аноним 20/08/15 Чтв 19:29:44 #71 №533185 
>>533175
>>533171
Аноним 20/08/15 Чтв 21:48:22 #72 №533291 
>>532558
Еще есть kivEnt.
http://kivent.org/
На нем запилили прикольную игруху для андроида.
https://play.google.com/store/apps/details?id=org.chozabu.boardzfree
Аноним 20/08/15 Чтв 21:58:58 #73 №533296 
Как узнать какая часть скрипта на питоне больше всего тормозит? Очевидно можно вычитать время конца функции от начала и постепенно сужать круг поиска. Но может существуют специальные модули для этого или внешние инструменты.
Аноним 20/08/15 Чтв 22:00:35 #74 №533298 
>>533296
https://docs.python.org/3/library/profile.html
Аноним 20/08/15 Чтв 22:26:15 #75 №533319 
>>533291
Возможно хорошая штука чтобы делать всякие приложения с киви, но думаю для серьезных игр для пк это не пойдет, особенно если учесть что сам киви основан на пигейме. Там даже третий питон не работает на андройде. Стоит ждать перенос киви на сдл2, который сейчас и происходит. Возможно в будущем это станет такой же платформой для разработки игр как и пигейм.
Аноним 20/08/15 Чтв 22:31:50 #76 №533323 
>>533319
Я уже сомневаюсь что они осилят sdl2 и питон3 для андроида. И пигейм кстати выкидывают, меняют на свое. Там какой-то адский замок из костылей, абсолютно непереносимый.
Аноним 20/08/15 Чтв 22:51:34 #77 №533341 
Анон исправьте в FAQ ссылку на тред. Блядь она на тред июля ведет. Там народ сидит вопросы задает лол. А этот тред создал какой то пиздоглазый мудак даже не назвав его Python и через поиск он не ищется.
>>532421 (OP)
Мудак блядь.
Аноним 20/08/15 Чтв 22:53:45 #78 №533343 
>>533341
Нюфак порвался.
Аноним 20/08/15 Чтв 23:02:22 #79 №533350 
>>533343
Ну да я только пришел. Блядь ну тред хоть Python можно назвать нет? Олдфаги хуевы блядь.
Аноним 20/08/15 Чтв 23:05:26 #80 №533355 
>>533350
Ну проебался я немношк, извиняй. Хуле дерзкий то такой?

Раздел все равно полудохлый, и все живые треды на первой странице висят. А ссылки в FAQ'е никто не правит. На рубитред там вообще 404.
Аноним 20/08/15 Чтв 23:08:13 #81 №533360 
>>533355
Да что то я переборщил извини. Уф я думал хули там никого нет думал Python - ВСЁ лол, мой мир рухнул.
Аноним 21/08/15 Птн 00:41:43 #82 №533417 
14401069033390.jpg
ПИИИИИИИФОООООООООН!
Аноним 21/08/15 Птн 00:45:28 #83 №533418 
14401071289660.jpg
>>533417
Опять ты?
Аноним 21/08/15 Птн 04:32:37 #84 №533446 
>>532849
Тебе красивая циферка версии нужна или чтобы программа ТЗ выполняла?
Если ты из той либы ничего, что есть только в обновлениях не используешь, то всё норм. А ты этого не делаешь в 99,99% случаев.
Куда я попал? Доска не программистов, а модниц каких-то, которые берут новинку только потому, что это новинка.
Аноним 21/08/15 Птн 04:41:19 #85 №533449 
>>533171
Можно и оче просто. Pygame, например, оче хорош для обучения, тк не городит за тебя структуры игры, а просто даёт тебе возможность вывести картинку, звук, получить нажатие клавиши или положение мышки и ты сам разбираешься, как всё нужно устраивать. Можно писать и сложные игры.
Питон не может в скорость исполнения, но при текущей производительности процессоров это не критично, если ты не собрался цикл в миллионы элементов 60 раз в секунду обрабатывать. Но при необходимости даже это решается заменой этого места модулем на С или перекатом на PyPy какой-нибудь.
Аноним 21/08/15 Птн 04:46:45 #86 №533451 
>>533048
А чем тебе пайгем не простой и не удобный?
Аноним 21/08/15 Птн 06:54:02 #87 №533470 
>>533174
>В скорость.
Numba, Cython, Theano. Было бы желание.
Аноним 21/08/15 Птн 18:55:13 #88 №533643 
>>533449
А какие игры на нем написаны?
Аноним 21/08/15 Птн 19:25:49 #89 №533651 
Посаны. Вопросы по PEP257.

Накати его и pylint, вылезает кучу ошибок. Ну, большую часть я пофиксил, но вот например есть "D103 Docstring missing in public function" и я не знаю как его пофиксить.
Докстринги вроде всюду есть, но может я оформляю как-то не так?

Может кто-то привести пример правильной функции с докстрингом который не вызывает ошибку?
Аноним 21/08/15 Птн 19:35:08 #90 №533657 
Пишу camelCase и ничего не могу с собой поделать.
Аноним 21/08/15 Птн 19:51:02 #91 №533666 
14401758620950.jpg
>>533651
Впизду. Вставляю примеры с документации PEP257 и всё равно получаю ошибку D103. Вставил код в другой редактор - написало что всё ОК. В итоге просто заигнорил ошибку.
атомопроблемы
Аноним 21/08/15 Птн 20:06:02 #92 №533677 
Пагни, нужна помощь по BeautifulSoup. У меня есть страничка, и с этой странички нужно сохранить текст, который внутри тэгов. Меня интересует вот эта вот строка:
<td width=470 colspan=3 align=center valign=middle bgcolor=#eeeeee><font color=#00008f>блаблабла</font></td></tr>
Мне нужно отсюда вывести "блаблабла". Т.е. вот этот текст задан конкретными специфичными параметрами, как к нему подобраться? Пишу разную хуйню с findAll, но пока не могу по-нормальному все сделать.
Аноним 22/08/15 Суб 02:15:37 #93 №533707 
Посоны, а какие сейчас средние зарплаты у сильных сеньёров на питоне/джанге/sql/nosql?
Аноним 23/08/15 Вск 01:00:59 #94 №533713 
>>533677
td.text
>>533651
Забей на эту хуйню. Понимаю ещё для документации формат соблюдать.
Аноним 23/08/15 Вск 10:31:12 #95 №533725 
>>533296
https://github.com/rkern/line_profiler
Аноним 23/08/15 Вск 10:38:11 #96 №533731 
>>533657
в wxpython функции ВсёВотТак
Аноним 23/08/15 Вск 10:39:17 #97 №533734 
>>533707
40к рублей. Если в ДС то 50, может даже 60.
Аноним 23/08/15 Вск 10:42:38 #98 №533739 
>>533707
Питон это язык для обучения, типа бейсика.
Никаких зарплат там нет и никаких синьеров.
Если хочешь найти работу учи java или php. Это энтерпрайз.
Аноним 23/08/15 Вск 10:55:03 #99 №533742 
>>533739
Можно стать главным и диктовать свои условия, например.
Аноним 23/08/15 Вск 10:55:44 #100 №533743 
>>533739
>Если хочешь найти работу учи java или php. Это энтерпрайз.
Если хочешь развиваться учи Python. Это highload и не только.
Аноним 23/08/15 Вск 11:03:58 #101 №533748 
>>533743
Что такое highload? buzzword? Ещё про BIG DATA расскажи.
Аноним 23/08/15 Вск 12:17:19 #102 №533772 
>>533748
Ебать вы науч.
Аноним 23/08/15 Вск 15:30:05 #103 №533908 
Такс-такс-такс, что тут у нас? Безработные рабисты разводят срачики про зарплату в питонотреде? АЗХаза ну наканецта.
Аноним 23/08/15 Вск 17:53:55 #104 №534004 
>>533739
>Никаких зарплат там нет и никаких синьеров.
Но у меня есть друг, пишет на питоне, тимлид.
И вообще видел немало мидлов и сеньоров.
Аноним 23/08/15 Вск 18:03:14 #105 №534008 
>>533739
>Никаких зарплат там нет и никаких синьеров.
>учи java или php
> Это энтерпрайз.
>php
>энтерпрайз
Ты долбон или еблон?

С соседнего треда. https://mathrioshka.atlassian.net/wiki/display/VAC/Back-end+Python+Developer
Зарплата от 100 до 160к. Нууу, даже не знаю, лол.
Аноним 23/08/15 Вск 18:06:53 #106 №534009 
>>534008
>Базовые знания статистических алгоритмов
>Хорошая математическая подготовка
>Знание библиотек (Pandas) и языков (R)
Это не про сосачера из этого треда. Тут задают настолько дебильные вопросы, которые гуглятся за 2 секунды, ну ты сам видишь.

Какая математическая подготовка.
Аноним 23/08/15 Вск 18:18:57 #107 №534014 
>>534009
Сложные вопросы нет смысла задавать, мала вероятность, что кто-то знаком с предметом твоего вопроса, ибо аудитория невелика.
Аноним 23/08/15 Вск 18:21:55 #108 №534015 
>>534014
Сижу на лоре там в development иногда задают довольно непростые вопросы и по python в т.ч. и находятся ответы.
Просто аудитория повзрослее и поумнее.
Аноним 23/08/15 Вск 18:23:02 #109 №534016 
>>534009
Ну, с этим никто не спорит. Тут в целом соотношение 5% сениоров к 95% студентоты и всяких посетителей из б, которые узнали "как легко зарабатывать 25 баксов в час на удаленке и дать пососать всем своим одноклассниками которые тебя травили". Ничего удивительного.

И да, многие реально гуглом пользоваться не умеют, вводишь их вопрос в гугл и первая же ссылка ответом, копипастишь им и они такие "ОГО, СПАСИБО!". Безумие какое-то.
Аноним 23/08/15 Вск 18:23:20 #110 №534017 
>>534014
> аудитория невелика.
Потому что моча неадекватная. Бан на бане, половина тредов закрыты, только дженерал треды имеют право жить. Скоро тут вообще поланона будет. Тащемта я в #python на фриноде и на лор перекатываюсь.
Аноним 23/08/15 Вск 18:43:58 #111 №534029 
>>534015
>>534017
Суть pr не только в вопросах и ответах. никуда вы не перекатитесь, не пиздите, петухи
Аноним 23/08/15 Вск 18:53:12 #112 №534038 
>>534029
В чем же суть pr? Ни одного годного проекта за всю историю. Вообще нихуя.
Аноним 23/08/15 Вск 19:07:41 #113 №534049 
>>534038
Предлагай.
Аноним 23/08/15 Вск 19:15:34 #114 №534052 
>>534038
Никакой нормальный человек не будет свой годный проект тут палить. Его потом еще в резюме пихать, а двачеры все зашкварят. Не говоря уже про деанон.
Аноним 23/08/15 Вск 19:23:35 #115 №534058 
>>534052
Попроще и повеселее что-нибудь давайте. Чтобы желающих поучаствовать было побольше.
Аноним 23/08/15 Вск 19:34:11 #116 №534065 
>>534058
Не в идеях дело, а в зашкваре. Мы даже ОПа на гитхабе переименоваться заставили. Он изначально назвался 2chPythonThread или как-то так. Пиздос. И еще удивлялся почему никто не коммитит. Да, сейчас, побегу я коммитить в двачетред со своим настоящим именем. Да хоть и не двачетред, все равно понятно откуда я этот репозиторий нашел.

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

Хотя ты прав, идей то все равно нет.
Аноним 23/08/15 Вск 19:50:01 #117 №534072 
>>534065
Нету да.
Лично я сижу в треде потому что мне нехуй делать и могу какому-нить совсем нубу что-то объяснить, хоть какая-то польза от меня человека-говна.
Аноним 23/08/15 Вск 19:56:55 #118 №534075 
Короче есть такая игруля https://screeps.com/
Там пишется бот, который за тебя потом играет.
Соответственно это требует сервера, соответственно поэтому оно платное (ибо могут нарегать тысячи левых акков и уронить всю игру).
Хотелось бы видеть это в p2p варианте. То есть запускаем у себя на компе и оно там считает. Выключили - наши боты остановились.
Аноним 23/08/15 Вск 19:59:58 #119 №534076 
>>534075
А как синхронизацию и т.п. делать? То есть можно конечно
Аноним 23/08/15 Вск 20:18:15 #120 №534087 
>>534076
Мир большой и разреженный, боты определённого игрока находятся обычно в очень ограниченной части мира. То есть можно использовать локальную когерентность позиций чтобы не учитывать всех-всех-всех для просчёта каждой точки мира.
Аноним 23/08/15 Вск 20:22:13 #121 №534092 
>>534087
> локальную когерентность позиций
Я не понял что это значит. Что если у нескольких игроков карта мира одинаковая, а у ещё одного другая - то типа верна карта большинства? А что если они все виртуалы читера?
Нет p2p игры это проблема большая в плане наеба. Поэтому почти все игры централизованные.
Аноним 23/08/15 Вск 20:25:53 #122 №534094 
>>534092
Используем принцип биткоина. Просим других проверить наши рассчёты.

Это значит что боты не могут двинуться дальше чем одна клетка за один такт. Резко перенестись из одной части мира в другую.
Аноним 23/08/15 Вск 20:29:10 #123 №534095 
>>534094
Можно сделать это как распределенные системы контроля версий.
У каждого копия репозитория, ты делаешь один коммит и делаешь push другим. У них проверяется подходит ли этот коммит под правила и если да то принимается.
Как-то так да?
Аноним 23/08/15 Вск 20:35:11 #124 №534098 
>>534095
Именно так, да. Но здесь будет не совсем коммит, а скорее массив ботов с направлениями и типами действий (идти, атаковать, добывать). Проверяющий код будет супер тривиальный.

Соответственно если читаны начинают ломать клиент, произойдёт форк игрового мира и читаны будут играть сами с собой.
Аноним 23/08/15 Вск 21:06:17 #125 №534116 
>>534038
Суть pr постебаться и пообсирать что-нибудь. Ну, максимум видос или либу вбросить.
Аноним 23/08/15 Вск 22:15:32 #126 №534167 
Решил значит выучить питон, читаю Лутца. часть про строки, поиск по шаблону. В книге написан код:
import re
match=re.match('/(.)/(.)/(.)', 'Hello/Python/world')
далее по книге надо ввести
match.groups()
чтобы получилось разделение, но в интерпретаторе у меня чомуто нихуя не выходит и выскакивает ошибка:

>>> match=re.match('/(.
)/(.)/(.)', 'Hello/Python/world')
>>> match.groups()
Traceback (most recent call last):
File "<pyshell#87>", line 1, in <module>
match.groups()
AttributeError: 'NoneType' object has no attribute 'groups'
>>>
Шта делать?
Аноним 23/08/15 Вск 22:16:48 #127 №534168 
>>534167
Черт, там в скобках после точки везде звездочки* стоят
Аноним 23/08/15 Вск 22:22:15 #128 №534171 
>>534167
>match('/(.)/
>'Hello/P
Сам поймёшь или подсказать?
Аноним 23/08/15 Вск 22:22:52 #129 №534173 
14403577720500.png
>>534168
Если match не находит нихуя то возвращает None вместо объекта match
Конкертно у тебя должно быть
re.match('(.)/(.)/(.)', 'Hello/Python/world')
или
re.match('/(.)/(.)/(.)', '/Hello/Python/world')
Иначе оно нихуя не подподает под шаблон
Аноним 23/08/15 Вск 23:02:10 #130 №534205 
Анон, поясни за функции, почему с одной переменной канает и как мне это починить?

c=1

def Test(c):
a=c
b=2
return a,b


def Test2(a,b):
print(a,b)

Test2(Test(c))


TypeError: Test2() missing 1 required positional argument: 'b'?
Аноним 23/08/15 Вск 23:07:22 #131 №534209 
>>534205
test2(звёздочка test(c))
Аноним 23/08/15 Вск 23:07:31 #132 №534210 
>>534205
[CODE]Test2(*Test(c))[/CODE]
Аноним 23/08/15 Вск 23:08:33 #133 №534213 
14403605131390.jpg
>>534210
Я быстрее.
Аноним 23/08/15 Вск 23:11:10 #134 №534218 
14403606704180.jpg
>>534209
>>534210
Cпасибо, няши, помогло.
Аноним 23/08/15 Вск 23:12:20 #135 №534219 
>>534218
Лучше ещё погугли что это значит, чтобы возвыситься, так сказать.
Аноним 23/08/15 Вск 23:14:54 #136 №534224 
>>534218
http://hangar.runway7.net/python/packing-unpacking-arguments
https://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists
Аноним 23/08/15 Вск 23:15:15 #137 №534225 
>>534219
Подозревал, что это args-kwargs, только не понимал, как пользоваться.
Аноним 23/08/15 Вск 23:27:37 #138 №534237 
14403616573040.png
>>534224
> https://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists
Аноним 23/08/15 Вск 23:42:10 #139 №534243 
>>534205>>534225
Чтобы ты совсем понял, "return a, b" возвращает не две переменных, а кортеж (он же tuple) с этими элементами (основная часть при создании кортежа это запятая, а не скобки). Именно поэтому тебе выдавалась ошибка об отсутствующем аргументе, ведь ты один и передавал.
P2P assburger 24/08/15 Пнд 06:36:54 #140 №534292 
14403874143350.png
Сгенерировал мир.
Аноним 24/08/15 Пнд 07:32:43 #141 №534296 
>>534292
Иди на некст левел.
http://www-cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/
P2P assburger 24/08/15 Пнд 07:41:44 #142 №534297 
>>534296
Это не оно. Тут задача другая совсем. Например тут всё белое - это неразрывная область. И в каждой клетке обязательно есть место.
Аноним 24/08/15 Пнд 09:39:06 #143 №534317 

ПОЛ ГОДА УЧИЛ ПХП
@
НЕ ПОНИМАЛ КАК ТАМ РАБОТАЮТ ЦИКЛЫ
@
НАЧАЛ ИЗУЧАТЬ ПИТОН
@
МАНИПУЛИРУЕШЬ ЦИКЛАМИ КАК ШЛЮХА ДЕЛАЕТ МИНЕТ С 10-ТИ ЛЕТНИМ СТАЖЕМ
Аноним 24/08/15 Пнд 10:13:43 #144 №534337 
>>534317
> ПОЛ ГОДА
> МИНЕТ С 10-ТИ ЛЕТНИМ СТАЖЕМ
Динах отсюда, дибил.
Аноним 24/08/15 Пнд 10:27:44 #145 №534345 
Дергаю стороннюю утилитку через os.system()
Утилита дает выхлоп в stdout. Если сделать response = os.system('/bin/zalupka') то в response остается pid, а не выхлоп. Мне нужен выхлоп чтобы распарсить. Как это сделать?
Аноним 24/08/15 Пнд 10:29:18 #146 №534346 
>>534345
https://pypi.python.org/pypi/sh
Аноним 24/08/15 Пнд 10:35:56 #147 №534358 
>>534346
Эта хуита годится разве что ls дергать. Оно не может нормально передать параметры к /bin/zalupka
Аноним 24/08/15 Пнд 10:42:20 #148 №534368 
>>534358
Пример чего она не может или не было.
Аноним 24/08/15 Пнд 10:43:27 #149 №534369 
>>534345
Если бы ты хоть немного читал документацию, то увидел бы что os.system это как раз дёргать ls, а что посложнее - проследуйте в subprocess. Конкретно тебе нужен subprocess.POpen
Аноним 24/08/15 Пнд 10:44:53 #150 №534370 
>>534369
Уже нагуглил http://stackoverflow.com/questions/3503879/assign-output-of-os-system-to-a-variable-and-prevent-it-from-being-displayed-on
Аноним 24/08/15 Пнд 10:53:02 #151 №534373 
Все равно хуйня какая-то получается. Хуй с ним, на баше напишу.
Аноним 24/08/15 Пнд 12:00:05 #152 №534417 
14404068058140.png
>>534345
Аноним 24/08/15 Пнд 12:25:29 #153 №534422 
>>534345
Тебя не учили не использовать system()? Или ты думаешь что идеально знаешь синтаксис sh? Сколько таких по весне на пробелах и кавычках оттаяло. subprocess.check_output(['/bin/zalupka'])
Аноним 24/08/15 Пнд 14:31:38 #154 №534468 
https://mail.python.org/pipermail/python-announce-list/2015-August/010865.html
https://github.com/micropython/micropython
>MicroPython is an implementation of a subset of Python 3.5 which is optimised for systems with minimal resources, including microcontrollers and embedded/IoT systems.

Харкнул в рот всем питон3-нинужна питухам и зеленым.
Аноним 24/08/15 Пнд 14:35:36 #155 №534469 
>>534468
питон на микроконтроллерах ненужен.
Аноним 24/08/15 Пнд 15:50:16 #156 №534513 
>>534417
Пиздец, ты хоть попытайся что-нибудь сложнее хеловорда.
>>534422
Попытка админить на пистоне это хуёвая попытка.
Аноним 24/08/15 Пнд 15:52:44 #157 №534514 
>>534513
> Попытка админить на пистоне это хуёвая попытка.
Вообще у всех этих облачных сервисов и суперкомпьютеров скрипты управления на питоне.
Аноним 24/08/15 Пнд 18:19:40 #158 №534572 
>>534514
Кто все эти облачные сервисы и суперкомпьютеры?
Аноним 24/08/15 Пнд 18:55:40 #159 №534585 
>>534572
гугл, амазон.
Аноним 24/08/15 Пнд 20:00:29 #160 №534598 
>>534513
>Попытка админить на пистоне это хуёвая попытка.
У вас Ansible
Аноним 24/08/15 Пнд 20:08:37 #161 №534601 
>>534513
>Попытка админить на пистоне это хуёвая попытка.
Тащемта не считая баша питон язык номер один для админа. Что для шиндового, что для юниксового. Раньше перл был.
Аноним 24/08/15 Пнд 20:46:40 #162 №534606 
14404384006890.jpg
14404384007111.jpg
Без меня атом был бы нитаким!
Аноним 24/08/15 Пнд 20:57:01 #163 №534612 
>>534606
Что за атом? Редактор чтоли текстовый?
Аноним 24/08/15 Пнд 21:03:53 #164 №534616 
>>534612
Да.
Аноним 24/08/15 Пнд 21:07:03 #165 №534619 
>>534616
А че в нем хорошего? Чем он лучше vim?
Аноним 24/08/15 Пнд 21:11:25 #166 №534623 
>>534619
Чем vim. привычные™ шорткаты, минимапа, линтеры
Аноним 24/08/15 Пнд 21:12:27 #167 №534625 
>>534619
Ничем, это такой сублайм 2.0. Лучше вима только неовим.
Аноним 24/08/15 Пнд 21:29:55 #168 №534630 
>>534606
Не таким уебишьным или еще более убишьным? Атом - наглядный пример уебанства жабоскрипта и ноды с вебкитом в частности.
Аноним 24/08/15 Пнд 21:42:14 #169 №534635 
>>534630
Да я тока плагин написал.
Аноним 24/08/15 Пнд 21:43:24 #170 №534636 
>>534630
Мне атом нравится, хорошо зделали.
Аноним 25/08/15 Втр 00:06:02 #171 №534694 
>>534636
Говноед и samefag
Аноним 25/08/15 Втр 00:35:34 #172 №534706 
>>534694
Пустослов.
sageАноним 25/08/15 Втр 00:41:23 #173 №534709 
Весомые аргументы ITT
Аноним 25/08/15 Втр 01:00:30 #174 №534724 
14404536300140.png
14404536300141.png
py http://rghost.ru/6QhT4VF7g
exe http://rghost.ru/77QnXQcFh
Аноним 25/08/15 Втр 11:59:01 #175 №534757 
Перепост из ньюфаг-треда.
Сап, котаны.
Хочу запилить ГТД систему с интегрированным миндмэпом и экселем. Хз почему никто еще не додумался до такой вещи. Дико угораю по гтд.
Сам ниразу не программист, первый раз зашел в раздел. В универе как бог решал задачки и делал лабы на бейсике. Есть по 2 часа свободного времени в будни и по 6 часов в выходные.
Нужно чтобы можно было работать с ноута и мобильного, поэтому скорее всего это должно быть что то типо сайта.
Что мне учить, чтобы максимально быстро, учитывая время освоения новой для меня технологии запилить мою йобу и начать с ней работать? И сколько это займет по времени?
Если это важно то на ноуте у меня стоит Линукс Минт, а смартфон андроид.

Добавлю, что после 2х дней курения программача и гугла решил, что это лучше сделать на пайтоне, ибо по отзывам самый простой язык. Уже читаю Марка Лутца.
Дадите ли каких-нибудь советов мудрых, как мою мечту быстрее воплотить в жизнь?
Аноним 25/08/15 Втр 12:25:51 #176 №534768 
Питоны, совершаю перекат с 2 на 3. Кто может что дельное посоветовать для статистики покрытия тестами на джанге? django-coverage порвался на третьем
Аноним 25/08/15 Втр 12:55:40 #177 №534778 
>>534724
>Что нового?
>Работает плохо!
Проиграл.

А чойта у тебя Version с заглавной буквы? Не по пепу, Гвидо не одобрит!

>>534757
pyqt/pyside/pygobject наверни с соответствующими конструкторами гуйца. Покроет 98% нужных функций.
>Хз почему никто еще не додумался до такой вещи.
Потому что на самом деле их никто не использует. Только саморазвиванцы вроде тебя.
Аноним 25/08/15 Втр 13:04:21 #178 №534782 
>>534768
TDD-петух в треде.
Аноним 25/08/15 Втр 14:13:17 #179 №534817 
>>534782
поди прочь, ленивое хуйло
Аноним 25/08/15 Втр 14:18:24 #180 №534818 
>>534817
У вас test coverage на 1% упал, надо срочно написать пару бесполезных тестов.
Аноним 25/08/15 Втр 14:28:41 #181 №534823 
>>534818
поссу тебе в рот, когда ты будешь перетаскивать проект на другой хостинг
Аноним 25/08/15 Втр 14:31:02 #182 №534824 
>>534823
Это каким нужно быть дном, чтобы на питоне написать код, который работает только на одной машине?
Аноним 25/08/15 Втр 14:38:58 #183 №534828 
>>534824
просто иди нахуй. Проект будет писаться несколькими людьми и тесты согласованы с заказчиком. Вернись к своему говнокоду под шконку
Аноним 25/08/15 Втр 15:52:07 #184 №534854 
посоветуйте какой-нибудь задачник или что-то подобное, а то тухло просто лутца читать
Аноним 25/08/15 Втр 16:47:08 #185 №534871 
>>534854
Майкл Доусон - Программируем на Python

В конце каждой главы есть упражнения. Ну, если у тебя еще пока novice level
Аноним 25/08/15 Втр 17:23:57 #186 №534892 
>>534854
чекио
Аноним 25/08/15 Втр 17:52:57 #187 №534900 
Посоны, чому у меня в PyCharm по правому клику на файл внутри пакаджа нет опции запустить как скрипт?
Есть только Run 'Unittests in XXX'
Аноним 25/08/15 Втр 19:24:58 #188 №534935 
>>534854
project euler, nado na github dobavit uje
Аноним 25/08/15 Втр 19:28:08 #189 №534938 
>>534935
Dobav', blyat. Davai, blyat, delai pull request. Vstal i sdelela blyat.
Аноним 25/08/15 Втр 19:50:05 #190 №534951 
Сап, коданы, есть одна XML-ка, она лежит в интернетах и я читаю ее построчно с помощью urllib,request. В ней прописано:
<?xml version="1.0" encoding="windows-1251"?>

Однако, когда я хочу свежесчитанную строку (если я ничего не путаю, .readline() тут возвращает байты) задекодить, он мне кидает:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 13-15: ordinal not in range(128)

Что сие может значить? Ни в какую кодировку не дает сконвертить эти байты.

Аноним 25/08/15 Втр 19:52:43 #191 №534953 
>>534938
Nu a khuli OP kak debil, skol'ko raz etot vopros vspival uje.
Аноним 25/08/15 Втр 20:01:01 #192 №534954 
>>534951
>can't encode
Ты там случаем не в консоль по шиндовсом эту строчку вывести пытаешься?
Аноним 25/08/15 Втр 20:11:44 #193 №534962 
>>534953
Manya, ti ponimaesh v chem syt' githuba?
>Build software better, together.

Idi dobavlyai ya skazal.
Аноним 25/08/15 Втр 20:39:16 #194 №534972 
>>534954
Какую строчку и зачем, по-вашему, я ввожу в консоль? Не понимаю вопроса. Я получил результат функции target.readline() и он выглядит как b'строка', то бишь в байтах, но перекодировать не дает вообще никуда
Аноним 25/08/15 Втр 21:19:09 #195 №535001 
Решил наконец освоить питон который третий. Из скриптовых отлично знаю руби, и достаточно хорошо перл который пятый, поэтому проблем с изучением быть не должно. Но все же, может быть есть что-то, что мне нужно знать перед изучением, учитывая предыдущий опыт?
Аноним 25/08/15 Втр 21:24:56 #196 №535005 
>>535001
Используй пробелы, а не табы. И не делай list comprehensionов в 100500 символов перлоебы такое любят В остальном обычная скриптота.
Аноним 25/08/15 Втр 21:42:57 #197 №535013 
>>534972
>ввожу
вывести
Что там в этой строке-то посомтри хотя бы. EncodeError вылезает при попытке вывода куда-то (или str() над юникодовой строкой, содержащей не-ascii символы во втором питоне). b''.encode('utf-8') попробуй.
Аноним 25/08/15 Втр 22:51:30 #198 №535036 
>>534778
>Проиграл. А чойта у тебя Version с заглавной буквы? Не по пепу, Гвидо не одобрит!

Реально, не могу сделать нормально, бьюсь уже месяц об табы в tkinter. А Version, что она есть, что нет, один хуй. Гвидо тоже пепы не слишком соблюдает, пруфы в коде IDLE.
Аноним 25/08/15 Втр 23:59:18 #199 №535054 
>>532421 (OP)
Господа, есть у кого переведенная dive into python&? Все 3 части желательно.
Аноним 26/08/15 Срд 01:11:08 #200 №535081 
>>535013
AttributeError: 'bytes' object has no attribute 'encode'
Аноним 26/08/15 Срд 01:17:40 #201 №535082 
>>533677
Xpath юзай.
Аноним 26/08/15 Срд 01:20:35 #202 №535086 
>>535054
Учи английский, рак.
Аноним 26/08/15 Срд 01:28:57 #203 №535089 
>>535081
>>535013
bytes содержит кодированные данные, отсюда и слово кодировка. Соответственно у него есть только decode в символы.

str содержит символы, о внутреннем представлении которых нам заботиться совсем ни к чему. У него только метод encode в байты.

В py2 bytes и str это одно и то же, ещё есть unicode, ещё исходники по умолчанию читаются как ascii, поэтому в нём легко можно прострелить себе колено.
Аноним 26/08/15 Срд 01:37:49 #204 №535094 
При попытке декодить байты в утф8:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 13: invalid continuation byte

При попытке декодить в вин-1251:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 13: invalid continuation byte
Аноним 26/08/15 Срд 01:44:10 #205 №535099 
14405426509070.jpg
>>535094
>декодить в вин-1251
>'utf-8' codec
Аноним 26/08/15 Срд 01:46:17 #206 №535101 
>>535099
Не то скопировал, там:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 13-15: ordinal not in range(128)
Аноним 26/08/15 Срд 01:47:05 #207 №535103 
14405428253530.jpg
>>535101
>декодить в вин-1251
>'ascii' codec
Аноним 26/08/15 Срд 01:51:35 #208 №535108 
14405430951060.jpg
>>535101
>декодить в вин-1251
>декодить
>UnicodeEncodeError
sageАноним 26/08/15 Срд 02:01:38 #209 №535110 
>>535101
Заебал короче, выкладывай полный трейсбек. С декодированием эта ошибка никак не связана.
Аноним 26/08/15 Срд 02:12:26 #210 №535117 
>>535110
Traceback (most recent call last):
File "parser.py", line 6, in <module>
print(target.readline().decode('windows-1251'))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 13-15: ordinal not in range(128)


Traceback (most recent call last):
File "parser.py", line 6, in <module>
print(target.readline().decode('windows-1251'))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 13-15: ordinal not in range(128)

Аноним 26/08/15 Срд 02:13:15 #211 №535118 
>>535117
Извиняюсь, вто второй трейсбек:

Traceback (most recent call last):
File "parser.py", line 6, in <module>
print(target.readline().decode('utf-8'))
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 13: invalid continuation byte
Аноним 26/08/15 Срд 02:17:38 #212 №535122 
>>535118
Плохие значит у тебя байты. Они не соответствуют кодировке utf-8.

Насколько помню в утф-8 байт может начинаться или с нуля или с 10. То есть 10xxxxxx. У тебя xCE, 11001110. Вот оно тебе и высрало ошибку.
Аноним 26/08/15 Срд 02:22:49 #213 №535124 
>>535122
А что по поводу первого трейсбека?
sageАноним 26/08/15 Срд 02:23:20 #214 №535125 
>>535117
У тебя ясно же спросили, ты, долбоебина, результат декодирования в консоль выводишь? Ты print в своем коде видишь? Ты понимаешь что у тебя терминал вывод кириллицы не поддерживает?
>>535118
windows-1251 было правильно.
Аноним 26/08/15 Срд 02:25:49 #215 №535127 
>>535124
Попробуй сделать
x = target.readline()
print(type(x))
print(x)
Аноним 26/08/15 Срд 02:32:33 #216 №535129 
>>535125
А ты даже не посмотришь, что ошибка не в выводе а в декодировании, сразу называешь меня долбоебиной, рашкопрограммер, хули. Да еще сагаешь тред, который ни в чем не виноват. В консоль выводит строку вида b'строка' с недекодированной кириллицей если убрать метод, который декодирует. С методом вышеуказанный трейсбек получаю.
Аноним 26/08/15 Срд 02:41:19 #217 №535132 
>>> 'лол'.encode('windows-1251')
b'\xeb\xee\xeb'
>>> 'лол'.encode('windows-1251').decode('windows-1251')
'лол'
sageАноним 26/08/15 Срд 02:46:03 #218 №535133 
>>535129
>А ты даже не посмотришь, что ошибка не в выводе а в декодировании, сразу называешь меня долбоебиной, рашкопрограммер, хули.
>в декодировании
Тебе, мудаку, уже два раза указали что ошибка называется UnicodeEncodeError. Повторяй за мной: Unicode. ENCODE. Error. Ошибка возникает потому что print(x) делает sys.stdout.write(str(x).encode(sys.stdout.encoding)), а sys.stdout.encoding == 'ascii', который кириллицу не кодирует.
Аноним 26/08/15 Срд 02:49:27 #219 №535134 
>>535133
Ну вот сразу бы так. Спасибо.
Аноним 26/08/15 Срд 02:51:49 #220 №535135 
Аж интересно что за консоль такая.
Аноним 26/08/15 Срд 02:56:19 #221 №535137 
>>535135
cmd.exe жи. Спермопроблемы-спермоблемочки.
Аноним 26/08/15 Срд 02:58:56 #222 №535138 
>>535137
Арч у меня.
Аноним 26/08/15 Срд 03:01:40 #223 №535140 
>>535137
Это ты скорее всего пердон как-то не так установил. Ну в любом случае можно попробовать sys.setdefaultencoding('windows-1251') или где-то в конфигах питона это найти. Не верится что спермоконсоль не может в кириллицу.
Аноним 26/08/15 Срд 03:04:18 #224 №535141 
>>535140
>Арч у меня
Аноним 26/08/15 Срд 03:09:33 #225 №535142 
>>535138
Проверь что в /etc/locale.gen раскомментирована en_US.UTF-8, выполни sudo locale-gen, в .bashrc добавь export LANG=en_US.utf8 и перезапусти терминал.
Аноним 26/08/15 Срд 03:13:03 #226 №535143 
>>535142
echo $LANG
en_US.UTF-8
Аноним 26/08/15 Срд 03:14:48 #227 №535144 
>>535143
Ну тогда хуй его знает, пришло время переустановить арч наверное.
Аноним 26/08/15 Срд 03:21:45 #228 №535145 
>>535144
Упс. Действительно, не была раскомментирована локаль, которая установлена в LANG. Прошу прощения за быдлопроблемы.
Аноним 26/08/15 Срд 09:07:44 #229 №535189 
И чем етот арч всем нравится?
Аноним 26/08/15 Срд 10:00:39 #230 №535194 
>>535189
Ничего лишнего. В процессе установки устанавливаешь только что тебе действительно нужно.

Но на самом деле это все на любителя.
Аноним 26/08/15 Срд 10:06:48 #231 №535195 
>>534900
бампую вопрос
Аноним 26/08/15 Срд 11:18:16 #232 №535218 
Как узнать, что объект итерабл, но не строка? Именно list-like iterable, как это назвали на со.
hasattr("asdf", '__iter__') во втором возвращает False, а вот в третьем - True.
Аноним 26/08/15 Срд 11:57:12 #233 №535234 
>>535218
hasattr(o, '__iter__') and not isinstance(o, str)
kek.
Аноним 26/08/15 Срд 12:12:31 #234 №535242 
Сап, почаны
По celery (желательно в связке с rabbitmq/redis ) гайды или видеоуроки можете посоветовать?
Аноним 26/08/15 Срд 12:28:39 #235 №535246 
>>535234
Лол, ну не, должен же быть покрасивше способ.
Аноним 26/08/15 Срд 12:34:41 #236 №535251 
>>535246
Как ты себе это представляешь? В итераторах всё движется к унификации и неотличимости. А у тебя какое-то "хочу то не знаю что".
Аноним 26/08/15 Срд 12:39:42 #237 №535253 
>>535218
>>535234
Прально ващета так:
isinstance(yoba, collections.Iterable)
Ну, и >>535251 всё разложил, ёпту.
Аноним 26/08/15 Срд 13:11:08 #238 №535266 
>>535251
Ну почему же "хочу то не знаю что". Строка это, так сказать, не настоящий список. Итерировать по списку объектов и итеровать по буковкам строки - совсем разные вещи же.
Например, если мне в функцию передали один объект, я с ним что-то делаю. Если передали список объектов, я с каждым из них что-то делаю. А строка тут совсем не к месту получается, потому что с каждой отдельной буквой мне нафиг не надо ничего делать, я хочу либо над строкой, либо над списком строк. И, думаю, редко попадается необходимость производить одну и ту же операцию как над элементами списка, так и над каждой буквой строки.

В общем, всё понятно, спасибо за ответы.
Аноним 26/08/15 Срд 13:21:53 #239 №535269 
>>535266
А если ты итерируешь генератор, выплёвывающий попеременно одиночные символы, списки, числа и None? Динамическое петушение типизация, сэр.
Аноним 26/08/15 Срд 13:24:51 #240 №535271 
>>535266
>Строка это, так сказать, не настоящий список.
Строка это низменяемый список символов.
>Итерировать по списку объектов и итеровать по буковкам строки - совсем разные вещи же.
Нет.
>Например, если мне в функцию передали один объект, я с ним что-то делаю. Если передали список объектов, я с каждым из них что-то делаю.
Хуйней какой-то занимаешься. Сделай две разные функции.
Аноним 26/08/15 Срд 14:52:24 #241 №535321 
>>535189
в арчеговне питон3 по умолчанию. приходится делать rm /usr/bin/python && ln /usr/bin/python2 /usr/bin/python
Аноним 26/08/15 Срд 14:56:28 #242 №535325 
>>535321
>ТРОЙКА НИНУЖНА
Мамин траль не осилил man ln и ключик -f. Вся суть дауна-ретрограда.
Аноним 26/08/15 Срд 16:25:32 #243 №535338 
>>535269
>>535271
Хм, пожалуй, вы правы.
Не, две разные фукнции глупо городить, если разница там в две-три строки, не считая определения итерабла). Так-то я и ('string',) мог при вызове функции писать и вообще не париться, но не хотелось это уродство в кодпихать.

Ещё вот сегодня напоролся:
def func((звёздочка)args, foo=None):
Выдаёт синтакс эррор во втором (2.7.10), а в третьем всё ок. Это нормально? Никогда раньше, почему-то, не сталкивался с этим.
Аноним 26/08/15 Срд 16:31:08 #244 №535340 
>>535338
Нормально. Во втором args, kargs должны быть в конце списка аргументов.
Аноним 26/08/15 Срд 16:32:19 #245 №535341 
>>535338
Да съеби ты уже со своим вторым.
Аноним 26/08/15 Срд 16:33:42 #246 №535342 
>>535341
Въеби ты. 3-й игрушка для школьников. Энтерпрайз юзает 2-й
Аноним 26/08/15 Срд 16:35:18 #247 №535343 
>>535342
Я и есть энтерпрайз, парень, я и есть энтерпрайз!
и я использую третий на работе
Аноним 26/08/15 Срд 16:59:59 #248 №535350 
>>535342
Джва точка шесть, джва точка шесть! Чтобы больше ынтырпрайза. В 2015.

Л Е Г А С И
Е
Г
А
С
И
Аноним 26/08/15 Срд 17:00:50 #249 №535351 
>>535341
Лол, так я и использую третий (и форшу у себя на работе). Решил интереса ради запустить скрипт во втором, а там такой вот сюрприз.
Аноним 27/08/15 Чтв 08:25:32 #250 №535383 
А какие профиты от переката на версию 3? Кроме всяких незначительных типа кончающийся поддержки у 2.
Аноним 27/08/15 Чтв 10:08:44 #251 №535417 
>>535351
Запусти ещё на первом, так… чисто ради интереса.
>>535383
Новые фичи, конечно же.
Аноним 27/08/15 Чтв 10:37:05 #252 №535421 
>>535383
>кончающийся поддержки у 2
>незначительных
ШинХП еще небось используешь, да?
Аноним 27/08/15 Чтв 13:35:52 #253 №535456 
>>535383
Откуда вы лезете блядь? Меня даже на собеседовании это спрашивали. Во всех языках народ с радостью перекатывается на новые версии, только в питонах какие-то мудоёбы собрались.
Аноним 27/08/15 Чтв 13:46:51 #254 №535460 
Twisted перелез на Питон 3 скоро всем пизда настанет, торнадодети и aioдебилы, ховайтесь.
Аноним 27/08/15 Чтв 13:56:53 #255 №535464 
Пруф - https://twitter.com/twistedmatrix/status/628473916730683392
Аноним 27/08/15 Чтв 14:00:04 #256 №535465 
14406732048500.jpg
АНОН. БЛЯТЬ, КАК СУКА ОБРАТНО ИЗ СПИСКА ПРИСВОИТЬ ЗНАЧЕНИЯ ЭЛЕМЕНТОВ КАК ИМЕНА ФАЙЛАМ!!?!?
Аноним 27/08/15 Чтв 14:01:05 #257 №535466 
>>535465
Что?
Аноним 27/08/15 Чтв 14:19:14 #258 №535472 
>>535465
with open(your_list[0], 'w') as f: ?
Аноним 27/08/15 Чтв 14:23:40 #259 №535474 
>>535460
А мне итак норм. Говно с колбэками нинужно. yield from наше всио.
aioдебил
Аноним 27/08/15 Чтв 14:39:18 #260 №535479 
>>535474
Типичный aioдебил, в Twisted был аналог твоего
@coroutine и yield from на генераторах (@inlineCallbacks и yield), начиная с релиза питона 2.5, когда даже жаваскриптодети о подобном не задумывались.
Аноним 27/08/15 Чтв 14:44:34 #261 №535483 
>>535479
Запоздал твой твистед с яйцами на базар. Нехуй было на двойке столько лет жрать говны.
Аноним 27/08/15 Чтв 14:47:35 #262 №535486 
>>535483
Под твистед реализовано дохуя протоколов всяких, например и у него api годный и проработанный.
Аноним 27/08/15 Чтв 14:56:08 #263 №535495 
>>535483
Нет, это asyncio проебан по дизайну. Это ты поймёшь, когда тебе придётся реализовывать сетевой протокол чуть сложнее echo (вроде Zookeeper'ского например или Thrift с кастомными командами контроля соединения) на чистом asyncio без нормальных деферредов.
Аноним 27/08/15 Чтв 14:59:54 #264 №535499 
>>535472
няшка, ну не в ручную же
Аноним 27/08/15 Чтв 15:02:48 #265 №535502 
>>535499
Ну так в лупе запусти. Или объясни нормально, чего ты хочешь добиться-то.
Аноним 27/08/15 Чтв 15:03:16 #266 №535503 
>>535495
Ну я тот самый поехавший запиливающий p2p игру. Хуй знает, сейчас больше голова болит с проектированием самого протокола. Стандартные клиент-сервер написались за 5 минут, тривиально до безобразия. Что такое деферред? Есть тут фьючеры и таски, оно?
Аноним 27/08/15 Чтв 15:14:05 #267 №535511 
>>535502
я мечтаю своими клешнями собрать скрипт который будет заходить в папку и закидывать в список имена файлов:
import os
directory = '/home/workmachine/source'
list_of_files = os.listdir(directory)
а потом по циклу заменять именя файлов на порядковые имена от 1....n, я уже весь лор заебал, у меня либо так либо через софтину бездуховную, а я не хочу через софтину, я хочу через пайтон, что бы хоть как то его подтягивать пока джаваскриптебучий учу для работы.
вот дали цикл
i = 0
for name in list_of_files:
print(template.format(name, i))
i += 1
как собать имена я нашёл, теперь что в этом тимплейте записать, что бы он зашуршал, я всё обязательно выучу, додрочу доудсона. схаваю Лутца, но щас реально нет времени, нужно просто что бы заработало и я воспарю
Аноним 27/08/15 Чтв 15:16:46 #268 №535514 
>>535511
>заменять именя файлов
Ты хотел сказать переименовывать файлы?
Аноним 27/08/15 Чтв 15:21:41 #269 №535519 
>>535511
[code]
import os
os.chdir('/home/workmachine/source')
l = os.listdir('.')
l.sort()
for i, f in enumerate(l):
os.rename(f, '%d.jpg' % i)
[/code]
Аноним 27/08/15 Чтв 15:22:49 #270 №535520 
>>535514
В голос, блядь.
Аноним 27/08/15 Чтв 15:26:34 #271 №535521 
>>535519
Если в директории есть 3 файла: 1.jpg, 15.jpg и 2.jpg, то всё сломается, например.
Аноним 27/08/15 Чтв 15:30:12 #272 №535522 
>>535514
я сказал "заменять имена файлов значением каунтера +".jpg""
Аноним 27/08/15 Чтв 15:31:05 #273 №535523 
>>535521
>>535521
тогда нахя такое надо, вяское бывает, или ручками менять?
Аноним 27/08/15 Чтв 15:33:48 #274 №535524 
>>535519

os.rename(f, '%d.jpg' % i)
^
IndentationError: expected an indented block
чё он выябывается?
Аноним 27/08/15 Чтв 15:35:29 #275 №535525 
>>535524
Отступ перед os.rename добавь.
Аноним 27/08/15 Чтв 15:41:34 #276 №535527 
>>535522
Задача уровня /bat/: ren . *.jpg
Аноним 27/08/15 Чтв 15:47:00 #277 №535529 
>>535524
Пиздец, как ты программируешь не зная англицкого и не умея понимать ошибки которые показывает тебе компилятор?
Аноним 27/08/15 Чтв 16:14:13 #278 №535543 
>>535529
жизнь заставляет>>535525
>>535519
добра
Аноним 27/08/15 Чтв 16:18:41 #279 №535551 
>>535524
>>535529
lёl
Аноним 27/08/15 Чтв 16:24:34 #280 №535554 
>>535529
Интерпретатор жи.
sageАноним 27/08/15 Чтв 17:48:38 #281 №535585 
>>535495
>без нормальных деферредов
Пиздец, понапридумывали баззвордов, "пок-пок деферреды", "ко-ко горутины и каналы", и выебываются ими как киллерфичами. Говори "future" как нормальный человек, уеба.
>вроде Zookeeper'ского например
Я бы сказал что его реализовать как два пальца обоссать, но к сожалению я не нашел его описания, и даже ссылка на API Docs на сайте апаче выдает 404. Реверс-инженерить так-то действительно будет сложно, да.
Аноним 27/08/15 Чтв 17:55:52 #282 №535587 
>>535479
Посколько asycnio уже часть языка (async/await), то нет уже нужды в твистедах. Торнадо поддерживает asyncio-loop и это очень правильный шаг.
Аноним 27/08/15 Чтв 18:47:33 #283 №535616 
Привет! Вас беспокоит хекка 26 лвл, который нашел для себя новое замечательное увлечение - программирование. Сейчас полностью прошел курс питона на кодакадемии, решил, что хочу пилить сайтики в качестве хобби, ибо для чего-то другого я наверно туповат. Посоветуйте, пожалуйста, что почитать/посмотреть для питона и джанго+ там мб еще что-то нужно?
Аноним 27/08/15 Чтв 19:57:19 #284 №535649 
>>535616
Какой же ты глупый, сайтики думаешь так просто писать?
Аноним 27/08/15 Чтв 19:59:25 #285 №535650 
>>535616
greenfeld_d_roy_a_two_scoops_of_django_best_pra.pdf
годная книжка и по свежей версии. но она предполагает, что ты хотя бы туториал прочитал.
Аноним 27/08/15 Чтв 20:33:58 #286 №535667 
>>535649
Я такого не утверждал
>>535650
Спасибо!
P2P assburger 28/08/15 Птн 01:03:16 #287 №535768 
Посоны, на чём сделать announcement list? Надо где-то хранить и обновлять список ойпишнегов общедоступно. Я так понял magnet links всё равно содержат урл трекера. Можт есть где какая срамота в духе narod.ru куда можно невозбранно закатать хуйни в шифрованом виде?
Аноним 28/08/15 Птн 01:17:44 #288 №535773 
>>535768
Не понял о чём ты, но на гитхаб же можно.
Аноним 28/08/15 Птн 01:18:38 #289 №535774 
>>535773
bitbucket > gitshit
Аноним 28/08/15 Птн 01:19:59 #290 №535775 
>>535774
У тебя смузи простаивает. И яйца через скинни видно.
P2P assburger 28/08/15 Птн 01:23:07 #291 №535777 
>>535773
А гитхаб не зобанит? Пиров может быть дохуя. Каждый из них анонсит себя (пишет свой ойпи в список), многие из них читают список (остальные из старых кешей тянут, и обновляют прямо из p2p сети если хоть к кому-нибудь приконнектились).
Аноним 28/08/15 Птн 01:31:21 #292 №535780 
>>535775
вапервых hg лучше чем git
ва втарых на битбакете бисплатные репы пираватные
Аноним 28/08/15 Птн 01:35:23 #293 №535782 
>>535780
Борода в смузи упала.
Аноним 28/08/15 Птн 01:39:28 #294 №535784 
>>535777
Если есть обмен пирами, то можно не такую уж большую базу делать и не так часто обновлять.
Аноним 28/08/15 Птн 01:41:42 #295 №535785 
>>535768
> Я так понял magnet links всё равно содержат урл трекера
Даже если и содержат, это fallback для более быстрого получения пиров. А вообще, вкратце, в magnet содержится инфохэш (хэш информации о хуйне, которую ты хочешь скачать). Твой клиент входит в DHT-сеть и спрашивает об узлах, чьи ID наиболее близки к этому хэшу. У полученных узлов он опять спрашивает. Таким образом он добирается до узлов, чей ID близок к инфохэшу. Эти узлы хранят адреса пиров, у которых есть нужный тебе контент.

Чтобы это работало, тебе, конечно, нужен список узлов для бутстрапа (входа в сеть). Зашивай в клиент при билде список из самых долгоживущих известных тебе на тот момент нод. Это сразу решает большинство проблем. Но для слоупоков, которые поставят клиент через год после скачивания, можно поднять fallback-ноды на известном IP (как в BitTorrent есть router.bittorrent.com на крайний случай), или даже автоматически выгружаемый свежий список нод на гитхабе или где-то еще. Запросов много не будет.

А можешь просто DHT битторрента использовать. Там не так уж много кода, для Python готовые реализации есть.
Аноним 28/08/15 Птн 02:39:06 #296 №535793 
14407187468450.jpg
антоша, как вызвать интерпретер с контекстом моего скрипта после того, как он завершит своё кунфу? ну чтоб потыкать в переменные и просто мутить дальше уличную магию.
Аноним 28/08/15 Птн 02:45:34 #297 №535794 
>>535793
python3 -i
Аноним 28/08/15 Птн 03:44:01 #298 №535798 
>>535793
import pdb
pdb.set_trace()
Аноним 28/08/15 Птн 07:20:04 #299 №535809 
>>534173
а как верно обрабатывать?
через try или if match.groups() ?
ну, чтобы тру
Аноним 28/08/15 Птн 08:14:06 #300 №535812 
>>535809
if re.match():
.groups() у None не будет.
Аноним 28/08/15 Птн 12:19:34 #301 №535868 
сап собаки ебаные, а может кто фронт фреймворк посоветовать, под жангу ? Шоб без ебли и для тупиц и работодателям нужон
Аноним 28/08/15 Птн 12:24:17 #302 №535869 
>>535868
Очевидный бутстрап. Теперь съеби в /web/, обезьяна.
Аноним 28/08/15 Птн 12:24:33 #303 №535872 
>>535868
ангуляр
Аноним 28/08/15 Птн 12:36:57 #304 №535878 
>>535872
бляя, ентого я и боялся, нахуй там логика в html ?
Аноним 28/08/15 Птн 12:37:22 #305 №535879 
>>535869
ты почему вафля то такая ?
Аноним 28/08/15 Птн 12:41:12 #306 №535880 
Анон подскажи почему так?


temp = '32'
if temp > 85:
print "Hot"
elif temp > 62:
print "Comfortable"
else:
print "Cold"
Почему выполняеться первое условие?
Аноним 28/08/15 Птн 12:43:37 #307 №535881 
>>535879
Прости, не понимаю обезьяний.
Аноним 28/08/15 Птн 13:18:13 #308 №535896 
>>535880
https://docs.python.org/2/reference/expressions.html#notin
Аноним 28/08/15 Птн 13:20:58 #309 №535900 
>>535880
Потому что ты используешь питон 2. http://ideone.com/ZD9Z5d
Аноним 28/08/15 Птн 13:22:51 #310 №535902 
Постсоны, в чём отличие между 2 и 3?
Аноним 28/08/15 Птн 13:43:44 #311 №535913 
>>535880
int(temp)
Аноним 28/08/15 Птн 14:05:19 #312 №535930 
>>535902
Во втором этот код сегфолтится, а в третьем - нет.
http://ideone.com/ND2YaF

Но лично мне больше нравится второй, в нём поменьше хипстеров и прочего говна.

Аноним 28/08/15 Птн 14:11:41 #313 №535936 
>>535930
Обьясни пожалуйста что значит "сегфолтится".
Аноним 28/08/15 Птн 14:15:39 #314 №535940 
>>532617
>pygame.org
Есть же panda3d. Он относительно жив. Правда, в команде разработчиков остался всего один человек.
Аноним 28/08/15 Птн 14:38:08 #315 №535952 
>>535936
char p;
memset(p, sizeof(char), 0);
p
= 8;

@
РАСПИДОРАСИЛО СУКА МЯСО КРОВЬ
Аноним 28/08/15 Птн 14:57:31 #316 №535962 
>>535902
Второй это промышленный стандарт, который используют чтобы делать работую.
Третий - игрушка для студентов.
Аноним 28/08/15 Птн 15:22:19 #317 №535974 
>>535930
>в нём поменьше хипстеров
То чувство, когда хипстор - это ты.
Аноним 28/08/15 Птн 15:24:40 #318 №535976 
>>535952
Хорошо. А теперь обьясни мне в каком месте этого кода (http://ideone.com/ND2YaF) это происходит.
Аноним 28/08/15 Птн 15:25:44 #319 №535977 
>>535962
Л Е Г А С И
Е
Г
А
С
И
Аноним 28/08/15 Птн 15:25:57 #320 №535978 
>>535976
strace
Аноним 28/08/15 Птн 15:27:26 #321 №535980 
14407648465970.gif
>>535962
COBOL это промышленный стандарт, который используют чтобы делать работую.
Питон - игрушка для студентов.
Аноним 28/08/15 Птн 15:29:28 #322 №535982 
14407649689510.gif
>>535980
FORTRAN это промышленный стандарт, который используют чтобы делать работую.
COBOL - игрушка для студентов.
Аноним 28/08/15 Птн 15:31:58 #323 №535985 
>>535936
Падает с ошибкой segmentation fault.
>>535930
>мне больше нравится второй, в нём поменьше хипстеров
Может ты еще и использовал питон до того, как он стал моден?
>>535902
В том что второй устарел, а третий нет. Не утихают кукареки про второй по той же причине, что и про сисвинит - чтобы обновиться нужно немного поработать, а программисты и сисадмины скорее в дворники перейдут чем сделают то, за что им деньги платят.
Аноним 28/08/15 Птн 15:32:07 #324 №535986 
>>535978
segfault.py(14): while True:
segfault.py(15): a += 1

Аноним 28/08/15 Птн 15:34:44 #325 №535989 
14407652847490.jpg
>>535982
AUTOCODE это промышленный стандарт, который используют чтобы делать работую.
FORTRAN - игрушка для студентов.
Аноним 28/08/15 Птн 15:35:36 #326 №535991 
Если бы во втором не было ебатни с юникодом до сих пор бы сидел.
Аноним 28/08/15 Птн 15:35:53 #327 №535992 
>>535976
Вообще нахрена ты делаешь sleep в деструкторе?
Аноним 28/08/15 Птн 15:41:14 #328 №535994 
14407656748170.jpg
>>535989
КАМЕНЬ это промышленный стандарт, который используют чтобы делать работую.
Программирование - игрушка для студентов.
Аноним 28/08/15 Птн 15:44:30 #329 №535997 
>>535991
Да, я бы тоже сидел на втором если бы он абсолютно ничем не отличался от третьего. Впрочем был бы тогда вообще третий?
Аноним 28/08/15 Птн 16:00:27 #330 №536003 
>>535940
Я ищу 2д, 3д мне не нужен.
Аноним 28/08/15 Птн 16:01:06 #331 №536004 
...
for n in x:
if n not in out:
out.append(n)
Сила суперкоровы!
Аноним 28/08/15 Птн 16:03:49 #332 №536005 
>>536003
cocos

>>535994
Идите нахуй. Каждый язык выполняет свою задачу.
Аноним 28/08/15 Птн 16:11:27 #333 №536006 
>>535976
У меня отработало без ошибок. И в двойке и в тройке.
Аноним 28/08/15 Птн 16:14:30 #334 №536007 
>>536006
У меня тоже интерпретатор ошибок не показывал. Но как видишь не все так просто. Запусти скрипт с аргументами -mtrace --trace
Аноним 28/08/15 Птн 16:33:50 #335 №536010 
https://www.jetbrains.com/pycharm-educational/

Эй, жуки, сука. Частично умею в С/С++ studying короче, чё-то там сука шпарю в кодинге немного. Пайтон учил давно, всё нахуй забыл. Подскажите, такая вот шняга (штука (вещь)) подойдёт, чтобы освежить знания и перейти позже к книгам? Или лучше сразу с книг, раз у меня есть немного опыта? Скачал 300 мб учебников, сука, люблю пайтон.
Аноним 28/08/15 Птн 16:37:45 #336 №536015 
>>536010
Достаточно будет пробежаться по туторилу с питон.орг, а потом по документации.
Аноним 28/08/15 Птн 16:51:15 #337 №536022 
Как создать виртуальное окружение в 3 пистоне?
Аноним 28/08/15 Птн 16:54:28 #338 №536023 
>>536022
https://docs.python.org/3/library/venv.html
Аноним 28/08/15 Птн 16:57:48 #339 №536024 
>>536015
Ладно, раз говоришь, что так изи, то я всё-таки попробуй там за полчаса-час пройти эту штуку по ссылочке, а потом сразу книги-книжечки-книженции оххх как я люблю качать гайды туториалы книжечки читаю кончаю радуюсь пайтон для победы!!!

Peace брателла \/ Спасибо за помощь добра удачи чтобы код писался одними табами мизинчиком клацнул и всё заехало! :3
Аноним 28/08/15 Птн 16:58:55 #340 №536026 
>>536024
Нахуй иди, даун-аутист.
Аноним 28/08/15 Птн 17:00:19 #341 №536028 
>>536023
Да заглядывал уже
pyvenv myenv
bash: pyvenv: command not found

python3 -m venv myenv
Error: Command '['/home/mvbrn/myenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1

ЧЯДНТ?
Аноним 28/08/15 Птн 17:13:38 #342 №536035 
>>536003
То, что он называется 3д, не значит, что он не умеет рисовать 2д. Ну да, текстурированные плейны, как в Юнити. И чо?
Аноним 28/08/15 Птн 17:19:56 #343 №536039 
>>536022
На хабре статья была, можно вместо виртуаленв использовать pip install xxxx -t .pip
Сам так делаю. Плюшек чуть поменьше (нет freeze и прямого запуска из bin), но работает, без всяких activate.
Аноним 28/08/15 Птн 17:21:55 #344 №536041 
>>536039
>нет прямого запуска из bin
Добавь в PATH, епта. Будет прямой запуск хоть откуда. Фриз нахуй не нужен.
Аноним 28/08/15 Птн 17:22:36 #345 №536042 
>>536039
Можно сделать контейнер в docker и ставить всё в глобальный неймспейс прям
Аноним 28/08/15 Птн 17:43:01 #346 №536057 
14407729819050.jpg
>>536042
Можно использовать vagrant.
Аноним 28/08/15 Птн 18:47:58 #347 №536097 
>>536028
>returned non-zero exit status 1
http://askubuntu.com/questions/488529/pyvenv-3-4-error-returned-non-zero-exit-status-1
Первая же ссылка в гугле.
Аноним 28/08/15 Птн 18:55:07 #348 №536101 
>>535992
sleep для того, чтобы подольше отпустить GIL.
Суть такая в http://ideone.com/ND2YaF
1) Завершается скрипт, вызывается Py_Finalize()
2) Py_Finalize вызывает threading._shutdown
3) _shutdown join()-ит все не-daemon треды. Очевидно, наш тред daemon, поэтому его мы не ждём.
4) В Py_Finalize вызывается Py_ClearInterpreterState который для каждого треда уменьшает refcnt у его текущего фрейма, фрейм деаллоцируется, в свою очередь он дропает все ref-ы на своё барахло - locals-ы в том числе. sleeper - в локалсах и у него вызывается tp_dealloc, вызывается наш питонячий код в полу-разрушенном интерпретаторе, происходит sleep. Как известно, любой блокирующий код в питоне оборачивается в отпускание GIL Py_BEGIN_ALLOW_THREADS // release gil
fwrite(f, data); // may block for long time
Py_END_ALLOW_THREADS //acquire gil
Значит, когда в деструкторе вызывается time.sleep, отпускается gil, в это время daemon тред, который всё время ждал gil вдруг оживает и начинает работать с полу-разрушенным фреймом.
Происходит LOAD_FAST, который пытается достать из локалсов переменную a, но в это время слот уже NULL, тред пытается зарейзить эксепшн, и вылетает в код, который делает if(tstate->frame->exc-что-то-там) // ceval.c
tstate->frame в этот момент уже NULL, сегфолт.

Проблема в отпускании gil в деструкторе. Это может быть не только sleep, а close(), например, у fileobject. Тогда происходит лотерея - хватит ли треду времени, чтобы засегфолтиться или нет.

Эта хрень ещё противна тем, что всё зависит от того, на каком опкоде проснётся разрушенный тред, иногда оно говорит glibc: corrupter linked list в соврешенно другом месте.

В python3 добавили флажок _Py_Finalizing, который выставляется, когда интерпретатор начинает выходить и если тред захватывает gil и видит, что флажок выставлен, он просто выходит.
Аноним 28/08/15 Птн 19:01:56 #349 №536103 
Аноны, помогите исправить ошибку.
http://pastebin.com/Rxncj5rR
Invalid syntax на 224 строчке
Пишу на 3ке
Аноним 28/08/15 Птн 19:08:49 #350 №536104 
>>536101
Байтослесарь пожаловал в тред.
Аноним 28/08/15 Птн 19:11:43 #351 №536105 
>>536103
Вот ошибка
http://ideone.com/xy1Pi2
Аноним 28/08/15 Птн 19:15:28 #352 №536106 
>>536103
Закрывающей скобки на 223 строке не хватает.
Аноним 28/08/15 Птн 19:20:27 #353 №536111 
Спасибо
Аноним 28/08/15 Птн 19:21:39 #354 №536112 
>>536101
Откуда ты всё это знаешь? Что почитать чтобы стать таким же байтослесарем?
Аноним 28/08/15 Птн 20:27:39 #355 №536140 
>>536112
Скачай исходники питона, скомпилируй и вставляй printf, чтобы понять что когда вызывается. У меня просто была задача понять почему приложение иногда падает.
Аноним 28/08/15 Птн 20:29:47 #356 №536142 
>>536140
Ебать ты умный, я хочу от тебя детей.
Аноним 28/08/15 Птн 20:33:02 #357 №536143 
>>536140
Ну и вывод отсюда, что в двойке нельзя использовать daemon треды. Вдруг где-то окажется объект, который в деструкторе отпускает GIL.
https://joeshaw.org/python-daemon-threads-considered-harmful/
Аноним 28/08/15 Птн 20:53:22 #358 №536154 
>>534337
ми нет
Аноним 28/08/15 Птн 21:02:11 #359 №536159 
>>536140
printf?
дебаггер для чего придумали? strace и прочие тулзы?
Аноним 28/08/15 Птн 21:03:04 #360 №536160 
>>536159
Отладочная печать - вполне легитимный способ дебага и не только.
Аноним 28/08/15 Птн 22:06:49 #361 №536179 
>>536159
Дебаггер нужен когда ты знаешь какое именно место дебагать, а когда тебе нужно понять в какую ветку заходит исполнение, быстрее натыкать принты чем ставить брейкпоинт а потом много раз жать n n n n
Наверное, с gui-шным отладчиком это как-то веселее, но я не осилил.
Аноним 28/08/15 Птн 22:28:50 #362 №536192 
>>536101
так нахрена ты делаешь sleep в деструкторе?
Аноним 28/08/15 Птн 22:30:49 #363 №536193 
>>536179
долго компилировал?
Аноним 28/08/15 Птн 22:33:02 #364 №536195 
>>536192
Я вот тоже непонимаю.
Он бы ещё на модуль signal или atexit повесил какие-нить долгие действия - тоже бы проблемы были. Но это описано в докуменации.
Аноним 28/08/15 Птн 22:50:33 #365 №536200 
>>536192
>>536195
Прочитать первое предложение никак?
>sleep для того, чтобы подольше отпустить GIL.
Отпускают GIL дохуя какие операции. Например, закрытие файлов, особенно сокетов.
>какие-нить долгие действия
Вот уж в многопоточном окружении продолжительность действия - не аргумент. "Авось пронесет" не прокатит, если что-то не атомарное, то когда-нибудь гонка там возникнет.
Аноним 29/08/15 Суб 01:17:53 #366 №536242 
>>532421 (OP)
Только начал учить стандартный питон. Смогу ли я фрилансом на апворке например получать зха месяц хотя бы тыщ 20 деревянных? Или мне ещё придется выучивать всякие джанго и прочее?
Аноним 29/08/15 Суб 01:32:29 #367 №536244 
>>536242
Голый питон чаще всего используют только админы. Если можешь в линуксы - запросто. Иначе хуячь джангу и еще 100500 фреймворков.
Аноним 29/08/15 Суб 01:33:34 #368 №536245 
>>536242
Не сможешь. Придётся и дохера.
Аноним 29/08/15 Суб 01:45:10 #369 №536246 
>>536242
фриланс на 90% - это вебня, поэтому придется ебать практически все фреймворки. есть небольшая ниша, когда клиенту похуй на чем, лишь бы работало (etl\скрейперы всякие), но для этого надо уже иметь какую-то репутацию.
Аноним 29/08/15 Суб 03:01:09 #370 №536253 
>>536041
Хм. А как вариант.
PATH="$PATH:./pip/.../bin".
Аноним 29/08/15 Суб 03:23:23 #371 №536256 
>>536101
А на кой хуй тебе вообще задумываться о GIL? Насколько я понял демон здесь это такой фоновый поток, который можно убить в любой момент. Может тебе нужен не демон?

А ещё после таких плясок у тебя потом обязательно случится PYPY.
Аноним 29/08/15 Суб 05:04:03 #372 №536261 
>>535880
все дохуя умные а ответа на почему не прозвучало.
ord('3')==51
так схуя ли выполняется первое условие?
мимо дремучий нуб
Аноним 29/08/15 Суб 05:09:07 #373 №536263 
>>536179
>быстрее натыкать принты чем ставить брейкпоинт а потом много раз жать n n n n
А логгирование на что?
Аноним 29/08/15 Суб 10:23:01 #374 №536296 
>>536261
Сказано же, потому что питон 2. В питоне 3 строки с числами сравнивать нельзя. В питоне 2 можно, но никакой логики в этом процессе нет.
Аноним 29/08/15 Суб 10:33:39 #375 №536299 
>>536296
>В питоне 3 строки с числами сравнивать нельзя
Еще одна причина почему он не нужен.
Аноним 29/08/15 Суб 10:37:56 #376 №536302 
>>536263
На объекты жи.
Аноним 29/08/15 Суб 10:43:42 #377 №536303 
>>536299
Ты долбоёб? Смысл в этом если всегда будет возвращать false?
Аноним 29/08/15 Суб 11:17:33 #378 №536310 
>>536299
Пхп-тред не здесь.
Аноним 29/08/15 Суб 11:29:10 #379 №536314 
14408369507390.png
>>536299
Тебе в javascript, обезьянка.
Аноним 29/08/15 Суб 11:52:09 #380 №536321 
>>536303
Зато теперь мы знаем что у местного хейтера тройки на самом деле околонулевые знания. В его шаражке только-только начали 2.6 преподавать ПРОДАКШЫН, ЫНТЫРПРАЙЗ, мучается человек, осиливает. А тут уже перекатываться пора. Я бы тоже бомбанул.
Аноним 29/08/15 Суб 11:52:14 #381 №536322 
>>536314
Чот обосрался с пика.
Аноним 29/08/15 Суб 11:52:39 #382 №536323 
>>536299
А зачем стравнивать строки и числа? Это же не имеет никакого смысла. Банан больше Дизайна?
Аноним 29/08/15 Суб 11:54:55 #383 №536324 
14408384950800.png
>>536314
https://www.destroyallsoftware.com/talks/wat
Аноним 29/08/15 Суб 11:55:50 #384 №536325 
>>536296>>536261
http://stackoverflow.com/questions/8732240/comparing-strings-and-numbers-in-python
Логика есть, но она какая-то странная.
Аноним 29/08/15 Суб 12:45:54 #385 №536335 
>>536323
>Банан больше Дизайна?
Дизайн больше Банана потому что при сравнении несовместимых типов они упорядочиваются по имени типа.
Аноним 29/08/15 Суб 13:05:58 #386 №536338 
>>536321
Я вообще не шарю какие проблемы с перекатом. Пишешь себе на тройке. Нужная либа осталась на двойке? Пишешь на двойке. Хуйня вопрос вообще.
Аноним 29/08/15 Суб 13:32:36 #387 №536340 
>>536335
Спасибо, ты процитировал мне ссылку, которую я дал постом выше. А теперь объясни, как такой результат может пригодиться.

>>536338
>Нужная либа осталась на двойке?
А почему бы не попробовать запустить её на тройке и не посмотеть, почему не работает? Велика вероятность, что подправив десяток-другой строк, всё заведётся и на третьем, если это не что-то громадное.
Аноним 29/08/15 Суб 14:02:31 #388 №536349 
>>536340
>А почему бы не попробовать запустить её на тройке и не посмотеть, почему не работает? Велика вероятность, что подправив десяток-другой строк, всё заведётся и на третьем, если это не что-то громадное.
Удваиваю юношу. Почти всегда 2to3 справляется. Если уж не справляется, то правишь либу. Сам так пару раз делал, в итоге дошёл до пулл-реквеста.
Аноним 29/08/15 Суб 14:21:36 #389 №536353 
>>536349
>в итоге дошёл до пулл-реквеста.
А я до полноценного форка. Автор сдох похоже. Проект на гуглокоде был, который закрывают. С последним коммитом от 2008. Теперь вот лайки собираю. На три часа работы вышло.
Аноним 29/08/15 Суб 14:24:57 #390 №536355 
>>536353
Что за либа?)
Аноним 29/08/15 Суб 14:39:05 #391 №536361 
Бля. Когда уже тема 2 vs 3 исчерпается и закроется?
Аноним 29/08/15 Суб 14:41:54 #392 №536364 
>>536361
Когда гвидо закроет тройку как ненужный и бесперперспективный проект и продолжит развивать божественную двойку.
Аноним 29/08/15 Суб 14:46:41 #393 №536366 
>>536361
Когда этот >>536364 ниасиливший шкальник наконец уйдет в свою шарагу. 1 сентября, короче.
Аноним 29/08/15 Суб 15:15:27 #394 №536377 
>>536366
Ты так говоришь будто после уроков в сосач нельзя зайти.
Аноним 29/08/15 Суб 15:37:40 #395 №536387 
>>536361
Когда два треда отдельных создадут.
Аноним 29/08/15 Суб 16:04:26 #396 №536394 
>>536387
Когда наступит '20' * 2
Аноним 29/08/15 Суб 16:28:21 #397 №536405 
>>536394
Да и тогда трупоеды вякать будут.
Аноним 29/08/15 Суб 16:38:34 #398 №536407 
>>532421 (OP)
Добрый день, прочитал шляпу, но так и не понял, что выбрать удобное и легковесное для мака. Canopy какой-то гигант.
Аноним 29/08/15 Суб 17:39:34 #399 №536431 
14408591741230.png
Сел я значит изучать ваш Питон. Скачал книжку "Майкл Доусон — Программируем на Python, 3-е издание " с примерами. Скачал, установил IDLE последней версии. И у меня в консольке вот такая вот телега. Это можно пофиксить, что бы глаз не резало? Linux mint 17.2 python 2.7.6 shell
Аноним 29/08/15 Суб 17:42:46 #400 №536436 
14408593665160.png
>>536431
В ipython3 всё норм
Аноним 29/08/15 Суб 17:44:03 #401 №536438 
14408594433460.png
>>536431
А у тебя python2. В обычном ipython тоже
Аноним 29/08/15 Суб 17:58:36 #402 №536443 
14408603166830.png
>>536436
>>536438
Запустил на python3, оказалось и правда, дело в IDLE, которая использует версию 2.7.6. А ее можно как-нибудь перепаять, что бы она с python3 работала? Просто читая книгу не охота иметь кучу окошек. да тут и в книге сноска В этой главе и далее мы переводим в обраэцах кода все английские выскаэывания (ком­
ментарии и текст, отображаемый на экране) на русский язык. В отличие от Python 2.х,
Python 3.1 не требует в таких случаях включать русскую локаль, но в начале кода может
понадобиться директива# coding: ср1251 или# coding: utf-8. - Примеч. пер.
Пардон, не дочитал.
Аноним 29/08/15 Суб 18:00:30 #403 №536444 
>>536443
sudo apt-get install idle3
Но я рекомендую ipython
Аноним 29/08/15 Суб 18:02:17 #404 №536445 
14408605378040.png
>>536443
Аноним 29/08/15 Суб 18:20:14 #405 №536449 
14408616145620.jpg
>>536443
># coding: ср1251
Аноним 29/08/15 Суб 18:21:30 #406 №536451 
>>536444
>>536445
Благодарю, помогло.

Аноним 29/08/15 Суб 19:05:10 #407 №536481 
>>536296
Это, конечно же, не значит, что в питоне 3 нет бредовых ситуаций со сравнением. http://ideone.com/CZ9YBD
Аноним 29/08/15 Суб 19:15:05 #408 №536487 
>>536481
Это не бредовые ситуации. И ты там != забыл сделать, которое-таки тру и выдало бы.
{} — множество. Одно может содержать другие подмножества, т.е. быть "больше".
{0,1} < {0,1,2}, {2,1} == {1,2}, {1,2,3} <= {1,2,3,4}

А когда ты {0} и {1} сравниваешь, то элементы первого вообще не содержаться во твором. Они никак не пересекаются и просто-напросто "не равны". Поэтому любое сравнение будет выдавать false. {0} и не больше, и не меньше, чем {1}. Просто "другое", т.е. не равное.
Аноним 29/08/15 Суб 21:16:34 #409 №536540 
>>536407
Чёт приуныл.
Аноним 29/08/15 Суб 21:20:07 #410 №536544 
>>536487
Мог бы просто сказать что множества упорядочены по включению. Сорь, нашел просто на реддите пример мол min(({1}, {0})) != min(({0}, {1})), не понял сначала что минимумов на самом деле несколько.
Аноним 29/08/15 Суб 22:04:13 #411 №536567 
>>536544
>множества упорядочены по включению
Звучит сложно. Да я и не знал же, почему ты такой пост накатал, вдруг ты дурачок-нуфаг какой-то, вот и решил подробно расписать.

>>536407
BBEdit и пошёл писать. IDE нинужны.
Аноним 29/08/15 Суб 23:11:13 #412 №536602 
>>536481
Ну ты и дибил.
Аноним 29/08/15 Суб 23:21:22 #413 №536609 
>>536602
ибил
Ясно))
Аноним 29/08/15 Суб 23:22:35 #414 №536611 
>>536609
новый нюфаг закукарекал.
Аноним 29/08/15 Суб 23:29:44 #415 №536616 
>>536611
Алтфак в треде.
Аноним 30/08/15 Вск 00:23:50 #416 №536641 
>>536616
Обосрался, прикинься троллем.
Аноним 30/08/15 Вск 00:59:03 #417 №536657 
>>536449
ты конечно ебанулся сравнивать множества
Аноним 30/08/15 Вск 01:05:13 #418 №536660 
14408859134970.jpg
Антоша, что посоветуешь читать или смотреть по Design Patterns? я немного пошерстил сеть, только одно говно. или не полное, или совсем по-уебански и без примеров вещают. Или же только одни примеры коды, но я не понимаю выгоду и в каких ситуациях их применять из сухого кода.
Аноним 30/08/15 Вск 01:12:20 #419 №536664 
>>536657
А что не так? Вполне себе нормальная операция.
Аноним 30/08/15 Вск 01:14:57 #420 №536666 
>>536664
но ты же хотел сравнить элементы, а не множества.
Аноним 30/08/15 Вск 01:32:13 #421 №536675 
>>536660
В питоне эти паттерны не нужны. Про них начитаются явадебилы и потом юзают там где не надо.
Думай своей головой.
Аноним 30/08/15 Вск 01:38:22 #422 №536676 
>>536660
http://cdn.oreillystatic.com/en/assets/1/event/12/_The%20Lack%20of_%20Design%20Patterns%20in%20Python%20Presentation.pdf
Аноним 30/08/15 Вск 01:42:02 #423 №536678 
>>536675
Пока трудно. Почти вся литература или про "решёточка объявляет начало комментария" или же о слесарных байтовых делах. А что-то между, я пока не нашёл.

Как мне разложить мою проблемму на абстракции и развернуть всю ОПП магию? Как объекты будут между собой шуршать? Вот это всё.
Аноним 30/08/15 Вск 01:45:08 #424 №536679 
>>536676
смотрю кино, спасибо антоха!
Аноним 30/08/15 Вск 07:34:02 #425 №536718 
14409092429690.jpg
>>532421 (OP)
Посоны, изучаю Пайтон по книге Доусона. Какие подводные камни?

Вот что нахелловорлдил по предложенной в книге задачке (там нужно было сначала написать псевдокод, что и было сделано, но приводить псевдокод не стану):
[code lang="python3"]
# Дай-ка угадаю
# Программа попытается отгадать задагаданное игроком число
# в диапазоне от 1 до 100

low = 0 # нижний предел, которого НЕ должно достигать значение числа
high = 101 # верхний предел, которого НЕ должно достигать значение числа
variant = 0 # предполагаемое значение числа
guess = False # угадал ли компьютер число
otvet = "" # переменная, в которую записываются ответы игрока

print("Давай сыграем!")
print("Ты загадай целое число от 1 до 100, а я попытаюсь его отгадать.")
print("Итак, начали!\n")

while not guess:
# проверяем, не жульничает ли игрок
if high - low <= 1:
print("\nТы жульничиаешь!!! Я с тобой больше не играю!")
break
# используем хитрую формулу
variant = low + (high - low) // 2
# спрашиваем игрока угадали ли мы число
while otvet != "да" and otvet != "нет":
print("Твоё число равно ", variant, "? ", sep = "", end = "")
otvet = input()
if otvet == "да":
print("\nУра! Я угадал!")
guess = True
else:
# спрашиваем игрока, больше ли загаданное число последнего предложенного варианта
while otvet != "больше" and otvet != "меньше":
otvet = input("Твоё число больше или меньше? ")
if otvet == "больше":
low = variant
else:
high = variant

input("\n\nНажмите Enter, чтобы выйти.")

[/code]

Прверку на жульничество я добавил (но не в псевдокод) по своей инициативе, а не по заданию.

Скажите, я хороший хелловорлдщик, или у меня получился уродливый коды?
Аноним 30/08/15 Вск 08:28:09 #426 №536721 
>>536718
Нормально.
Аноним 30/08/15 Вск 09:31:18 #427 №536727 
>>536718
> print("\nТы жульничиаешь!!! Я с тобой больше не играю!")
Опечатался :(
Аноним 30/08/15 Вск 10:04:36 #428 №536737 
Питоны, есть smtplib. Когда адрес сервера ololo.mail.ru вместо smtp.mail.ru то возвращается непонятная хуета

Traceback (most recent call last):
File "script.py", line 13, in <module>
print (main("ololo.mail.ru", "[email protected]", "ilovepython"))
File "script.py", line 4, in main
smtp = SMTP(host)
File "/usr/lib/python3.4/smtplib.py", line 242, in __init__
(code, msg) = self.connect(host, port)
File "/usr/lib/python3.4/smtplib.py", line 321, in connect
self.sock = self._get_socket(host, port, self.timeout)
File "/usr/lib/python3.4/smtplib.py", line 292, in _get_socket
self.source_address)
File "/usr/lib/python3.4/socket.py", line 494, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/lib/python3.4/socket.py", line 533, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known

Как перехватить такое исключение?
Аноним 30/08/15 Вск 10:39:44 #429 №536746 
Короче поставил пичарм вместо канопи и неудобно как-то, не работает стандартные print 2+2
Аноним 30/08/15 Вск 12:25:28 #430 №536770 
>>536737
>socket.gaierror: [Errno -2] Name or service not known
>озвращается непонятная хуета
>Name or service not known
>Как перехватить такое исключение?
>socket.gaierror
Аноним 30/08/15 Вск 12:45:36 #431 №536772 
>>536443
>но в начале кода может
>понадобиться директива# coding: ср1251 или# coding: utf-8. > Примеч. пер.
Это не нужно если ты кодишь в Линукс.
Аноним 30/08/15 Вск 12:47:33 #432 №536774 
Питон и С.
Передавая список или кортеж известного размера в С-функцию, как можно значение этого аргумента сразу записать в массив?
А то надоело городить лапшу типа — http://ideone.com/SdWUv3
Должен же быть какой-то способ, вроде — http://ideone.com/f0RQrR (сегфолт выдаёт, хотя на СО кто-то упоминал). Конечно, можно PyArg_ParseTuple(args, "(ddd)", &array[0], &array[1], &array[2]) сделать, но если я передаю прилично списков (координаты точек, задающих плоскость и прочие вектора для рейтрейсинга, например), то фукция во много нечитаемых строк выльется).

Аноним 30/08/15 Вск 18:04:44 #433 №536934 
>>536770
И хули? except socket.gaierror: print ("ololo") не робит. Возвращает тоже самое.
Аноним 30/08/15 Вск 18:44:40 #434 №536960 
>>536774
Надоело городить - вынеси в функцию, очевидно же. http://ideone.com/SIxJ2m
Аноним 30/08/15 Вск 21:24:36 #435 №537029 
14409590764310.png
>>536934
http://ideone.com/eup4ll
(smtplib.socket на скриншоте можно заменить на socket, если вручную импортировать в своём скрипте.)
Где-то ты не там эксепшн ловишь.
Аноним 31/08/15 Пнд 02:47:04 #436 №537152 
14409784241510.gif
Привет, Аноны.
Задача: заставить включать/выключать Raspberry PI светодиод через HTML-страничку. Запросы посылаются напрямую через HTML, обрабатываются через CGI с помощью скрипта.

Какого хуя выскакивает
192.168.1.2 - - [31/Aug/2015 02:40:05] "POST /cgi-bin/form.py HTTP/1.1" 200 - : Нет такого файла или каталога

...и ничего не работает? Права доступа изменял, стоят 777.
Аноним 31/08/15 Пнд 02:50:35 #437 №537154 
Хочу пойти на курсы по питону, какие подводные камни?
Аноним 31/08/15 Пнд 02:51:29 #438 №537155 
>>537154
курсы нинужны
Аноним 31/08/15 Пнд 02:54:05 #439 №537156 
>>537152
Только что попробовал такой же скриптик, всё работает.
Кстати перед тем как выводить 'LED if OFF' тебе надо вывести
print('Content-type: text/html\n\n')

А права на папку правильные? Из того каталога запускаешь?
Аноним 31/08/15 Пнд 02:55:34 #440 №537157 
>>537155
А если нет времени учить самому?
Аноним 31/08/15 Пнд 02:58:07 #441 №537159 
>>537156
LED if OFF и pass-ы - это зарубленные куски тестового кода. Прошляпил в три ночи. Думаю, они не имеют значения тут.
Права на папку - 777. (с рекурсией)
Каталог виден из терминала (надеюсь что тот, лол).
Аноним 31/08/15 Пнд 02:58:51 #442 №537160 
>>537157
Ты ебнутый? С таким подходом можешь никуда не записываться.
Аноним 31/08/15 Пнд 03:04:55 #443 №537162 
14409794958670.png
>>537159
У тебя короче проблема не с cgi.
Попробуй запросить файл которого реально нет будет выдавать код 404, а не 200.
Сам cgi скрипт у тебя запускается, но выдает ошибку какую-то.
Аноним 31/08/15 Пнд 03:07:36 #444 №537163 
14409796569910.gif
>>537162
Выходит так вот.
Аноним 31/08/15 Пнд 03:09:24 #445 №537164 
>>537163
Ну вот. Попробуй этот свой скрипт не через бразуер запустить а так, посмотри - он ошибку выдаст.
Аноним 31/08/15 Пнд 03:12:03 #446 №537166 
>>537163
Набери в терминале
cgi-bin/form.py led=on
Аноним 31/08/15 Пнд 03:19:01 #447 №537167 
>>537164
>>537166

Спасибо за совет. Заработало через sudo (из-за доступа к портам). Теперь я совсем запутался.
Аноним 31/08/15 Пнд 03:26:44 #448 №537171 
>>537167
Хм. Короче когда запускаешь вебсервер этот через sudo - у скрипт выполняется от UID 65534(должно быть 0 для рута). Видимо так сделано с точки зрения безопасности.
Аноним 31/08/15 Пнд 03:31:53 #449 №537173 
>>537167
Так и есть
https://docs.python.org/3/library/http.server.html#http.server.CGIHTTPRequestHandler
> Note that CGI scripts will be run with UID of user nobody, for security reasons.

Короче я советую просто взять и написать код унаследовавшись от SimpleHTTPRequestHandler b т.п. cgi не использовать
Аноним 31/08/15 Пнд 03:43:57 #450 №537177 
14409818377980.png
>>537167
Альтернативный способ
Отредактируй /usr/lib/python3.4/http/server.py
Сделай чтобы функция nobody_uid возвращала 0
или
Убери строку os.setuid(nobody)
или замени её на
os.setuid(0)
Аноним 31/08/15 Пнд 03:46:06 #451 №537178 
>>537173
Тут какая-то мутная тема. Не запускается даже тот скрипт, который должен работать и без рута. Абсолютно та же ошибка при том, что на винде код работает отлично.
Похоже проблема в том, что я накатывал пайтон 3.4.2 собирая его (в репах нет нового). Может криво установился. Других вариантов не вижу. Спасибо за помощь, Анон!
Аноним 31/08/15 Пнд 09:19:59 #452 №537213 
> cgi
> 2015
Аноним 31/08/15 Пнд 09:29:41 #453 №537216 
>>537213
А что? Можно хоть на баше сайты клепать.

И кстати почему все накатывают свои протоколы, если есть FastCGI?
Аноним 31/08/15 Пнд 09:47:54 #454 №537225 
>>537216
Зачем жрать говно, когда в пифоне asyncio?
Аноним 31/08/15 Пнд 09:49:38 #455 №537226 
>>537225
И причём тут паровоз?
Аноним 31/08/15 Пнд 10:01:19 #456 №537231 
>>537226
При том, что синхронное-cgi-процессо-говно нинужно, когда есть верное решение для io задач.
Аноним 31/08/15 Пнд 10:04:13 #457 №537232 
>>537231
Тяжёлые задачи, ака воркеры в кластере, ты будешь делать на синхронном-процессо-говне, чтобы если грохнется один процесс, остальные остались живы.
Аноним 31/08/15 Пнд 10:09:45 #458 №537234 
>>537232
Тяжёлые задачи отделяются от io задач вообще-то.
Аноним 31/08/15 Пнд 10:12:53 #459 №537235 
>>537234
Ну таки я ж тебе о том же. Асинхронная морда и синхронные воркеры под капотом.
Аноним 31/08/15 Пнд 10:19:27 #460 №537238 
>>537235
Но это не cgi/fastcgi.
Аноним 31/08/15 Пнд 10:22:13 #461 №537240 
>>537238
Ну так и ты начал с асинхронности/синхронности когда я заговорил о протоколах.
Аноним 31/08/15 Пнд 10:35:48 #462 №537241 
>>537240
Всё правильно. Велось обсуждение cgi-говна. Я намекнул, что это плохое решение.
Аноним 31/08/15 Пнд 12:12:32 #463 №537287 
>>537241
Технически да. Оно неэффективно из-за постоянного перезапуска процесса. Но зато оно позволяет вчерашний хелловорлд превратить в вебсервер. И полезно нубам, дабы они узрели что их любимая джанга никакой особой магии внутри не делает.
Аноним 31/08/15 Пнд 15:14:04 #464 №537381 
>>537241
Смотря для чего. Мигнуть светодиодом на rasberri pi сойдет.
Надо инструмент под задачу выбирать.
Нахуя вот для такой ерунды твой asicio? Ты ещё для celery туда прикрути.
Аноним 31/08/15 Пнд 15:18:48 #465 №537386 
>>537381
и так сойдёт.jpg
Аноним 31/08/15 Пнд 17:17:43 #466 №537462 
14410306637040.jpg
Начал читать tutorial, и уже на этом примере я завис, как же он работает?
Вот как этот if в 3 строке определяет что надо пихать в print 4 строки? Ведь 2%2 = 0, как и 4%2 = 0, так почему же он пихает туда именно 4, а не 2? Да, я тупой.
https://ideone.com/FaMIWe0
Аноним 31/08/15 Пнд 17:20:55 #467 №537464 
>>537462
Блин, даже с постом накосячил.
http://ideone.com/I57usF
Аноним 31/08/15 Пнд 17:36:14 #468 №537473 
>>537462
http://ideone.com/0xGifj Наведет тебя на мысль?
Аноним 31/08/15 Пнд 17:36:32 #469 №537475 
>>537462
Попробуй ради интереса вывести
list(range(2,2))
list(range(2,3))
поймёшь.
Аноним 31/08/15 Пнд 18:02:30 #470 №537491 
14410333506020.png
>>537473>>537475
Да, вроде вперемешку со stackoverflow разобрался, спасибо.
Аноним 31/08/15 Пнд 19:48:27 #471 №537540 
14410397072600.png
>>532421 (OP)
Кто мне внятно напишет условие, я сижу вникнуть нифига не могу в него, хочу решить задачу, а не пойму что хотят от меня.
Аноним 31/08/15 Пнд 19:52:03 #472 №537543 
>>537540
А причем тут коля?
Аноним 31/08/15 Пнд 19:53:56 #473 №537544 
>>537540
Предствь, что сейчас время 1:02. Предположим, что ты Катя, и засыпаешь мгновенно. Хочешь поспать 480 минут (8 часов). На какое время нужно поставить будильник? 9:02.
Аноним 31/08/15 Пнд 19:57:31 #474 №537547 
14410402519920.png
>>537543
Коля ебал катю :3.

Просто предыдущую задачу была про колю и я ее решил вот так
Аноним 31/08/15 Пнд 19:58:23 #475 №537549 
>>537540
И не слишком ли это много на одну строку кода отводить 256 мегабайт памяти и 5 секунд времени?
Аноним 31/08/15 Пнд 19:58:46 #476 №537550 
>>537544
Понятно, спасибо. снова надо возиться с этой математикой по часам :< ненавижу
Аноним 31/08/15 Пнд 20:02:18 #477 №537553 
>>537550
Там же абсолютно то же самое, просто точка отсчёта с нуля сдвигается.
Аноним 31/08/15 Пнд 20:40:26 #478 №537575 
>>537550
В питоне для этого есть функции.
Аноним 31/08/15 Пнд 20:44:41 #479 №537577 
>>537575
Использовать какие-либо встроенные функции для столь примитивных задач — так себе идейка, по-моему.
Аноним 31/08/15 Пнд 20:48:26 #480 №537579 
>>537553
Я тупой, с часами разобрался, с минутами нет и в итоге скатал как минуты делать, наверное из-за того что не спал долго и только вернулся домой я повел себя по свински и скотски и списал.

x = int(input())
h = int(input())
m = int(input())
c = (x // 60 + h + (x % 60 + m)//60) % 24
print(c)
print((x % 60 + m) % 60)
Аноним 31/08/15 Пнд 20:52:23 #481 №537581 
>>537577
Использовать велосипеды когда есть встроенные функции которые работают быстрее и с которыми работать удобнее - так себе идейка. За такое убивают нахуй.
Аноним 31/08/15 Пнд 21:13:17 #482 №537602 
>>537579
>% 24
В условии же дана гарантия, что проснётся в тот же день, т.е. время не будет больше 24 часов (x + 60h + m < 1440)
>(x % 60 + m) % 60
Это они такое решение предлагают? Нафиг х %60 делать, еслить (x + m)%60 даст тот же результат?
Ну и с часами тоже можно упростить.
>(x % 60 + m)//60
x = 130, m = 40
130%60 = 10
10 + 40 = 50
40 % 60 = 40
Однако, (130+40)%60 = 40.
Да и незачем сначала высчитывать часы от х, потом минуты от х и м, которые переводятся в часы. Можно же сразу часы от суммы м и х.



>>537581
Цель этих задач — в обучении, а не достижении результата. Не только с языком познакомить, но ещё и какие-то основы мышления заложить.
Если
новичок сам не может написать (h + (x+m)//60), (x+m)%60, а вместо этого будет использовать какие-нибудь to_hours(480+m+h60), to_minutes(480+m+h*60) (а то и вообще date(h,m).add_minutes(x)), то он же нихуя не поймёт, как это всё работает, и застопорится на следующем простом задании типа сортировки по какому-то заданному ключу, как товарищ из джаваскрипт треда.

Допустим, в этой задаче он не написал бы излишнее количество операций, если бы либы использовал, но в сложной задаче он бы таким же образом нагородил излишнее количество встроенных функций, потому что не до конца понимает, что происходит. А сразу со сложного же начать нельзя, наверное.

Так что, с велосипедами ты промахнулся, мы не о самопальных методах сортировки для использования в продакшне интерпрайз и на втором питоне обязательно, тут говорим, а о пяти, блин, операрциях на всё решение.
Аноним 31/08/15 Пнд 21:15:19 #483 №537604 
>>537602
>10 + 40 = 50
>50 % 60 = 50
>Однако, (130+40)%60 = 50.
поправочка
Аноним 31/08/15 Пнд 21:50:07 #484 №537621 
>>532421 (OP)
Дващ pycharm при любом коде выдает ошибку Process finished with exit code -1073741511 (0xC0000139)
хз че делать все перепробовал
Аноним 31/08/15 Пнд 21:54:36 #485 №537623 
>>537386
В общем-то сойдет. Если идея будет развиваться дальше, то самое страшное, что может вылиться из использования CGI - гроубокс или какая-нибудь система "умный дом" в миниатюре.
а скорее всего я ничего интересного не придумаю и мигания светодиодом хватит с головой
Аноним 31/08/15 Пнд 22:33:03 #486 №537639 
>>537623
>гроубокс
Наркоман щтоле?
Аноним 31/08/15 Пнд 22:50:31 #487 №537648 
>>537621
install gentoo.
Аноним 31/08/15 Пнд 23:33:33 #488 №537659 
>>537602
Лол, но в этих операциях нет смысла, они ничему не учат. Достаточно запомнить PEMDAS и всё. Его все школьники знают старше 5го класса

Для сравнения посмотри какой-нибудь CS61A от Беркли, там такую хуиту не делают, зато охуенно учат использовать функции и всё такое. Курс основан на SICP
Карочи, я нихуя не согласен. Лучше пусть LPTHW почитает и оттуда задачки поделает, полезнее будет.
Аноним 01/09/15 Втр 00:04:14 #489 №537668 
Кстати, ещё камень в cgi и не только. Получается ты обучаешься тому, что лучше не использовать в серьёзных проектах. Тогда какой в этом смысл? Отсюда и растут ноги всяких йоба синхронных фреймворков и те, кто их использует. На асинхронных писать не сложнее же.
Аноним 01/09/15 Втр 00:10:54 #490 №537672 
>>537648
ааа. пайтоны куда-то все поудалялись
Аноним 01/09/15 Втр 00:22:38 #491 №537678 
http://ideone.com/L2qhea

Поправьте регулярку. Почему не останавливается на 20ти символах?
Аноним 01/09/15 Втр 00:28:43 #492 №537679 
>>537672
Я ПЕРЕУСТАНОВИЛ ПАЙТОНЫ А ВСЕ РАВНО НИЧЕГО НЕ РАБОТАЕТ КОКОКО помогите. мне срочн надо в ближ дни прожить.
Аноним 01/09/15 Втр 00:37:25 #493 №537684 
>>537678
>(...){1,20}
Находит от 1 до 20 повторений того, что внутри скобок. А внутри у тебя там
>[a-zA-Z0-9\.-](звёздочка)
Которое все 100 символов и ловит.
Аноним 01/09/15 Втр 00:41:16 #494 №537686 
>>537684
Да, только хотел про звездочку написать. Спасибо.
Аноним 01/09/15 Втр 00:48:41 #495 №537689 
>>537686
Алсо, re.match и так ищет только с начала строки (в отличие от re.search), так что ^, по-моему, излишне.
Аноним 01/09/15 Втр 01:00:56 #496 №537693 
>>537689
Ага, спасибо.
Аноним 01/09/15 Втр 11:16:07 #497 №537794 
Как читать-писать файлы в asyncio. Везде говорят что нельзя, но что-то не верится.
Аноним 01/09/15 Втр 11:27:54 #498 №537797 
>>537668
Я обучаюсь тому, что мне удобно сделать на своём нано-проекте (если его проектом можно будет назвать). На крупных проектах этот вариант будет так же неуместен, как и применение мощных средств для дёрганья одним светодиодом и парочкой моторов.
Аноним 01/09/15 Втр 14:22:45 #499 №537853 
>>537794
Читай в доках, может есть чо
Аноним 01/09/15 Втр 14:29:14 #500 №537856 
Перекат, теперь с названием
https://2ch.hk/pr/res/537855.html
https://2ch.hk/pr/res/537855.html
https://2ch.hk/pr/res/537855.html
https://2ch.hk/pr/res/537855.html

comments powered by Disqus

Отзывы и предложения