Этого треда уже нет.
Это копия, сохраненная 24 апреля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
#2 #693069
ДЛЯ ЖЕЛАЮЩИХ ВКАТИТЬСЯ

Python 2 или Python 3: 2.4
#3 #693099
Сап, посоны. Подскажите, для парсинга WEBM-файлов подойдёт какой-нибудь условный LXML или Grab ?
139 Кб, Webm
#4 #693101
>>693099

>парсинга WEBM-файлов

>>693104
#5 #693102
>>693099
webm — бинарный формат, для его парсинга подойдёт struct/construct.
>>693104
#6 #693104
>>693101
>>693102
Извините, неверно выразился. Парсинг html-страниц, для поиска webm
#7 #693107
>>693104
С сосача что ли вебмки качать надо?
>>693409
#8 #693108
>>693104
Для парсинга lxml/html5lib.
>>693409
#9 #693109
>>693104
beautifulsoup4, вот это ещё посмотри https://github.com/ValdikSS/endless-sosuch
>>693409
#10 #693129
Ананасики, помогите. Начал джангу изучать, следую инструкции джангобукру, дохожу до места где надо сервер поднимать $ python manage.py runserver

в ответ консоль меня нахуй шлет

Traceback (most recent call last):
File "manage.py", line 8, in <module>
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

что происходит? куда потерялся джанго_кор_менеджмент?
>>693133
#11 #693132
Ты django куда устанавливал? если использовался virtualenv перейди в соответствующее виртуальное окружение.
>>693133>>693136
#12 #693133
#13 #693136
>>693132
Эммм...

>sudo pip3 install django



Подозреваю что дефолтная маковская директория
>>693137
#14 #693137
>>693136

> pip3


> python2 manage.py runserver

#15 #693142
Можно ли автоматом применить декоратор ко всем методам класса?
>>693162
#16 #693147
>>693104
Онли лхмл и суп. Граб - говно, с каждой версией они блядь меняют всё, что хуй проссыш, документация вперемешку ко старым и новым версиям, поддержку блядь не могут нормальную сделать, угадывай сам блядь, макаки ебаные, васяны сука подзалупинские.
>>693409
#17 #693162
>>693142
Пишешь классу декоратор, который проходится по всем методам и применяет декоратор им.
#18 #693248
Поцоны, пытаюсь разобраться с алгоритмом blowfish, вот в этом примере http://pythonhosted.org/pycrypto/ они добавляли байты 0x08 в конец, чтоб сообщение было кратно 8 байтам. Ок.
1) А как принимающей стороне избавиться от этих байтов? (напишите пожалуйста что писать в функцию unpack)
2) При этом как узнать вдруг этот байт (0х08) является частью сообщения?
3) Можно сделать тоже самое только заполнять нулями? Напишите пожалуйста функцию pack, чтоб нулями заполняла.
>>693252>>693428
#20 #693362
Питонач, я изучил питон и попрактиковал джангу, но у меня в городе (Челябинск) нету вакансий, в которых требование для соискателя знание питона (есть 1с, java, js, языки для .net и т.п), что мне делать? Переезжать не вариант (вся зарплата будет уходить на съем, а мне эту часть нужно откладывать). Учить другой язык и фреймворк времени нет. Писать на js не хочу, хочу опыта на питоне.
#21 #693371
>>693362

>2016


>не работать на удаленке

#22 #693372
>>693362
нужно было изначально java учить, питон это язык джаст фор фан.
#23 #693409
>>693107
Да лол, хотел автоматизировать ПРОСМОТР WEBM

>>693108
>>693147
Спасибо за пояснения!

>>693109
Отлично! Это именно то, что нужно. Большое спасибо!

Только теперь столкнулся с проблемой отсутствия модуля gi. Сижу на семёрке, с анакондой.
Пытаюсь поставить как gi так и эту хуягу https://anaconda.org/KristanArmstrong/pygobject, но ничего не выходит. Pygobject конфликтует с уже якобы установленным pygobject, но он не установлен (пытаюсь получить по нему информацию, но конда не находит такого модуля).
Никто с подобным не сталкивался?
>>698254
#24 #693421
>>693099
lxml - тру
beautyful soup - не настолько тру (медленнее, на невалидном хтмл может сломать)
grab - вообще поделка какая-то
>>693789
#25 #693423
>>693362
на одеск/апворк же

или удаленку ищи
#26 #693428
>>693248
Сообщение должно быть кратным 8 байтам. Поэтому, если,например, у нас 65 байт сообщения, следующий "крат" - 72. Длина паддинга - 7. Поэтому паддинг будет 7,7,7,7,7,7,7.
На принимающей стороне, после расшифровки, смотрим на последний байт сообщения. Он равен 7. Откусываем 7 байт, получаем только полезное сообщение.

Чтобы эта схема работала без исключений, в случае, если длина сообщения уже кратна 8, добавляем паддинг в виде 8 байт 8,8,8,8,8,8,8,8.

1) ты должен уже понять
2) последний байт всегда является частью паддинга
3) надо по-любому как-то знать, сколько байт в паддинге. В крайнем случае, можно в одном байте (или в 3х битах точнее) указать длину паддинга, остальное забить нулями

на coursera курсы по крипте пройди
#27 #693789
>>693421

>beautyful soup - не настолько тру (медленнее, на невалидном хтмл может сломать)


Суп использует любой из доступных парсеров: lxml, html5lib, etree. Так что не пизди.
#28 #693864
рипост из прошлого:

Проблема с логгированием и pybrain.
В общем, есть примитивный код: http://pastebin.com/wcEhadUm
И, собственно, какого чёрта импорт pybrain'а влиет не только на существующие, но и вообще на все новые логгеры? Как так-то, блин?!

Там в нём есть напрямую вызовы logging.warn(...), которые, вроде как, и есть проблемные места (в рут логгер, что ли, добавляется дефолтный хендлер, который вызывается всегда, так как является "родителем" всех логгеров полученных через менеджер). Но что это за бред-то, блин? Единственный способ получить чистый, личный логгер - это напрямую l = logging.Logger('mojo'), но тогда он в менеджер не запишется и я из другого модуля не смогу его через getLogger получить никак (создастся новый).

Что я не так делаю-то, как мне быть? Хочу логгер через getLogger, но без "чужого" мусора в нём.

Собственно, вот это можно запустить для иллюстрации проблемы (на идеоне не работает logging) — http://ideone.com/8p6md2

Пока что решил добавлением

>logging.root.handlers = []


после импортов pybrain'а, но это какая-то хуйня, а не решение же.
#29 #693870
>>693362
Не так давно общался в /b/ с земелей Миасс, тот съебал в Ёбург быдлокодить бэкэнд на пистоне. Говорит вакансий для питоностов масса.
>>694594
#30 #693891
Можно ли как-нибудь получить изображение какой-либо программы (линукс/мак), которая может быть (1) в фоне/свёрнута или (2) частично перекрыта другим окном?
Вариант "записать верхнее окно -> активировать нужное -> скриншот экрана -> активировать сохранённое в первом шаге окно", конечно, будет работать, но как-то это не красивенько.
>>693895
#31 #693895
>>693891
import -window id screen.png
id можно узнать через xwininfo
Однако успех при натравливании на свернутое окно зависит от WM. Про мак хуй знает. Еще man wmctl посмотреть можешь.
>>693906
#32 #693906
>>693895
А без записи в файл возможно?

>import -window id screen.png


Что-то понять не могу, что этот код вообще должен делать? Откуда дефис? По-моему, тут что-то всё удалилось перед отправкой.
>>694043
#33 #693912
Подскажите новичку.
Есть числовая матрица 2 на 100. Считал ее из Excel в dframe.
Как посчитать разницу между каждым 5 элементом (5-1, 10-5, 15-10) и вывести ее в новый столбец?
>>693990
#34 #693951
Аноны, подкиньте годных блогов по Django
community/ с оф документации не надо кидать
>>693952
#35 #693952
>>693951
https://habrahabr.ru/hub/django/
https://www.reddit.com/r/django/
А что ещё? Да хуй знает. Остальное всё разрозненное.
Гугли django tutorial + кейворд и ройся в них
>>693953
#36 #693953
>>693952
Я не ищу решение какой то проблемы, я говорю о блогах в общем, с интересными решениями каких то вопросов
>>693956
#37 #693956
>>693953
Туда-сюда такое проскакивает во всяких питон-рассылках:
http://www.pythonweekly.com
http://importpython.com

Сибиряки тоже норм https://pythondigest.ru
>>693958
#38 #693958
>>693956
спасибо
#39 #693966
можно ли зарабатывать (желательно фриланс) питоном, но чтоб не веб?
>>694046
#40 #693990
>>693912
Каждый пятым элементом в одном столбце? 5-1 != 10- 5, если чо. И не очень понятно, как ты хочешь это вставлять дополнительным столбцом, ведь он будет в 5 раз короче меньше имеющихся.
Вот тебе пример с добавлением нулей в промежуточные клетки - http://ideone.com/jjVNVg (dframe это из pandas, что ли?)
А в вём проблема в том же экселе и посчитать? А то придёшь завтра с вопросом "как dframe в эксель записать", лол.
>>694005
#41 #694005

>>6939>>693990


Чтобы понятней было. Первый столбец время, второй температура, нужно изменение за каждые 5 минут получить.
Нужно я так понимаю цикл запустить и результат записать в новый столбец.
За пример спасибо, погляжу.
#42 #694043
>>693906
Это баш
>>694078
#43 #694046
>>693966
Смотря что подразумевать под вебом. Грабить дату с веба - тоже веб? Ну вообще фриланс в погромированнии - 90% веб. Так что как повезет.
>>695087
47 Кб, 403x604
#44 #694051
Анон, вот у меня есть репозиторий, созданный в github'е, то есть, все файлы я создавал там (копировал, вставлял). Как мне подключиться к этому аккаунту через консоль?
>>694054>>694056
#46 #694056
>>694051
Еще добавлю что для консольных джедаев есть смысл сгенерировать и добавить публичный ключ и подключаться по ssh с авторизацией по этому ключу.
Так пуш-пулл значительно проще автоматизируется.
>>694057
#47 #694057
>>694056
Для любых джедаев. Авторизация по паролям - позапрошлый век.
>>694061
#48 #694061
>>694057
Ну хз, может он старовер какой.
#49 #694078
>>694043
import — это баш? Что-то ты меня запутать хочешь, по-моему.

>$ import


>The program 'import' can be found in the following packages:


> imagemagick


> graphicsmagick-imagemagick-compat


>Try: sudo apt-get install <selected package>

#50 #694096
>>693065 (OP)
Есть серьёзный вопрос, змейки. Может ли питон отлично работать с файлами? И вообще что для этого лучше подойдет?
#51 #694097
>>694096

>Может ли питон отлично работать с файлами?


Что для тебя отлично?
>>694100
39 Кб, 200x200
#52 #694098
>>694096

> отлично работать с файлами

#53 #694100
>>694097

>Что для тебя отлично?


Ну чтобы он сам делал что я захочу.
192 Кб, 811x936
#54 #694104
>>694100

>сам делал что я захочу

#55 #694112
>>694054
О, отлично. Спасибо.
102 Кб, 720x720
#57 #694186
>>694096
>>694100
Ты ебанутый какой-то. Что конкретно надо?
>>694187
#58 #694187
>>694186

>Что конкретно надо?


>>694100 это
>>694192
#59 #694192
>>694187
А ты можешь делать то, что я захочу? Вот и иди нахуй.
>>694244
#60 #694244
>>694192

>А ты можешь делать то, что я захочу?


нет, я же не питон.
23 Кб, 364x230
58 Кб, 294x295
#61 #694308

> html+css+js ≈ 50%


Тяжко быть вебмакакой.
>>694325>>694330
#62 #694325
>>694308
Твой проект? Что там раст делает?
>>694331>>694337
#63 #694330
>>694308
Это диаграмма чего ?
>>694331
#64 #694331
>>694325
Общая статистика wakatime, там всё вместе, на досуге решил покомпелировать немножно.

>>694330
Использования языков и "языков", очевидно.
#65 #694337
>>694325
Ржавеет, как всегда.
#66 #694383
http://ideone.com/7gWCD9
Как так, почему нампи в полтора раза медленнее?
#67 #694453
Вы что, тут все на *nix разработку ведёте?
#68 #694455
>>694453
Под nix на nix, но встречаются упертые ньюфаги-неосиляторы.
23 Кб, 733x413
#69 #694457
>>694453
Добро пожаловать в реальный мир.

