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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Какашечка #2 #867617
питухон еще жив?
>>867624
Какашечка #4 #867626
>>867624
это же запросы гугля? писят хипстеров со смузи могут загнать питухон в топ.
#5 #867627
Перепостил вопрос из прошлого тхреада
Ананасы, кто-нибудь пилил работу с nmea координатами? Спарсиваю поток координат от маяка через pynmea2, расстояние N между определенными координатами вызывает условную функцию def f(). Но иногда вылетает какая-то левая координата с погрешностью >N и это вызывает ложное срабатывание def f().
Может кто уже изобрел велосипед от таких погрешностей или знает толковую питонячью либу - буду премного благодарен
Завтра ищешь книжку. Но не читаешь её от корки до корки... #6 #867631
Как читать книги?

Чтение книг, журналов, брошюр, статей на сайтах — прекрасный способ усвоения информации, но только если читать правильно. Что должно остаться после того, как перевернулась последняя страница? Определённо, новые знания. Но кроме того — ясное понимание «что и зачем», связи между отдельными фактами и целостная картина изученного материала. Как получить такой результат, рассказывает брошюра «Как читать книги?» Сергея Поварнина, русского логика и философа первой половины ХХ века.

Может ли чтение быть опасным?

Чтение всегда воспринимается как путь к знаниям. И это ошибочно. Существуют откровенно плохие книги, которые коверкают и опошляют душу. Их следует избегать, закрывать на первой странице, вычислять на полках и не прикасаться даже к обложкам. С таким книжным мусором можно относительно легко бороться, тщательно отбирая литературу к прочтению и используя списки лучших книг и рекомендации. Но есть куда более страшный враг познания — поверхностное чтение. Поварнин называет людей с таким недугом «фразёрами» и «людьми с кашей в голове».

> Есть очень много людей, которые читают только для того, чтобы не думать.
> — Георг Кристоф Лихтенберг, немецкий учёный и публицист

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

> Отрядом книг уставил полку,
> Читал, читал, а всё без толку…
> — Александр Пушкин, русский поэт

А чего вы хотите от книги?

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

Беглый просмотр — прочитать содержание, полистать книгу, обратить внимание на заголовки и некоторые выделенные отрывки.
Неполное чтение — просмотреть содержание, найти интересующий раздел, внимательно его изучить.
Полное чтение — прочитать книгу последовательно от начала и до конца без пропусков.
С проработкой содержания — тщательно изучить книгу, «проработать», понять материал и сделать его «своим».

Третий вариант — это самый частый вариант чтения. Мы открываем книгу и начинаем читать со слов «Посвящается моим детям», пока не наткнёмся на лист с типографской информацией. Это прекрасный вариант для чтения художественной литературы. Страница переворачивается за страницей, открываются характеры героев, стремительно развивается сюжет, и мы проживаем его вместе, впитываем в себя характеры и поражаемся удивительно яркой и точной мысли автора.

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

Способ чтения и цель можно связать так:

беглый просмотр — ознакомление с книгой, стоит ли её читать;
неполное чтение — поиск ответов на вопросы;
полное чтение — для художественной и вдохновляющей литературы;
с проработкой содержания — для изучения книг для самообразования, по работе и учёбе. Здесь важно понять и запомнить новый материал.

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

> Самообразование требует самодеятельности. Но самодеятельность эта должна выражаться не в самонабивании головы плохо понятыми сведениями, а в усвоении их и в саморазвитии.

Самый малораспространенный способ чтения — с проработкой содержания, а ведь именно он позволяет максимально качественно изучить материал. Особенно это важно при чтении книг для самообразования.
Завтра ищешь книжку. Но не читаешь её от корки до корки... #6 #867631
Как читать книги?

Чтение книг, журналов, брошюр, статей на сайтах — прекрасный способ усвоения информации, но только если читать правильно. Что должно остаться после того, как перевернулась последняя страница? Определённо, новые знания. Но кроме того — ясное понимание «что и зачем», связи между отдельными фактами и целостная картина изученного материала. Как получить такой результат, рассказывает брошюра «Как читать книги?» Сергея Поварнина, русского логика и философа первой половины ХХ века.

Может ли чтение быть опасным?

Чтение всегда воспринимается как путь к знаниям. И это ошибочно. Существуют откровенно плохие книги, которые коверкают и опошляют душу. Их следует избегать, закрывать на первой странице, вычислять на полках и не прикасаться даже к обложкам. С таким книжным мусором можно относительно легко бороться, тщательно отбирая литературу к прочтению и используя списки лучших книг и рекомендации. Но есть куда более страшный враг познания — поверхностное чтение. Поварнин называет людей с таким недугом «фразёрами» и «людьми с кашей в голове».

> Есть очень много людей, которые читают только для того, чтобы не думать.
> — Георг Кристоф Лихтенберг, немецкий учёный и публицист

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

> Отрядом книг уставил полку,
> Читал, читал, а всё без толку…
> — Александр Пушкин, русский поэт

А чего вы хотите от книги?

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

Беглый просмотр — прочитать содержание, полистать книгу, обратить внимание на заголовки и некоторые выделенные отрывки.
Неполное чтение — просмотреть содержание, найти интересующий раздел, внимательно его изучить.
Полное чтение — прочитать книгу последовательно от начала и до конца без пропусков.
С проработкой содержания — тщательно изучить книгу, «проработать», понять материал и сделать его «своим».

Третий вариант — это самый частый вариант чтения. Мы открываем книгу и начинаем читать со слов «Посвящается моим детям», пока не наткнёмся на лист с типографской информацией. Это прекрасный вариант для чтения художественной литературы. Страница переворачивается за страницей, открываются характеры героев, стремительно развивается сюжет, и мы проживаем его вместе, впитываем в себя характеры и поражаемся удивительно яркой и точной мысли автора.

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

Способ чтения и цель можно связать так:

беглый просмотр — ознакомление с книгой, стоит ли её читать;
неполное чтение — поиск ответов на вопросы;
полное чтение — для художественной и вдохновляющей литературы;
с проработкой содержания — для изучения книг для самообразования, по работе и учёбе. Здесь важно понять и запомнить новый материал.

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

> Самообразование требует самодеятельности. Но самодеятельность эта должна выражаться не в самонабивании головы плохо понятыми сведениями, а в усвоении их и в саморазвитии.

Самый малораспространенный способ чтения — с проработкой содержания, а ведь именно он позволяет максимально качественно изучить материал. Особенно это важно при чтении книг для самообразования.
>>867684>>869551
Завтра ищешь книжку. Но не читаешь её от корки до корки... #7 #867632
Как «прорабатывать» книгу?

Факт, который нужно принять перед изучением научной литературы — её нельзя читать «в лоб», последовательно от корки до корки.

Шаг, который отделяет чтение «фразёра» от настоящего понимания прочитанного — осознание связей между фактами и ясное видение общей картины. Важно четко понимать, как связано только что прочитанное с уже известным материалом, а также представлять его место в книге в целом.

Основное правило понимания формулируется так: «От общего к частному. От частного к общему».

Сначала необходимо «охватить книгу», поймать её главный смысл и определить составляющие части. Затем углубляться в каждую часть отдельно, последовательно дробя книгу на более мелкие отрывки — продвигаться от общего к частному. Это поможет видеть структуру нового материала и понимать, что откуда следует. При этом одновременно надо осознавать положение отдельного отрывка в масштабе всей книги. Это позволяет точно определять связи, находить соответствия и понимать «а зачем это вообще придумали?» — двигаться от частного к общему. Но и это ещё не всё. Нужно находить точки соприкосновения прочитанного материала с уже известным, обдумывать и смаковать каждую мысль, осматривать её со всех сторон и проверять на прочность. Чем больше работы над текстом, тем прочнее знания.

> То, что мы вычитали в книге, должно как–то связаться с имевшимися уже у нас мыслями, сведениями, эмоциями и т.п., войти в систему их, или изменить их. В этом и состоит его работа; это и есть «отработка» содержания книги. И чем глубже устанавливается связь между прочитанным и имевшимся раньше у нас, чем больше и глубже дополнения и изменения, вносимые прочитанным, тем лучше и глубже обработка.

Так как читать?

Чтобы проработать книгу, стоит изучать её в таком порядке:

Предисловие. Здесь обычно «автор выясняет задачи, которые ставит книге». Прочитав его, можно понять суть и смысл написания книги.
Введение. В этой части автор рассказывает о том, что нужно для понимания книги, приводит уточнения, подробности изложения. Введение уточняет главную цель книги.
Оглавление. «Обыкновенно с его помощью мы можем, ещё не читая книги, узнать общий план её, основные рубрики, общее содержание, основные темы, в ней затронутые». Именно оглавление помогает постепенно переходить от общего к частному и раскрывает структуру книги.
Заключение. Чрезвычайно важный пункт. Здесь чаще всего подводится итог выполненной работы, снова указывается смысл и план книги, и формулируется главная мысль книги.
Основная часть. Чтение книги целиком, с тщательной проработкой материала.

Первые четыре пункта являются основой для изучения любой книги. В зависимости от впечатления уже можно выбрать подходящий способ чтения.

Иногда приходится всю работу ограничить именно этими четырьмя шагами, так как они позволяют кратко просмотреть и составить определенное мнение о книге.
Совет: после прочтения книги восстановите в памяти её содержание и смысл. Это помогает заметить недостаток понимания, почувствовать, какие места в книге пропущены и недостаточно разобраны.

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

Сергей Поварнин перечисляет навыки, которые придётся развить для того, чтобы читать правильно:

Сосредотачиваться на том, что читаешь.
Выжимать самую сущность читаемого, отбрасывая мелочи.
Охватывать мысль автора вполне ясно и отчётливо: это помогает выработке ясности и отчетливости собственных мыслей.
Мыслить последовательно и осторожно — целое богатство, ничем не заменимое; кто обладает им, тот обладает самой основой настоящей образованности и не может не обладать знаниями; он обладает ключом к глубокому чтению, а вместе с тем и к более глубокому пониманию жизни.
Наконец, воображать ярко и отчётливо, как бы переживая то, что читаешь, — дар, о важности которого многие и не подозревают.

Что же мешает нам читать максимально продуктивно?

Казалось бы, раз читаешь книгу, нашёл на неё время, отказавшись от альтернатив, так читай и забирай из неё важное, медленно и обстоятельно, делай открытия автора своим достоянием. Но раз за разом книги пролетают мимо, задевая лишь поверхностно наши мысли и оставляя в памяти одно название. Причина — лень мышления. Без тщательной проработки материала, без проверки на истинность мнения автора, без обдумывания предложенных вопросов упускается возможность понять и запомнить материал. То самое пропущенное доказательство есть самое сложное место и причина непонимания.

> Автор доказывает что–нибудь. Надо проанализировать его доказательство. Но для этого требуется некоторое напряжение мышления: и вот мы скользим далее, скорее, туда, где этого усилия не требуется. Читать с наименьшим усилием, с наименьшим напряжением мысли и воображения — вот нередкая склонность. И она — величайшая помеха при чтении.

При проработке текста включаются так называемые мнемотехнические законы памяти. Например, закон осмысления — чем глубже осознать запоминаемую информацию, тем лучше она запомнится. Или закон контекста — при связывании информации с уже знакомыми понятиями новое усваивается лучше. Поэтому один из ключевых моментов для понимания книги — не лениться, каждый раз проверять прочитанное, ставить под сомнение мысли и утверждения автора. Не жалеть на это времени и сил, ведь чем глубже работа с текстом, тем прочнее впитываются полученные знания.
Завтра ищешь книжку. Но не читаешь её от корки до корки... #7 #867632
Как «прорабатывать» книгу?

Факт, который нужно принять перед изучением научной литературы — её нельзя читать «в лоб», последовательно от корки до корки.

Шаг, который отделяет чтение «фразёра» от настоящего понимания прочитанного — осознание связей между фактами и ясное видение общей картины. Важно четко понимать, как связано только что прочитанное с уже известным материалом, а также представлять его место в книге в целом.

Основное правило понимания формулируется так: «От общего к частному. От частного к общему».

Сначала необходимо «охватить книгу», поймать её главный смысл и определить составляющие части. Затем углубляться в каждую часть отдельно, последовательно дробя книгу на более мелкие отрывки — продвигаться от общего к частному. Это поможет видеть структуру нового материала и понимать, что откуда следует. При этом одновременно надо осознавать положение отдельного отрывка в масштабе всей книги. Это позволяет точно определять связи, находить соответствия и понимать «а зачем это вообще придумали?» — двигаться от частного к общему. Но и это ещё не всё. Нужно находить точки соприкосновения прочитанного материала с уже известным, обдумывать и смаковать каждую мысль, осматривать её со всех сторон и проверять на прочность. Чем больше работы над текстом, тем прочнее знания.

> То, что мы вычитали в книге, должно как–то связаться с имевшимися уже у нас мыслями, сведениями, эмоциями и т.п., войти в систему их, или изменить их. В этом и состоит его работа; это и есть «отработка» содержания книги. И чем глубже устанавливается связь между прочитанным и имевшимся раньше у нас, чем больше и глубже дополнения и изменения, вносимые прочитанным, тем лучше и глубже обработка.

Так как читать?

Чтобы проработать книгу, стоит изучать её в таком порядке:

Предисловие. Здесь обычно «автор выясняет задачи, которые ставит книге». Прочитав его, можно понять суть и смысл написания книги.
Введение. В этой части автор рассказывает о том, что нужно для понимания книги, приводит уточнения, подробности изложения. Введение уточняет главную цель книги.
Оглавление. «Обыкновенно с его помощью мы можем, ещё не читая книги, узнать общий план её, основные рубрики, общее содержание, основные темы, в ней затронутые». Именно оглавление помогает постепенно переходить от общего к частному и раскрывает структуру книги.
Заключение. Чрезвычайно важный пункт. Здесь чаще всего подводится итог выполненной работы, снова указывается смысл и план книги, и формулируется главная мысль книги.
Основная часть. Чтение книги целиком, с тщательной проработкой материала.

Первые четыре пункта являются основой для изучения любой книги. В зависимости от впечатления уже можно выбрать подходящий способ чтения.

Иногда приходится всю работу ограничить именно этими четырьмя шагами, так как они позволяют кратко просмотреть и составить определенное мнение о книге.
Совет: после прочтения книги восстановите в памяти её содержание и смысл. Это помогает заметить недостаток понимания, почувствовать, какие места в книге пропущены и недостаточно разобраны.

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

Сергей Поварнин перечисляет навыки, которые придётся развить для того, чтобы читать правильно:

Сосредотачиваться на том, что читаешь.
Выжимать самую сущность читаемого, отбрасывая мелочи.
Охватывать мысль автора вполне ясно и отчётливо: это помогает выработке ясности и отчетливости собственных мыслей.
Мыслить последовательно и осторожно — целое богатство, ничем не заменимое; кто обладает им, тот обладает самой основой настоящей образованности и не может не обладать знаниями; он обладает ключом к глубокому чтению, а вместе с тем и к более глубокому пониманию жизни.
Наконец, воображать ярко и отчётливо, как бы переживая то, что читаешь, — дар, о важности которого многие и не подозревают.

Что же мешает нам читать максимально продуктивно?

Казалось бы, раз читаешь книгу, нашёл на неё время, отказавшись от альтернатив, так читай и забирай из неё важное, медленно и обстоятельно, делай открытия автора своим достоянием. Но раз за разом книги пролетают мимо, задевая лишь поверхностно наши мысли и оставляя в памяти одно название. Причина — лень мышления. Без тщательной проработки материала, без проверки на истинность мнения автора, без обдумывания предложенных вопросов упускается возможность понять и запомнить материал. То самое пропущенное доказательство есть самое сложное место и причина непонимания.

> Автор доказывает что–нибудь. Надо проанализировать его доказательство. Но для этого требуется некоторое напряжение мышления: и вот мы скользим далее, скорее, туда, где этого усилия не требуется. Читать с наименьшим усилием, с наименьшим напряжением мысли и воображения — вот нередкая склонность. И она — величайшая помеха при чтении.

При проработке текста включаются так называемые мнемотехнические законы памяти. Например, закон осмысления — чем глубже осознать запоминаемую информацию, тем лучше она запомнится. Или закон контекста — при связывании информации с уже знакомыми понятиями новое усваивается лучше. Поэтому один из ключевых моментов для понимания книги — не лениться, каждый раз проверять прочитанное, ставить под сомнение мысли и утверждения автора. Не жалеть на это времени и сил, ведь чем глубже работа с текстом, тем прочнее впитываются полученные знания.
>>867684
#8 #867650
Аноны, попробовал запустить скрипт из этого поста https://tproger.ru/translations/mosaic-from-random-images/ чтоб сделать фото-мозаику. Но как только я его запускаю, у меня ноут резко начинает виснуть и даже вырубить скрипт получается с трудом.
Посмотрите плиз, это я запускаю как обсосок, или скрип хуевый и должен долго обрабатывать.
#9 #867668
Как начать учить питон, если мне лень?
>>867672
#10 #867672
>>867668
Не начинай.
#11 #867678
Подскажите луше есть ли годные онлайн-курсы по питону, пусть и платные, с нуля или не с нуля, и что б сертификатом их не подтираться.
#12 #867684
>>867631
>>867632
Зачем ты принёс сюда это говно?
>>867705
#13 #867690
>>867678

>курсы


>что б сертификатом их не подтираться


raise DoesNotExist
#14 #867705
>>867684
Чтобы люди знали, как правильно работать с книжками, а не просто читали их в надежде на автоматические знания, как часто отписываются ИТТ.
#15 #867706
>>867678
курс фенобарбитала пройди
#16 #867707
>>867678

>сертификатом их не подтираться


Это как? Где-то смотрят на сертификаты с онлайн-курсов?
#17 #867709
Пишу для дипломной работы реализацию одного алгоритма с NLTK. Нужно прикрутить гуй. Есть ли смысл пилить на питоне десктопное приложение, и если да, то в какой гуи фреймворк лучше вкатиться?
>>867710
#18 #867710
>>867709
А какие виджеты тебе нужны?
>>867713
#19 #867713
>>867710
Чтобы отображался текст, кнопки и картинки.
>>867716
#20 #867716
>>867713
Tkinter за глаза
>>867717
#21 #867717
>>867716
Спасибо!
#22 #867781
Кто вчера это писал? http://ideone.com/FVf8Vu Можешь пояснить за первый способ. У меня никак не получается заставить его работать. Пишу вот так. http://pastebin.com/qdXaAGhF Он запускается и зависает после того как выведет 50. Не понимаю что в этот момент происходит.
#23 #867825
>>867781
Что за хуйня? Даже этот вариант не хочет работать.
http://pastebin.com/NjtXxYvu
>>867893
#24 #867840
>>867611 (OP)
Она не на питоне кодит, а хуй сосёт.
#25 #867846
>>867840
Блять! Как теперь развидеть?
>>867851
#26 #867851
>>867846
Но зачем?
#27 #867863
>>867840
Но это же одно и то же.
>>867868
#28 #867866
Хочу работать с Api питона, посоветуйте по нему книжек.
>>868020
#29 #867868
>>867863
ах ты маленький пидрило! проецируешь свои любимые писюны во все стороны
#30 #867893
#31 #867896
Антуаны, я тут новенький, питон только с курса на Codecademy и кат на Codewars немного подчерпнул. Вот набросал скрипт для парсинга сосача (сугубо для личных целей, не успеваю во все фаптреды заглянуть), посмотрите мой говнокод? Нужна критика.
>>867909
#32 #867909
>>867896
Где код-то, конь? Сука, ты уже накосячил. __орёт__
>>867915
#34 #867926
>>867915
Говно, но нормально. Как-то так выглядит 99,9 % кода, написанного на питоне. На всякий случай ещё раз прочитай PEP8 и сделай import this.

Иф длиной 249 символов насмешил. Геттеры, сеттеры и кемелкейс обычно во всяких уродских биндингах с крестов только присутствуют, в питоньем коде всё это нинужно. Странные манеры андерскорить все переменные в скоупе не нужны тоже. Если уж кровь из носу нужно использовать имя с кейвордом или стандартной функцией, то по конвенции андерскор ставят после: class_
>>867931>>868227
#35 #867930
И напомню, что двойные кавычки ставят только опущенцы. Правильными кавычками являются одинарные.
#36 #867931
>>867926
Да, иф самого немного напрягает, но так как нужно искать вхождения и в заголовках (для тематики) и в оп-посте, пришлось писать.

Геттеры-сеттеры - привычка с жабы, буду знать.

>>867930
Чому?
>>867998
#37 #867935
>>867915
Про апи двача слышал?
>>867939>>868237
#38 #867939
>>867935
Дыа. Для слабаков. Суть в том, что хочется чему-то попутно научиться, вот первый раз с супом поколупался.
#39 #867962
Бороздя просторы интернета в поисках практики на моех любимом питоне наткнулся на весьма интересную статью на хабре. https://m.habrahabr.ru/company/mailru/blog/215487/

Предлагаю добавить её в фак для вкатывающихся ньюфагов.
#40 #867998
>>867931
А не стоит всё в одну строку паковать.
https://gist.github.com/anonymous/7ee2bfcd16b1fbf026186e77817df270

Файнд олл всегда используется, чтобы взять первый элемент. Разве в супчике не было файнд некст или как-то так? Лучше уж сразу вытащить оппост и работать с ним, а не с первым постом в треде, с первым заголовком в треде, с первым рефлинком в оппосте и т. п. Сам понимаешь, ненадёжно это.
#41 #868001
>>867781
А вот этот код работает http://pastebin.com/Qn5eCRb3 Но после communicate поток закрывается и писать туда больше нельзя. А если вместо него stdout.read писать, то он зависает и вечно что-то ждёт. Что делать?
>>868023
#42 #868015
>>867678
raise GoToFuckOut('ASSHOLE DETECTED')
#43 #868018
>>867840

> хуй сосет


*питона сосет.
Слоуфиск.
#45 #868023
>>868001
Бамп
>>868035
#46 #868035
>>868023
Дерьмовый способ, не используй. Сделай на сокетах.
>>868037
#47 #868037
>>868035
Хотел максимально просто сделать. Щас погуглю сокеты. Что нужно знать про них кроме синтаксиса питона? Ни разу ими не пользовался.
>>868647
Книга Риша #48 #868039
Посоветуйте гуд книгу по писону, желательно с задачами/примерами и gui/веб. Спасибо.
#49 #868047
Мне кто-то в предыдущих тредах рекомендовал не ебать голову со всякими parler а навернуть django-modeltranslation - Добра тебе, братишка. Охуительное.
#50 #868057
>>867915
не складывай строки, не пиши условия в скобках, форматируй через format, а не через % и вообще полистай pep-8
#51 #868111
Питоны, нужна ваша помощь.
Есть прога FreePIE, в которой можно запускать скрипты питона.
Есть код - http://pastebin.com/0gn01Krg
26 строка, как я понимаю, по нажатию на капслок происходят некоторые действия.
Как сделать, чтоб эти действия происходили только когда клавиша удерживается нажатой?
в гугле выдает одну хуету
>>868118
#52 #868118
>>868111
запускай цикл, который завершается только по event'у отпускания кнопки.
>>868122
#53 #868122
>>868118
Я бы рад, но я в питоне вашем вообще нулевой.
Я так понимаю, что эти события берутся из подключаемых библиотек, верно? Где посмотреть все эти события и что они возвращают?
>>868183
#54 #868175
>>867930
Вот ты, Гвида, и попался!
#55 #868183
>>868122
Я тоже, но вроде понял.

https://www.reddit.com/r/Python/comments/2zfb6g/windows_guide_to_getting_getting_keyboard_and/

GetKeyState, кажется, возвращает положение кнопки. Делаешь тоже самое, что и у тебя, но проверяешь, чтобы кнопка была нажатой, при нажатии запускается цикл, в котором идут твои действия, при отпускании цикл прерывается. Я вообще ноль, но я бы сделал как-то так, если образно:

while(нажата):
Твои действия
>>868196
#56 #868185
>>867915
Говно без задач
>>868189
#57 #868189
>>868185
Спасибо. Я же говорил, что для личных целей делалось, но мне нужна была критика. На питоне первый раз пишу что-то больше 10-20 строк.
#58 #868196
>>868183
Спасибо, добра.
#59 #868227
>>867926

>Геттеры, сеттеры и кемелкейс обычно во всяких уродских биндингах


>с крестов


Что ты несешь?
>>868252
#60 #868230
Посоветуйте движок под питон, чтобы можно было свою 2Д игру написать.
>>868249>>868281
#61 #868237
>>867935
Алсо правильно ли юзать beatifulsoup для парсинга json? Там же всё равно xml-структура, из которой надо цеплять, допустим, текст поста.
>>868246
#62 #868246
>>868237
нет конечно! import json
#63 #868249
>>868230
В питоне крайне тухло с живыми и кем-то используемыми игровыми движками. Попробуй Blender Game Engine.
>>868281
#64 #868252
>>868227
Просвещение.
#65 #868256
И снова, здравствуйте.

Скопирую с прошлого треда сюда.

Доброго вечера, господа. В кратце: Работаю почти год прогером. Пишу на джанге.
Хочу освоить asyncio но не знаю с чего начать. Точнее так, по каким-то туториалам что-то делаю/копипастю и что-то получается, но проблема не решается - я не могу написать нормально неблокирующую херню. Например классика - парсер. 10 ссылок нужно спарсить не блокируя поток. Как это сделать, если await ждет? Нашел несколько разных вармантов один из которых: создать корутины для всех ссылок и передать их в asyncio.wait () и мол они там все запустятся и первая функция, которая завершится - отдаст ответ и тд. Правильно ли это? Блять, я аж бомблю от того что нет нормального описания того, где как и что использовать. Поясните мне, тупому, блять, как с этой хуйней совладать. Если не сложно, знающие аноны, распишите подробно. Буду рад и ссылкам и прочему, но в приоритете жду человеческого объяснения основы этой. Чтоб я точно понимал, нахуя мне этот asyncio и почему и где мне его использовать
>>868258
#66 #868258
>>868256
Процитирую еще один из ответов который вызвал вопросов больше чем ответов.

>>867496
Поясняю - asyncio не панацея и хорошо помогает только если у тебя затык в I/O - ждем ответ от сервера, ждем данные из сокета и тому подобное. asyncio отлично подходит для веба, где большие задержки и затыки.
Когда твой скрипт блокируется на уровне "парсинг страницы занимает 20 секунд", то asyncio никак не поможет - остается выделять парсер в отдельный процесс или запускать на отдельной машине.

>Как это сделать, если await ждет?


>создать корутины для всех ссылок и передать их в asyncio.wait ()


Ты прав, только когда конкретно .wait() вернет, контролируется аргументом return_when
Еще есть asyncio.gather() и asyncio.create_task()

Вот он в конйе пишет, что есть еще gather и create_task, не считая asyncio.wait.
Вот как понять, где какой метод лучше использовать?
>>868864
#67 #868265
Суп, питонисты. Мне нужно сохранять на локальную машину таблицу (условно), каждая строка таблицы состоит из поля с текстом на несколько абзацев, числового флага и ещё пары текстовых полей. Потом эту таблицу нужно будет также подгружать с этой же локальной машины. Как это лучше реализовать: сериализовать в json/protobuf, или запилить базу данных (например, h2)?
>>868290
#68 #868281
>>868230
>>868249

Годот же.
>>868286
#69 #868286
>>868281
Там не питон же.
>>868288
#70 #868288
>>868286
Йеп, там Godot Script, но он, насколько помню, основан на питоне, и от него отличается очень и очень немногим.
#71 #868290
>>868265
Если сомневаешься - дампай в pickle!
>>868438
166 Кб, 1366x768
#72 #868405
Я совсем тупой мудак. Что я делаю не так? Пиздец на такой простой хуйне запороться.
#73 #868411
>>868405
Окей, с этим дерьмом я справился.

>answer > 5 и т.д.


Разве можно работать таким образом со строками? Я думал, что нужно преобразовать число в строку что бы не было всяких проблем, а тут выходит строка "ответ" больше 5. Как так? Я совсем запутался.
>>868417>>868420
#74 #868417
>>868411
answer - это переменная, уёба, в которую ты передаёшь 4, 5, 6
#75 #868420
>>868411
answer - переменная. ты вызываешь функцию передаешь ей число в качестве аргумента - все правильно. при чем здесь строки?
>>868426
#76 #868426
>>868420
Я не знал, что так можно. Откуда я вобще мог знать об этом?Я думал что answer это аргумент. У меня вобще крыша едет от этой всей залупы. Выходит если
def hui(pizda)
print hui(4)
то пизда будет равна 4 ? Я прост раньше думал, что нужно сначала создать переменную.
>>868432
#77 #868432
>>868426

>то пизда будет равна 4 ?


да

Почитай какие-нибудь книги, где объясняют про функции. Лутца, например.
>>868446
#78 #868438
>>868290
Спасибо! pickle лучше всех
#79 #868446
>>868432
Я его как раз и читаю, но до функций еще не дошел.
360 Кб, 858x725
#80 #868522
Блять, как же припекло. Ебучая академия, ну нахуя так мозги ебать. Все же правильно сделал, немножко по своему но результат получается тот который нужен, тот который задавали изначально. Нет блять, хуй тебе пидарас. Делай так как написано, следуй строго по инструкции. Делай как сказали, тварь. Столько времени угандошил, что бы разобраться в том, что именно они хотели от меня. Я понимаю, что они хотели научить меня ебаному срезу. НО Я ВЕДЬ И ТАК ЕГО ПРИМЕНИЛ, ТОЛЬКО ЧУТЬ ЧУТЬ ПО СВОЕМУ.
извиняюсь за баттхерт, нужно было излить свое негодование по поводу данного ресурса
#81 #868647
>>868037
Читаю про общение процессов через сокеты. Там везде локалхост прописывают. Без этого можно будет сделать? У меня будет 2 клиента и 1 сервер. А клиенты в стандартный ввод и вывод пишут.
49 Кб, 632x466
#82 #868749
Анон, есть фотогалерея, которую я хочу скачать с помощью скрипта + BS4.
Сама страница галереи в формате html, а дальше начинаются проблемы:
при нажатии на изображение открывается не новая страница, а просто подгружается фото,
а адрес изменяется на galery_name.html#page=2 и т.д.
Пока что таким образом вытаскивал изображения из отдельных страниц, с AJAX и т.д. почти не знаком, реквестов POST там вообще нет.
>>868869
#83 #868864
>>868258

> Когда твой скрипт блокируется на уровне "парсинг страницы занимает 20 секунд", то asyncio никак не поможет - остается выделять парсер в отдельный процесс или запускать на отдельной машине.


это бред какой то. каким образом парсинг, не делающий блокирующих операций, может заблокировать луп!?
>>868880
#84 #868866
>>868647
посмотри в сторону zeromq там есть rpc и нормальные питонячьи биндинги
#85 #868869
>>868749
тут нужен selenium
>>869435
#86 #868871
>>868647
А чем localhost и сетевые сокеты плохи? Можешь использовать unix sockets, если еще не зашкварился.
#87 #868880
>>868864

>каким образом парсинг, не делающий блокирующих операций, может заблокировать луп!?


В случае неблокирующего парсинга, очевидно, никак. Однако, твой вопрос подстроен под этот ответ.
"Каким образом сухая вода может намочить?"
Ты уверен, что блокирующих вызовов в парсинге нет?
>>869299
#88 #868888
>>867930
Чтобы потом экранировать одинарные кавычки?
>>868909>>868912
239 Кб, Webm
#89 #868891
>>868405

> if 4 > 5


Сделал мой день.
>>868905>>868963
40 Кб, 700x529
#90 #868905
>>868891
Подождите, это еще не все!
>>868906
7 Кб, 380x250
#91 #868906
>>868905
Готовы?
>>868907
7 Кб, 300x222
#92 #868907
>>868906

>elif 4 < 5

>>868960
#93 #868909
>>868888
Пиздец просто!
Да за такие вопросы у нас heredoc заставляют для все строковых литералов использовать!
#94 #868912
>>868888
Вот для таких редких случаев и нужны двойные кавычки!
#95 #868913
Итак, я ржу с Задорнова. Похоже, мне снова 8 лет.
#97 #868963
>>868891
это ты с компами слабо знаком и плавающей запятой
уверен где-то в глубине твоей шайтан-коробки в самом её процессоре валяется инструкция на машинном коде if 1 == 1.00000000034: dowork()
>>868977
#98 #868977
>>868963
Эксперт в треде, все в мантиссу!
#99 #869299
>>868880
да, какие блокирующие вызовы делает bs, lxml, regexp в конце концов?
>>869397>>869558
#100 #869302
>>868405
уебывай со своей донатной парашей.
#101 #869397
>>869299
Пока выполняется код от await до await луп заблокирован.
>>869523
57 Кб, 670x446
#102 #869435
>>868869
С selenium бы и аутист справится. В статьях посаны и по POST вытаскивают все что нужно.
В моем случае все оказалось проще: ссылки на исходники и thumbnails были в скрипте в <body>. Что-то слишком легко получилось.
#103 #869512
>>868647