http://stackoverflow.com/research/developer-survey-2016
#70 #694458
>>694453
А ты считаешь, что есть выбор?
#71 #694459
>>694453
И я смешно шучу
#72 #694511
Есть одна программа по визуализации данных в виде отдельных точек-маркеров через матплотлиб. Вывод идет на три сабплота. По кликам на маркеры происходят события. Проблема в том, что этих маркеров может быть до ста тысяч. Такое количество объектов лайн2д занимает в памяти более двух гигабайт, соответственно, зумы, да и вообще все отрабатывается очень медленно. Какие есть вариатны решений?
>>694515>>694652
#73 #694515
>>694511
Рисовать только маркеры которые находятся в зоне видимости
Делать более детальную прорисовку толкько при зуме.
и.т.д
>>694527
#74 #694527
>>694515
Я и так рисую только заданную область. Предлагаешь аппроксимацию? Тогда зум будет еще тяжелее.
#75 #694545
Я систему автодеплоя сделал. Скоро буду её продвигать некоторым людям, а у меня там ни одной звёздочки нет. Поставьте звезду, а я на ваш проект поставлю. https://github.com/Vladimir37/Sanelotto
>>694547>>694552
#76 #694547
>>694545

>Поставьте звезду, а я на ваш проект поставлю


Это такое тонкое предложение сдеанониться? Иди своей дорогой.

>Я систему автодеплоя сделал.


#!/bin/sh и scp?
>>694550
60 Кб, 500x345
#77 #694550
>>694547

>деанон


>2016


>/pr/

>>694551
#78 #694551
>>694550
Ты тут всех знаешь?
#79 #694552
>>694545

>SSH connection


Ну тащемта я угадал.

Поправь свой ужасный ангельский в README.md и вбрасывай на реддит в /r/linux, /r/opensource, /r/python. 30-50 лойсов получишь.
>>694562
#80 #694562
>>694552

>вбрасывай на реддит


Точно, я забыл про него. Спасибо!
#81 #694594
>>693870
в Екб полторы вакансии для питонистов
#82 #694652
>>694511
Бамп вопросу.
#83 #694685
Вкатился.
#84 #694706
>>694457
~52% всё же на винде
865 Кб, 224x400
#85 #694718
Чё кодить, пацаны? Для развития кругозора
Вот вы чё кодите? Не по работе, там ясно что джанго какое-нибудь, а вот вообще, для души там или типа того?
#86 #694731
>>694718
Ну вон анон чуть выше свое для души вбросил.
>>694914
#87 #694734
>>694718
codewars.com?
>>694830>>694914
#88 #694830
>>694734

> для души


> решать дебильные задачки

#89 #694835
>>694718
Можешь игры клепать, если тебе это интересно.
>>694839>>694914
#90 #694839
>>694835
Игру делать - это не круды с парсерами лепить, тут парой недель не отделаешься. Если это не клон Марио конечно, но это не интересно.
#91 #694857
>>694457
Ну, если учесть, что кол-во польхователей СНГ ничтожно мало по сравнению с Европой и США, и отсутствие дикого оверпрайса на маки там, то логично, что их так много. Да и в любом случае винды в сумме гораздо больше, так что кол-во пользователей мака в итоге ближе к кол-ву пользователей линукса.
#92 #694870
>>694718
Ебал я кодить дома помимо работы. И так жизни нет.
#93 #694914
>>694731
Ну весь гитхаб не перерыть, а так бы клоноделством "для навыка" я бы конечно занялся. Того и спрашивал.
>>694734
Да ну их эти олимпиадные задачки! я ж джуном не в комитет придумывающий олимпиады мечу
>>694835
Не прельщает, увы.
#94 #695081
Почему третий питон так странно конвертит байты через str()?

str(b'123')
Во втором: '123'
В третьем: "b'123'"
>>695083
#95 #695083
>>695081
А, понял - надо encoding явно указывать.
126 Кб, 900x1350
#96 #695087
>>694046

>Грабить дату с веба - тоже веб?


Вот это уже норм.
То есть без джанги нехуй делать да во фрилансе?
>>695162
26 Кб, 450x410
#97 #695154
Анончик. Имеется 'Gtk.ScolledWindow' в 'Gtk.Viewport' с горизонтальным скроллбаром. Как сделать, чтобы эта область прокручивалось кнопками? (помню задавал этот вопрос, но наработки проебал).
#98 #695162
>>695087
Нейронные сети пиши.
1868 Кб, 260x173
#99 #695282
Где можно найти простые практические задания по питону? Дело в том что я недавно стал изучать, поэтому большая часть задач для меня мягко говоря сложны. Как вы навыки оттачивали? Поделитесь опытом.
#100 #695284
>>695282
Пиши имиджборду.
#101 #695320
>>695282
В книжечках все примеры и задания решать.
можешь ещё http://blog.programmersmotivation.com/2014/07/09/list-projects/ пошерстить, особенно рекомендую указанную там секцию на гитхабе
>>696005
#102 #695604
На питоне реально писать аппы для телефонов? Кто-нибудь пишет? Нашел kivy и sl4a для этого.
>>695618
#104 #695627
Двач, прошёл курс на codecademy, было всё очень удобно и приятно. По центру экрана писал код, а в левом верхнем углу выдавались ошибки и итоги программы. Закончил курс, скачал питон, включил этот IDLE, а там просто отвратительное окошко. Ошибки выдаёт туда же, где пишу код, а код после ввода нельзя исправлять, приходится копировать его заново и там уже делать все исправления.
Перед этим попробовал вот этот гайд http://learnpythonthehardway.org/book/ex0.html
Делал всё как написано, кроме того, что третий питон вместо второго устанавливал. Просто не работает.
Уверен, что есть решение этой проблемы, даже в школе, когда на С писали было и то удобнее
>>695660
36 Кб, 650x600
#105 #695660
>>695627
File -> New File
>>695668>>697542
#106 #695668
>>695660
Типо надо всегда там писать, а потом копировать код в основной файл и проверять?
>>695689
#107 #695689
>>695668
установи саблайм и не еби мозги.
Можешь конечно стать вимоебом еще, но это для поехавших
>>695697
116 Кб, 500x500
#108 #695697
>>695689
или атомобарином
#109 #695706

>2016


>передвигаться по коду СТРЕЛОЧКАМИ


>дергать руку до мышки каждые пять секунд


>не держать руки на homerow

>>695711
#110 #695711
>>695706
нахуй пошел на всякий случай, хоть я и не понял твоего поста.
>>695712
#111 #695712
>>695711

>не понял твоего поста


Я и не сомневался.
>>695716
#112 #695716
>>695712
Похоже было слишком тонко. Вимоебы аутсайдеры, смекаешь?
>>695722>>695792
#113 #695722
>>695716
Передашь от меня привет туннельному синдрому как до 35 доживешь, любитель мышек и стрелочек.
#114 #695725
https://www.codecademy.com/learn/python
Вот и приехали. Все годные задачи платно.
>>695731>>695739
#115 #695731
>>695725
Думаешь, пришло время пилить свои задачи?
>>695746>>695749
#116 #695739
>>695725
Ну разок 20 баксов чего бы и не выделить, а за месяц ты 100% всю хуйню перерешать успеешь
#117 #695746
>>695731
Не знаю, хватит ли этого для начала. Вот по совету Анона решил вкатиться в Питон с изучения кодакадеми + Лутц параллельно, а тут такие дела. Стоят ли они $20 или это очередная наёбка? В последнее время очень скептически отношусь ко всем курсам.
>>695772
#118 #695749
>>695731
Пилить и продавать.
#119 #695772
>>695746

>стоят ли они $20?


Нет. Этот курс можно за день пройти, я лично не вижу смысла тратить на него деньги. Задачки есть, например, на checkio, codewars и в любой книге для начинающих.
>>695775
#120 #695775
>>695772
Де брать задачки для чуть-более-чем-начинающих?
Интерес не праздный, если честно. Застопорился, а до джуна один хуй не тяну.
>>695791
#121 #695791
>>695775
Если тебе главное до джуна дотянуть чтобы найти работу то просто задрачивай нужный фреймворк и пили всякие круды(если ты в веб хочешь податься)
>>695808
48 Кб, 727x948
#122 #695792
>>695716

>Вимоебы аутсайдеры


А то!
Историю создания Саблайма надеюсь знаешь
#123 #695808
>>695791
Мне главное что бы по фану было.
Фан от консолеговна, парсеров, всяких машин лёрнингов и пандасов я ловлю, а от джанги (которая для меня состоит из неочевидной "А ЕСЛИ ХОЧЕШЬ ЧТО БЫ ХУИТКА БЫЛА С МЕНЮ - ПРОСТО ДОПИШИ django.model.menu(huyar, ' ', hui)"
И даже работу пока не ищу, просто было бы неплохо в случае возникновения в ней необходимости быть готовым на что-то претендовать.

Бывают вообще питоновакансии вне вебдева?
>>695835
#124 #695826
>>695792
Я тебе миллион таких графиков нарисую. Лол
проорал с тебя
>>695827
#126 #695829
>>695827
СТАКОВЕРФЛОУ
АХАХАХАХХАХАХА
съеби под шконарь
>>695832
#127 #695832
>>695829
поставил лойс, тонкота)
>>695834
#128 #695834
>>695832
Спасибо, братик.
#129 #695835
>>695808

>Бывают вообще питоновакансии вне вебдева?


Для невеб вакансий нужно подробно понимать, как и что работает. А тебе с таким подходом только в 1С.
447 Кб, Webm
#130 #695843
>>695792

> Notepad++


> 35.6%


> NOTEPAD++

>>695846
#131 #695846
>>695843
Спасибо, братик.
#132 #695864
Core Python Applications programming - Устаревшее говно из 2012 года. В книге много тем, но ни одна из них не раскрыта полностью. Впелили джангу на пол книги, но я бы по ней все равно не стал ее учить (зачем учиться по устаревшим источникам когда есть намного лучшие альтернативы). В итоге раздули на 800+ страниц. Код написан для питона 2 и иногда вставляют информацию о питоне 3, но это нихуя не раскрывает тонкостей работы с третьей версией. Задания крайне неинтересные и нет никакого желания их делать. Они даже не удосужились нормально обновить старые главы и постоянно встречается всякое говно типа "ну тут кароч написано про psycopg но вы будете использовать psycopg2))0 А еще мы оставили 20 страниц об давно умершем фреймворке и мы об этом знаем, но почему бы их не оставить))". 1/10 кароч.

Нахуя было это советовать в треде?
>>695868
#133 #695868
>>695864
Это я виноват.
Я советовал. И тоже дропнул чуть после.
Прошу прощения.
#134 #695916
Нужно выводить логи в файл, потом загружать их из файла.
А теперь вопрос. Как сделать наименее велосипедно запись цвета в файл? Чтобы при прочтении он интерпретировался и этим цветом писался в интерфейсе?
>>695919
#135 #695919
>>695916
Допустим, есть интерфейс на QT, в виджет лога которого дублируется все из переопределенной обретки stdout. В частности - красным выводятся ошибки, синим кое-какая инфа и тд.
Все это нужно дублировать в файл, чтобы информация сохранялась более, чем на 1 запуск.
>>695920
#136 #695920
>>695919
Подозреваю в кутях должен быть какой-то класс уже содержащий текст и цвет где надо, а не просто выводящий. Прямо его и пиши. Или не прямо, а сконвертни в какой-нибудь жсон. Какая разница вообще в каком формате писать? Руками ты с ним работать не будешь. Я надеюсь.
>>695921
#137 #695921
>>695920
Таки, может и буду. Я хочу убить еще одного зайца, и в случае наличия ошибок чтобы все это отсылалось на почту.
Сейчас еще пришла идея, что можно использовать html, и его же загружать прямо в виджет потом. Никакой разницы между тем, что отображается в виджете, и тем, что в файле будет.
27 Кб, 535x312
СПЕРМОПРОБЛЕМЫ-СПЕРМОПРОБЛЕМУШКИ #138 #695923
Нужно настроить роздачу файлов на windows сервере.
Идея такова: django приложение на впсочке с маленьким-маленьким ssd делает к выделенному windows серверу запрос, получает ссылки на файлы и отдает их пользователям по запросу.
Напердолить nginx+tornado? но в обеих поддержка окон для галочки, может их в докер запихнуть? или есть какой-то получше/попроще вариант?
>>695949
#139 #695937