> Без этого можно будет сделать?


Разделяемая память. У нас это в вузе на первом курсе преподавали.
#104 #869523
>>869397
хаха. что это за код то такой между между? между булок твоей мамаши? наличие блокирующего кода пораждает рантаймерор вообще то:

> RuntimeWarning: coroutine 'foo' was never awaited foo()

>>869661
#105 #869532
Привет, змеяч. Пишу на Питоне третий раз в жизни (в этот раз как никогда раньше понадобилась динамикодрисня), прошу помощи.

Есть код: http://pastebin.ubuntu.com/23423531/

Он находится в файле models/__init__.py. Я хочу его разбить на модули как-то так:

models/amount.py
models/aggregation_function.py
models/modification_function.py
models/requirement.py

Собственно, если так сделать и разбить всё на файлы, то из-за взаимных импортов ничего не работает. Пытался по-всякому пердолить, но понимаю, что нужно совсем другую структуру выбирать, однако, до решения сам дойти не могу пока. Вся эта параша нужна для парсинга одного большого JSON'а, в котором описаны разные объекты с помощью этих моделей.

Буду рад любому совету. Понимаю, что мою парашу мало кому интересно будет разбирать, но больше мне спросить не у кого.
>>869534>>869535
#106 #869534
>>869532
и в чем тебе помочь? переписать за тебя что бы не было взаимных импортов? может данунахуй!? алсо что за девиация такая пихать рабочий код в __init__.py?
>>869537
#107 #869535
>>869532
ну ок, разбиваешь на модули. в инит.ри пишешь

> from amount import Amount ....

>>869537
#108 #869537
>>869534
Переписать и сам смогу, если объясните, че мне делать, если объекты зависят друг от друга, блджад.

> алсо что за девиация такая пихать рабочий код в __init__.py


Я начал в отдельную директорию пихать код, разбив его на несколько файлов, и в итоге соснул хуйца. Затем объединил всё в один файл, но оставил в отдельной директории, чтобы в будущем всё же сделать то, что хочу. Можно было догадаться, though.

>>869535
Это было сделано перед тем, как я всё объединил в один файл. Нет, не взлетит, amount.py импортит aggregation_function.py, а aggregation_function.py — amount.py. Также пробовал делать импорты в этих файлах через __init__.py, но это ещё более тупая затея, конечно же.
>>869538
#109 #869538
>>869537
что бы избежать конфликтов в импортах, это конечно костыль, но для тебя не могущего нормально построить архитектуру классов, сойдет: импортируй не в начале файла а в теле функции. то есть буквально перед использованием чего то импортируй это.
когда разобьешь на модули и сделаешь как я сказал: прописать импорты в инит, то ты сможешь сделать так, в стороннем коде:

> from models import Amount

>>869539>>869541
#111 #869540
>>868405

> 4 < 5



Сука, как же я ору, бля
#112 #869541
>>869538

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


Для тебя, не могущего в запятые и прописные буквы, объясняю: я пишу парсер JSON, в котором что-то вроде своеобразного AST, и структура JSON мне диктует архитектуру классов.

Числа в данном JSON могут быть представлены как и обычными числами, так и хитровыебанными объектами, ссыляющимися на ресурсы в другой части документа. В таких хитровыебанных объектах могут быть условия, которые, в свою очередь, могут включать хитровыебанные объекты, которые... OH SH~ Нутыпонел.

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

И да, я гуглить умею и знаю про тот костыль, который ты мне посоветовал, и мне он не подходит. Но спасибо за вимание, че.
>>869542
#113 #869542
>>869541
епта, ну вынеси ты ебучий общий функционал в base.py ебанаврот и импортируй его везде
>>869543>>869544
#114 #869543
>>869542
и наследуйся от него
>>869544
#115 #869544
>>869542
>>869543
Ты мне сейчас говоришь, по сути, объединить всё в один модуль (или запихать в класс десятки лишних полей), чего я хочу избежать. Потому что это пока там всего-то нихуя кода, но нужно написать ещё много тысяч строк этого говна (на пике то, что влезло в экран а влезло туда меньше пары процентов папок, и это нужно переписать на Питон).

В языке со статической типизацией я чуть пошаманил с парсером JSON, в полях классов указал лишь интерфейсы, а потом ужа туда анмаршалил объекты, реализующие данные интерфейсы. А в Питоне вот четыре часа с импортами ебусь, пиздец.
>>869545>>869546
30 Кб, 325x775
#116 #869545
>>869544
Пик отвалился.
>>869546
#117 #869546
>>869545
>>869544
Если что, пока обойдусь локальными импортами, но если кто-то хочет что-то посоветовать или обоссать меня, то я еще послежу за тредом. Спасибо.
>>869548
#118 #869548
>>869546
ну тебе полюбому надо абстрагироваться от реализаций при таком количестве кода, иначе ждет тебя ад. хз как это сделать без базовых классов.
>>869549
#119 #869549
>>869548
Я совсем не понимаю, похоже, что ты подразумеваешь под базовым классом. Это и есть четыре базовых класса документа, лол: числа, условия, агрегирующие и модифицирующие функции. Но они достаточно заёбистые для того, чтобы причинить боль и страдания. Часто классы из одной смысловой группы не имеют почти ничего общего, кроме интерфейса, если так можно в питоньем контексте выразиться, поэтому наследоваться от чего-то смысла нет.

Нужно, наверное, хитрую фабрику городить.
>>869550
#120 #869550
>>869549
фабрика + декораторы возможно
>>869554
114 Кб, 590x542
#121 #869551
>>867631

>Александр Пушкин, русский поэт


>русский

>>869553>>870375
29 Кб, 359x284
#123 #869554
>>869550
Двигаюсь в этом направлении. Говнокод, наверное, но уже лучше, чем локальная параша.
>>869555>>869565
#124 #869555
>>869554
ок, а для методов может это пригодиться https://pypi.python.org/pypi/singledispatch
#125 #869558
>>869299

> да, какие блокирующие вызовы делает bs, lxml, regexp в конце концов?


re кстати сишный и годами доставляет баттхерты через GIL.
#126 #869565
>>869554
Зачем такую хуету писать.
>>869568
#127 #869568
>>869565
Ты уж объясни, что не так. Я двенадцать часов на Питоне пишу. Одиннадцать из них сейчас без остановки.
>>869569
#128 #869569
>>869568
Суть в том, что смотрю я на этот код и не понимаю, что он должен делать. Вообще ноль идей в этом плане.
>>869572
33 Кб, 445x605
#129 #869572
>>869569
Ну так ты же не знаешь задачу. Ясен хуй, в отрыве от данных это как хуй знает что выглядит.
#130 #869624
В оп пасте ссылка на статью хабра, в которой советуют начать с книги "изучаем питон", а в самой пасте советуют "укус питона" с чего начинать?
>>869626
#131 #869626
>>869624
Кодакадемия
506 Кб, 674x455
#132 #869661
>>869523

>наличие блокирующего кода пораждает рантаймерор вообще то:


>> RuntimeWarning: coroutine 'foo' was never awaited foo()



Ты заебал. Нихуя не понимаешь, но мнение имеешь.
57 Кб, 571x295
51 Кб, 887x249
82 Кб, 989x377
25 Кб, 1201x166
#133 #869663
Вопросик по django
Хотел вот форму комментов сделать к посту, но комменты создаются а к посту не привязываются, если из моделей у foreign key убрать null=True, то выдает NOT NULL constraint failed:main_articlecomment.article_id при отправке формы
Я передаю id через hidden input в форме в реквесте оно присутствует, а в sql-запросе все-равно None
>>869665>>870975
#134 #869665
>>869663
Ну так у тебя форма про поле article не в курсе, ты же его не указал в списке fields
>>869667>>869668
#135 #869667
>>869665
указывал, тогда условие form.isvalid() не выполняется, и происходит raise Http404
>>869670
#136 #869668
>>869665
Поскольку у тебя article_id доступен во view, можешь сделать так:
article_comment = form.save(commit=False)
article_comment.article_id = article_id
article_comment.save()
и поле не нужно
>>869673
#137 #869670
>>869667
Это потому что у поля name кто-то поставил article_id вместо article
21 Кб, 483x121
#138 #869673
>>869668
cпасибо большое, так заработало. С джанго без бутылки не разберешься
>>869674
#139 #869674
>>869673

> С джанго без бутылки не разберешься


В гранит!
#140 #869679
Котятки, подскажите, плизки, как правильно сбросить внутреннее состояние экземпляра класса?Переопределить с тем же именем - правильное решение или есть более правильный способ?
>>869687
#141 #869687
>>869679

> сбросить внутреннее состояние экземпляра класса


Создать новый
#142 #869695
Вопрос скорее всего платиновый, извиняюсь. Я прошёл код академию и дочитал укус. Что теперь делать дальше? Пока что я решаю всякие задачи по основам языка типа работа с типами данных, выражения всякие ну вы поняли, совсем для новичков, но представления что от меня требуется для вкатывания в профессию Джуна питон разработчика абсолютно не имею. Я понимаю, что нужен какой то проект. Но мой максимум это калькулятор и текстовый симулятор бомжа в основе которого по большей части включён рандом и не замысловатое линейное развитие событий if, else который точно не подойдёт. Есть какие нибудь мысли?
#143 #869714
>>869695
Посмотри адаптивный тренажер Питона на Стэпике.
>>869733
#144 #869717
>>869695
Алсо, ты можешь там же пройти курс по нейронкам, потом по Machine Learningу на Курсере, участвовать в соревнованиях на Kaggle и прийти к успеху.
>>869733
#145 #869733
>>869714
Благодарю.
>>869717
Звучит дико интересно, у меня нейроные сети ассоциируются с будущем и прочими ништяками в которых я максимально далек, да и судя по всему для обучения по твоему списку требуется знание английского на хорошем уровне который у меня сильно хромает. Честно говоря, у меня в планах ближе к лету попытаться устроиться на работу. Считаешь это действительно поможет для трудоустройства?
>>869741>>869808
#146 #869741
>>869733
Постоянно проигрываю с мамкиных вкатывальщиков в deep machine learning.
Без серьезной математической подготовки и опыта работы с big data никому ты нахуй не будешь нужен.
>>869772
#147 #869747
Есть ли способ изменить в потомке класса то, что задано в __init__ его родителя?
Например есть
class Cat():
def __init__(self):
self.legs = 4
И допустим его потомок класс CreepyCat у которго legs должно быть 8 или 2 мутанты хуй знает.
Как это сделать?
>>869751>>869752
#148 #869751
>>869747
Сделать инит в потомке, очевидно же.
#149 #869752
>>869747
Переопределенный метод не вызывает по умолчанию метод родителя.
Тебе надо явно вызывать super().__init__() для этого.
>>869756
#150 #869756
>>869752

Спасибо.
Просто если свойств дохуя. 10+ по умолчанию. А изменить надо только например 2.
Как их лучше перечислять в родителе?
def __init__(self, x, y, z... n)
self.x = 1
self.y=2
.