>файл программы, строки - в UTF - 8


>петон упорно пытается кодировать кириллицу черз ASCII при записи в файл


>используешь codecs.open вместо open


Ахах, петон 2.7 что ты делаешь, прекрати! У меня от этого ЯВНОЕ ЛУЧШЕ НЕЯВНОГО.
>>695938
#140 #695938
>>695937
Сука, животное, блядь. Ну почему работа с юникодом такой адов пиздец?
sage #141 #695949
>>695923
-> /s/
#142 #695951
>>695792

>Историю создания Саблайма надеюсь знаешь


А что с ней не так?
#143 #695952
>>693065 (OP)
поцаны, делаем oregon trail. нужно чтобы игра тебя постоянно спрашивала вопрос "Что ты хочешь сделать?" и после того как ты сделал действие-она спросит еще раз,но когда дело доходит до второго действия, программа игнорит то что я ввожу и читает это как первый ввод. Например, я выбрал 1 в начале, игра опять запрашивает номер, выбрал 2- она все равно читает это как один. Как пофиксить?
commands=input("\nYour options are: \n1)Travel \n2) Rest \n3)Hunt \n4)Status \n5) Help \n6)Quit")

while not GAMEOVER:
print (commands)
answer=input("What do you want to do?")

if commands == "1":
update_days(3,7)
if MILES_LEFT<=1:
print (oregon())
else:
print(travel())

elif commands == "2":
update_days (2,5)
print(resting())
>>695955
#144 #695955
>>695952
все, пофиксил
#145 #695963
А есть ли более хитрый способ создавать файлы при открытии, если они не существуют, чем указывать в режиме "+"?
Например, я хочу, чтобы если файла не существует - он создавался, но не пустой, а с некоторым наполнением.

Есть ли другие способы, кроме try и перехвата исключения?
>>695987
#146 #695987
>>695963
В чем проблема закопипастить в файл нужное наполнение при создании?
>>695991>>695992
#147 #695988
Возможно явно указать тип переменной, возвращаемого значения?
Если да, то при компиляции компилятор выдаст ошибку, при передаче переменной другого типа?
>>696026
#148 #695991
>>695987
А если он уже существует?
>>696004
#149 #695992
>>695987
Вот в 3.3 есть режим 'х', малаца хорошо сделоли.
#150 #696004
>>695991
Ну проверь, ёпте.
exists = os.path.isfile(filename)
with open(filename, 'w+') as f:
if not exists: f.write(BASE_CONTENT)

Или ты надеялся на магический режим открытия файлов "open_for_writing_and_write_data_from_variable_CONTENT_if_file_got_created_with_this_call"?
#151 #696005
>>695320
Спасибо.
350 Кб, 351x348
#153 #696039
То чувство когда получил первый цент с рекламы на своем джангосайте который ворует контент бьютифулсупом
>>696059>>696259
#154 #696059
>>696039
Вот это понимаю достижение. А где хостишь если не секрет?
>>696070
#155 #696070
>>696059
Купленная (на совсем, да) ультраднищенская впс на cloudatcost.com
Там иногда io тормозит и вообще качество не оче но зато оплачивать не надо. Взял три года назад за десять баксов, три года она простаивала и хостила мои бекапы, теперь вот пользу приносит.
#156 #696259
>>696039
какой контент воруешь?
>>696294
#157 #696294
>>696259
Рецепты всякого говна из одноклассников
>>703213
#159 #696398
>>696383

> Вы что, тут все на *nix разработку ведёте?


> разработку

>>696403>>696404
82 Кб, 1064x658
#160 #696403
#161 #696404
>>696398
Код в итоге тоже на серверных линуксах крутится. А кто там с чего контент поглощает - дело десятое.
80 Кб, 574x574
#162 #696672
Анончик, в классе выдаёт такую ошибку: "NameError: free variable self referenced before assignment in enclosing scope in lambda". До этого всё работало, пока не сделал "пакеты" (__init__.py).
>>696813
#163 #696760
python 2:

>print -9 / 4


>3



python 3:

>print -9 / 4


>2.25



пришлось по нраву, что теперь сразу выдает float вместо int? это хорошо сыграло или похуй?
>>696762
#164 #696762
>>696760
Не хорошо и не плохо. Это правильно и по дзену.
#165 #696768
Начал проходить курс по courser'a, уже поздно, устал после работы, смотрю: практические задания. Элементарные какие-то вещи, как показалось, даже нет смысла приступать, все элементарно же. Но нифига, решил написать. Вот это смешное задание http://pastebin.com/j7t2HEZK

И сразу вопрос возник. Вообще это все можно решить в одну строчку, но мне безумно нравится расписывать как у меня, делать все наглядно, растягивать удовольствие, лол. Это нормально? Или в продакшене это будет непозволительно и надо ебашить коротко? Есть любители расписать как я?
>>696773
#166 #696773
>>696768
От курсеры до продакшна еще успеешь комфортный себе и коллегам уровень детализации найти. Тем более это ж питон где все просто.
#167 #696792
Если переопределить stdout - как вернуться на стандартный? Не могу найти, на что менять обратно, кроме как заранее, перед переопределением присваивать его переменной.
>>696794
#168 #696794
>>696792
Или как создать обертку, которая будет писать и в питоновскую консоль, и куда-то еще?
>>696796
#169 #696796
>>696794
Переопределять внутри обертки stdout на __stdout__?
#170 #696813
>>696672
Код мы за тебя выдумывать должны?
#171 #696831
Чуваки, подскажите, как поймать событие отправки документа на принтер?
>>696834
#172 #696834
>>696831
В дополнение -- нужно именно сам ивент, возможно как-то через PyWin32 (да, на винде, надо для работы). Есть идеи?
#173 #696854
Класс - это ссылочный тип?
возможно что то типа:

arr = []
arr.append(SomeClass())
ref = arr[-1]
ref.Value = 'Value'
arr[-1].Value

>Value


#174 #696856
>>696854
Да, так и есть.
Проверил быстрее, чем вопрос писал
22 Кб, 400x400
#175 #696865
1. Как наебать PyCharm 30 days Trial?
2. Где он хранит дату первого запуска или как-то зацепку, которая дает отсчет этих 30 дней?
3. Кто-нибудь слушал wireshark (или чем-то подобным) его коммуникации с сервером? Он стучит на юзера своим хозяевам (как 90% софта в 2016)?
#176 #696868
>>696854
ржака, блин
>>696865
укажи сервер лицензий http://idea.lanyus.com/ и ебись он конём
параноики из /крипт/ уверены что да
#177 #696871
>>696865
На торрентах же лежит без ебли с лицензиями.
#178 #696872
>>696854
В питоне всё передаётся только ссылками. Просто есть иммутабельные объекты (строки, числа и т.д.), которые никак нельзя изменить.
a = "abc"
b = a

Что бы ты далее ни сделал с ab так и останется равным "abc".
>>696876
#179 #696874
Как заставить работать cx_freeze на 3.5? Он не собирается, сука...
>>696935
#180 #696876
>>696872
Разве из этого не следует, что строка - тип значений?
>>696885
#181 #696885
>>696876
Эээ, что?
#182 #696890
>>696865
Они бесплатно лицензии раздают студентам. И вроде даже мелькало, что тем кто на степике зарегестрирован.
#183 #696935
>>696874
pyinstaller
#184 #696942
Господа, есть кучка картинок. Надо отобрать те, где есть текст. Текст обычно крупный и короткий, вроде того что на демотиваторах лепят. Может быть как русский так и английский. Это реально? Чем?
>>696951>>698629
#185 #696951
>>696942
10 секунд в гугле(загуглил исключительно потому что самому интересно стало):
https://code.google.com/archive/p/pytesser/
https://github.com/tmbdev/ocropy
>>696975>>697185
#186 #696975
>>696951
tesseract небплохо справился, спасибо.
>>698689
#187 #697116
Приложения собранные через pyinstaller можно инжектить в процессы?
>>697118
#188 #697118
>>697116
Чё бля?
#189 #697159
Есть один джангопроект. Нужно сделать одну внутреннюю функцию, которая будет дёргаться с различными аргументами. Куда положить файл с этой функцией?
>>697162>>697190
#190 #697162
>>697159
Вся суть джанго.
>>697166
#191 #697166
>>697162
Что? Не понял.
#192 #697185
>>696951
Прикрутил еще cuneiform, вообще отлично стало. pyocr сразу обоих умеет.
#193 #697190
>>697159
project/app/helpers.py
#194 #697197
Анчоусы, что лучше первым прочитать, fluent python или python unlocked?
640 Кб, 1952x1953
#195 #697308
Анончики, а допиливать через всякие replace и регулярочки выхлопы хтмл-парсеров - это норма?
Или я чего-то не понимаю, или теги с классами порой кривые - но не всегда удается точно выделить какой-то элемент, приходится брать с запасом и вырезать вручную лишнюю инфу.
#196 #697453
>>697308

>но не всегда удается точно выделить какой-то элемент


покажи как выделяешь, какие входные данные, что получаешь и что хочешь получить

и вообще, используй xpath
>>697581
#197 #697483
>>695282
здесь есть довольно много примеров http://eax.me/programming-language-learning/
#198 #697485
Вопрос по джанге.
Не совсем понимаю философию и общий подход.
Есть модель с такими то полями. Я хочу переодически(автоматически) добавлять новые пользуясь информацией из текстового файла.
Вопрос как это оформляется? В самой модели в виде классового метода? Это пока единственное что я сам могу предположить.
И как сделать переодические дейсвия(ну, вот это самое обновление)? Это делается на уроне джанги или сервера?
>>697489
#199 #697489
>>697485

> И как сделать переодические дейсвия


celery, читаешь файл а асинхронном таске -> ложишь данные в модель
#200 #697532
>>697308
beautifulsoup весьма удобен для навигации и выделения того, что тебе нужно. Там же и замена\заполнение\создание новых тегов есть, в удобном порядке.
#201 #697533
>>697308
Ну и да, вполне норма, почему нет? Самому менять шрифт, цвет, или вообще вырезать ненужные куски.
#202 #697542
>>695660
Ф5 :)
#203 #697555
Можно ли в пакет для pypi запихать sqlite базу?
#204 #697581
>>697453
>>697308
Есть страница с таким куском: https://gist.github.com/anonymous/b6ea812e562a46f8fadc
Мне нужно выцепить TARGET_LINK и TAGRET_TEXT.
Использую суп:
element=soup.find_all("div","title")
element[0].get_text()
И оно захватывает кучу мусора. Иначе вообще ничего не находит.
В супе есть нормальный xpath? Раньше юзал селекторы на lxml, но то тоже для меня была магия.
>>697656>>697664
#205 #697656
>>697581
Ну всё, покурил пару часов маны, теперь вроде разобрался. Суп таки понятнее, чем lxml.
#206 #697664
>>697581
в треде анон упоминал, что суп может использовать lxml
если хтмл такой как по ссылке, хпатх будет примерно таким
//div[@class="title"]//a[2] для выбора элемента ссылки,
//div[@class="title"]//a[2]/text() для теста
//div[@class="title"]//a[2]/@href для href
>>697670
#207 #697670
>>697664
Я сделал вот так:

soup.findAll("a",{"data-ga-click":"text"})[0].get('href')
soup.findAll("a",{"data-ga-click":"text"})[0].text

По-моему, это более читабельно.
>>697672
#208 #697672
>>697670
findAll можно вообще не писать.
soup() — синоним soup.findAll()
169 Кб, 1024x564
sage #209 #697906
Я смотрю дата майнинг щас в тренде. Тот же google deep dream написан на питоне. Что думаете по этому поводу питонисты?
>>697914
#210 #697908
сажка приклеилась
#211 #697914
>>697906
А что тут думать? Питон у умных дядек всегда в тренде был. Как у нас в шапке говорится - его используют даже в НАСА!