Или запихивать прям в init? не помню где то я такое видел
def __ init__(self, x=1,y=2.. n)
self.x=x
self.y=y
>>869752
class CrCat(Cat):
def __init__(self):
super(Cat,self).__init__()
self.legs=8
А остальные ? Выдаст has no atribut
>>869757
#151 #869757
>>869756
http://qualcode.ru/article/inheritance_python/
Сам чет нашел. вроде работает
#152 #869761
>>867611 (OP)
Только начал учить питон а уже нихуя не понимаю.
1 import sys
2 Zero = [" ",
3 "
",
4 "
",
5 "
",
6 "
",
7 "
",
8 "
"]
9
10 One = [" ",
11 "
",
12 "
",
13 " ",
14 "
",
15 " ",
16 "
"]
17
18 Two = ["
",
19 "
",
20 "
",
21 "
",
22 " ",
23 "
",
24 " *"]
25
26
Digits = [Zero, One, Two]

try:
30 digits = sys.argv[1]
31 row = 0
32 while row < 7:
33 line = ""
34 column = 0
35 while column < len(digits):
36 number = int(digits[column])
37 digit = Digits[number]
38 line += digit[row] + " "
39 column += 1
40 print(line)
41 row += 1

В качестве аргумента sys.argv[1] выступают цифры.
Итого, на 36 строчке
number=int(digits[column])
Что за блядь хуйня? Он хочет получить столбец цифры? Нихуя не понятно, но оно почему-то работает.
#152 #869761
>>867611 (OP)
Только начал учить питон а уже нихуя не понимаю.
1 import sys
2 Zero = [" ",
3 "
",
4 "
",
5 "
",
6 "
",
7 "
",
8 "
"]
9
10 One = [" ",
11 "
",
12 "
",
13 " ",
14 "
",
15 " ",
16 "
"]
17
18 Two = ["
",
19 "
",
20 "
",
21 "
",
22 " ",
23 "
",
24 " *"]
25
26
Digits = [Zero, One, Two]

try:
30 digits = sys.argv[1]
31 row = 0
32 while row < 7:
33 line = ""
34 column = 0
35 while column < len(digits):
36 number = int(digits[column])
37 digit = Digits[number]
38 line += digit[row] + " "
39 column += 1
40 print(line)
41 row += 1

В качестве аргумента sys.argv[1] выступают цифры.
Итого, на 36 строчке
number=int(digits[column])
Что за блядь хуйня? Он хочет получить столбец цифры? Нихуя не понятно, но оно почему-то работает.
>>869765
#153 #869765
>>869761
ideone or pastebin or 'Иди нахуй'
>>869767
#154 #869767
>>869765
http://pastebin.com/xukrMEti

Вот например я ввел цифру 5.
number = int(digits[column])
Это значит что number = int(5[0]) но питон мне в интерактивном режиме говорит иди нахуй даун, даже если я присвоил какие-нибудь значения для digits и column
>>869775
#155 #869772
>>869741
Никто никуда ещё не вкатывается. Я задал вопрос, мне ответили. Если ты пизда какой умный мог бы ответить по существу. >>869695
#156 #869775
>>869767
Отмена, я понял.
19 Кб, 1822x449
#157 #869777
Чет совсем туго.
#158 #869778
>>869777
Там в 3 строке случайно убрал перед скрином, на вывод не виляет.
#159 #869782
>>869777
Тебе надо комплементарную цепочку построить?
>>869785
#160 #869785
>>869782
Можно и так сказать, грубо говоря замена символов.
>>869800
#161 #869794
С super вроде разобрался. надо читать документацию
Как в питоне лучше писать переменные/классы/функции?
functon_foo или functionFoo?
Класс с заглавной?
обычные переменные x_foo или xFoo?
>>869797>>869798
#162 #869797
>>869794
ClassFoo - классы
function_foo - функции

>обычные переменные x_foo


this

Почитай PEP8.
>>869799
16 Кб, 1821x328
#163 #869798
>>869794
https://en.wikipedia.org/wiki/Python_syntax_and_semantics
Только всё равно не пойму почему здесь >>869777 такой результат.
>>869801
#164 #869799
>>869797
Ок. Спасибо.
Просто встречал несколько видов написания. И лесенку и подчеркивания. Глобальные переменные капсом.
>>869807
#165 #869800
>>869785
Чем string.translate() не устраивает?
http://ideone.com/f1X3tA
>>869802
#166 #869801
>>869798
Попробуй по русски псведокодом описать что там делается по шагам. Для себя в комментах рядом.
>>869802
#167 #869802
>>869800
Тем, что я даже и не знал о такой функции
>>869801
Да, придется. Спасибо.
>>869803
#168 #869803
>>869802
В питоне дохуя полезных фич. Типо итертулз или уже встроенных методов. Прям просто дохуя. Heap встроенный. Ахуеть.
>>869805
#169 #869805
>>869803
Да я в курсе. Всего не охватишь.
#170 #869807
>>869799

>капсом


И константы капсом, да
#171 #869808
>>869733
Ну фиг знает. Это мой план на ближайшие года два-три, с учетом учебы в вузе. Вообще тебе (и мне) нужно будет еще по хардкору заботать алгоритмы и теорвер со статистикой. Ну и начинать старт не с джуниора, а со стажера. Еще можно закатиться в магу по датасайенс, например.
#172 #869809
>>867611 (OP)
Привет ребята! Я психолог кун, вкатываюсь в жс и заодно хочу написать о связи популярных языков (петон, раби, жиес) с нетрадиционной сексуальной ориентацией.
Есть готовые поделиться своим опытом разработки?
#173 #869816
Аноны, есть адрес типа "https://2ch.hk/pr/res/867611.html (М)".
Нужно проверить, есть ли в адресе "res" после названия доски, если нет - добавить.
Я представляю это так:
[CODE]url = 'https://2ch.hk/pr/res/867611.html' (М)
url = url.split(r'/')
if url[3] != 'res':
url.inser(3, 'res')
url = '/'.join(url)
[/CODE]
Но мне такое решение кажется всратым. Есть идеи?
>>869891
#174 #869891
>>869816
Нормальное решение, вроде бы.
Только я бы сначала проверял, что 'res' не входит в url, а потом уже сплитил.
Вот решение с регулярками, но не такое простое как у тебя https://gist.github.com/anonymous/c5acdcebf6bea4df421d1ca93eee5fc1
40 Кб, 700x438
#175 #869906
Привет. Не поймите меня не правильно, я мелкий админ эникей босюь что в админстве у меня будет все оче хуево.

Хочу учить ЯП, выбрал питон. С алгоритмами все хуево, пытаюсь понимать как пишутся проги, уходит много времени на 1 маленькую прогу в примерах в книжке.

Каковы шансы что я вкачусь и буду получать хотябы 40-50к?

Я не из тех у кого "горят глаза" на программировании, но буду как-то сквозь боль и немогу пытаться что-то делать.
>>869929>>872175
#176 #869929
>>869906
100%. Сиди и ебашь потихоньку. В джагну вкатывайся или в авто тестирование.
#177 #869931
В питоне без numpy никак с матрицами нормально работать нельзя?
>>869937>>870250
#178 #869937
>>869931
Смотря что ты хочешь с ними делать. Иногда можно и вложенными последовательностями можно обойтись.
>>869938
#179 #869938
>>869937
Хочу с уже готовыми решениями. Мне лень самому делать все эти велосипеды. Типа повернуть на 90 градусов, найти количество элементов больших n, просуммировать диагональ или транспонировать.
>>869942
#180 #869942
>>869938
Чем тебя numpy не устраивает тогда?
>>870285
#181 #870146
Анон, смотри, мне нужно выводить в ткинтере на экран куски текста (много кусков), которые будут визуально разделены. Юзаю скроллер и текст виджет. Почему скроллер не работает? Анон, помоги пожалуйста, всё утро ебусь с этим!

root = Tk()
scrollbar = Scrollbar(root)
scrollbar.pack(side=RIGHT, fill=Y)
data = {}

def load_data():
for i in range (0, len(data)):
insert_text(data + '\n', i)

def insert_text(post, i):
t = Text(root, wrap=WORD, yscrollcommand=scrollbar.set)
t.insert(END, post)
t.pack(fill="both", expand=1)

def on_finish():
root.mainloop()

load_data()
on_finish()
#182 #870226
Господа, помогите разобраться со строками http://pastebin.com/Yq352Pqp:
Как получить из последовательности вроде "\xcd\xe8\xf1\xee\xed" строку русской кодировки? Строка приходит из html, при этом латиница там читается нормально, а русские символы именно так.
>>870333
#183 #870232
Что нужно знать для современного веб-петушения в python, конкретно с django и flask?
Использовал питно по большей части для мелкой автоматизации и всякой параши в онлайн-курсах, сейчас задумался о поиске работы.
Посмотрел последние версии python3, какие-то асинки, futures, вообще охуеть, ничего непонятно.
1. Нужно ли это всё будет для веба?
2. Есть ли вменяемые ресурсы где это объясняется для людей которые могут только в последовательное исполнение одного треда?
>>870235
#185 #870250
>>869931
Никак. Наверняка миллион велосипедов на пукпук, но ты же сказал "нормально", а "нормальная" работа с матрицами в питоне - это строго нампай.
#186 #870285
>>869942
Докачивать надо, а он жирный. Мне ради одних матриц всё это качать лень.
>>870392
#187 #870300
>>867611 (OP)
что учить, чтобы начать зарабатывать на фрилансе?
>>870330
#188 #870330
>>870300
PETOOH.
>>870374
#189 #870333
>>870226

> bytes = '\xcd\xe8\xf1\xee\xed'


> bytes.encode().decode('utf-8')

>>870420
#190 #870374
>>870330
Сам ты петух.
>>870391
#191 #870375
>>869551
Ну, не камерунский же.
#192 #870391
>>870374
Это не оскорбление, а перспективный в настоящее время язык для всех новых проектов.
#193 #870392
>>870285
Со сцупу не путаешь? Нампай не жирный. Собственно, там внутри только одна матрица и матричные операции и есть по сути. Ну и ещё небольшая кучка легаси сбоку.
#194 #870420
>>870333
Если я пишу эту строку в самом скрипте то работает, если получаю из разметки то получаю её же. Суть в том, что кроме русских букв там все приходит в хорошем виде.
>>870457
#195 #870457
>>870420
Я короче не разбирался что там у тебя, но попробуй еще на 17 строке сделать так:

>return urlopen(url).read().decode('utf-8')

>>870569
2339 Кб, 1920x1080
#196 #870556
может кто-то объяснить, как работает оператор in в питоне.
например, когда проверяется, находится ли к в списке каком-нибудь.
if n in range(10): ...
>>870589
#197 #870569
>>870457

>.decode('utf-8')


вообщем зашёл на страницу, нашёл в мете кодировку и дописал в функцию:
return urlopen(url).read().decode("windows-1251")
больше никаких проблем. Спасибо за наводку, анон
#198 #870589
>>870556
The membership test operators (in and not in) are normally implemented as an iteration through a sequence. However, container objects can supply the following special method with a more efficient implementation, which also does not require the object be a sequence.
11 Кб, 362x198
синтаксис меня уничтожил #199 #870701
Сап, рептилии.
Начал изучать сабж. Сидел изучал, игрался с консолькой, разворачивал строки, посчитал интегральчики, нарисовал график, сделал гифку. Пару раз копипастнул код для графики, в остальном - язык как язык.
И тут дело доходит до основ ООП.
Читаю учебник - чёт не то, не залезает тема в башню.
Например смотрю на пикрил.
Вижу 5 строк. 15 лексем.
Среди этих 15ти лексем - 4 раза повторяется селф, 4 раза - вал, 2 раза - деф.
Итого для описания этой конструкции и всего ее функционала, если верить здравому смыслу, теории формальных систем, общим представлениям о языке и тп - нужно не 15 лексем, а 8.

Итак пишем:
obj1 = Foo(1)
Что означает вроде бы: выделим памяти немношко, под одну переменную типа инт , немножко под имя конкретного объекта.
Далее:
obj1.printVal() -
вывод значения той самой переменной.

Вопрос: это гайд, на который я ссылаюсь, хуевейший ? Или я чего то не вдупляю?
Зачем для доступа к переменной городить такую прозу?
почему нельзя сделать просто print(obj1.val) ?
Зачем каждый раз в каждом классе писать метод __init__ ? Вот нахуя? Почему этот алокейшен не встроен в сам функционал оператора Class?
Какой в этом смысл?
в чем смысл self.val = val? Что тут происходит? Почему мне смысл этой строки понять сложнее, чем доказательство теоремы остроградского-гаусса или сложнее чем решение несобственных интегралов, лол?
Зачем тут def printVal(self): в скобках стоит лексема селф? В чем смысл? Что это дает, если в теле метода и так указано блять: берем val свой, родной val, Валюшечка мой родной, именно тебя печатаем. Нахуя ?

Вот из того же гайда:
You can see that both methods take a parameter called self. It doesn't have to be called self but this is the Python convention and while you could call it this or me or something else, you will annoy other Python programmers who might look at your code in the future if you call it anything other than self. Because we can create many instances of a class, when a class method is called, it needs to know which instance it is working with, and that's what Python will pass in via the self parameter.
"Поскольку мы можем создать множество особей класса, то в случае вызова метода класса, метод должен знать, с какой конкретно особью он работает."
annoy other programmers? что сука?
Вопрос - каким СУКА образом лексема селф помогает бедному методу уточнить, куда в памяти обращаться? Зачем нужны эти ебучие четыре буквы блять? ЕСЛИ БЛЯТЬ ПРИ ВЫЗОВЕ МЕТОДА МЫ И ТАК В САМОЙ ОПЕРАЦИИ ВЫЗОВА ЯВНО УКАЗЫВАЕМ ИМЯ ОБЪЕКТА?
obj1.printVal() ВОТ СУКА ТУПОЙ МЕТОД СМОТРИ ХУЛИ ТЕБЕ НЕ ЯСНОГО ПРЯМО перед ТОБОЙ СТОИТ ИМЯ ОБЪЕКТА КОНКРЕТНОГО ОТКРОЙ ГЛАЗА КРОВЬ КИШКИ ГОВНО

Пусть есть Класс1, и две его особи - Объект1 и Объект2.
В Классе1 есть 2 метода: Класс1.метод1 и Класс1.метод2.

Ситуация первая:
Нужно, чтоб Класс1.метод1 работал с Объектом1.

Пишем нечто вроде: Объект1.метод1().
Всё понятно - метод класса "знает", с каким объектом ему работать, блять. Потому что сам метод уже связан с вызываемым Объектом1 .
Зачем писать Объект1.метод1(сам) ?

Ситуация вторая:
Нужно, чтоб метод "работал" с Объектом2. Окей.
Объект2.метод1().

Что вообще значат слова it needs to know which instance it is working with ?
Что за хуетень? Еще раз: при вызове метода мы не пишем Класс1.метод1(). В таком случае я бы понял уточнения. Типа Класс1.метод1(Объект1). Но это явно излишне. Поэтому
Мы пишем СУКА конкретно Объект1.метод1().
А какие еще могут быть блять варианты? А?
метод1() к какому еще объекту может обращаться? Объект1.метод1(Объект2) ?
Если они принадлежат одному классу - то это излишне. Ведь метод1 у них общий.
операнды Объект1.метод1(Объект2) и Объект2.метод1(Объект2) должны дать одинаковый результат.

А если они принадлежат разным классам, тогда нахуй вызывать метод одного класса на объект другого класса?

http://pythoncentral.io/introduction-to-python-classes/ - сука. Я пользуюсь интернетом уже лет 10. Прочитал за эти 10 лет не менее сотни книг. Литературы блять, толстого прочитал, учебники по матану, по сука стохастическим процессам. И это блять первая страничка текста в моей жизни, которая вызывает только такую реакцию. Либо я сегодня получил инсульт, либо автор мануала уебок-дегенерат, либо весь питон это глобальный заговор нахуй! НО нету тут варианта что в self.val = val или в МОЖЕТ БЫТЬ БЛЯТЬ КАКОЙ ТО ПРАКТИЧЕСКИЙ СМЫСЛ, или в def printVal(self) !
ХОЧУ ТЕПЕРЬ ТОЛЬКО УБИВАТЬ УВИЖУ ПИДОРА ПИТОНЩИКА НОЖ ЕМУ В ЖИВОТ СРАЗУ
11 Кб, 362x198
синтаксис меня уничтожил #199 #870701
Сап, рептилии.
Начал изучать сабж. Сидел изучал, игрался с консолькой, разворачивал строки, посчитал интегральчики, нарисовал график, сделал гифку. Пару раз копипастнул код для графики, в остальном - язык как язык.
И тут дело доходит до основ ООП.
Читаю учебник - чёт не то, не залезает тема в башню.
Например смотрю на пикрил.
Вижу 5 строк. 15 лексем.
Среди этих 15ти лексем - 4 раза повторяется селф, 4 раза - вал, 2 раза - деф.
Итого для описания этой конструкции и всего ее функционала, если верить здравому смыслу, теории формальных систем, общим представлениям о языке и тп - нужно не 15 лексем, а 8.

Итак пишем:
obj1 = Foo(1)
Что означает вроде бы: выделим памяти немношко, под одну переменную типа инт , немножко под имя конкретного объекта.
Далее:
obj1.printVal() -
вывод значения той самой переменной.

Вопрос: это гайд, на который я ссылаюсь, хуевейший ? Или я чего то не вдупляю?
Зачем для доступа к переменной городить такую прозу?
почему нельзя сделать просто print(obj1.val) ?
Зачем каждый раз в каждом классе писать метод __init__ ? Вот нахуя? Почему этот алокейшен не встроен в сам функционал оператора Class?
Какой в этом смысл?
в чем смысл self.val = val? Что тут происходит? Почему мне смысл этой строки понять сложнее, чем доказательство теоремы остроградского-гаусса или сложнее чем решение несобственных интегралов, лол?
Зачем тут def printVal(self): в скобках стоит лексема селф? В чем смысл? Что это дает, если в теле метода и так указано блять: берем val свой, родной val, Валюшечка мой родной, именно тебя печатаем. Нахуя ?

Вот из того же гайда:
You can see that both methods take a parameter called self. It doesn't have to be called self but this is the Python convention and while you could call it this or me or something else, you will annoy other Python programmers who might look at your code in the future if you call it anything other than self. Because we can create many instances of a class, when a class method is called, it needs to know which instance it is working with, and that's what Python will pass in via the self parameter.
"Поскольку мы можем создать множество особей класса, то в случае вызова метода класса, метод должен знать, с какой конкретно особью он работает."
annoy other programmers? что сука?
Вопрос - каким СУКА образом лексема селф помогает бедному методу уточнить, куда в памяти обращаться? Зачем нужны эти ебучие четыре буквы блять? ЕСЛИ БЛЯТЬ ПРИ ВЫЗОВЕ МЕТОДА МЫ И ТАК В САМОЙ ОПЕРАЦИИ ВЫЗОВА ЯВНО УКАЗЫВАЕМ ИМЯ ОБЪЕКТА?
obj1.printVal() ВОТ СУКА ТУПОЙ МЕТОД СМОТРИ ХУЛИ ТЕБЕ НЕ ЯСНОГО ПРЯМО перед ТОБОЙ СТОИТ ИМЯ ОБЪЕКТА КОНКРЕТНОГО ОТКРОЙ ГЛАЗА КРОВЬ КИШКИ ГОВНО

Пусть есть Класс1, и две его особи - Объект1 и Объект2.
В Классе1 есть 2 метода: Класс1.метод1 и Класс1.метод2.

Ситуация первая:
Нужно, чтоб Класс1.метод1 работал с Объектом1.

Пишем нечто вроде: Объект1.метод1().
Всё понятно - метод класса "знает", с каким объектом ему работать, блять. Потому что сам метод уже связан с вызываемым Объектом1 .
Зачем писать Объект1.метод1(сам) ?

Ситуация вторая:
Нужно, чтоб метод "работал" с Объектом2. Окей.
Объект2.метод1().

Что вообще значат слова it needs to know which instance it is working with ?
Что за хуетень? Еще раз: при вызове метода мы не пишем Класс1.метод1(). В таком случае я бы понял уточнения. Типа Класс1.метод1(Объект1). Но это явно излишне. Поэтому
Мы пишем СУКА конкретно Объект1.метод1().
А какие еще могут быть блять варианты? А?
метод1() к какому еще объекту может обращаться? Объект1.метод1(Объект2) ?
Если они принадлежат одному классу - то это излишне. Ведь метод1 у них общий.
операнды Объект1.метод1(Объект2) и Объект2.метод1(Объект2) должны дать одинаковый результат.

А если они принадлежат разным классам, тогда нахуй вызывать метод одного класса на объект другого класса?

http://pythoncentral.io/introduction-to-python-classes/ - сука. Я пользуюсь интернетом уже лет 10. Прочитал за эти 10 лет не менее сотни книг. Литературы блять, толстого прочитал, учебники по матану, по сука стохастическим процессам. И это блять первая страничка текста в моей жизни, которая вызывает только такую реакцию. Либо я сегодня получил инсульт, либо автор мануала уебок-дегенерат, либо весь питон это глобальный заговор нахуй! НО нету тут варианта что в self.val = val или в МОЖЕТ БЫТЬ БЛЯТЬ КАКОЙ ТО ПРАКТИЧЕСКИЙ СМЫСЛ, или в def printVal(self) !
ХОЧУ ТЕПЕРЬ ТОЛЬКО УБИВАТЬ УВИЖУ ПИДОРА ПИТОНЩИКА НОЖ ЕМУ В ЖИВОТ СРАЗУ
#200 #870702
Я ебал, блять. Анон, дай пример, как закрутить аякс джквери и джанго. Я нихуя не понимаю, что куда передает, что за джейсон ебучий такой и т.п.

Именно пример, а не ссылку на какую-то хуйню. Желательно с комментариями. Гуглил час - нихуя не понял.
>>870708
55 Кб, 742x288
#201 #870703
https://jeffknupp.com/blog/2014/06/18/improve-your-python-python-classes-and-object-oriented-programming/
Еще пример:

class Customer(object):
...
def withdraw(self, amount):
....
return self.balance

So what's with that self parameter to all of the Customer methods? What is it?
Ну давай сука поясни. Я же блять зашел к тебе на страницу, загрузил твою ебучую рекламу.
when we say def withdraw(self, amount):, we're saying, "here's how you withdraw money from a Customer object (which we'll call self)

That's not me making analogies, either.
jeff.withdraw(100.0) is just shorthand for Customer.withdraw(jeff, 100.0), which is perfectly valid (if not often seen) code.

Что блять?
Хочешь сказать, автор, что лексема селф нужна только чтоб иметь 2 варианта написания?
Чтоб я мог, если опустилось левое яичко, написать jeff.withdraw(100.0), а если правое - то Customer.withdraw(jeff, 100.0)?
А нахуй мне всё равно твой селф сдался, если jeff не может быть особью никакого другогокласса, кроме Customer?

ШТО СУКА? "Селф" нужен только чтоб парсер проигнорировал первое "место" внутри скобок перед запятой в случае короткой записи jeff.withdraw(100.0), а случае длинной записи Customer.withdraw(jeff, 100.0) - на месте селф был опциональный указатель на конкретный объект? И ради такого дерьма блять нужен такой жопорукий синтаксис? И ЭТО БЛЯТЬ БАЗОВАЯ КОНСТРУКЦИЯ СИНТАКСИСА ООП?
https://www.youtube.com/watch?v=xs5Ro2FXxP4
Всё это дерьмище, намекаете вы, нужно только чтоб искусственно создать неоднозначность в коде, чтоб тупому манагеру пустить пыль в глаза?
#202 #870708
>>870702
В Джанго бай экзампл в главе о написании е-лёрнин платформы погляди
#203 #870711
>>870701

>Зачем для доступа к переменной городить такую прозу?


Data hiding.

>Зачем каждый раз в каждом классе писать метод __init__ ?


Конструктор, ВНЕЗАНО может быть не таким тривиальным.

>в чем смысл self.val = val?


А как нужно? Как отличать instance members от локальных переменных?
Насчет self в параметрах согласен. Какая-то питонская пушка.
Попробуй руби - легко генрировать геттеры, сеттеры; explicit self не нужон, есть @.
мимошел
>>870715>>871371
#204 #870715
>>870711
Братья, нас тут шпион-вербовщик, нужно подкрепление
#205 #870722
Анчоусы, как правильно деплоить приложения.
У меня например есть приложение где мне нужно для нормального старта запустить редис воркер и гуникорн, как сделать чтобы одной командой запускалось два процесса и мне не приходилось держать по два ssh соединения?
>>870830>>871304
#206 #870750
Аноны, учусь django сейчас.
Ебаный вопрос: как лучше делать? На протяжении одного представления несколько раз (в зависимости от методов запроса и их параметров) возвращать render с разным контекстом? Или возвращать только один раз render в конце и в шаблоне уже добавить проверки (но тогда уже нужно будет инициализировать переменные контекста пустыми значениями, потому что будут ворнинги о возможности использования неинициализированных переменных). Или вообще лучше раскидать это все по разным представлениям и не загромождать?
Не пинайте
>>870753>>870764
#207 #870753
>>870750
По-разному можно, делать, наверное - зависит от конкретной задачи.
>>870754>>870774
#208 #870754
>>870753
как у меня запятые плавают-то..
#209 #870764
>>870750
вообще похуй, как удобно так и делаешь. нормально сделаешь, нормально будет.
>>870774
#210 #870774
>>870764
>>870753
То есть нет никакого python/django way по этому вопросу? Тогда ладно, спасибо.
>>870804
#211 #870783

>>> sys.version


'3.3.6 (default, Sep 22 2016, 23:32:57) [MSC v.1600 64 bit (AMD64)]'

>>> sys.getsizeof(dict())


288
Я тут собрался дерево строить с десятками миллионов узлов, а тут такое... Какие есть варианты? Может можно инишиал капасити подкрутить, или другую структуру заюзать (скиплист устроил бы)? Или юзать лист [key1, value1, key2, value2, ...], и дегрейдить его в мапу при заполнении?
Нужен быстрый лукап и вставка по чайлдам ноды.
32-битный питон не предлагать.
#212 #870804
>>870774

>django way


DRY https://ru.wikipedia.org/wiki/Don’t_repeat_yourself

Ну в целом, пытайся делать все как можно проще. Чем меньше кода - тем лучше.
Ну и старайся в шаблонах не делать много ветвлений и вложенных циклов, а переноси это в представления, если возможно.
>>870832
#213 #870830
>>870722
Procfile в случае с хероку, например.
#214 #870832
>>870804
Спасибо
108 Кб, 1856x1015
#215 #870863
Тут в книжке задание, когда нужно запихнуть все числа, вводимые пользователем, в список и оттуда уже игграть с ними.

Ввожу числа, но как только в строку ничего не пишу и нажимаю ентер у меня вылетает анекспектед енд оф файл, как лечить?
>>870874>>870877
46 Кб, 414x604
#216 #870868
Здравствуйте.

Задача: запросить у пользователя цвет, которым нужно закрасить фигуру. Для решения использую askcolor(). Проблема: askcolor() возвращает значение вида #АААААА, а примитивы фигур красятся с помощью color=(red,green,blue), где red, green, blue принимают значения от 0 до 1. Думаю, мне надо расчленить строку из askcolor() на три пары, после чего каждое значение преобразовать и поделить на 255. Правильно думаю? Python 2.7, ибо использую библиотеку visual.

По поводу преобразования нагуглил

def hex_to_rgb(value):
value = value.lstrip('#')
lv = len(value)
return tuple(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
>>870869
#217 #870869
>>870868
http://stackoverflow.com/a/4296263
(r, g, b) = struct.unpack('BBB',rgbstr.decode('2FECA1'))
>>870964
#218 #870874
>>870863

>у меня вылетает


а ты его лови чтоб не вылетало
#219 #870877
>>870863

>анекспектед енд оф файл


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

while True - бесконечный цикл. значит тебе надо предусмотреть выход из него.
http://pastebin.com/Pr5CDrqu
>>870891
#220 #870891
>>870877
Можешь дать какие-нибудь свои контактики?
Оно работает но я не понимаю почему, лол. 5 минут назад я заставил её работать точно также но больше строчек кода.

Обьясни почему тут при пустой строке и вышел из цикла, а в моем варианте не вышел не пожалуйста
>>870892>>870902
#221 #870892
>>870891
И да, олсо, если я напишу туда 'dsadsads' то никакой ошибки не происходит, а должна же.
>>870902
#222 #870902
>>870891
>>870892
Все все я понял.
Просто запутался между свои скриптом где было if...break и твоим где break прерывает while.
>>870904
#223 #870904
>>870902

>Все все я понял.


Ок.
#224 #870945
Прочел лутца как советовали в факе и решил начать проходить кодакадемию как советуют аноны. После лутца как будто для даунов все задания. Мало того, что они на питоне 2.6 так еще и задания подразумевают только коридорное выполнение. Независимо от результата, сделано должно быть точно так же как в задании. Есть что-нибудь по серьезней для практики кода?
>>870951
36 Кб, 467x512
#225 #870951
>>870945
check.io попробуй
>>870953>>870956
#226 #870953
>>870951
checkio.org
>>870956
#227 #870956
>>870951
>>870953
Cпасибо, друзья.
63 Кб, 480x480
#228 #870964
>>870869
Долго ебусь, но не вдупляю. Код: http://pastebin.com/8uCLZAE6 Ругается:

temp=''.join(ch_color)
TypeError: sequence item 0: expected string, tuple found

Выходит, tuple нужно перегнать в string. Гуглил, нашёл http://stackoverflow.com/questions/3886669/tuple-to-string , http://stackoverflow.com/questions/9525399/python-converting-from-tuple-to-string , http://stackoverflow.com/questions/8704952/python-convert-tuple-to-string , http://stackoverflow.com/questions/19641579/python-convert-tuple-to-string , но не понял, как это реализовать в моём случае. Говорю сразу,я - жуткий нуб в питоне, потому хотелось бы получить детальное объяснение, которое приведёт меня к правильному решению.
>>871002
#229 #870975
>>869663
Что за IDE?
>>870981
#230 #870981
>>870975
Sublime
#231 #871002
>>870964
from tkColorChooser import askcolor
print help(askcolor)
value = askcolor()
print(type(value))
print(value)
print(value[0])
>>872092
API для двача #232 #871128
го пилить REST API для двача годное. с обсуждением все дела. Хочу на выходных чем то занимать себя.
>>871168
#233 #871168
>>871128
выходные завтра заканчиваются
>>871171>>871401
#234 #871171
>>871168
Через 55 минут.
#235 #871221
Объясните, пожалуйста вот это:

:~$ python3
Python 3.5.2+ (default, Sep 22 2016, 12:18:14)
[GCC 6.2.0 20160927] on linux
Type "help", "copyright", "credits" or "license" for more information.

>>> 1.4+1.4+0.1


2.9

>>> 7.1+5.8


12.899999999999999

Это как, это что, но главное - ПОЧЕМУ, БЛИН, ОНО РАБОТАЕТ ПО-РАЗНОМУ? Можно ли предугадать, в каком случае его перекосит, а когда сосчитает правильно?
>>871223>>871469
49 Кб, 403x414
#236 #871223
>>871237
#237 #871237
>>871223
Нет, мне действительно это интересно.
Я видел утверждения с какими-то левыми отмазками про повышеннуюа на практике - пониженную, LOL точность, но так и не понял, почему это происходит в одних случаях и не происходит в других.
>>871242
#238 #871242
>>871237
Ты уже гуглил этот вопрос?
>>871282
#239 #871282
>>871242
Ага. Напрмер, тут читал:
http://asvetlov.blogspot.ru/2011/02/blog-post.html
Но во-первых в 2.7 и 3.5 это работает иначе, а во-вторых если у него:

>Во первых, это одно и то же число:


>>>> 4.31 == 4.3099999999999996


>True



То у меня иначе:

>>>> 7.1+5.8 == 12.9


>False


>>>> 12.9 == 12.899999999999999


>False


Хотя

>>>> 4.31 == 4.3099999999999996


>True



И нигде не вижу, как понять, сорвет ему крышу или не сорвёт.

Как вообще можно пользоваться языком, который не умеет складывать числа?
>>871286
#241 #871293
>>871286
Это Гвидо ван Россум - лошара. Второй язык с таким ПРОВАЛОМ хуй найдёшь вообще.
>>871309
#242 #871304
>>870722
Большие мальчики используют супервизоры для этого. systemd, supervizord, upstart, тысячи их.
А хитрые мужички юзают docker
#243 #871309
>>871293
Ну, например, любой другой.
#244 #871368
Блять я так и знал тут что-то не так!
Оказалось то язык - говно!
https://habrahabr.ru/post/314062/

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

На что ему ответил питох ван питушкинс:

>>>>В сентябре же мне ответил сам Гвидо ван Россум: «Раз за всё это время никто к патчу интереса не проявил, — значит, никого другого потребление памяти парсером не заботит. Значит, нет смысла тратить время мейнтейнеров на его ревью.»



"Мне не интрересно, нет смысла тратить время, мне всё-равно, куд-кудах, ресурсы нинужны, главное чтоб было прикольнинько" -ПИЗДОС!!! ЭТО ЯЗЫК ДЛЯ АУТИСТОВ! ПАЛУНДРА! ПЕТУХИ ВЗБУНТОВАЛИСЬ!

>>870701-кун
>>871596
73 Кб, 386x259
#245 #871371
>>870711
Мне понятен смысл блять, мне не понятен смысл такой ЕБАНУТОЙ КРИВОЖОПОЙ формы этого функционала.

>>Data hiding.


Прятать от манагера факт своей никчемности?

>>Конструктор, ВНЕЗАНО может быть не таким тривиальным.


Блять я понимаю что можно любой конструктор нагородить, любой синтаксис чтоб был сверху. Вопрос был в другом. Или ты питонщик и уже не соображаешь нихуя тоже?

>>А как нужно? Как отличать instance members от локальных переменных?


Так в этом дело?
Серьезно?
"Как нужно?" ??!
"А как отличать?"
Мб питон для тех, у кого Imagination NYI?
Миллион способов.
Миллиард блять способов конструкций поприятней и покороче, чтобы разделить члены класса и члены особей.

Нет вы видели этого пидораса? Вопросы он мне задает.
А как тебе декораторы сука ?
Писать такое типа норм
@ХУЮШКИНС

И тебе даже в голову мразь не приходит что можно точно так же лексемой какой-нибудь типа @ или 8===> или ХОЧЕШЬ ЦАПЛЕЙ ПОСТОЮ тупо отграничить эти два неймспейса?
Вместо всей этой ебли с андерскорами с фиксированной бессмысленной лексемой инит с def _____моча_____(говно) ?
В чем нет , НЕТ НЕТУ БЛЯЯЯЯТЬ никакого смысла?
Что это похоже на то, будто ребенок с пятью хромосомами ведь измазанный в говне слепил из говна кусок говна, поднял, кривя один залипший глаз и улыбаясь дыркой в пол-ебала вместо рта, поднял это всё на культях и восхищенные аутисты-манагеры говорят "Представляем вашему вниманию новый ООП-язык - питон!"
>>871386>>871396
#246 #871386
>>871371
Хуя пичот. Пили свой язык с блекджеком и шлюхами.
27 Кб, 599x374
#247 #871396
>>871371
ебать ты дебил
#248 #871401
>>871168
я имею ввиду каждый выходные.
#249 #871469
>>871221
Еще один. это не от питона зависит
#250 #871475
>>870701
Ну панимаешь братиш, какое дело. self в пистона - это как this в крестах, то бишь указатель на экземпляр.
>>871476
#251 #871476
>>871475

> пистона


*питоне
49 Кб, 657x900
#252 #871491
Питоняши, пробую тут virtualenv с джангой первый раз и такая проблема возникла:
обычно у меня пара батников на рабочем столе(запустить сервер, шелл, просто консоль в папке), а в этот раз так не получилось - при активации виртуального окружения команды из батника перестают выполняться. Интернеты читал, но видимо не могу правильно сформулировать вопрос - ничего не нашел.
>>871591>>872103
#253 #871591
>>871491

>рабочий стол


>батники



Мы с ОСью петушиной
Идем дорогой трудной,
Идем дорогой трудной,
Дорогой непрямой
Заветный код исходный
Исполнит мудрый Гвидо
И Джанга заработает
На виртуаленве.

Ну ты понел
>>871599
#254 #871596
>>871368
Гвидо все правильно сказал:
"Если у тебя в коде какие-то ебать-колотить структуры, то используй вместо этого JSON, он для этого предназначен.
А если ты запускаешь миллионы крошечных скриптов, вместо того чтобы написать нормальный сервис, то ты дебил просто говорить не буду с тобой чмо игнорирую."
#255 #871599
>>871591
нет, не понял, а что ты сказать хотел?
>>871607
#256 #871607
>>871599
Хочешь нормально работать на питоне - ставь линупс.
Да, поначалу кажется "да ну его нафиг, мне бы научится".
Но питон учится быстро и вот ты уже пытаешься запустить БД, сервер, редис, обработку изображений и завернуть все это в докер.
Поверь мне, лучше это делать в линупсе.
>>871620
#257 #871611
Где узнать полный инструментарий, которые необходим для деплоя нормальной приложухи на джанге? Вот на хероке рикамендую gunicorn который я так и не понял как настроить, whitenoise для статики, еще что-то должно быть? Книги какие подробно опишут весь процесс?
>>871616
#258 #871616
>>871611
Ну, для простых проектов у меня например такой стэк:
1. nginx в качестве обратного прокси и раздатчика статики.
2. venv для вируального окружения
3. gunicorn как WSGI сервер (а что там настраивать-то?)
4. django
5. Celery для фоновых задач (почту отправить, картинку отресайзить и т.п.)
6. Redis для очереди celery + кэш для джанги
7. PostgreSQL ессесно
8. supervizor для запуска всего этого зоопарка и перезапуска при падении.

Вроде все.
>>871622
#259 #871620
>>871607
у меня уже есть на виртуалке линукс таки заебался с установкой dryscrape под винду, да, но я ахуею сразу django+python+nix учить.
Вопрос был про консоль винды и ее работу с virtualenv, а у тебя ответ из серии "не заводится машина - смени марку".
>>871623
#260 #871622
>>871616
почему nginx как wsgi не используешь?
>>871626
#261 #871623
>>871620
плюс линя в том под под ним не возникает 95% проблем с питоном, что возникнут под виндой.
По говну за городом можно и на мерсе s-class ездить. Но зачем, если есть старый добрый УАЗик?
#262 #871626
>>871622

>почему nginx как wsgi не используешь?


Wat?
>>871627
#263 #871627
>>871626
сорь за нубский вопрос, я имел ввиду почему не сипользуешь nginx в связке с uwsgi, а используешь gunicorn?
>>871630
#264 #871630
>>871627
Разницы практически нет, выбирай что тебе удобнее.
Вернешься к этому вопросу когда дойдешь до "ну как же обработать еще пару тысяч запросов в секунду?"
>>871633
#265 #871633
>>871630
ну я и хотел узнать чем гуникорн удобнее? я просто задеплоил как оф доках джанго написано, а там был uwsgi первым)
>>871638
#266 #871638
>>871633

>ну я и хотел узнать чем гуникорн удобнее?


Пробуешь одно и другое, выбираешь. Вот и все.
Переключиться потом легко, pip install и пара строк в конфиге.
>>871641
#267 #871641
>>871638
А ты на хероку деплоил джангу? как понять что у меня работает именно гуникорн?

ТАм оче ебнутый туториал, который не просит вырубать debug mode. В итоге я задеплоился в режиме дебага. При этом все остальные иструкции тоже соблдюдал, в режиме debug = false сервак отдает 500ый ответ.

первый раз деплою на хероку
>>871653
#268 #871650
Ребзя, кто-нибудь настраивал апач с mod_wsgi?
Может кинете каких-нибудь гайдов? А то там чет ваще сложно с конфигами. апп на фласке
>>871655>>871657
#269 #871653
>>871641
Извини бро, на хероке не деплоил, не могу помочь.
#270 #871655
>>871650

>апач с mod_wsgi


Но зачем?
>>871671
#271 #871657
>>871650

> апач с mod_wsgi


лол, из 2010 капчуешь?
>>871671
#272 #871671
>>871655
>>871657
Сук, ну и на чем хостят в 2016 правильные пасаны?
>>871679>>871759
#273 #871679
>>871671
reverse proxy nginx
>>871729
#274 #871729
>>871679
Еще смузи?
>>871738
#275 #871730
Питоны, а подскажите плиз

Вот у меня в settings.py

LANGUAGES = (
('ru', "Русский"),
('en', "English"),
)

LANGUAGE_CODE = 'ru'

чому у меня по-умолчанию один хуй на новых устройствах открывается на английском? Как заставить django жрать LANGUAGE_CODE ?
>>871740>>871754
#276 #871738
>>871729
Борща пожалуйста
#277 #871740
>>871730
LANGUAGE_CODE = 'ru-RU'
>>871746
#278 #871746
>>871740
а то что с LANGUAGES будет отличаться? там тоже менять на ру-РУ?
#279 #871754
>>871730
https://docs.djangoproject.com/en/1.10/topics/i18n/translation/
tldr - Джанго сначала смотрит на заголовок Accept-Language запроса, и только если его нет, использует LANGUAGE_CODE.
Так что смотри свои устройства.
>>871765
#280 #871759
>>871671
Любой другой wsgi-compliant сервер.
#281 #871765
>>871754
Как проще всего заставить джанго вхуяривать изначально русский, а уже если переключат то другой?
>>871768
#282 #871768
>>871765
Ёпт, сделано же все как надо: требуют буржуинский - отдаем буржуинский.
А ты хочешь: требуют буржуинский - отдаем мальчиш-кибальчишеский.
Что за фагготрия?
>>871769
#283 #871769
>>871768
у меня сайт в зоне ру, а отдаёт всем английскую версию, при чём с самых разных девайсов протестировал
а вхуряить вместо
LANGUAGES = (
('ru_RU', "Русский"), ...

что бы урлы уродливые иметь типа сайт.ру/ру-ру/хуйпизда - я не хочу

а в той комбинации что я в первом сообщении привёл оно автоматом выплёвывает сраную английскую версию
>>871775
#284 #871775
>>871769
Вариантов два:
1. Написать свой вариант LocaleMiddleware
2. Написать простенькую middleware, убирающую\меняющую заголовок Accept-Language из запроса, вставить её перед LocaleMiddleware
>>871795
#285 #871795
>>871775
Вот я что-то такое и нашёл: https://gist.github.com/vstoykov/1366794
но как его в джанго подключить, ей-богу я не понимаю.
>>871822
#286 #871799
Изучая питон Лутца или байт питона его полностью заменяет? Само программирование умею.
>>871840>>872099
#287 #871822
>>871795
Подскажи плиз:

В папочке
project/middleware/force_default_middleware.py , __init__.py
внутри https://gist.github.com/vstoykov/1366794

settings.py
MIDDLEWARE = [
.......
..'project.middleware.force_default_middleware.ForceDefaultLanguageMiddleware',
..'django.middleware.locale.LocaleMiddleware',
]

LANGUAGES = (
..('ru', "Русский"),
..('en', "English"),
)
LANGUAGE_CODE = 'ru'

получаю ошибку: TypeError: object() takes no parameters

и чего ему не хватает? смысл то в том что ты и предложил - убирать заголовок из запроса
>>871879>>871921
#288 #871840
>>871799

> умею


Не верю.
>>872093
#289 #871879
>>871822
У тебя джанго 1.10? В нем другой стиль для middleware.
https://docs.djangoproject.com/el/1.10/topics/http/middleware/#upgrading-pre-django-1-10-style-middleware
>>871956
#290 #871891
Ох эти джанго-проблемы...
мимо фласк господин
>>871901
#291 #871901
>>871891
Маааам, он тролит?! Ну мааам!
>>871981
#292 #871921
>>871822
Они там че-то нахуевертили с миддлварями в своей новой джанге. Их теперь надо писать по-другому.
Вот, так попробуй. Должно и с 1.10 работать и с ранними версиями http://pastebin.com/mygKPgMT
>>871956
151 Кб, 700x582
#293 #871956
>>871921
Спасибо тебе большое, ты меня очень и очень выручил.
>>871879
Долго и вдумчиво гуглил... и нихера не заработало. Error 500 только получил.
#294 #871981
>>871901
Нет я не троллю.
#295 #872012
Есть ли аналог zip, который мне из [1,3,5,7] и [2,4,6,8] сделает [1,2,3,4,5,6,7,8]?
#297 #872019
>>872012
Если ты имеешь в виду отсортированный список, то ([1,3,5,7] + [2,4,6,8]).sort()
Если поочередное извлечение, то подойдет
chain.from_iterable(zip([1,3,5,7], [2,4,6,8]))
#298 #872062
Аноны, с какой книги мимокроку начать вгрызаться в питон?
На хабре советуют 4е издание "Изучаем Питон", в шапке вроде как "Укус питона", в пасте советуют "How to dive into Python", так с чего же начинать?
>>872076
#299 #872076
>>872062

> так с чего же начинать?


Пойди дрова наруби деду
145 Кб, 807x807
#300 #872092
>>871002
http://pastebin.com/8uCLZAE6
Теперь всё работает. Спасибо тебе, добрый анон. Вот тебе котик.
#301 #872093
>>871840
Тебе не обязательно верить, считай это условие частью модели для решения задачи. Каков ответ?
>>872137
#302 #872099
>>871799
Если ты бог и умеешь в программирование. Знаешь много паттернов проектирования, умеешь писать на куче других языков, умеешь в архитектуру и основные технологии, которые сейчас юзаются в любом языке - https://docs.python.org/3/reference/index.html.
Это референс по языку. Потом погугли "Python-way" и начинай изчать\писать своё. Если же ты не знаешь всего того, что я перечислил - пиздуй учить по Луццу. Либо бери Byte и доучивай оставшееся через референс на офф сайте + module of the week + гугление "Python-way"
#303 #872103
>>871491

>при активации виртуального окружения


>команды из батника


Какого виртуального окружения? Какого батника? Что в этом батнике у тебя? Или мы, блять, должны по фотке ебучего шахтёра догадаться, что там?
#304 #872137
>>872093
Да.
#305 #872158
#306 #872163
Подскажите дауну, как надо по PEP и по уму делать. Есть у меня класс. В нём есть переменная x и функция f(). Вот в функции мне нужен x, а сама эта функция вызывается другой функцией внутри класса. Так как лучше делать: передавать в вызове эту x, или ничего не передавать, а в теле функции делать self.x?
>>872193
#307 #872175
>>869906
Ты это я бро. Только мне уже 27 лет бля, когда мои друганы косят по 2к баксов, я эникеем впахивают 300$. Мне очень вначале помог сайт checkio.org, так же PyScripter который, как по мне, имеет хорошо понятный отладчик.
>>872199
#308 #872193
>>872163
Кроме здравого смысла, на это гайдлайнов нет.
Если ты знаешь, что x у тебя всегда будет свойством конкретно этого объекта и всегда будет либо свойством класса, либо проинициализировано в __init__, то используй self.x
Если набегут адепты чистых функций и начнут вонять, смело затраливай их - self передается как аргумент, так что функция чистая, ололо.
>>872198
#309 #872198
>>872193
Да, звучит здраво. Спасибо, няша.
#310 #872199
>>872175

> друганы косят по 2к баксов


Поподробней пожалуйста.
Это где они столько косят?
>>872200>>872403
#311 #872200
>>872199

>Это где они столько косят?


Ну что ты как маленький, водилами и курьерами работают часа 4 в неделю, вот и косят.
А ты сиди дальше, гоняй свои буковки-циферки.
>>872218
#312 #872207
Аноны, нужна помощь.
Есть строка из 0 и 1, полученная после кодирования Хаффмана.
Как преобразовать ее в битовый формат, записать в файл, считать и преобразовать обратно?
>>872235
#313 #872218
>>872200
А ну ясно.
#314 #872235
>>872207
binstring = '1001'
binint = int(binstring, 2)
binstring = "{0:b}".format(binint)

Запись/чтение из файла сам делай и не забудь context manager.
>>872524>>872756
#315 #872294
Вопрос от нубаса в проектировании:
Есть 2 модели, у которых много общего, но много и различного. Их пилить просто в разных моделях или общее вынести в абстрактный базовый класс и от него наследовать эти 2 модели?

Так же хотелось бы queryset получать обращаясь к базовому классу-это возможно вообще?
>>872329>>872637
#316 #872329
>>872294
Можешь сделать базовый класс не абстрактным, тогда джанго автоматом сделает тебе связь one-to-one, но будет больше еботни с запросами к базе.
https://docs.djangoproject.com/el/1.10/topics/db/examples/one_to_one/
#317 #872337
>>872339>>872343
#318 #872339
>>872337

>reddit


Свали на пикабу или вк, ребенок.
>>872420
#319 #872343
>>872337
Спасибо!
#320 #872351
>>869777
Что это за хуитка где ты задачки решаешь? Похоже на розалинд, но такого я там не помню оформления.
#321 #872380
Анон. С какого момента можно начинать изучать джанго? Прошёл академию, прочёл укус питона, написал игру 'дурак' по алгоритмам из интернета
>>872383>>872390
#322 #872383
>>872380
После стандартной библиотеки. В идеале для полного понимания почему фреймворк это не волшебство ещё что-типа http://aliev.me/runestone/ или SICP'а на питоне прочитать, но это уже кому как хочется
Если ещё не навернул - наверни Синк Пайтон
>>872393
#323 #872390
>>872380
Можешь сейчас начинать.
#324 #872393
>>872383
Мне кажется ты хуйню советуешь
#325 #872403
>>872199
Игры пишут для iOS.
#326 #872408
Ананасы, как в pyplot вывести изображение интерактивно, чтобы после того как обработалось новое imshow изображение сразу выводилось? Пытался сделать через plt.ion(), но теперь вообще ничего не выводится.
#327 #872420
>>872339

>2017


>сосать водичку из книг


>не учиться по видео

>>872448
#328 #872448
>>872420
видео - это долго, неэффективно и для дебилов.
>>872504
#329 #872460
Есть один скрипт, с помощью которого я пытаюсь пропарсить ебучий хтмл. Сам скрипт:
http://pastebin.com/9mQk4M2w
Проблема начинается после того, как я получаю урлопен. Вместо ебаного хтмл он мне присылает: <http.client.HTTPResponse object at 0x0000000002E2D4E0>. И что мне с этой хуйней делать? Мне нужен ебаный хтмл, нахуй он мне свои обжекты прислылает???
>>872461
#330 #872461
>>872460

>respData = resp.read()

>>872464
#331 #872464
>>872461
Спасибо няш, вот я долбоеб, даже код скопипастить не могу. А может ты меня еще по одному вопросу можешь просветить?
>>872466
#332 #872466
>>872464
Задавай.
>>872469>>872481
#333 #872469
>>872466
В хтмл есть тег инпут с типом текст. Допустим я туда хочу что нибудь засунуть с помощью питончика. Есть ли какие нибудь методы для этого в urllib, в респонсе например? Или мне искать другой модуль?
>>872471>>872481
#334 #872471
>>872469
я бы сразу инпут отправлял с помощью библиотеки requests через POST, если у тебя такая задача
>>872486
#335 #872481
>>872469
Ну вот у тебя есть такое

>req = urllib.request.Request(url, headers=headers)



можно и POST запрос делать, надо только какие-то данные передавать. Вот пример:
http://stackoverflow.com/questions/15768504/simple-post-using-urllib-with-python-3-3

Ну или можешь библиотеку requests попробовать, как уже тебе посоветовали
http://docs.python-requests.org/en/master/user/quickstart/#make-a-request

Гугли какие-нибудь примерчики кода.

>>872466-анон
>>872486
25 Кб, 400x400
#336 #872486
>>872471
>>872481
Спасибо анончик, ушел пробовать.
#337 #872493
аноны, постигаю азы питона.
суть в том, что я хочу практиковаться на работе, где нет возможности установки программ.
питон запустится при переносе его папки на рабочий комп, или нужно искать portable версию?
>>872535>>872543
#338 #872504
>>872448
книга - это долго, неэффективно и для дебилов.
>>872536
#339 #872524
>>872235

>binint = int(binstring, 2)


Спасибо, но на выходе ведь идет просто int.
Мне нужно именно в битовый формат перевести, чтобы файл, в который записываю, занимал меньше места.
>>872593
#340 #872535
>>872493
virtualenv
#341 #872536
>>872504
Ни цента не заплачу и выгоню ссаными тряпками того идиота, который и правда так считает.
>>872545>>872550
#342 #872543
>>872493
Можешь просто скопировать
#343 #872545
>>872536
Кого ты там выгонишь, борщехлеб?
>>872547
#344 #872547
>>872545

> борщехлеб


Как скажешь.
>>872548
#345 #872548
>>872547
Видать правда, раз припекло.
#346 #872550
>>872536
Не пойду работать к идиоту, который считает обратное.
#347 #872593
>>872524
file.open(tvoy_file, 'wb+')
file.write(b)
>>872756
#348 #872595
Ребята, а подскажите пожалуйста

Есть моделька с ForeingField(User, ...)
Нужно ограничить в админке при создании нового объекта данной модели ТОЛЬКО нового пользователя, не уже существующим.
>>872596
9 Кб, 469x285
#349 #872596
>>872595
Очевидные для меня варианты:
1. Использовать какое-то поле типа ClientLogin а потом через def save модели назначать его же и юзеру, если такого юзера не существует
2. Сверять экземпляры классов джанго Юзер и апп Клиент(юзер)

Блин, может OneToOneField вхуярить и делов?
>>872599
#350 #872599
>>872596
Олень я заспанный, дописал unique=True и в рот его всё ебать
#351 #872637
>>872294
https://habrahabr.ru/post/254773/
Многие вопросы отпадут
#352 #872712
Платиновый вопрос джангача:

Вот есть у меня моделька, в ней есть def save() для переопределения сохранения данных из скрипта парсера
При создании нового объекта класса этой модельки я стабильно получаю:

object with primary key 'None' does not exist.

как ПОБОРОТЬ?
#353 #872718
>>872712
я уже голову сломал нахуй этим всем безобразием

class New(models.Model):
..................
# примал кей не переопределяю, т.е. использую стандартный джанговский id=AutoFiled(primal_key=True)

..def save(self, args, *kwargs):
..new = New()
..article = Article(self.link, language=self.lang)
..try:
....article.download()
....article.parse()
....new.id = self.id #pk и прочие primalKeys перепробовал
....new.text = article.text
....new.title = article.title
....new.save()
..except:
....return HttpResponse('Ошибка')
>>872724
#354 #872724
>>872718
А просто не трогать id не пробовал?
>>872725
#355 #872725
>>872724
да, тот же результат
>>872728
#356 #872728
>>872725
Через админку пробовал сохранять?
>>872731
#357 #872731
>>872728
только через неё и пробовал.
не цепляет оно айдишник, потому что айдишник должен выдаваться при сохранении в бд, а сохранение не происходит потому что нет айдишника ._.
>>872733
#358 #872733
>>872731
Почему ты в save создаешь еще один экземпляр?
>>872736
#359 #872736
>>872733
пробовал не создавать, а сохранять чисто с self.tite, self.text .... self.save() - и опять та же хуйня
>>872746
#360 #872746
>>872736
Ну какой self.save, ты же должен вызвать метод save родительского класса.
#361 #872752
>>872712
я ебал тебя в голову анон. почему ты такой тупой блять. сука args, *kwargs напиши, неужели не можешь даже скопипастить ровно.

ну и прочитай ебаную документацию
https://docs.djangoproject.com/en/1.10/topics/db/models/#overriding-predefined-model-methods
>>872774
#362 #872753
>>872712
вообще, что у тебя http response потерял в методе модели?

и на будущее, оставь метод save() в покое, юзай сигналы
>>872760>>872774
#363 #872756
>>872593
Как это b получить?
>>872235
Здесь на выходе int и str, которые не пишутся в файл через 'wb'
>>872759>>872785
#364 #872759
>>872756
У int есть метод to_bytes, например. Может тебе он как раз и нужен.
#365 #872760
>>872753

>юзай сигналы


Чем save() плох-то? Где-то удобней его использовать, а где-то - сигналы.
>>872764
#366 #872764
>>872760
я с тобой согласен.
но я предпочитаю выносить все в сигналы. реализация сложнее, но больше порядка и наглядности
#367 #872774
>>872752
Добра тебе
Спасибо!
>>872753
в чём плюсы сигналов? как их юзать и зачем?
>>872786
#368 #872785
>>872756
binary_string = '1011'
bytes(int(i, 2) for i in binary_string)

>b'\x01\x00\x01'

>>872824
#369 #872786
>>872774
ты не хочешь в джанговской документации прочитать?
>>872788
#370 #872788
>>872786
Я пытаюсь доделать говносайт что бы уже от меня отъебались.
Когда-нибудь определённо прочитаю. Спросил что бы в паре слов понять нахуй оно надо вообще, и тем самым не забыть.
>>872793>>872798
#371 #872793
>>872788
ладно. сигнал эта такая хуйня в джанге, которая "вещает" о каком-то событии модели. pre_save, post_save, pre_delete, post_delete. декорируешь с помощью receiver(приемник) функцию, которая должна исполнится после сигнала. эта функция принимает модель, и экземпляр модели
```
from django.db.models.signals import pre_save
from django.dispatch import receiver
from myapp.models import MyModel

@receiver(pre_save, sender=MyModel)
def my_handler(sender, instance, kwargs):
pass
```
>>872798
#372 #872798
>>872788
>>872793
ну и весь смак в том, что когда у тебя появятся несколько действий которые нужно выполнить по сигналу, они будут свалены в кучу в методе save()
>>872813>>872820
#373 #872813
>>872798
Спасибо большое еще раз
#374 #872820
>>872798
Переписыватьс ейв - это совсем быдлокод? У меня в учебном проекте все идет через перезаписывание сейв, мне шо, переделывать теперь?
>>872828
#375 #872824
>>872785
В итоге из 4 бит получилось три байта. Каким образом и кому это нужно?
>>872830>>872840
#376 #872828
>>872820
Все нормально, это два разных подхода.
Плюс сигналы обычно используют, когда работаешь с другой моделью.
#377 #872830
>>872824
Это просто опечатка.
Ты для начала попробовал бы ЗАПУСТИТЬ КОД, десять вариантов которого УЖЕ ТЕБЕ НАПИСАЛИ.
ЕБАНЫЙ ДАУН пиши код сам, ДЕБАЖ ЕГО, ПРОБУЙ ВАРИАНТЫ, ЧИТАЙ ДОКУМЕНТАЦИЮ, ТЫ ЗАЕБАЛ
НИХУЯ ТЫ НЕ НАУЧИШЬСЯ НИЧЕМУ ДЕБИЛУШКА, ТАК И СДОХНЕШЬ ТУПОЙ МАКАКОЙ
inb4 батхерт
>>872836
#378 #872836
>>872830
Я не он, истеричка. Если тебе так неприятно, то зачем ты отвечаешь на такие вопросы?
#379 #872840
>>872824
Пацаны, гля, у нас тут даже не байтоеб... У нас тут битоеб! Ололо.

Теперь по теме. Варианты:
1. pip install bitstring
2. import struct

дальше сам
>>872869
#380 #872853
Сап. Аноны, с вашего языка сложно перекатываться на другие? Как никак динамическая типизация. Так как сам я в программировании полный ноль, хотел постигать основы начав с python, после перекатами на java итд
#381 #872854
>>872853
Лучше начни с джавы, хороший язык для начала.
#382 #872855
>>872853
Не трать время, учи сразу java.
#383 #872861
>>872853
Тебе еще не советовали Java? Начинающим как раз.
#384 #872864
>>872853
Я бы на твоём месте начал бы сразу с java Ебет по всем фронтам включая зп.
#385 #872867
>>872853
Не слушай никого! Только хардкор, только джава!
#386 #872869
>>872840

>1. pip install bitstring


Спасибо, то что нужно.
>>872895
#387 #872895
>>872869
Раз выбрал bitstring, вот тебе вдогонку
http://pythonhosted.org/bitstring/constbitarray.html#bitstring.Bits.tofile
#388 #872897
>>872853
тебе уже наверное многие насоветовали всякого... не слушай никого, учи джава
#389 #872901
Воу, признаюсь не ожидал такого количества откликов.
Спасибо, но, это точно не местный троллинг, типа если ты новичок начинай с хаскеля и тд
>>872903
#390 #872903
>>872901
неужели ты такой тупой. конечно тебя тролят с джавой.
>>872925>>872927
#391 #872925
>>872903
Ну так я понял, но да, я тупой.
Вообще за яву многие топят, мне сложно в языках ориентироваться.
>>872930
#392 #872927
>>872903
я не троллил!
#393 #872930
>>872925
Определись с областью, в которую хочешь вкатиться, после чего выбирай язык. Не наоборот. Синтаксис и фреймворки всегда успеешь выучить. только если у тебя не рак мозга :3
>>872933
#394 #872932
Ребят я ньюфаг пиздец,что значат кавычки в этом выражении
float ("210" * int("4"))
>>872934
#395 #872933
>>872930

> Определись с областью, в которую хочешь вкатиться, после чего учи джава.

#396 #872934
>>872932
это смайлик, тебя потроллили
>>872936
#397 #872936
>>872934
Ну серьёзно
>>872938
#398 #872938
>>872936
s = "Ну серьёзно"
#399 #872945
>>872853
Java лучший вариант для тебя. because you're so stupid for python
#400 #872946
нифа у вас АЛЕППО от одного только упоминания джавы))) лоооол))
>>872954
#401 #872947
Вопрос к гребцам и им сочувствующим.
Пишут к вакансии бэкендщика "знание Postgresql". В чем выражается суть "знания" постгреса, да и вообще таблиц sql. Знание каких кейсов дает мне право говорит "знаю постгрес?"
#402 #872950
>>872947
хуй ево знает, наверное правильно писать название. мидлсеньор300к аноний, подскажи, он правильно написал?
#403 #872954
>>872946
Просто у питонщиков горит, что их язык настолько конченый, что даже джава его лучше. Что уж говорить про джаваскрипт.
>>872957
#404 #872955
>>872947

> постгрес


не возьмут, иди еще тренируйся.
139 Кб, 1920x1080
#405 #872957
>>872954

> джаваскрипт

#406 #872965
>>872947
Ну, сам я в постгресе не силен, но там есть своя специфика в синтаксисе запросов, CONSTRAINTS всякие, postgis и т.п.
Обычно дальше чем INSERT ... ON CONFLICT ... на практике дело не идет, но в постгресе есть что поизучать, если надо реально оптимизировать.
>>872966>>873051
#407 #872966
>>872965
Если нужно оптизимировать, то разве не нанимают разрабов баз данных?
>>872970
#408 #872970
>>872966
Ну конечно.
А еще архитектора, фронтендера, бэкендера, специалиста по UX и системного администратора.
Это рашка, Карл, тут нужны фулстекорабы за копейку.
#409 #872973
Вот как так? Зачем это придумали? Как правильно копировать?

http://ideone.com/DwsXrh
#410 #872977
>>872973
Ну вот так вот.
Используй copy или deepcopy.
>>872979
#411 #872979
>>872977
А зачем? Почему не сделать как везде?
>>873004
#412 #872986
>>872993
#413 #872993
>>872986
Ты не то сделал. Вот так надо было.
>>872994>>872995
#414 #872994
>>872996
#415 #872995
>>872993
я лишь хотел показать что есть переменные класса и инстанса, копировать и не собирался
>>872997
#416 #872996
>>872994
Кстати чего заходил. Можно как-то стандартный конструктор копирования прописать? Чтобы не подключать copy
>>873008
#417 #872997
>>872995
Я какое это имеет отношение к вопросу? Совсем другая тема.
>>872998
#418 #872998
>>872997
ну чувак переопределяет инстансы и их аттрибуты и удивляется
>>873000
#419 #873000
>>872998
Ну можно было t1.t = t2.t написать. Эффект бы остался тем же.
>>873002
#420 #873002
>>873000
оставил как в оригинале
#421 #873004
>>872979
Вопрос привычки.
>>873006
#422 #873006
>>873004
Какая польза от этой привычки?
#423 #873008
>>872996
В 95% случаев потребность в copy.deepcopy объясняется ошибками в проектировании.
#424 #873026
Пацаны, а как мне в джанго сделать SlugField который опциональный, но уникальный?

slug = model.SlugField(blank=True, unique=True) выдаёт стабильную ошибку миграции django.db.utils.IntegrityError: UNIQUE constraint failed:
>>873028>>873072
#425 #873028
>>873026
пока нагуглил только что народ вставляет null=True но у меня это опять таки ни к чему ни привело
>>873029
#426 #873029
>>873028
я вообще руками делаю
>>873038
#427 #873038
>>873029
Получи приз за самый бесполезный комментарий. Он твой. Поздравляю
>>873044
#428 #873044
>>873050>>873081
#429 #873050
>>873044
ы скинул тебе как раз не то где применяется unique.. вот поправил http://pastebin.com/epAfAvpZ
>>873081>>873125
#430 #873051
>>872965

>postgis


Охуенная вещь. Делаю проект, где использую spatial tables и прямо сейчас кончаю от неё.
#431 #873072
>>873026
def save(self, args, kwargs):
____self.slug = self.slug or None
____super().save(
args, kwargs)
>>873081
#432 #873081
>>873050
>>873044
Спасибо большое.
>>873072
Ну мне не Null'ом забить же надо, а что бы вводить в поле было необязательно вообще.
>>873092>>873125
#433 #873092
>>873081
В Джанго тут (был, уже закрыли тикет) большой проеб - пустой CharField воспринимается как '', а это тоже строка, хоть и пустая, и значение в null не выставляется. В БД сохраняется как '' и потому выбрасывает UNIQUE constraint failed.
Приходися вручную проставлять None, тогда проблема решается.
https://code.djangoproject.com/ticket/4136
#434 #873125
>>873081
Гля, кстати, чё нашёл:
http://stackoverflow.com/questions/21728500/optional-but-unique-slugfield

но кверисеты писать как-то мне кажется черезчур под это дело. А твой способ >>873050
работает, спасибо ещё раз.
12 Кб, 813x262
#435 #873140
Ну вот что я,блжд, делаю не так?
>>873143>>873155
#436 #873143
>>873140
выглядит как будто бы не все зависимости удовлетворены
почитай чё им надо из внешних библиотек, всяких там python-dev и тд и доставь
>>873200
#437 #873155
>>873140
Permission denied
Может sudo?
>>873200
2 Кб, 630x42
3 Кб, 760x73
#438 #873200
>>873155
Пик 1
p.s.Установлена FreeBSD на серве.
>>873143
Теперь вот пик 2
25 Кб, 1251x274
22 Кб, 1307x506
#439 #873256
Пытаюсь с помощью либы requests отправить форму на сервер, но нихуя не получается.

Код там простой, но я не слишком тупой, чтобы понять, что нужно отправлять. Сам код:
http://docs.python-requests.org/en/master/user/quickstart/#more-complicated-post-requests
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("https://huita.com", data=payload)

В пейлоад по идее нужно отправить данные формы, но нихуя не отправляется. Вот как примерно выглядит пост запрос.(1 пик) и на втором пике сами данные. Хз как это в все в payload засунуть. Подскажи дауну плз, анон.
>>873262
#440 #873261
Можно ли на питончике написать свой мейл сервис и что для этого нужно знать?
>>873263
18 Кб, 915x172
#441 #873262
>>873256
payload = {'authenticity_token': auth_token,
'question[question_text]': question,
'question[anonymous]': 'true'
}
res = session.post( profile_link + '/ask', data = payload, cookies = cookieJar )
Открой вкладку POST.
#442 #873263
>>873261
Фрэймворк
#443 #873387
>>872973
Можешь делать так, например:
self.t=list(t)
Заодно сможешь не только списки передавать, но и строки, кортежи, в общем, любой итерируемый объект.
#444 #873472
Анон помоги. Я совсем запутался в задании кодакадемии. Задание:

>You need to get the average for each student and then calculate the average of those averages.


По моей логике мы создаем пустой список, потом циклом перебираем студентов, добавляя среднее значение get.average(студента) в список. В функции get.average возвращает значение в числе. После чего результат добавленных в пустой список студентов делим на список студентов. В чем я не прав? Ошибка:
Oops, try again. get_class_average([alice]) resulted in an error: 'float' object is not iterable

http://pastebin.com/8dMEsYdZ
>>873496>>873497
#445 #873496
>>873472

> results += get_average(student)


Результат у тебя список.
Среднее студента это число.
Ну ты понел...
#446 #873497
>>873472
уже не надо.
>>873499
#447 #873499
>>873497
Лол. Чо так?
>>873503
#448 #873503
>>873499
Да я сам решил. Изменил код добавив как и просили по заданию results.append(x) где x это среднее значение студента.
#449 #873551
>>867611 (OP)
У меня одного пердачелло рвется от этих пилэйдис?
>>873567
#450 #873567
>>873551
Да ладно тебе.
Тяночки любят что-нибудь толстое, длинное и гибкое.
(питон)
#451 #873687
Может у кого есть тема для pycharm в таких цветах?
https://github.com/morhetz/gruvbox-contrib
Лень самому пилить, тема gruvbox для vim
>>873724
#452 #873690
Как лучше делать коммиты в гите - для каждого файла отдельно, или для всех сразу?
#453 #873719
>>873690
Для всех, которые изменил во время работы над какой-либо одной задачей.
>>873747
#454 #873721
>>873690
Чего? Гит это система контроля версий а не файлов. Ты изменяешь состояние программы, дополняя ее функционал (создавая версию). Обычно это затрагивает сразу несколько компонентов (файлов). Коммитить нужно именно на этапе новой версии. Весь проект. Желательно в рабочем состоянии или держать отдельную ветку для не законченного изменения.
>>873747
#455 #873722
>>873690
фишка в том что ты и пихаешь в один гит все изменения потребовавшиеся для одной фичи/багфикса
>>873725>>873747
#456 #873724
>>873687
По твоей ссылке есть тема для идеи, разуй очи.
>>873749
#457 #873725
>>873722
пихаешь в один коммит*
сонный самофикс
пора спатки
#458 #873730
Какой Профит пользоваться vim а не pycharm?
Автодополнения при наборе же ни у кого больше нету нормального? Или я что-то упустил?
#459 #873736
>>873730
Ну смотря для чего. Я как юзатель вима после небольшого знакомства с пичармом могу сказать, что под вим ни одна автокомплит-либа не может в метаклассы моделей джанги. Вообще. Все остальное вроде еще куда ни шло. Тебе вим зачем?
>>873742>>873745
#460 #873742
>>873736
Ну просто я тот еще задрот, на линуксе с 2003, живу в и3, любимые игры дварф фортрисс и катаклизм дда - только вима и прыщей не хватает до полноты образа. Но так и не смог найти причин на него переходить.
А так да, основное направление которое мне нужно в питоне - Джанго.
#461 #873745
>>873736
ах да, самофикс.
Вим он не про супер инструменты искаропки. Он искаропки почти пуст. Он про набор текста и его редактирование. Очень продвинутый да простят меня вимеры блокнот. Но вот если ты на него накатишь аддонов... Такого монстра можно собрать, который разве что отсасывать тебе не будет по одной комбинации клавиш.
#462 #873746
>>873730
Ставишь Pycharm, ставишь к нему плагин vim emulator, юзаешь вимовские хоткеи
>>873754
#463 #873747
>>873719
>>873721
>>873722
А если изменения непоследовательные и фрагментарные?
>>873917
#464 #873748
>>873730
я пользуюсь емакс, мне очень нравится
>>873750
#465 #873749
>>873724
Нефти тебе, не знал Что IDEA это и есть PyCharm. Может еще подскажешь, куда файлы кинуть, в user/.PyCharm/config/colors не видит
>>873754
#466 #873750
>>873748
Во, а ты с джангой не работаешь? Есть нормальная автокомплит либа которая бы переваривала метаклассы джанги? Потому что вим вимом, а когда ты блядь не можешь написать в 3-5 нажатий Book.objects.order_by('-post_date') то это грустно
#467 #873752
>>867611 (OP)
У меня только один вопрос к вам: как в эпоху CamelCase можно писать на этом уебищном snake_petuhcase?
>>873753
#468 #873753
>>873752
Честно тебе отвечу: Да. Теперь можешь уходить
>>873756
#469 #873754
>>873749
там в настройках импорт тем вроде был
>>873746
в оправдание виму - не видел ни одного аддона для неVim-редакторов где вимовские возможности не были бы порезаны до безобразия. IdeaVim, насколько помню, не могла в именованные буферы обмена.
#470 #873756
>>873753
Почему ваша PyCharm называется не py_charm?
>>873758>>873760
#471 #873758
>>873756
потому что классы у нас принято писать camelcase, а вот запустив - инстанциировав иде, ты получишь объект который у нас принято писать py_charm
#472 #873760
>>873756
еще вопросы?
>>873762
#473 #873762
>>873760
Бочку делаешь?
>>873763
#474 #873763
>>873762
что то ты быстро, жаль.
>>873771
#475 #873771
>>873763
Это не я.
Не испытываешь чувство фрустрации от перекатов с CodeStyle на code_style?
Вы ведь в джанге так или иначе с js-кой сталкиваетесь. И такая чехорда получается
>>873774>>873776
#476 #873774
>>873771
Мне питон нужен, но не могу себя мотивировать из-за этого ебанутого PEP 8. Как вижу код в snakepidor_case хочется плакать
#477 #873776
>>873771
фрустрации испытываю, но не от codestyle, а от переката с питона джс, прям могу минуту втуплять если только за работу.
#478 #873830
Есть одна строка. В ней названия файлов (хуйнянейм.расширение). Среди них есть .webm и .jpg . Как мне удалить названия всех файлов в формате jpg(с расширением офк)?
>>873842
#479 #873842
>>873830
если в строке кроме названий файлов ничего нет, то разбить строку на список файлов и пройтись по списку циклом, иначе import re
231 Кб, 636x900
#480 #873898
Питоняши, помогите джангу понять:
Разбираюсь сейчас с Django by example и дошел до корзин и сессий.
В settings добавляеся ключ корзины, по которому ее потом будут искать

> CART_SESSION_ID = 'cart'


Сама корзина или создается или извлекается из текущей сессии таким образом:

> def __init__(self, request):


> self.session = request.session


> cart = self.session.get(settings.CART_SESSION_ID)


> if not cart:


> cart = self.session[settings.CART_SESSION_ID] = {}


> self.cart = cart


И вот я совсем не понимаю, как это работает. settings.CART_SESSION_ID появляется со значением по умлочанию 'cart' во время сессии? Но тогда if not cart не работало бы. Если бы в настройках этой строки не было - тогда бы еще понятно, но она есть.
>>873973
#481 #873917
>>873747
Ну смотри по ситуации.
#482 #873973
>>873898
По-моему тут просто дурацкие названия ключей и переменных.
CART_SESSION_ID - это никакой не ID сессии корзины, это ключ, под которым в сессии хранится корзина. Я бы его назвал SESSION_CART просто. Вместо него можно везде использовать просто строку 'cart' - self.session.get('cart')

>cart = self.session.get(settings.SESSION_CART)


Получаем из сессии данные, хранящиеся под ключом SESSION_CART и помещаем их в переменную cart

>if not cart:


Если данных в сессии нет,

>cart = self.session[settings.SESSION_CART] = {}


инициализируем их там пустым словарем
>>874008
#483 #873989
Ананасики, помогите ньюфагу. Есть кусок говнокода:

import email
import imaplib

server = "imap.mail.ru"
port = "993"
login = "WR}ErohinANUSma AwilPUNCTUMjM8ru"
password = "moms_lover"
imaplib.Debug = 4
get_mail = imaplib.IMAP4_SSL(server, port)
get_mail.login(login, password)
get_mail.select('INBOX', readonly=True)
typ, data = get_mail.search(None, 'UNSEEN')
for i in data[0].split():
typ, data = get_mail.fetch(i, '(RFC822)')
print(data[0][1])
msg = email.message_from_bytes(data[0][1])
print(msg.get_payload(0))
get_mail.close()
get_mail.logout()

Ищем непрочитанные письма. На выходе получаем:

Content-Type: text/plain; charset=UTF-8

Tvoya mamka u menya

Как получить только сообщение, без "Content-Type: text/plain; charset=UTF-8" и пробелов?
У всех походу проблемы с отправкой, потому что о получении ничего нигде нету. Один я такой идиот, чтоли? Хотя, мама говорит, что я самый умный и красивый.
#483 #873989
Ананасики, помогите ньюфагу. Есть кусок говнокода:

import email
import imaplib

server = "imap.mail.ru"
port = "993"
login = "WR}ErohinANUSma AwilPUNCTUMjM8ru"
password = "moms_lover"
imaplib.Debug = 4
get_mail = imaplib.IMAP4_SSL(server, port)
get_mail.login(login, password)
get_mail.select('INBOX', readonly=True)
typ, data = get_mail.search(None, 'UNSEEN')
for i in data[0].split():
typ, data = get_mail.fetch(i, '(RFC822)')
print(data[0][1])
msg = email.message_from_bytes(data[0][1])
print(msg.get_payload(0))
get_mail.close()
get_mail.logout()

Ищем непрочитанные письма. На выходе получаем:

Content-Type: text/plain; charset=UTF-8

Tvoya mamka u menya

Как получить только сообщение, без "Content-Type: text/plain; charset=UTF-8" и пробелов?
У всех походу проблемы с отправкой, потому что о получении ничего нигде нету. Один я такой идиот, чтоли? Хотя, мама говорит, что я самый умный и красивый.
>>873997>>874031
#484 #873997
>>873989
засранец, код на пастебин залей, потом ссыль вбрасывай на свое поделие. А эту хуйню неотформатированную уноси отсюда.
>>874000
#485 #874000
>>873997
там кода три строчки
>>874005
#487 #874008
>>873973
Спасибо, кажется я таки понял:
CART_SESSION_ID = 'cart' вообще можно было не писать, а сделано просто для безопасности/конвенции/хуй пойми чего. Но зачем было городить такую ссылку названия переменной, если можно было просто self.session.get('cart') написать?
>>874015
#488 #874015
>>874008
Можешь везде self.session.get('cart') писать, но учти, что в приличные дома тебя будут пускать только через черный ход и не далее угольного подвала и септика.
При случайной встрече на улице джентльмены будут глядеть на тебя с презрением, а дамы - морщить носики и перебегать на другую сторону улицы.
Потому что размазывать ключи-строки по всему коду это дурной тон.
>>874019
143 Кб, 600x800
#489 #874019
>>874015
Так а как правильно делать? Насколько я понимаю, self.session.get('cart') == self.session.get(settings.SESSION_CART). Чем второе лучше, тем, что переменная-имя хранится в settings и ее можно поменять/найти?
И еще вопрос, каким образом приличные господа организуют оплату в своих магазинах? Делать по django-paypal учебный проект конечно интересно, но лучше что-то попрактичнее под рубли выбрать.
>>874024>>874711
#490 #874024
>>874019
Яндекс кассу погляди
#491 #874031
Немного переписал -> >>873989
http://pastebin.com/sDr2pYbs

Теперь на выходе получаем:
Tvoya mamka u menya

>>> - \r\n в конце. Если передать это дело в скписок, то получим:


['Tvoya mamka u menya\r\n']
Как избавиться от \r\n? Помогите пожалуйста.
>>874033>>874062
#492 #874033
>>874031
Пока пришло в голову только добавить
txt_msg = part.get_payload().split('\r\n')

Что скажете?
#493 #874035
>>874033
Говно.
Почитай доки, там наверняка есть какой-нибудь no headers request или еще что-то.
#494 #874037
>>874033

>txt_msg = part.get_payload().strip('\n').strip('\r')

>>874042>>874049
#495 #874042
>>874037
А strip('\r\n') религия не позволяет?
>>874049
#496 #874049
>>874033
>>874037
>>874042
Долбоебы, читайте документацию встроенных функций и не городите костыли

>>> 'Tvoya mamka u menya\r\n'.rstrip()


'Tvoya mamka u menya'

rstrip без параметров уберет вам все пробельные символы справа
>>874055
#497 #874051
>>874033

а split вообще совсем для другого, он разбивает строку на части, используя в качестве разделителя то, шо ты ему передал в виде параметра. На выходе у тебя будет не обрезанная мамка, а список из 2 элементов - мамки и пустой строки
>>874058
#498 #874055
>>874049
А вдруг ему нужны '\t ' и т.п.?
>>874062
Аноним #499 #874058
>>874051
сплит тоже можно использовать, например для убирания лишних пробелов:
gde_mamka = ' '.join('Tvoya mamka u menya\r\n'.split(' ')).rstrip()
Аноним #500 #874059
>>874058
сука абу убрал лишние пробелы в Tvoya mamka u menya, вот опять! видели видели!?
Аноним #501 #874060
>>874058
ой не, не так, вот так:
gde_mamka = ' '.join([s for s in 'Tvoya mamka u menya\r\n'.rstrip().split(' ') if len(s)])
#502 #874061
item = {'x':1, 'y':0, 'z':-1}
choice = input('Ur choice: ')
print (item.get(choice))

Что я делаю не так? Хочу вывести значение ключа, пишет ошибку. Сижу в интерпретаторе на телефоне, значение ошибки не указывает. Следом ещё один вопрос. Поскольку значение ключа в цифрах, сработает ли мой цикл или я не правильно понимаю? :
for i in item:
if i.get(choiceтут я ввожу х) > 0:
return ('mat ebal')

Как вобще можно реализовать вывод через инпут ключа словаря? Я тотали ньюфаг.
>>874063
#503 #874062
>>874055

>А вдруг ему нужны '\t ' и т.п.?



>>874031

>Как избавиться от \r\n? Помогите пожалуйста.



шо спросили - то ответил, условий не было.

Если надо убирать ТОЛЬКО \r\n - ну ок, передай их в виде параметров в rstrip при чем в любой последовательности

>>> 'Tvoya mamka u menya\r\n'.rstrip('\n\r')


'Tvoya mamka u menya'

>>874058

>для убирания лишних пробелов:



а почему не использовать для этого .replace(' ', '')?

я понимаю, шо одни вещи можно выразить через другие, но нахуя ж так усложнять?
>>874064>>874065
Аноним #504 #874063
>>874061
что выводит это?:
item = {'x':1, 'y':0, 'z':-1}
choice = input('Ur choice: ')
print(str(choice))
>>874068
Аноним #505 #874064
>>874062
а хуй знает, всегда так делаю)
Аноним #506 #874065
>>874062
погоди, реплейсом же ты все пробелы нахуй уберешь, а надо лишние
>>874070
#507 #874066
Господа, помогите нубу
Осваиваю asyncio и вот делема то, почему то асинхронный код дольше чем синхронный выполняется, почему так?
Расскажите за всю хуйню пожалуйста, что я сделал не так?
http://pastebin.com/Fiwx9cSg
>>874072
#508 #874068
>>874063
No output
Хуй его знает, я через приложение сижу на телефоне. Через комп не проверить.
>>874071
#509 #874070
>>874065