https://github.com/alexjc/neural-doodle - вот еще смотри какая годнота, порадуй своего енота шедевральным рисунком.
>>698018
#212 #697941
Питонач, есть ли готовая библиотека для обработки входящих звуков и сравнения с уже записанными звуками в реальном времени? Хочу голосовое управление запилить.
>>697943
#213 #697943
>>697941

> для обработки входящих звуков и сравнения с уже записанными звуками в реальном времени


Плохой вариан для голосового управления, попробуй гугловскую speech api, на пистоне уже достаточно велосипедов.
>>697949
#214 #697949
>>697943
Мне нужно для игры, задержка большая будет.
>>697962
#215 #697962
>>697949
Значит ищи offline аналог, их сейчас достаточно развелось, но есть велика вероятность соснуть с русским.
Для таких задач используются системы распознавания голоса, если и найдешь что-то для сравнения аудиозаписей то прокатит в лучшем случае для одного голоса.
>>697975
#216 #697975
>>697962
Я так понял это всё будет хорошо работать на нейросетях. Вначале пользователь наговаривает (обучает нейросеть), а уже потом программа приходит в режим слушания и работает.
>>698108
#217 #698018
>>697914
Помню пару лет назад пытался осилить. Использовал биндинг OpenCV для питона, детектил квадратики, кружки. Для нейросетей использовал ffnet. Может ещё какие либы/статьи по тематике посоветуешь?
>>698072
#218 #698072
>>698018
OpenCV долго учится?
>>698086
#219 #698086
>>698072
Я ж его не до конца выучил. По-сути, повторял готовые примеры, из блога этого индуса http://opencvpython.blogspot.ru/
Ну научился линии на капче вырезать, пека-фейс детектить, не более.
#220 #698108
>>697975
На днях куалком выкатили процы с каким-то апи для оффлайн голосовой и пикчераспознавалки на основе моднявых нейронок. Что наверное значит, что на десктоп-процах это уже точно не должно тормозить.
#221 #698160
Поцоны, а для веб-паука лучше использовать twisted, как я понял? Весь инструментарий который для этого нужен там уже есть, HTTP.Client, да и его асинхронная архитектура, как нельзя лучше подходит, часть кода запрашивает страницы, куда-то сохраняет, другая часть их обрабатывает. Никто-никого не блокирует. Раньше делал на threading + lock, но через пару часов он ввешался.
>>698171>>698189
#222 #698171
>>698160
asyncio
#223 #698189
>>698160
scrapy, там уже есть асинхронщина
>>698215>>698216
#224 #698211
Сап. Только вкатываюсь в Python, и, собственно, написал первую небольшую программу.
Ищет файлы с одинаковым хешем, и если находит такие - проверяет, не одинаковые ли они, после чего выносит все повторы, чтобы оставить только уникальные.
Интересует, что можно было сделать лучше/правильнее.

http://pastebin.com/T9meFC4r
>>698213
#225 #698213
>>698211
Сложна.
#226 #698215
>>698189
может я не так выразился

> веб-паука


srapy, grab - это немного другой иструментарий. Это crawler - он только скачивает.
>>698515
#227 #698216
>>698189
может я не так выразился

> веб-паука


Хочу полноценную поисковую машину - скачивание, хранение, обработка.
srapy, grab - это немного другой иструментарий. Это crawler - он только скачивает.
>>698515
#228 #698254
>>693409

>5 лет в C++


>@


>Сортируешь графы графов


>@


>Моделируешь движение планет


>@


>Алгоритмизируешь эволюцию одноклеточных


>@


>Не написал ни одной прикладной программы


>@


>Полдня в баше


>@


>Автоматизировал все, что делаешь на компьютере


>@


>Баш за тебя двачует капчу, ищет порно и пишет С++ код


>@


>От нехуй делать сел изучать пхп


>@


>К вечеру написал свой Фэйсбук


>@


>К утру стал миллионером и улетел в Лондон



спизжено из соседнего
51 Кб, 468x466
#229 #698268
Тут писал, что в лямбде с конектом кнопки (Gtk 3):
buttonMenuSlide.connect("clicked", lambda w: self.menuSlideChange(boxButton,buttonMenuSlide)) выползает такая ошибка:

"free variable 'self' referenced before assignment in enclosing scope"

Вот проект: http:// rghost.ru/7YYbcKldP
>>698269>>698402
#230 #698269
>>698268
Что я делаю не так? Работало до создания __init__.py в папках. Добавлял через sys.path.append()
28 Кб, 348x348
#231 #698402
#232 #698405
>>698402
только_снейк_кейс_только_питон_стайл
>>698468
37 Кб, 655x301
#233 #698434
Я успешен.
>>698440>>698464
#234 #698439
Что использовать для CI? Snap-ci, Jenkins или что то другое?
>>698441
#235 #698440
>>698434
ещё не поздно сменить ник
>>698441
#236 #698441
>>698439
Sanelotto, разумеется.
>>698440
Зачем?
#237 #698452
Qt или Gtk? Кроссплатформенность без ебли важна.
>>698945>>700337
#238 #698454

> кросплатформенный тулкит или gnu/linux тулкит


> Кроссплатформенность без ебли важна.


Ну хуй знает.
>>698455>>698456
#239 #698455
>>698454
Я не просто так упомянул, что без ебли. Вдруг там ещё сотню криво портированных зависимостей неофициальным инсталлером пятилетней давности нужно тянуть.
>>698458
#240 #698456
>>698454
А, не понял тебя сначала. Gtk тащемта кроссплатформенный и уже давно.
#241 #698458
>>698455
Скорее "кроссплатформенный", в gtk3 уже положили хуй на поддержку отличных от gnome3 окружений, а под остальные платформы баги вообще годами висят.
#242 #698464
>>698434
Чем только описание, чем отличается от scp?
>>698467>>698485
#243 #698465
>>698402
А по делу ничего не скажешь, андерскорышь?
#244 #698467
>>698464
*читал
#245 #698468
>>698405
Почему "только"?, пусть во всяких жабах хоть в жопы ебутся, но тащить этот срам в пистончик тянет на отдельный котел.
#246 #698485
>>698464
Ничем, тащемта. В любом проекте главное - правильно вбросить.
#247 #698496
>>698402

>за chamelCase получаешь отдельную порцию урины


Синтаксис повершелла видел?
>>698498
#248 #698498
>>698496
Причем тут калечный павершелл? Мы в питонотреде.
>>698499
#249 #698499
>>698498
Там ещё веселее. И никто не жалуетсянаверное
>>698501
#250 #698500
Братишки, я вам покушать принёс
https://habrahabr.ru/company/geekbrains/blog/280169/
листать до параграфа Пробелы в Python
>>698503
#251 #698501
>>698499
Охуительные у тебя аргументы. По пепу снейк_кейс - значит снейк_кейс, классы КамелКейс - значит классы КамелКейс. Какие паверщели, ты о чем, какая у них связь с питонами? Ой, все.
>>698502>>698505
#252 #698502
>>698501

>2016


>habr


Ясно.
>>698503>>698505
#253 #698503
#254 #698505
>>698501
pep - это рекомендации, а не требования. Что хочу, то и высираю, никто мне не может запретить хоть капсом всё писать.
>>698502
Как что-то плохое.
>>698507
#255 #698507
>>698505
Придерживаясь общего стиля тебе самому же потом легче будет в чужом коде ориентироваться. А людям - в твоем. Хотя о чем я с хабрабыдлом разговариваю.
#256 #698512
Абсолютно весь код, даже название .py файла подчеркивается красным, будто ошибка, а сама программа прекрасно запускается. Среда - PyCharm. Щито поделать?
#257 #698515
>>698215
>>698216
в scrapy, в отличие от async и прочего, уже есть обход сайта по ссылкам, экстракция данных и т.д.

тебе остается полученные данные куда-то в базу пихать с каким-нибудь elastic search (прототип на коленке) или специализиированным поиском (в перспективе)
>>698692
#258 #698629
>>696942
Сегодня импортпитон'овской рассылкой прилетело:
https://gist.github.com/dannguyen/a0b69c84ebc00c54c94d
>>698714>>698736
#259 #698689
>>696975
плюсую тессеракт, сам хотел вспоминить его название, но забыл.
#260 #698692
>>698515
Спасибо, за ответ конечно, но я скрапи уже пользовался и он мне не понравился.
#261 #698714
>>698629
Спасибо за еще один вариант. Попробую.

У меня сейчас cuneiform + tesseract, но даже с ними из тысячи русскоязычных картинок 3-4 штуки распознаются ошибочно. Finereader на них тоже фейлится. Видимо русский язык НЕ НУЖОН.
>>698720
#262 #698720
>>698714
А преобработку не пробовал делать? Увеличить размер, какие нибудь фильтры наложить? Может они у тебя пережатые нахуй?
#263 #698736
>>698629

> Try Google Cloud Platform for free


> Credit Card number is invalid


> Authorization failed: Invalid credit card details


> We use your billing information to verify that you're a real person


За триал на тысячу юзов. Ох уж этот гуголь
>>698738
#264 #698738
>>698736
appengine скатился, да.
#265 #698919
Что на пистоне взять для быстрого бекенда, торнадо или что то на основе asyncio?
>>698928
#266 #698928
>>698919
bottle?
>>698932
#267 #698932
>>698928
Но он же быстрый только потому что там ничего нет.
>>698936
#268 #698936
>>698932
значит я тебя не правильно понял, я думал быстрый - время на развертку приложения.
#269 #698945
>>698452
Бамп
#270 #699051
а в третей версии работает такая конструкция? https://docs.python.org/2/tutorial/errors.html#defining-clean-up-actions
лень скачивать.
try:
except:
else:
finnaly:
>>699056
#271 #699056
>>699051
Попробуй в url 2 на 3 поменять.
>>699060
#272 #699060
>>699056
норм
#273 #699232
b =["1","2","3","4"]
test = {frozenset([a,a1]) for a in b for a1 in b}

Почему в test попадают не только комбинации frozenset({'2', '3'}), но и элементы поодиночке, т.е. frozenset({'2'})?
>>699239
#274 #699238
Анончики - питонобоги, требуется помощь
Как сделать свой рекурсивный словарь?
Ну то есть такую штуку:

>>d = RecursiveDict()


>>d['key1'] = 'val1'


>>d['key2']['key2a'] = 'val2'


>>print d # печатает {'key1': 'val1', 'key2': {'key2a': 'val2'}}


Как я понял, надо что-то делать в __getitem__, но что - я хз
>>699278>>699280
#275 #699239
>>699232
попадают не по-одиночке, а (2, 2) и (4, 4)
>>699240
#276 #699240
>>699239
а т.к. это set, то копии удаляются
>>699250
#277 #699242
Аноны, в книжке bite of python написано что нужно установить редакторы либо VIM, EMACS, Komodo edit. Самое забавное то, что не один редактор не хочет нормально работать. То лагает. лол. То ошибку выдает. Есть альтернативные редакторы? или среды разработки?
#278 #699243
>>699242
notepad++ для начала будет достаточно.
#279 #699245
>>699242
Sumblime,
PyCharm,
Intellij IDEA с плагином для питхона
#280 #699247
>>699242
Pycharm, он дефакто стандарт.
#281 #699248
Спасибо, анончики :з
#282 #699250
>>699240
Понял, спасибо.
#283 #699259
>>699242
Pycharm - ультрагоднота. Мощнейший инструмент разработки на питоне.

Sublime Text 2
#284 #699260
>>699242
Atom или PyCharm.
#285 #699278
>>699238
Пробовал переопределять getitem, но при двух квадратных скобках оно не работает
вылетает ошибка
ай нид хелп, браза
#286 #699280
>>699238
http://pastebin.com/71SMk99K
это говнокод, за его работу я не ручаюсь. но думаю понятно в какую сторону копать
>>699286
#287 #699286
>>699280
два чая тебе, мой друг
узнал про магию __missing__, спасибо
>>699310
67 Кб, 1028x705
#288 #699310
>>699286
Питон - язык с открытым исходным кодом, ты можешь посмотреть исходный код любой функции, класса, базового типа и переопределить его. В документации есть ссылки на исходные коды.

Ключевые слова для поиска:
https://www.google.ru/search?q=python+переопределение+методов
https://www.google.ru/search?q=python+магические+методы