>погоди, реплейсом же ты все пробелы нахуй уберешь, а надо лишние



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

' '.join(mystring.split())

>>> mystring = 'Tvoya mamka u menya\r\n'


>>> ' '.join(mystring.split())


'Tvoya mamka u menya'
Аноним #510 #874071
>>874068
вот так попробуй
choice = raw_input('Ur choice: ')
>>874073
#511 #874072
>>874066
Да вроде всё так:
$ python3 tmp.py
5.9300947189331055
60.197266817092896
>>874076
#512 #874073
>>874071
Попробую, спасибо. А в целом я правильно рассуждаю касательно цикла и ввода?
>>874074
Аноним #513 #874074
>>874073
ну да там все правильно кроме того что он твой ввод что то не видит
#514 #874076
>>874072
У меня, почему-то выдавал так:
19
13
#515 #874079
Сделал таким образом:

txt_msg = part.get_payload().split('\r\n') - делим по \r\n

mylist = list(filter(bool, txt_msg)) - создаем новый список из мамок без пробелов и всего дерьма.

Что скажете?
>>874093>>874098
#516 #874093
>>874079

это довольно трудночитаемый и неочевидный способ с возможностью выстрелить себе в ногу

зачем ты делишь по \r\n, если ты хочешь его обрезать?

чем тебя не устраивает rstrip() для обрезки всех любых пробельных символов справа или rstrip(\n\r) для обрезки конкретно всех \n и \r справа?
#517 #874097
Пишу небольшой консольный файловый менеджер, типа Far'а. Я поехавший?
#518 #874098
>>874079
Вот эта простая хуйня обрежет все потроха справа и заменит все лишние пробелы на один пробел

>>> mystring = 'Tvoya mamka u menya\r\n'


>>> ' '.join(mystring.rstrip().split())


'Tvoya mamka u menya'
#519 #874100
>>874097
Какой виджет-фреймворк?
>>874101
#520 #874101
>>874100
Обычная консоль Windows, использую небольшую библиотеку Colorama для цветового оформления.
#521 #874126
Кстати, хочу всем посоветовать серию внезапно адекватных лекций по Пиздону. Я хоть и писал уже кой-чего, но почерпнул много новых юз-кейсов даже из самых первых лекций, то есть, чел рассказывает не азы азов для зеленых нубов, а жизненные вещи и всякие неочевидности. И лектор не аутист прыщавый.

https://www.youtube.com/watch?v=H2IWHyum6k8
>>874128
Аноним #522 #874127
>>874097
клево!
Аноним #523 #874128
#524 #874273
>>874097

>Пишу небольшой консольный файловый менеджер, типа Far'а. Я поехавший?