На сайте IBM например, есть хорошие статьи:
https://www.ibm.com/developerworks/ru/library/l-python-elegance-2/
https://www.ibm.com/developerworks/ru/library/l-python_part_6/
>>699458
Не работает #289 #699401
В общем, нашел единственное решение своей задачи в этом скрипте:
https://github.com/ahmetkotan/cpbitmapTopng/blob/master/bitmapTopng.py
Переделал его для упрощения в http://ideone.com/OLsIZM
В случае идеона - не могу загрузить и выгрузить пикчу (или могу?). В случае линукса - вот такая ошибка:
http://pastebin.com/G1PgwEMG
Как быть?
#290 #699424
>>699401

>with open(dosya,'r') as f:


Ты режим забыл
>>699433
#291 #699432
>>699401

>dosya: Нет такого файла или каталога


import os
dosya = os.path.join(os.curdir, os.sep, 'LockBackground.cpbitmap')
>>699436
#292 #699433
>>699424
Так он по умолчанию же
я вообще никогда не писал на питоне, но итак работает вроде. Только файл-то все равно на идеон не передать
#293 #699434
>>699401
Как файл запускаешь?
Shebang прописал?
>>699436
#294 #699436
>>699432
Попробовал, хуй. Изначально там было
dosya = 'LockBackground.cpbitmap'

>>699434
Я вообще не знаю, что это, лол. Прочтите внимательно. Скрипт не работает на идеоне, потому что я туда, на идеон, не могу загрузить файл этот. И скачать результат, соответственно, тоже. А у меня на линуксе, видимо, нет никакого PIL, вот он ее и не загружает.
>>699443>>699446
#295 #699443
>>699436

>А у меня на линуксе, видимо, нет никакого PIL, вот он ее и не загружает.


пиздос, с этого и надо было начинать
попробуй ввести в питоновской консоле import PIL
если пишет "ImportError: No module named PIL"
то загрузи его

>sudo apt-get install python-PIL


это сторонний модуль же
>>699472
#296 #699446
>>699436
На линуксе он не понимает что ты от него хочешь. Запускай таким образом python script.py
>>699472
#297 #699454
https://github.com/anon276/testing
Сагалка тредов, бот с функциями парсинга двача и прочее
Дискасс
36 Кб, 303x404
#298 #699458
>>699310

> 2.7.11

#299 #699461
>>699454

>async


>threading


чет я нихуя не понял как это совместимо
>>699471
#300 #699471
>>699461
Если ты про CHGK - то это на основе бота Red: https://github.com/anon276/testing/blob/master/Discord_[bot]CHGK/release/README.md
Хуй знает как там устроено - в asyncio не шарю, если шаришь можешь объяснить на пальцах как оно работает?
#301 #699472
>>699443
Проверил, есть.
>>699446
http://pastebin.com/bHumRqiT
Такие дела.
>>699481
#302 #699475
>>699454
Внучаев, ты таки научился программировать!
>>699476
#303 #699476
>>699475
Какой еще внучаев, ты ебанутый?
#304 #699481
>>699472

>with open(dosya,'rb') as f:


попробуй
>>699489
#305 #699489
>>699481
Уже. Та же хуйня. А это не может быть из-за того, что аффтар для второго питона писал, например, или для третьего, но какой-нибудь древней версии?
#306 #699497
>>699489
Щас скачал, У меня на шинде работает.
Причем режим "RB" - обязателен, без него функция struct.unpack ругается.
>>699505
#307 #699499
>>699454
Поставил класс и подписался на самом деле нет
#308 #699504
>>699489

>UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 3: invalid start byte


>f.read()


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

>sudo apt-get install python2.7


>python 2.7 test.py LockBackground.cpbitmap

#309 #699505
>>699489
>>699497
Да, у меня с 2.7 работает, с 3.4 - нет. Вот только итоговое изображение, увы, все сине-голубое. Можешь объяснить вкратце, как эти параметры анпака или фромстринга, или чего там еще, можно переделать, чтобы попробовать исправить?
>>699515
#310 #699515
>>699505
тебе обязательно под 3 надо исправить?
>>699517
#311 #699517
>>699515
Абсолютно необязательно. Я бы очень хотел исправить результат с синюшной поебени на его ожидаемый жёлтый.
>>699519
1755 Кб, 744x1392
#312 #699519
>>699517

>синюшной поебени


>ожидаемый жёлтый


что? пикрил - конвертированное изображение? Где ты тут синий и желтый увидел?
>>699520
#313 #699520
>>699519
Ну, я не его пикчу тестирую, а сразу свою. Ее итоговые основные цвета - желтый, черный и коричневый. А у меня получается голубой, синий и черный. Я всю эту хуйню затеял только из-за необходимости восстановить пикчу.
#314 #699531
>>699520
Значит она была закодирована не тем методом, каким ты пытваешься раскодировать. (не RGBA). Попробуй второе 'RGBA' заменить на любой другой метод из представленных здесь:
http://effbot.org/imagingbook/decoder.htm
>>699535>>699550
#315 #699535
>>699531
Первый, второй из двух, или оба?
>>699546>>699550
#316 #699546
>>699535
второй из двух.
#317 #699549
>>699520
А ты не пробовал сделать так?
from PIL import Image
Image.open(inputfile).save(outfile, 'png')
>>699552
#318 #699550
>>699535
А, извиняюсь, совсем отупел, лол.
>>699531
Тут вообще нет RGBA по твоей ссылке. Замена на любой оттуда - RGB, BGR - unknown raw mode
#319 #699552
>>699549
Cannot identify image file
#320 #699557
А если менять оба сразу - все файлы одинаковые
67 Кб, 481x448
#321 #699562
Платиновый вопрос.
Вкатываюсь в Питон. Решил начать с кодакадеми + книжка (?).
Какую книгу взять, как связку с кодакадеми и куда двигаться дальше?
Алсо, там сейчас урезанный курс с возможностью апгрейда. Стоит ли покупать?
>>699568>>700440
#322 #699568
>>699562
Какая нахуй связка, если это базовый курс?
>>699573
#323 #699573
>>699568
А что тогда? Пробовал читать Think Python - обосрался на первых же упражнениях по рисованию цветков. Пробовал Доусона - хорошо пошло, но в треде сказали, что хуйня. Пробовал Лутца - скучно. Укус питона без упражнений после глав, а для меня это важно.
>>699586>>699595
#324 #699575
Какие консольные редакторы есть помимо вима годные?
>>699588
#325 #699586
>>699573
Ну так продолжай дрочить на доусона, если нормальные книги для тебя слишком скучные.
#326 #699588
#327 #699595
>>699573

>хорошо пошло, но в треде сказали, что хуйня


А ты побольше анонов с двача слушай.
>>699600
#328 #699600
>>699595
Послушал тебя и больше слушать не стал, пошел учить бейсик.
#329 #700337
>>698452
Бамп вопросу
#330 #700440
>>699562
на степике курс пройди лучше
>>700488>>700565
#331 #700444
Поцоны почему запрос не правильный? Версия MySQL 5.5. http://pastebin.com/kqxDWXGe
>>700534
#332 #700488
>>700440
Где?
#333 #700534
>>700444
разобрался, оказывается нельзя было таблицу "index" называть.
#334 #700565
>>700440
Пиздец. Какая-то хипстота заикающаяся ведёт.
>>700571
#335 #700571
>>700565

> для того, чтобы получить ОСТАТОК от деления мы можем воспользоваться операцией ПРОЦЕНТ


Анон, который советовал, ты серьёзно? Это говно вообще кто-то смотрит?
102 Кб, 454x1651
#336 #700626
Сидел в б. Увидел пик. Пришла идея написать бота для телеграма, который играет с тобой в вн.
Может, соберем команду как с Webm-сайтом?
>>700754
#337 #700647
Поцоны, я тут пытаюсь заполнить большую базу данных порционально, и пришел к вот такому коду.
http://pastebin.com/vp6VHpsn
Можно ли сделась по-красивее, более pythonic?
>>700665
#338 #700665
>>700647
Я бы сделал так - http://pastebin.com/2m7KejLa .
#339 #700754
>>700626
Там дел на двадцать минут. Можно прямо на баше.
#340 #700771
>>699520
А ты уверен, что у тебя та же версия bitmap'а? Может у тебя и альфа-канала нет, или битность другая. Распарси хедер и посмотри, что там написано.

А ещё скинь свою пикчу, чтобы и мы потестить могли.
#341 #700816
чачани, в "гайд У Успех" содержит упоминание неких форумов, что это за форумы по змее? или стака хватает?
#342 #700817
Qt или Gtk? Кроссплатформенность без ебли важна.
>>700821
#343 #700821
>>700817
Все на кутях для кроссплатформенности.
>>700917
#344 #700831
Как правильно поступать с зацикленным инкрементированием переменой? То есть, когда она увеличивается до определённого порога (длина списка, скажем), после чего сбрасывается до 0 и всё по новой.
Взять, к примеру, покер. Есть круглый стол с игроками. Есть дилер, следующий от него игрок должен поставить малый блайнд, второй — большой, а третий будет ходить. Но игроков может быть не четыре, дилером может быть последний игрок в списке, они могу постоянно повышать, поэтому нужно много раз по кругу проходить на одном и том же ходу.
С остатком от деления на длину списка получается вот такая херня — http://pastebin.com/3u4StifY , что не очень красиво. Или вариантов нет?
#345 #700838
>>700831
Как вариант, конечно, засабклассить список/тупл и делать всё это внутри __getitem__'а, чтобы код чуть короче был, но суть та же останется.
>>701002
#346 #700851
>>700831
посмотри, может, itertools.cycle вкатит
>>700864
#347 #700864
>>700851
Он по индексам уже не даст обращаться ведь. Да и в функции play_round тоже особо не пригодится, так как не понятно, как следить за тем, что каждый хотя бы раз сыграл.
#348 #700882
>>700831
Нормально ващет.
#349 #700895
>>700831
Почому не используешь циклический список и итераторы?

Осторожно, батхерт!
Но нееееет лучше поебаться с инкрементированием индексов. И после такого, кто еще будет кукарекать что СТРУКТУРЫ ДАННЫХ НИНУЖНЫ АЛОГАРИТМЫ ТОЖЕ ВИДЬ ВСЕ УЖЕ РЕАЛИЗВАВНА ДЛЯ НАС ЛУЧШЕ УЧИТЬ ФРЕЙМВОРКИ
>>700897
#350 #700897
>>700895

> циклический список


Чё эт?
>>700898>>700899
#351 #700898
>>700897
Google, muthafucka, do you use it?
>>700900
#352 #700899
>>700897
Как список, только после жопы идет голова.
>>700900
#353 #700900
>>700898
>>700899
И где он в пифоне?
>>700903
#354 #700903
>>700900
Хуй знает. Я питон незнаю, просто мимопроходил.
>>700909
#355 #700909
>>700903>>700903
Заебись, пришёл за советом, как лучше, а меня обосрали, что я не делаю это самое "лучше". Да ещё и сам не знает, как же это в питоне сделать. Уёбывал-ка ты в свой тред плюсов.
>>700911
#356 #700911
>>700909

> циклический список


Я знаю как его сделать, вопрос в том, что я незнаю есть ли он в стандартной библиотеке.

>Уёбывал-ка ты в свой тред плюсов.


Nyet. Мне тут хорошо.

А теперь пиздуй читать структуры данных, быдло!
>>700915
#357 #700915
>>700911
Ну вот допустим, прочитал я это - http://prog-cpp.ru/data-ocs/
Это что же, мне вместо примитивного

>player[i % len(players)]


ебошить сначала собственый класс циклического списка, заполнять его, прописывая в каждый элемент указатель на следующий, так ещё потом и

>player = players[dealer]


>while True:


>....player.make_turn()


>....player = players.next() # тут типа следующий элемент выдаётся


делать?

В чём его преимущества на таких мелких задачах? А то получается хотя и якобы "правильно", но уж чересчур громоздко, а я на магическую функцию какую-нибудь расчитывал.
>>700922
#358 #700916

>циклический список


collections.deque?
>>700923
#359 #700917
>>700821
Можно поподробнее, чем они хуже/лучше друг друга с этой точки зрения?
>>700919
#360 #700919
>>700917
Как ты заебал, платиновая зелень.
>>700927
#361 #700922
>>700915
Ниче не даст. Лишние расходы на абстракцию.
Рубрика вредные советы