Дай исходники посмотреть, тогда решим, поехавший или нет.
#525 #874335
Как вкатиться в django?
>>874351
117 Кб, 991x570
#526 #874351
>>874370
#527 #874370
>>874351
Книга Дронова несет хоть какую-то поленость на фоне two scoops? Про что в Lightweight django?
>>874371
#528 #874371
>>874370
Качай и смотри.
#529 #874394
Есть одни курсы. Soft Group в Украине. Предлагают два месяца бесплатных курсов (питон, например), с последующим трудоустройством. Какие подводные камни?
>>874440
#530 #874440
>>874394

* - 2 месяца бесплатных курсов будут предоставлены после оплаты шестилетних курсов
- помощь в трудоустройстве после успешного поиска, собеседования и подаче документов работодателю абитуриентом (предоставляется фирменая ручка для заполнения трудовой)
#531 #874530
Привет анона, я тупой. Чем больше читаю про cython, тем меньше понимаю. Объясните что это за зверь, и как его готовить
>>874553
#532 #874551
Перекатываться будем?
>>874553>>874632
#533 #874553
>>874551
Только если в шапку добавишь мой вопрос >>874530
217 Кб, 450x360
#534 #874632
>>874551
давай, вот новая пикча
#535 #874633
ПЕРЕКАТ
ПЕРЕКАТ
ПЕРЕКАТ

>>874631 (OP)
#536 #874711
>>874019
Sexy Pattycake
#537 #879081
Анон, подскажи тему для диплома. Хочу на питоне написать
Тред утонул или удален.
Это копия, сохраненная 23 ноября 2016 года.

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

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