Вам шашечки или ехать?
Есть нормальный, поддерживаемый, и самое главное логичный метод - кольцевой список.
Есть метод с хаком, неочевидный (через месяц попробуй понять что ты написал), ВОЗМОЖНО быстрый, преждевременно оптимизированный метод - ебля с индексами.
Выбирай сам. Я бы список выбрал. Обернул пердолинг с указателями в класс циклического списка, и юзаешь через общепринятый интерфейс.
>>700928
#362 #700923
>>700916

> double ended queue


Нет.
>>700924
#363 #700924
>>700923
Там rotate есть и прочие ништяки. Посмотри внимательней.
>>700930
#364 #700927
>>700919
Ну так запилите в шапку/вики. Как вообще можно что-то понять, если либо пишут без объяснений, либо "я попробовал то и это, мне больше понравилось что-то ещё, а ты используй что нравится тебе"
>>700931
#365 #700928
>>700922
Но мне же тогда придётся ебаться с тем, как определить, когда я его целиком обошёл, ведь начальная точка всегда разная, а значит перед началом прохода придётся сохранять эту точку для сравнения. Ну а точка эта будет... индексом.
Ради упражнения может и сделаю этот список, конечно, но что-то у меня сомнения, что мне под него придётся переделывать много кода вокруг.
>>700932
#366 #700930
>>700924
Возможно, но двусторонняя очередь это не кольцевой список. Кольцевой список просто идет по кругу. Голова - ... - жопа - голова - ... - жопа
А тут ты будешь ебаться с rotate.
#367 #700931
>>700927
Другого ответа и быть не может. Это тебе не Tkinter сравнивать с чем угодно, где ответ очевиден.
>>701038
#368 #700932
>>700928
Добавляешь служебный элемент списка тогда. У него нет логики, он по сути невидим. Просто как маркер обхода.
#370 #700935
>>700934
Чая этому.
>>701007
70 Кб, 480x640
#371 #700997
Есть тут те кто работает с питоном, какими навыками владеете?
>>701146
#372 #701002
>>700838
наверное, лучше сделать так, по крайней мере ОПЕРАТОР ПРОЦЕНТ не надо каждый раз указывать
#373 #701007
>>700935
а меня опсыкали за итертулс ((
>>701012
#374 #701012
>>701007

>опсыкали


Это был чай уровня /b/
#375 #701024
>>693065 (OP)
Помогите разобраться с регулярным выражением.

Есть текст типа:

1. Основной заголовок
1 – Первый пункт
2 – Второй пункт
3 – Третий пункт

он считывается по строкам. Нужно брать строки с пунктами. Выражение для этого:
\d{1,2}\s+(–){1}.

На http://pythex.org оно работает нормально, выделяет все три пункта, но в программе

import re
text1=["1. Heading", "1 – Punkt1", "2 – Punkt2", "3 – Punkt3"]
print type(text1)
text="""
1. Heading
1 – Punkt1
2 – Punkt2
3 – Punkt3
"""
tochka=re.compile ("\d{1,2}\..
$")
defis=re.compile("\d{1,2}\s(–){1}.$")
for p in text1:
result=defis.findall(p)
if (result):
for p in result: print p
result=tochka.findall(p)
if (result):
for p in result: print p

после обработки каждой строки с дефисом выдаётся только дефис, хотя строка с точкой распознаётся нормально. Почему ?

1. Heading




Что значат на Pythex в правок окне Match captures эти дефисы
:
Match 1
1.-
Match 2
1.-
Match 3
1.-

Ссылка на Pythex

http://pythex.org/?regex=\d{1,2}\s(-){1}.
&test_string=1.%20Heading%0A2.%20Heading%0A1%20-%20Punkt1%0A2%20-%20Punkt2%0A3%20-%20Punkt3&ignorecase=0&multiline=0&dotall=0&verbose=1
#375 #701024
>>693065 (OP)
Помогите разобраться с регулярным выражением.

Есть текст типа:

1. Основной заголовок
1 – Первый пункт
2 – Второй пункт
3 – Третий пункт

он считывается по строкам. Нужно брать строки с пунктами. Выражение для этого:
\d{1,2}\s+(–){1}.

На http://pythex.org оно работает нормально, выделяет все три пункта, но в программе

import re
text1=["1. Heading", "1 – Punkt1", "2 – Punkt2", "3 – Punkt3"]
print type(text1)
text="""
1. Heading
1 – Punkt1
2 – Punkt2
3 – Punkt3
"""
tochka=re.compile ("\d{1,2}\..
$")
defis=re.compile("\d{1,2}\s(–){1}.$")
for p in text1:
result=defis.findall(p)
if (result):
for p in result: print p
result=tochka.findall(p)
if (result):
for p in result: print p

после обработки каждой строки с дефисом выдаётся только дефис, хотя строка с точкой распознаётся нормально. Почему ?

1. Heading




Что значат на Pythex в правок окне Match captures эти дефисы
:
Match 1
1.-
Match 2
1.-
Match 3
1.-

Ссылка на Pythex

http://pythex.org/?regex=\d{1,2}\s(-){1}.
&test_string=1.%20Heading%0A2.%20Heading%0A1%20-%20Punkt1%0A2%20-%20Punkt2%0A3%20-%20Punkt3&ignorecase=0&multiline=0&dotall=0&verbose=1
>>701030
#376 #701030
>>701024
сорри, вот ссылка на pastebin с нормальным текстом
http://pastebin.ru/GtzAByrr
>>701121
#377 #701038
>>700931

>Tkinter


Он то как раз везде зашибись работает.
>>701040
#378 #701040
>>701038
И выглядит как привет из 90х.
>>701041
#379 #701041
>>701040
Ну и похуй вообще. Да и то это только по дефолту так, темки уже давным давно прикручивать можно.
#380 #701066
Анон, нужен совет.
Пилю браузерную карточную игру, общение сервера с клиентом через сокеты. Вопрос такой: между действиями игроков нужно вставлять небольшие задержки, чтобы на клиенте успела проиграться анимация и у игроков было время на оценку ситуации. Сейчас реализовал примерно так (сервер асинхронный есличо):

for action in game.act():
sleep(1)
socket.broadcast(action)

Это код контроллера, game.act() - метод модели, который йилдит игровую ситуацию (за один ход игрока она может обновиться несколько раз)
Есть подозрение что я хуй и что-то делаю не так, расскажите мне за это.
Возможно, задержку стоит вставлять на клиенте а не на сервере? Но тогда возникает проблема с тем, что на каждый ход игрока выделено ограниченное время, и это время будет считаться некорректно если клиент будет хакнут.
>>701181>>701527
#381 #701094
Анон, сос.
Кто-нибудь тут писал собственный парсер json файлов?
В json проблем нет, а с json в пайтон-объект - сложновато
>>701096
#382 #701096
>>701094

>парсер json файлов


eval()
>>701105
#383 #701105
>>701096
он же крашится
#384 #701108
Аноны, вот вы все в тредике активные такие. А кто из вас работает с питоном по работе и сколько получаете? И сколько у самих опыта использования? Мне интересно, плюс смотрю шансы вкатывания на работу джуном в ДС из мухосрани.
#385 #701115
>>701108
интересный вопрос
тоже хотел бы знать
я школяр-студентота. учу ещё его
#386 #701118
Если мне нужно подключить какой-нибудь модуль к джанге, не являющийся джанговым, например пандас - куда его прописывать setting.py? В INSTALLED_APPS?
>>701518
#387 #701121
>>701030

>после обработки каждой строки с дефисом выдаётся только дефис


Убери круглые скобки вокруг дефиса.
>>701151
#388 #701143
Анон, питон знаю на базовом уровне (переменные, функции, циклы, вот это всё). Хочу написать бота для IRC. Какого бота посоветуешь взять? И как вообще происходит процесс? Я запускаю скрипт, в котором указываю сервер\канал\никнейм и запускаю его и бот коннектится по заданным параметрам?
#389 #701146
>>701108
Мне не ответили, походу просто так в нём все ковыряются.>>700997
#390 #701151
>>701121
Спасибо, получилось. Т.е. он его считал как отдельную группу и выдавал только эти группы в результате ?
>>701157
#391 #701152
>>701108
Ты мне все равно не поверишь. Да и зачем спрашивать тут? Просто посмотри вакансии - поймешь среднюю температуру по больнице.
>>701261
#392 #701157
>>701151
Ты всё правильно понял.
#393 #701181
>>701066
Бамп, поможите, аноны!
#394 #701261
>>701152

>какой смысл врать на анонимной борде

>>701267
#395 #701267
>>701261
Какой смысл не врать?
24 Кб, 367x529
#396 #701278
>>701108
Полгода на удаленке за еду работаю 150$, такие дела.
378 Кб, 1024x576
#397 #701302
приветствую всех питонистов и питонисток в этом треде! недавно заинтересовался парсингом и первый серьезный (для меня) проект связан с Викисловарем. суть такова: у меня есть список в котором ~140к слов и я хочу найти на каждое соответствующую страницу. а это значит что мне потребуется 140к запросов. наверняка эти запросы отслеживаются сайтом и их количество будет выделятся на фоне.

Вопросы:

1. считается ли подобное сайтом(любым) как что-то плохое?
2. и если да то могут ли мне запретить доступ к нему, как какому нибудь боту?

ps. я новый в этом деле. не смейтесь надо мной слишком сильно
#398 #701328
>>701108
я, 170к
#399 #701330
>>701302
Лашпед, выкачай оффлайн-вики и ебись.
#400 #701360
>>701302
Не знаю как с Википедией, но обычно небольшие ограничения есть. При частых запросах требуют вводить капчу при каждом запросе. Я бы сделал так: Слал запросы, а при блоке залезал под проксю и продолжал.
#401 #701371
#402 #701388
Двачик-скриптачик, ответь, где-же мне практиковать свой великий скилл в написании программ? Знаю питон лучше писечки своей тяночки, а никаких идей по практике нет...
#404 #701403
>>701388
А какая писечка у твоей тяночки?
#405 #701452
Какое же говно ваша джанга. Пиздец просто. Магия в каждой дырке, никаких объяснений.
>>701457
#406 #701457
>>701452
Оно становится оче логично после некоторой степени погружения. Другой вопрос что само "погружение" хуй проработано нормально - это да. В любом случае магии как таковой (ror'овской, например) в питоне нету.
>>701507
305 Кб, 1261x1000
206 Кб, 1920x1080
#407 #701458
>>701388
Для начала, например.
98 Кб, 462x634
#408 #701460
Что ещё надо учить в придачу к питону? Не заинтересован сайтостроением, больше интересна "сетевая" часть, серверы и прочее, правда сомневаюсь что по такому можно будет найти работу на фрилансе.
>>701466>>702932
#409 #701466
>>701460
На фрилансе вообще тяжело работу найти по тому, что тебе интересно на самом деле. Зарабаывай бабки, прокачивая скил на том, что не интересно и пили то, что интересно в свободное время, прокачивая скилл. Так большинство делает.
#410 #701472
Разработчики джанго - ёбанные конченные мудаки. Это вообще не люди - таких обоссать, убить и выебать мало. Все, кто делают фреймворки на магии - джанго, рельсы и прочее говно - хуже Гитлера. Таких нужно истреблять нахуй. Засунут магию в каждую дырку и ебись потом. Документация - говно. Простыни кода без объяснений. Неюзабельное говно. А те, кто делал РЕСТ фреймворк - вообще уебаны каких поискать. Это же надо, такое сделать. Что хуже, находятся слабоумные которым это нравится и которые это используют. Ёбанные макаки. Заставил бы этих недоёбков всё на ассемблере писать. Суки, превратили профессию в зазубривание километров манов без малейшей мысли. Суки, ну как можно родить что то настолько убогое, как джанго или рест фреймворк? Этих блядей нужно в дурку сдать и заколоть аминазином до состояния овощей, чтобы они срали под себя, а не тащили своё говно в веб разработку.
#411 #701474
>>701472

>джанго, рельсы и прочее говно


На чем вы предлагаете?
>>701480
#412 #701480
>>701474
Например Flask. Что угодно, где минимум магии и всё под контролем.
>>701483
#413 #701481
>>701472
У меня такой же баттхерт от Spring.
мимо-джавист
#414 #701483
>>701480
Flask одобряю, но есть мнение что для командной разработки он не очень подходит, слишком гибкий, каждый разраб будет хуячить в своем стиле
#415 #701484
Вот поясните за REST Framework. Пишу следующий код. Сериализатор:

class UserSerializer(serializers.HyperlinkedModelSerializer):
posts = serializers.HyperlinkedIdentityField('posts', lookup_field='username')
class Meta:
model = Symbol
fields = ('username', 'email')


Представление:

class UserView(viewsets.ModelViewSet):
queryset = Symbol.objects.all()
model = Symbol
serializer_class = UserSerializer
permission_classes = [permissions.AllowAny]


Потом добавляю в роутер реста:

router = routers.DefaultRouter()
router.register(r'users', UserView)


И роутер реста в обычный роутер:

url(r'^api/', include('rest_framework.urls', namespace='rest_framework'))

И что получается? Нихуя. При заходе на /api/users/ 404, зато предлагает два роутера, которых я не создавал.

>^api/ ^login/$ [name='login']


>^api/ ^logout/$ [name='logout']


Откуда это говно вылезло?
#415 #701484
Вот поясните за REST Framework. Пишу следующий код. Сериализатор:

class UserSerializer(serializers.HyperlinkedModelSerializer):
posts = serializers.HyperlinkedIdentityField('posts', lookup_field='username')
class Meta:
model = Symbol
fields = ('username', 'email')


Представление:

class UserView(viewsets.ModelViewSet):
queryset = Symbol.objects.all()
model = Symbol
serializer_class = UserSerializer
permission_classes = [permissions.AllowAny]


Потом добавляю в роутер реста:

router = routers.DefaultRouter()
router.register(r'users', UserView)


И роутер реста в обычный роутер:

url(r'^api/', include('rest_framework.urls', namespace='rest_framework'))

И что получается? Нихуя. При заходе на /api/users/ 404, зато предлагает два роутера, которых я не создавал.

>^api/ ^login/$ [name='login']


>^api/ ^logout/$ [name='logout']


Откуда это говно вылезло?
#416 #701493
И вишенка на торте - Москва. Фласк - 24 вакансии, Джанговно - 123. Действительно, чтобы нормально жить нужно быть дегенератом.
#417 #701497
Знаете что? В жопу ваш джанго. Буду пилить на привычных технологиях, чем шквариться об эту магическую парашу.
#418 #701502
>>701472
Где там магия, бля?
#419 #701507
>>701457
Два чаю. Вкатываются какие-то школьники, осилившие 4 урока на codecademy и 4 главы Лутца. Думаете этого достаточно? Да хуй вам в жопы, неосиляторы. Пока не будете знать всю поднаготную дескрипторов, объектной модели и метаклассов, вам в любой библиотеке сложнее request всюду будет чудиться магия. Сука, горит с вас.
>>701508
#420 #701508
>>701507
fix: requests
#421 #701518
>>701118
В installed apps добавляются джанговские приложения. Для pandas это не нужно. Просто импортируй модуль и используй.
#422 #701522
Накидал на коленке аналог REST Framework и оно блядь работает как надо!
>>701525
#423 #701524
>>701108
Устроился без опыта, чуть больше полугода работал за среднюю_по_городу_минимально_достойную_зарплату. Недавно прошел аттестацию, подняли зарплату на 75%. Если через полгода не буду получать 250% от той самой минимально достойной, буду искать новое место и найду
#424 #701525
>>701522
прогроммист что ты делаешь в пр ты ведь не можеь тут дышать
#425 #701527
>>701066
На хабре была статья, там чувак пилил карточную игру на торнадо. Курил ее?
#426 #701644
Допустим у меня в базе есть две таблицы - types и elements. Каждый элемент принадлежит какому-либо типу, у каждого типа по многу элементов. Как запросом в джанге получить все типы вместе с принадлежащими им элементами без цикла?
>>702806
#427 #701672
>>701108
80k ДС2, 5 лет знаком с пифоном.
65 Кб, 554x768
#428 #701703
Sup.
Есть один Линукс. Нужно написать скрипт, который будет писать определенную команду в командную строку и выполнять её (аки алиас).

Например, есть mpv плеер. Его нужно запускать с определенными параметрами по алиасу:

movie /path/to/file

А на самом деле выполняется mpv -ab /path/to/file -param >> /param &

Это можно сделать на питоне? Куда копать в таком случае?
>>701705
#429 #701705
>>701703
А питон то тут при чём? Пиши на баше.
>>701706
#430 #701706
>>701705
Питон же тоже, по-моему, может посылать в командную строку значения. Интересно реализовать на питоне.
>>701710>>701711
#431 #701710
>>701706
Ну ты напишешь на питоне скрипт, который будет выполнять написанную на баше команду... и зачем?
#432 #701711
>>701706
Но вообще,

>import os


>os.system("echo AJAJA")

>>701715
#433 #701715
>>701711
А как всунуть путь к файлу, который я буду вводить?
>>701718
#434 #701718
>>701715
Аргументы скрипта хранятся в массиве sys.argv
Всунуть в строку через % или .format
#435 #702020
Подскажи те плиз в чём ошибках приоритетов.
(a and b) (or) (not a) (and) (not b)
>>702060
#436 #702034
Питоняшки, как сравнить определенную переменную с каждым элементом массива?

if ( dvach == (Ваш код здесь) ):
>>702045
#438 #702045
>>702034
if any(i == dvach for i in list):
>>702049
#439 #702049
>>702045
Спасибо.
#440 #702060
>>702020
Эта хуйня выдаст ошибку синтаксиса, операторы нельзя заключать в скобки. По приоритету: not наивысший, потом and, потом or, слева направо
>>702069
#441 #702069
>>702060
В задании написано:
#Расставьте скобки в выражении
в соответствии с порядком вычисления выражения (приоритетом операций). Всего потребуется 5 пар скобок (внешние скобки входят в их число).
>>702104
#442 #702104
>>702069
Фуу решил
((a and b) or ((not a) and (not b)))
#443 #702285
>>702036
Обеими за, вкат в прогромирование с интерпретируемых языков будет начинать только даун, чем меньше даунов в комьюнити тем лучше.
>>702321>>702725
#444 #702321
>>702285
Можно первым языком взять Pure C, который до задач уровня laba1.c прокачивается за неделю-другую, а потом дрочить интерпретируемые языки, тоже вариант для даунов? Или норм посаны презирают все языки где не надо писать Hui hui = new Hui?
>>702648>>702725
#445 #702379
Как в одну строку заполнить массив/кортеж/итд одним и тем же числом?
pycharm ругает это:
values = tuple(0 for i in range(n))
>>702382>>702396
#446 #702382
>>702379
точнее код то верный,
но пеп8 это не нравится
>>702385
#447 #702385
>>702382
Ну попробуй values = (0 for i in range(n))
>>702389>>702391
#448 #702389
>>702385
мне ж не генератор надо, тычо
>>702392
#449 #702391
>>702385
мне подчёркивает "i"
грит, что она не используется, и поэтому она не нужна
>>702393
#450 #702392
>>702389

>тычо


Ой, прости, с человеком спутал.
#451 #702393
>>702391
если переменная цикла не используется, её принято именовать "_"
#452 #702395
>>702393
не помогло
#453 #702396
>>702379
values = (0,) * 100500
#454 #702398
>>702393
ошибся, помогло
#455 #702400
>>702393
именовал "_i", а не "_"
даже и не знал, что так можно
#456 #702648
>>702321

> Можно первым языком взять Pure C


Да хоть нелюбимый школьниками паскаль, зато потом будет не "Hui hui = new Hui" а статическая типизация.
>>702681
#457 #702681
>>702648

> Hui hui = new Hui


> а статическая типизация


Это и есть статическая типизация.
>>702700
#458 #702700
>>702681
Я о том что выражения с хуями приобретет значение соответствующего словосочетания.
#459 #702725
>>702285
Схема тебе чем не угодила, а?
>>702321
Питон не годится для первого языка из-за не совсем логичных и очевидных скоупинга и приведения типов (типа 1 == True, all([1, 0, 2]), etc), а не из-за интерпретируемости или динамической типизации.
>>702726
#460 #702726
>>702725

>all([1, 0, 2]) == False


fix
>>702804
12 Кб, 472x148
#461 #702804
>>702726
Какого приведения типов?
>>702818
#463 #702818
>>702804
Я про то, что 0 == False. И bool(x) возвращает False для 0, None, [], () и даже {} и "". Нахуя?
7 Кб, 268x158
#464 #702822
>>702818
Так повелось.

> bool(x) возвращает False для 0, None, [], () и даже {} и "". Нахуя?


Очень удобно писать что-то типа
x=[]
if not x: print("not empty")
Можешь делать явно сравнение типа
if 0 == "":
В отличие от языков со слабой типизаций будет работать как надо
>>702873
#465 #702824
>>702818
А где 0 не False-то, кроме руби?
А остальное — вот так задумано языком. Если контейнер/итерабл пустой, то зачем он нужен? Считай и нет его, пусть false будет.

>men = [student for student in students if student.has_brain]


>if men:


>....print("There are several men in the class, namely: ", men)

>>702873
#466 #702826
>>702818
Реально если бы хотел доебаться то вот http://www.b-list.org/weblog/2015/nov/15/real-python-wat/ более актуально, но актуально только для питон2
>>702827>>702873
#467 #702827
>>702826
Остальное в большинстве своем высосано из пальца, как, например https://github.com/cosmologicon/pywat - если знаешь язык - почти всё это имеет смысл. В отличие от многих приколов в javascript
#468 #702873
>>702822
Извини, но твой пикрелейтед вообще не релейтед. bool в C99 определен как
# define _Bool signed char
#define false 0
#define true 1
Для C, как для кроссплатформенного ассемблера, это нормально, в питоне, где типы вообще не связаны с железом, такое поведение -- атавизм.
>>702824

>А где 0 не False-то, кроме руби?


Посмотри, как в схеме, например. Есть #t и #f, причем, в условиях, любое значение, кроме #f считается за #t, это логично и интуитивно.

>Если контейнер/итерабл пустой, то зачем он нужен? Считай и нет его, пусть false будет.


Пустой контейнер != отсутствие контейнера.
https://www.python.org/dev/peps/pep-0020/

>Explicit is better than implicit.


>There should be one-- and preferably only one --obvious way to do it.


У тебя может быть функция, которая, к примеру, парсит строку со списком значений, при этом она может вернуть и пустой список, либо None, если строка синтаксически невалидна. Чтобы она работала корректно, придется явно сравнивать с None, те же all/any использовать не получится, в результате, нихуя не удобно. Да, в питоне для обработки фейлов принято использовать эксепшены, скажешь ты, но оборачивать каждую функцию в try/except некрасиво и бьет по производительности (если "фейл" ожидаем и не является исключительным случаем, для которых, собственно, эксепшены и нужны), механизма рестартов тоже не завезли, first class continuations? Не, не слышали.
>>702826

>если бы хотел доебаться


Да какое доебаться, я как бы понимаю, что такое поведение оправдано для задач, для которых питон предназначен (утилитки там небольшие, скриптики, прототипирование), как первый язык он не подходит, слишком много подводных камней.
#469 #702875
>>702873

> в питоне, где типы вообще не связаны с железом


True и False появились точно так же в питоне как константы, они были int изначально, в те времена, когда в питоне и классов то не было. Кстати, иногда, эта особенность бывает полезна например можно делать sum(some_function_which_returns_true_or_false(z) for z in something)
>>702887
#470 #702876
>>702873

> либо None, если строка синтаксически невалидна


Нихуя, она должна поднять исключение и поэтому твой пример высосан из пальца.
>>702887
#471 #702877
>>702873

> слишком много подводных камней.


То о чем ты говоришь не подводные камни вообще. Вполне разумное поведение. В других языках камней не меньше.
Схема это прикольно, но это экзотика, даже MIT(единственные кто её использовал) перешли с неё на питон - deal with it.

> утилитки там небольшие, скриптики


На питоне пишится дохуя больших проектов.
>>702887
#472 #702887
>>702876
Дальше прочитай, что написано.
>>702875

>sum(some_function_which_returns_true_or_false(z) for z in something)


sum(1 if somefunc(z) else 0 for z in something)
Чуть-чуть длиннее, зато понятнее.
>>702875

>они были int изначально, в те времена, когда в питоне и классов то не было


https://docs.python.org/2.3/whatsnew/section-bool.html
Лол, и правда ведь. Не знал.
>>702877

>Схема это прикольно, но это экзотика, даже MIT(единственные кто её использовал) перешли с неё на питон - deal with it.


Guile много где в GNUтом софте используется, как скриптовый язык, гимп, guix, например.

>На питоне пишится дохуя больших проектов.


И да, я не про популярность и распространенность, а про конкретные недоработки в дизайне языка, то, что большинство dealt with them и считает, что так надо, не превращает их в достоинства.
>>702890
#473 #702890
>>702887

> про конкретные недоработки в дизайне языка


Я их не вижу. Некоторые вещи исторически сложились, всё-таки языку 25 лет.
>>702902
#474 #702895
Посоны, подкиньте мотивирующих историй о том как вкатились в петон.
>>702898
#475 #702898
>>702895
Завтра ищешь в интернете книжку Dive into python...
#476 #702902
>>702890
Люди, которые в совке жили, тоже недостатков не видели. Некоторые и до сих пор ностальгируют.

>25 лет


А что, 25 лет назад люди не могли в логику и не отличали котлеты от мух? Схема почти в два раза старше, тем не менее, сделана правильно, насколько это возможно для динамики.
#477 #702908
>>702873

>Пустой контейнер != отсутствие контейнера.


Ну это я так своими словами выразился, т.е. с точки зрения использования. Если я хочу съесть яблоко, мне не так важно, просто у меня нет яблок. или стоит пустая коробка от яблок — яблоко я съесть не могу.

>при этом она может вернуть и пустой список, либо None, если строка синтаксически невалидна. Чтобы она работала корректно, придется явно сравнивать с None, те же all/any использовать не получится, в результате, нихуя не удобно.


Я правильно понимаю, что ты хочешь, чтобы в
l = parse_string(txt)
if l:
for e in l:
do_something_with_each_element()

И условие выполнить даже при отсутствии элементов в списке? Но ведь do_something_with_each_element() всё равно ни разу не вызовется, так и зачем было в эту ветку залезать? А вот all на пустых списках всегда выдают True, что, по-моему, может привести к нежелательным результатам. А any, наоборот, False. Что ещё хуже, ведь если all выдал True, то any никак не должен выдавать противоположное значение, ведь это считай подмножество.

>в питоне для обработки фейлов принято использовать эксепшены, скажешь ты


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

Возможно, конечно, что это именно поведение питона и привело к такому стилю написания кода/мышления, но мне это никогда не казалось чем-то неправильным, непривычным или неинтуитивным. Разве что путаться начинаю, когда на JS пишу.
>>702964
#478 #702932
>>701460
Чем бы ты ни занимался, в любом случае потребуется GIT, юнит-тесты, базы данных. Не лишним будет понимание концепций ООП и ФП и умение их применять. Вдобавок можно почитать что-то о программировании в общем (Макконел, Брукс, Спольски).
#479 #702964
>>702908

>Если я хочу съесть яблоко, мне не так важно, просто у меня нет яблок. или стоит пустая коробка от яблок — яблоко я съесть не могу.


Если я хочу съесть яблоко, я загляну в коробку, если их нет -- пойду в магазин, если нет самой коробки, это уже другая ситуация, теперь мне в магазин идти не с чем.

>Я правильно понимаю


Нет.
[1, 2, 3]
[]
1 2 3
Первые две строки -- валидны, третья -- нет. Можно возвращать None для невалидной строки, тогда в условных выражениях вторая и третья будут приводиться к False, нужно делать явное сравнение (if x is None: ...). Можно еще возвращать два значения кортежом, список и True/False, но, спрашивается, нахуя тогда нужна динамическая типизация?

>А вот all на пустых списках всегда выдают True, что, по-моему, может привести к нежелательным результатам. А any, наоборот, False. Что ещё хуже, ведь если all выдал True, то any никак не должен выдавать противоположное значение, ведь это считай подмножество.


https://en.wikipedia.org/wiki/Empty_set

>For every element of \emptyset the property holds (vacuous truth);


>There is no element of \emptyset for which the property holds.

>>702970>>702984
#480 #702970
>>702964

>Первые две строки


>третья -- нет


В первый двух строках у тебя список, а в третьей - циферки через пробел. Это что, входные или выходные данные? Опиши по-нормальному, что происходить-то должно.

Про any/all уже и так почитал.

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


Мне тоже дедушка с бабушкой постоянно говорили со своим пакетом идти, но я избалован каждый раз новый покупать.
>>702984
#481 #702974
Посоветуйте, как писать python код. Допускаю много runtime ошибок.

Какие тулзы есть для проверки кода?
>>702976
#482 #702976
>>702974
Pylint, видимо.
>>702978
#483 #702978
>>702976
Буду смотреть. Сами то вы какими тулзами для этого пользуетесь?
>>703002
#484 #702984
>>702964
А, кажется, понял.
func('[1,2,3]') # -> [1,2,3]
func('[]') # -> []
func('1 2 3') # -> None

А в чём проблема со сравнением с None или if type == list?

Это как ж и с поиском индекса элемента. Нулевой индекс валиден, хотя почти везде Схема это явно не то, что большинство знает/учило/использует 0 это False, поэтому мучаются с проверками > -1.

Короче, ситуаций, где [] == False удобнее, по-моему, больше, чем где нет. Считаешь ли ты иначе?

>>702970-кун
#485 #703002
>>702978
linter-flake8
#486 #703031
>>693065 (OP)
Поясните за PyQt. Это же тупо лепилка интерфеса? Т.е. в нем я набрасываю все кнопочки, потом открываю свой .py в блокнотике и там все прописываю?
И поясните за питон в целом, в частности за 1 вещь: можно ли сделать "экзешник" или питон работает только как сервер? Ну вы понели ну или не понели.
>>703039
#487 #703039
>>703031

> Это же тупо лепилка интерфеса?


Нет, это пистоновская обвязка к графическому тулкиту не знаю как сейчас, но раньше была ещё й урезаная по фунционалу, лепилка интерфейса есть в qtcreator, но он только для крестов енджой ер гавнокуте.

> можно ли сделать "экзешник"


Можно.
>>703228
#488 #703213
>>696294
хах, заработал бакс на том что пиздил конкурсы с других сайтов скриптом
#489 #703228
>>703039

>Нет, это пистоновская обвязка к графическому тулкиту


Не пони

>Можно.


Можешь вкратце описать процесс?
>>703273
#490 #703273
>>703228

>Можешь вкратце описать процесс?


Это будет не полноценный экзешник, а просто упакованный твой код + интерпретатор, гугли например py2exe, в гугле же найдешь и другие способы. Есть так же экспериментальные трансляторы питоно-кода в плюсовый, но с кучей ограничений, гуглить Nuitka
>>703933
#491 #703433
Есть один проект джанго, и в нем одно приложение - API. В urls самого проекта, я дёргаю views проекта, который должен отрендерить шаблон в templates самого проекта. Но какого хуя он ищет этот шаблон в приложении API и его папке? Это же нелогично, блядь.
>>703634
#492 #703474
Добавил в сеттингс, заработало.
#493 #703634
>>703433
дефолтное поведение же - у тебя в settings.py указан либо django.template.loaders.app_directories.Loader в списке TEMPLATE_LOADERS (в старых версиях фреймворка) либо установлен флаг APP_DIRS = True в структуре с названием TEMPLATES (в последних версиях). Оба этих действия приводят к тому, что в ходе рендеринга шаблона django производит поиск в дирикториях с приложениями (app) в поддиректориях с названием templates и только после в директориях, указанных в TEMPLATE_DIRS. Давно не колупал новую джангу, поправьте, если что то упустил.
#494 #703636
Посоны, а как в гуях определяется нажатие на кнпоку на самом низком уровне? До всяких абстракций с эвент хендлерами. Нормально ли, если я рисуя что-то в пиглете просто вставляю это:
def on_mouse_move(x,y):
if button.left_x < x < button.right_x and button.bottom_y < y < button.top_y:
button.highlight()


Или есть какие-то другие способы? В pyglet'е, вроде, только так все и пишут, но во всяких кутях и т.д., там внутри то же самое происходит? Не считая каких-либо возможных оптимизаций с проходом лишь по ближайшей группе кнопок, а не всем сразу.
#495 #703817
Сап. Если мне нужно, чтоб по нажатию на кнопку запускался цикл, который работает там с данными и заранее не известно когда завершится, нужно его в отдельном потоке запускать, чтоб не подвисло или есть в tkinter какие-то параметры для асинхронщины? То есть, вот окно, там кнопка. Нажали, пошёл цикл в фоне, не блокируя ничего.
>>703823
#496 #703823
>>703817
Поток наверное.
Хз как в tkinter, в pygtk можно дергать в этом цикле просто gtk.main_iteration() и тогда всё ок будет.
#497 #703853
ПитонЫ, возможно ли в питоноскрипте в виндовую консоль писать шрифтом красного цвета?
>>703856>>704003
#498 #703856
>>703853
А этот обрубок консоли вообще в цвета умеет? Если умеет - значит можно, гугл в помощь.
>>703864
#499 #703864
>>703856
Умеет, есть winapi-функция для изменения цвета. Самого тошнит от этой недооси, но возникла необходимость написать скрипт.
>>703868
#500 #703868
>>703864
А escape коды просто нельзя передать?
>>703871
#501 #703871
>>703868
Вроде нет.
#502 #703875
Антуаны, хочу поменять род деятельности, и с лютого байтоебства перекатиться в вебдевелопмент на питоне. Что следует знать помимо самого языка, джанго, торнадо и баз данных? Какой оптимальный подход к изучению джанги?
>>703885>>703887
#503 #703885
>>703875

> Какой оптимальный подход к изучению джанги


tutorial почитай на оф сайте и есть хорошая книжка 2 scoops of django.

> Что следует знать помимо


http, основы html/css/js/jquery/и т.п., иметь представление о wsgi, настройке вебсервера и всякого деплоя, mq/celery, redis и подобное, ну git ес-но. Возможно REST и всякие django rest framework.
#504 #703887
>>703875
торнадо знать не обязательно, тем более сейчас более в моде больше aiohttp/asyncio.
Вообще дохуя всего надо знать, стек технологий большой, но ничего прям такого уж сложного нет, просто много всего.
#505 #703913
Ну а если основной упор именно на бэкэнд?
>>703915>>703916
#506 #703914
Перекат пилите.
#507 #703915
>>703913
Фуллстак востребованней.
#508 #703916
>>703913
Всё равно основы какие-то знать надо.
#510 #703933
>>703273
Трансляторы нинужны, если мне код на ++ понадобится, то я на нём сразу и напишу.
>>704282
#511 #704003
>>703853
colorama
#512 #704282
>>703933
Так пиши сразу машинный код (байткод питоновской вм), хуле ты.
435 Кб, 1200x1600
#513 #704442
Sup, анончик.
Я в очередной раз сажусь учить питон по заброшенной книжке Доусона. Забросил из-за лени. Это уже третий раз такое и третий раз я начинаю всё сначала, хотя, всё понимаю, что там рассказывается, но опять всё гоняю по кругу.

Я написал просто так, чтобы выговориться. Меня здесь не закидают ссаными тряпками, если я буду с идиотскими вопросами обращаться, если вдруг что-то будет непонятно в нубских упражнениях по книге?
>>704475
#514 #704475
>>704442
Доусон - такое себе, если тебе игровой формат нравится, как тем детям-даунам например

Имхо кодекадеми + чтение Лутца по изучаемым в данный момент времени на кодекадеми темам - пока лучшее комбо для самого старта
#515 #704752
Как заставить сигналы в QT передавать в слот keyword-аргументы?

TypeError: emit() takes no keyword arguments

Дублировать там значения аргументов, которые по-умолчанию стоят и не требуют переопределения - лишняя работа. + последовательность из True, False, False, 5 и тд выглядит пиздецово и нечитабельно, в отличии от count=5.
>>704767>>705190
#516 #704767
>>704752
На ум приходит только переопределение класса сигнала, или оборачивание слота в обертку, которая будет распаковывать кортеж с именованными аргументами уровня (count=5,) и передавать слоту.
#517 #705190
>>704752
Передавай словарь, ёпту.
Тред утонул или удален.
Это копия, сохраненная 24 апреля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски