Сохранен 519
https://2ch.hk/pr/res/334669.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Python-тред

 Аноним Птн 14 Мар 2014 17:34:12  #1 №334669 
1394804052533.jpg

Давай, ребята, обучаться вместе в этом треде.

Аноним Птн 14 Мар 2014 17:37:53  #2 №334671 

>>334669
Ну давай)) С чего начнём???

Аноним Птн 14 Мар 2014 17:41:10  #3 №334672 

Кто напишет скрипт HoholCounter3000, который сможет принять любой тред из /po и подсчитать количество в нем хохлов?

Аноним Птн 14 Мар 2014 18:47:49  #4 №334690 

>>334672
Скоко бачiшь?

Аноним Птн 14 Мар 2014 18:52:55  #5 №334695 

>>334672
$1 - html-файл с тредом


grep -o "ua\.png" $1 | wc -l
Аноним Птн 14 Мар 2014 19:09:30  #6 №334700 

>>334695
Это количество постов из укроайпи, некоторые из них могут быть написаны одним и тем же человеком.

Аноним Птн 14 Мар 2014 19:40:29  #7 №334705 

>>334669
Хочу учиться для фана программированию. Питон подойдет в качестве первого языка? Что он может, почему PHP чморят, какую литературу почитать? Заранее спасибо.

Аноним Птн 14 Мар 2014 19:42:24  #8 №334706 

>>334700
Тогда заодно следует проводить анализ лексики, вдруг семен под проксями пишет

Аноним Птн 14 Мар 2014 19:46:28  #9 №334708 

>>334706
Видно, что не ходишь в /пои правильно делаешь. Там же трипкоды стоят в каждого, можно их считать.

Аноним Птн 14 Мар 2014 19:56:44  #10 №334712 

>>334705
>почему PHP чморят
Петушки думают, что сменив стек технологий на менее развитый, они сразу же окажутся у Христа за пазухой у Гвидо на хуйце.

Аноним Птн 14 Мар 2014 20:36:57  #11 №334732 

>>334705
Нахуй тебе программирование. У тебя жена есть. Начнешь программировать, она подумает, что ты опущенец и уйдет к другому.

sageАноним Птн 14 Мар 2014 20:37:57  #12 №334733 

>>334732
тру стори(((

Аноним Птн 14 Мар 2014 21:20:39  #13 №334739 

>>334712
PHP чморят за очень низкий порог вхождения, как результат тысячи недопрограммистов.

Просто если у тебя нет опыта, то написать гостевуху на RoR куда сложнее, чем написать её же на PHP.

В итоге МИЛЛИАРДЫ недолюдей начинают с ПХП и на нём же остаются. Как результат работа практически только на этом дерьме, на RoR, Django с этим похуже. Но как языки тут даже не обсуждается PHP явно проигрывает обоим вариантам.

Аноним Птн 14 Мар 2014 21:36:33  #14 №334744 

>>334708
Хожу. И прокси менять никто не мешает
СЛАВА УКРАЇНІ!

Аноним Птн 14 Мар 2014 21:46:21  #15 №334746 

>>334739
аналогично с ДЖЯВА

Аноним Птн 14 Мар 2014 22:02:39  #16 №334752 

>>334739
Это же тупейший стереотип. Ну вот чем пхп легче? На пистоне то же самое решение будет гораздо лаконичнее, проще и понятнее. Да даже блядь Spring проще и понятнее чем эта параша.

Аноним Птн 14 Мар 2014 23:12:24  #17 №334766 

>>334739
>PHP чморят за очень низкий порог вхождения
Вся суть недостатков языка

>RoR, Django
А выбирать то и не из чего, будем кушать что положили

>>334752
Нет ничего легче php. И вообще php это как haskell, только лучше. Учится за вечер и позволяет программировать не задумываясь ни о какой хуйне вне своей прямой задачи.

Аноним Птн 14 Мар 2014 23:55:20  #18 №334770 

>>334752

>Да даже блядь Spring проще и понятнее
>Spring проще и понятнее
>Spring проще и понятнее
>Spring
>проще и понятнее

Может, мне хотя бы здесь расскажут, а для чего вообще нужна Пружына?

Аноним Суб 15 Мар 2014 00:15:25  #19 №334772 

>>334739
>RoR
Говно же, песочница для детишек. Особенно active record. Да и остальное не лучше. Пластиковая цветастая игрушка для дегенератов.
А php, ну, все эти стереотипы - десятилетней давности. Погуглил бы phalcon, что ли.
мимо-промышленная-пхп-хайлоад-макака

Аноним Суб 15 Мар 2014 00:16:40  #20 №334773 

>>334766
PHP это бейсик 21 века.
Раньше плевался с него, потом попробовал - ощущения когда пара строк работают точь в точь как от бейсика.
И да, я писал и на асме и на лиспе и на ML.

Аноним Суб 15 Мар 2014 00:26:36  #21 №334776 

>>334770
http://lpaste.net/101208

Аноним Суб 15 Мар 2014 00:28:18  #22 №334777 DELETED

>>334773
>PHP
>я писал и на асме и на лиспе и на ML.
Т.е. в свободное от написания факториалов время ты пишешь на пыхе?

Аноним Суб 15 Мар 2014 00:29:10  #23 №334778 

>>334772
посцал на тебя.

Аноним Суб 15 Мар 2014 01:02:39  #24 №334781 

>>334705
Ребя, ответьте по питону, а не срите на пых. Тред же о питоне. Насколько он хорош, области применения, перспективен ли. Хочу написать прогу по регистрации документов, реализуемо ли на питоне?

Аноним Суб 15 Мар 2014 01:12:52  #25 №334783 

>>334781
>Ребя, ответьте по питону
Начинай с The Haskell School of Expression дальше читай Typeclassopedia (http://www.haskell.org/wikiupload/8/85/TMR-Issue13.pdf), дальше статьи по ссылкам в тайпклассопедии, викикнигу (http://en.wikibooks.org/wiki/Haskell), а точнее отдельные главы. Ну и вики на haskell.org.
Некоторые няшечки могут посоветовать Душкина (беги от этой книги, как от чумы), Грема Хаттона или "Изучи себе хаскель во имя великой справедливости" - не слушай их, только напрасно потратишь время.
Ну а после изучения нормального языка программирования уже сам решишь, нужен ли тебе этот самый питон.
>реализуемо ли на питоне?
Всё реализуемое в теории, можно реализовать на практике на любом тьюринг-полном языке с вводом/выводом. Хоть на брейнфаке, хоть на malbolge, блядь. Поэтому при выборе инструмента ставить вопрос не в реализуемости, а в объёме ональной ебли для достижения результата.

Аноним Суб 15 Мар 2014 01:12:58  #26 №334784 

>>334772
Десятилетней давности? Нет.

Представь вот 9-классника, который хочет обмазаться программированием и написать новую соц. сеть, убийцу ВК. На пхп он просто возьмет и начнет писать свой быдлокод, вот просто, ничего не изучая возьмет и начнет писать <? echo "Hello, world!" ?> и т.д.

А теперь представь же этого 9-классника на RoR. Буквально в первую же неделю ему предстоит знакомство с роутами, MVC, моделями, миграциями, OOP и т.д. И без этого он просто НЕ СМОЖЕТ писать код.

Вот про что я говорю. Я не говорю, что пхп - плохой, что на нем НЕЛЬЗЯ писать хороший код. Нет. Но порог вхождения в ПХП - очень низкий и с этим глупо спорить.
На пыхе есть люди, пишущие нормальный код. И его там можно писать(ну почти). Но основная масса...

Аноним Суб 15 Мар 2014 01:20:01  #27 №334785 

>>334781

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

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

Перспективен ли? Сложно сказать. Думаю что да, но не насктолько как D. IMO, D - самый перспективный язык. Где-то рядом Go & Rust.

Аноним Суб 15 Мар 2014 01:58:21  #28 №334788 

Я тут не удержался и состряпал пасту про пых:
http://pastebin.com/u7rvgnEp

>>334772
Немного припекло от сравнения. Хотя васёк просто убог, дело там не в простоте.

>9-классника, который хочет обмазаться программированием и написать новую соц. сеть, убийцу ВК. На пхп он просто возьмет и начнет писать свой быдлокод
поделом

>в первую же неделю ему предстоит знакомство с роутами, MVC, моделями, миграциями, OOP
В 2014-ом на голом пыхе пишут только в деревне, в сарае, с выключенным светом и в условиях полной конспирации. Иначе обоссут.

sageАноним Суб 15 Мар 2014 01:59:49  #29 №334789 

>>334788
Тфу, >>334772 => >>334773

Аноним Суб 15 Мар 2014 02:19:27  #30 №334792 

>>334788
В 2014 на голом пыхе пишут 9-классники, которые на этом пыхе потом еще лет 10 писать будут. И дело именно в этом, во всем остальном пых - тот же RoR, Django.

Найти на RoR программиста, который элементарно не знает как бинарное дерево работает - сложно. На пыхе каждый второй такой.

sageАноним Суб 15 Мар 2014 02:22:06  #31 №334793 

>>334792
Пишут то пишут, только на работу их никто не берёт. Я сам недавно еле пролез, базарю.

Аноним Суб 15 Мар 2014 02:40:45  #32 №334798 

>>334793
Это пока он 9-классник его не берут, но через лет 5, он уже джуно-синьер с 5 годами опыта.

Естественно, в нормальную компанию его не возьмут, но в какую-нибудь быдло веб-студию, работающую на джумле, он идеальный кандидат. Ну или фриланс. Выучит какой-нибудь вордпресс и понеслось.

sageАноним Суб 15 Мар 2014 02:42:35  #33 №334799 

>>334792
>во всем остальном пых - тот же RoR, Django.
>Django
Да, но это не как что-то хорошее.
>RoR
Симфони более менее похож, но все равно не то. Если в RoR'е 95% бэкэнда и фронтэнда генерируются по волшебству, то в симфони для подобного эффекта придется знатно попердолиться с конфигами.

Аноним Суб 15 Мар 2014 03:01:31  #34 №334801 
[url]

Блядь, вы заебали со своим пыхом. Поймите уже, есть только один язык программирования и это Хаскель. Плюс еще пару хипстеров-долбоебов, которые пишут на Go, D и ML, но это просто от того, что у мозгов у них пока маловато, и еще Агда, но на ней пишут идейные виабушники, потому что реальной инфраструктуры нихуя нет и нихуя полезного на ней не напишешь. Любое реальное программирование сегодня - это Хаскель и только Хаскель. Конечно, хаскеллисты должны как-то зарабатывать деньги, поэтому на работе пишут на C++, Джаве и даже на PHP, но разве это делает их менее хаскеллистами? Поэтому оставьте уже в покое пэхпэёбов и рабиёбов, каждый дрочет как хочет, это его личное дело. Разница между говном и мочёй только в денежной компенсации и каждый хаскеллист выбирает то, что его лично устраивает.

sageАноним Суб 15 Мар 2014 03:02:00  #35 №334802 

как стать успешным python-ентерпраиз-программистом?
поделитесь секретами успеха, pythonрасы

sageАноним Суб 15 Мар 2014 03:11:10  #36 №334803 

>>334801
песня говно

Аноним Суб 15 Мар 2014 03:21:09  #37 №334804 

>>334801
>хипстеры
>МL
хипстеры из 80-x?

Аноним Суб 15 Мар 2014 03:25:00  #38 №334806 

>>334803
Да хуле ты понимаешь в танцевальной попсе? http://ololo.fm/search/Allan+Z+Ft+Mafie+Zouker/You+Want+To+Make+Me+Crazy

sageАноним Суб 15 Мар 2014 03:25:37  #39 №334808 

>>334804
чего не спишь няша

sageАноним Суб 15 Мар 2014 03:26:50  #40 №334809 

>>334806
развлеки меня

Аноним Суб 15 Мар 2014 03:32:37  #41 №334816 
[url]

>>334809
А хуле, попытаюсь..

Аноним Суб 15 Мар 2014 05:54:16  #42 №334820 

>>334801
>один язык программирования
Вот тут-то ты и обосрался. Я ожидал, что ты скажешь про Сишечку, а ты спизданул какую-то хуйню, у меня аж монитор забрызгало. Заканчивай это. Твой хаскель бесполене и никому не нужен. Смирись.

Аноним Суб 15 Мар 2014 06:23:38  #43 №334821 

40 постов обсирания php в треде про питон, а скрипт по учету хохлов так никто и не написал. Вся суть /pr.

Аноним Суб 15 Мар 2014 07:19:25  #44 №334826 

>>334783
задрот безработный со знанием цацкеля.
ты шо ле?! ну ка съебнул на парашу со своим цацкелем

Аноним Суб 15 Мар 2014 07:26:22  #45 №334827 

>>334801
а на вашем цацкле есть хоть какой либо софт которым люди пользуются?
вот у того же Go через 7 лет разработки уже Docker есть который расхваливают направо и налево

а чего цацкель добился за свои почти 25 лет ???

Аноним Суб 15 Мар 2014 08:09:31  #46 №334828 

>>334784
Прошел год. В Вилларибо php-школьник написал монстр, полный говнокода и костылей со stackoverflow, был обоссан и взломан, и в итоге ушел работать промоутером за 500 рублей в день, читая блог "цукерберг позвонит", пока в Виллабаджо рубипетушок ничего не добился, но освоил с младых ногтей ооп и mvc, что в перспективе куда важнее.

Аноним Суб 15 Мар 2014 09:30:09  #47 №334831 

>>334827
>Docker
ага в версии 0.0000000001
удачи маня.

Аноним Суб 15 Мар 2014 10:15:31  #48 №334835 
1394864131938.png

>>334827
Есть реально полезный pandoc, и xmonad для пердоликов.
http://ru.wikipedia.org/wiki/Pandoc
http://ru.wikipedia.org/wiki/Xmonad

Аноним Суб 15 Мар 2014 12:44:31  #49 №334856 

>>334801
>Конечно, хаскеллисты должны как-то зарабатывать деньги, поэтому на работе пишут на C++, Джаве и даже на PHP
Вся суть хачкеллеклована.

Аноним Суб 15 Мар 2014 13:18:31  #50 №334865 

>>334820
Байтослесарь закукарекал.
Это доска о программировании, а не о перекладывании кирпичиков, императивное ты быдло. Так что пиздуй обратно под шконарь, пока благородные господа опять не нассали тебе в ротешник.

Аноним Суб 15 Мар 2014 13:20:07  #51 №334866 

>>334801
>которые пишут на Go, D и ML
>тьюринг-полнота
с первых слов было понятно, что это кукарека программирующий на википедии

>программирование сегодня - это Хаскель
Too many perdoling. Подходит, пожалуй, действительно только бывшим C++-никам. Ради +20тыс к окладу или даже 2x зарплаты здоровый человек не будет читать этот криптокод. Ещё это наполовину академический язык, т.к. язык из которого после опробации фитчи растаскиваются по майнстримам.

sageАноним Суб 15 Мар 2014 13:23:55  #52 №334867 

>>334866
>Too many perdoling

Ниасилил
@
Кукарекай


>криптокод
Вообще пушка.

fx Аноним Суб 15 Мар 2014 14:18:17  #53 №334886 

>>334865
Это доска о комбинировании кирпичиков, а не о их перекладывании.

Аноним Суб 15 Мар 2014 14:22:04  #54 №334888 DELETED

>>334866
Пердолинг неисчисляемый. Правильно: too much perdoling.

Аноним Суб 15 Мар 2014 15:13:39  #55 №334906 

>>334866
а что в хакселе тоже над писцать (+ 2 1) как в лиспяре?
имхо дебилизм

Аноним Суб 15 Мар 2014 15:21:52  #56 №334908 DELETED

>>334906
нет, дурачок. в хаскеле очень легко объвлять и использовать инфиксы

Аноним Суб 15 Мар 2014 18:18:57  #57 №334976 

>>334821
http://pastebin.com/LBAxfHFM

Аноним Суб 15 Мар 2014 18:27:14  #58 №334981 

>>334788
Пофиксил тебя: http://pastebin.com/xaUxDYTz

Аноним Суб 15 Мар 2014 22:18:37  #59 №335083 DELETED

>>334976

Nokogiri::HTML(open("http://2ch.hk/po/res/3835173.html")).css("span[class='postername']").select{ |n| !n.css("img[title='ua']").empty? }.map { |n| n.css("span[class='postertripid']").text }.uniq.count
Аноним Суб 15 Мар 2014 22:34:21  #60 №335089 DELETED

>>335083
Ну и читабельная версия


require 'nokogiri'
require 'open-uri'

puts Nokogiri::HTML(open(ARGV[0]))
.css("span[class='postername']")
.select{ |n| !n.css("img[title='ua']").empty? }
.map { |n| n.css("span[class='postertripid']").text }
.uniq
.count
Аноним Пнд 17 Мар 2014 01:38:10  #61 №335482 

>>334828
Не знаю как с RoR, но логика твоя понятна. Вот другая строно: php-школьник посидел два месяца за учебниками и пошёл набирать текст под диктовку за 5к, но уже зарабатывает себе на интернеты и доширак. Тем временем школьник, которого нагрузили паттернами, насильственным ООП или не приведи господь теорией категорий - послал всё нахуй и ушёл продавать телефоны в магазин. Прошло 10 лет, php-макака испытал всю историю программирования на своей шкуре и теперь кукарекатет за haskell в pr, в то время как второго школьника сократили из магазина телефонов и он пошёл читать учебники по php...

Аноним Пнд 17 Мар 2014 01:39:53  #62 №335483 

>>335482
Тру стори кстати, не тролль

Аноним Пнд 17 Мар 2014 01:49:01  #63 №335484 

>>335482
>паттерны
>ооп
>теория категорий

>моча
>говно
>математика

Аноним Пнд 17 Мар 2014 04:04:51  #64 №335496 

>>335482
>Прошло 10 лет, php-макака узнала про node.js и теперь кукарекает на петухабре.
поправил тебя.

sageАноним Пнд 17 Мар 2014 08:27:15  #65 №335515 

>>335484
еще один "штобы сайтами в попец пороца мотиматека нинужна!!!11адин"

sageАноним Пнд 17 Мар 2014 10:57:19  #66 №335529 

>>335496
>node.js
это такое переизобретение fastcgi?

Аноним Пнд 17 Мар 2014 13:53:41  #67 №335554 
1395050021998.png

Вообще у пайтона в pr достаточно горькая судьба. Вроде и треды есть, и люди пишут, и спрашивают постоянно. С другой стороны он всегда в стороне. В отличие от RoR, PHP, Java. А мне этот язык очень нравится. И хоть я вижу его недостатки. Да, он медленный, да его практически не используют, но все же он мне по нраву. Может потому что он первый, который я изучаю вплотную. Краткое знакомство с джавой, си и пхп не затянули меня. Почему даже языки, появившиеся после питона используют скобки для блоков и точки с запятой? Это ведь так нагружает код ящитаю.

sageАноним Пнд 17 Мар 2014 14:11:22  #68 №335556 

>>335554
http://srfi.schemers.org/srfi-49/srfi-49.html

Аноним Пнд 17 Мар 2014 16:27:45  #69 №335579 

>>335554
>С другой стороны он всегда в стороне
В стороне от чего? От срачей? Это наоборот хорошо.

Аноним Пнд 17 Мар 2014 17:41:33  #70 №335598 

>>334672
Написал на js, это мой первый опыт. Не совсем учёт хохлов, но близко.
http://userscripts.org/scripts/show/416118

Аноним Пнд 17 Мар 2014 19:04:26  #71 №335604 

24 числа курс по питону. Записывайтесь.
https://www.coursera.org/course/interactivepython

Аноним Пнд 17 Мар 2014 19:25:22  #72 №335608 

>>335579
От закрепленных тредов.

Аноним Пнд 17 Мар 2014 20:16:01  #73 №335620 

>>335608
Я в закреплённом спрашивал, мне никто не ответил, спрошу тут:
решил оторваться от дрочки алгоритмов и поиграться немного с простенькими, но реальными программами. В основном думаю сделать уклон на лепку интерфейса, работу с графикой (какие-то простенькие игры), взаимодействие с вебом (парсинг всякого говна и работа с веб-интерфейсами). Так вот, есть два стула: Java и Python. Что посоветуешь выбрать по критерию "хорошо для новичка в программировании в плане обучения" и по критерию "есть хорошие библиотеки в данной области"? Python я знаю лучше, писать на нём быстрее, однако как мне кажется в нём сложнее организовать код (чего я в общем-то и не умею), динамическая типизация (думаю, это плохо для обучения), и не уверен в наличии нужных библиотек (для игор). С другой стороны в инфраструктуре джава с его проектами, сборками и прочим легко запутаться, из-за обилия информации разного качества и свежести бывает тяжело что-то найти.
Навыки программирования на питоне мне всё равно не помешают, т.к. его можно широко применять для всякой мелкой автоматизации. С другой стороны надо бы выучить нормально хотя бы один язык, на котором потом я хотел бы работать, а это явно не питон.
Пока взялся читать Dive into python для разогрева, но вот задумался.

Аноним Пнд 17 Мар 2014 20:39:42  #74 №335630 

>>335620
Python.
Ты в каком треде написал, паря? На какой ответ рассчитывал?

Аноним Пнд 17 Мар 2014 20:41:22  #75 №335633 

>>335604
Проходил этот курс год назад, был совсем зеленью. Охуенный курс, базарю.

Аноним Пнд 17 Мар 2014 21:03:42  #76 №335642 

>>335630
Что с графоном и играми? Смотрел pygame - говно какое-то. Может кто-то писал на питоне и ответит, на таких людей и рассчитан вопрос.

Аноним Пнд 17 Мар 2014 21:45:52  #77 №335653 

>>335642
Ну World of Tanks на пайтоне сделан. Он также привязан неплохо к Блендеру и Майе вроде. Я сейчас делаю игру на kivy. www.kivy.org

sageАноним Пнд 17 Мар 2014 21:46:59  #78 №335654 

>>335653
про птичек киви?

Аноним Пнд 17 Мар 2014 22:25:30  #79 №335664 

>>335654
Не понял шутку.

Аноним Пнд 17 Мар 2014 22:39:33  #80 №335671 DELETED

>>335620
Лепка Интерфейсов - джава (а лучше сишарп)
Работа с графикой - тут наверное пофиг, бери питон
парсинг веб говен - питон
сайты - питон (джава слоднее, но платят боЛьше)

Аноним Суб 22 Мар 2014 12:49:34  #81 №337126 

Разве в PEP8 не сказано, что можно называть переменные camelCase'ом? Зачем некоторые называют их var_name? Ведь функции также записываются! Или я неправильно запомнил/прочитал и не рекомендуется использовать camelCase?

Аноним Суб 22 Мар 2014 14:30:03  #82 №337136 

https://www.coursera.org/course/interactivepython
Послезавтра начнётся.

sageАноним Суб 22 Мар 2014 14:32:19  #83 №337137 

>>337126
>Function names should be lowercase, with words separated by underscores as necessary to improve readability.
>mixedCase is allowed only in contexts where that's already the prevailing style (e.g. threading.py), to retain backwards compatibility.

Аноним Суб 22 Мар 2014 17:32:35  #84 №337199 

Аноны, вопрос наверное глупейший. Но я даже не знаю как это гуглить. У меня есть скрипт, который нужным мне образом изменяет данные(т.е. строку). Есть ли какая-то возможность сделать из этого веб-страничку, куда я буду вводить данные и получать измененную строку?

Аноним Суб 22 Мар 2014 18:03:45  #85 №337206 

>>337199
Ставь nodejs. Напишешь в несколько строчек сервачок, который будет принимать строку и выдавать результат, потом напишешь простенькую страничку-клиент. Есть ещё проще пути, но это и так достаточно лехко.

Аноним Суб 22 Мар 2014 18:04:41  #86 №337209 

>>337199
Гугли: http://en.wikipedia.org/wiki/Common_Gateway_Interface

Аноним Суб 22 Мар 2014 18:19:30  #87 №337214 

>>337199
Можешь поссать в глотки предыдущим двум помощникам: http://flask.pocoo.org/

Аноним Суб 22 Мар 2014 20:31:27  #88 №337246 

>>337137
Черт но это так убого - называть переменные с подчеркиванием.

sageАноним Суб 22 Мар 2014 20:49:14  #89 №337258 

>>337246
>python
>убого
только допёр?

Аноним Суб 22 Мар 2014 22:23:46  #90 №337283 

>>337258
Затрален

Аноним Срд 02 Апр 2014 22:06:04  #91 №340684 

сажа

Аноним Втр 08 Апр 2014 00:22:30  #92 №342255 

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

sageАноним Втр 08 Апр 2014 00:26:23  #93 №342257 

>>342255
динаминамикосайтосайтух

Аноним Втр 08 Апр 2014 16:08:57  #94 №342322 

>>334705
Ну так на Python написано большое количество крутого софта, в т.ч. системного. Т.е. можно и для WEB-писать, и для всяких *nix-систем - сейчас Python в них из коробки обязательно присутствует. А вот сфера применения PHP - только Web. В связи с этим под Python писано >9000 разных модулей, есть отличный репозиторий всех этих библиотек - PyPi. PHP PEAR конечно тоже есть, но в Python установка дополнительных либ сводится к банальному pip install %название_модуля%, в то время как в PHP часто приходится выёбываться.
Сам долго писал на PHP, прочитал много книг, сейчас поддерживаю несколько проектов на Python. Я тебе честно говорю, я не срал сегодня вообще код на Python читается гораздо легче, поправить пару проблемных мест в модуле, который видишь первый раз в жизни можно за считаные минуты, в то время как в PHP часто приходится ковырять весь проект, чтобы ничего не поломать.

внимание, вопрос Аноним Втр 08 Апр 2014 16:47:43  #95 №342334 

Почему у парня с оппика подтяжки цветов флага ЛГБТ? Содержится ли здесь какой-нибудь подтекст?

Аноним Втр 08 Апр 2014 17:32:32  #96 №342346 

>>337214
Ебаный комбайн.
http://bottlepy.org/docs/dev/index.html

Аноним Втр 08 Апр 2014 17:39:47  #97 №342348 

Подойдет ли питон как первый язык программирования?

Аноним Втр 08 Апр 2014 17:47:29  #98 №342349 

>>342348
Да, вполне. Я даже всем его рекомендую как первый язык. Не знаю правильно или нет, ну похуй. -_-

Аноним Втр 08 Апр 2014 17:58:04  #99 №342353 

>>342348
Лучше Prolog/

Аноним Втр 08 Апр 2014 22:25:40  #100 №342447 

Парни, помогайте. Кто работал с pyramid? Либо с velruse.

Аноним Втр 08 Апр 2014 22:39:37  #101 №342450 
1396982377051.png

>>342348
Лучше Wolfram
Wolfram

Аноним Срд 09 Апр 2014 00:19:16  #102 №342474 
1396988356978.jpg

>>342348
Начинай с крестов, базарю, после них любой язык - конфетка.

Аноним Срд 09 Апр 2014 00:28:44  #103 №342477 

>>342450
Стиви любит рассказать, какой у него охуенный язык имеется (и тащемта во многом прав), и вообще всячески двигает тазом, рассказывая о вещах, которые касаются его самого, но есть нюансы.
Если говорить об освоении императивного программирования, то в Математике оно выглядит как говно. ООП там просто нет - т. е. не получится даже посмотреть, что это такое. А вот на ФП в питоне взглянуть получится (http://pypix.com/python/functional-programming/ ).

Аноним Срд 09 Апр 2014 07:21:45  #104 №342527 
1397013705258.png

На PyCon US кто летит, петуханы?

Аноним Срд 09 Апр 2014 10:51:48  #105 №342536 

>>342477
почему python не используется в Ынтырпрайзе?

415 Срд 09 Апр 2014 10:52:40  #106 №342538 

>>342536
что еще спизданешь?

Аноним Срд 09 Апр 2014 11:37:53  #107 №342553 

>>342538
на вопрос выше можешь ответить?

Аноним Срд 09 Апр 2014 11:39:49  #108 №342555 

>>342477
> взглянуть
Одним глазком и через замочную скважину.

Аноним Срд 09 Апр 2014 14:30:10  #109 №342594 

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

Аноним Срд 09 Апр 2014 14:36:20  #110 №342596 

>>342594
например?

Аноним Срд 09 Апр 2014 15:37:00  #111 №342610 

>>342596
армы всякие

Аноним Срд 09 Апр 2014 16:58:03  #112 №342639 
1397048283905.jpg

>>334669
Анон, что скажешь о Django? Сложный ли для изучения фреймворк? Что надо предварительно знать?

Аноним Срд 09 Апр 2014 17:38:18  #113 №342654 

>>342639
Я посмотрел на джангу, охуел, и решил, что ну его нахуй. Выучил bottle за вечер, доволен как питон. Советую. И еще монгой отполировать.

Аноним Срд 09 Апр 2014 18:27:36  #114 №342658 
1397053656626.png

>>342654
> монгой отполировать
MongoDB?
> bottle
Что за фрейм? Можно поподробнее?

Аноним Срд 09 Апр 2014 18:42:25  #115 №342664 

>>342658
>MongoDB?
Ага. Прочитай The Little MongoDB Book, быстро разберешься.
>Что за фрейм? Можно поподробнее?
Микрофреймворк в одном модуле.
http://bottlepy.org/docs/dev/index.html
Еще с Twitter Bootstrap разберись, и вообще хорошо будет.

Аноним Срд 09 Апр 2014 18:45:08  #116 №342667 

>>342639
много магии, поэтому для начала будет сложно, но боттле или фласк не годятся для крупных проектов

Аноним Срд 09 Апр 2014 18:46:40  #117 №342668 

>>342664
http://falconframework.org/#Metrics

Аноним Срд 09 Апр 2014 19:12:06  #118 №342674 
1397056326014.gif

>>342664
Что-то как-то не впечатлило, но по монге спасибо за информацию.
>>342667
А по джанге надо хорошо знать html, css? Стоит ли использовать что-то вроде этого? https://pypi.python.org/pypi/django-twitter-bootstrap/

Аноним Срд 09 Апр 2014 19:29:23  #119 №342683 

>>342667
>боттле или фласк не годятся для крупных проектов
Ну так начинать же все равно с мелких проектов придется.

Аноним Срд 09 Апр 2014 19:29:36  #120 №342684 

Хочу пересесть с PHP на Python. Стоит ли? Какие профиты? Работа есть вообще?

Аноним Срд 09 Апр 2014 19:30:31  #121 №342685 

>>342683
Черт, думал, ты это на мой пост ответил.

Аноним Срд 09 Апр 2014 19:34:41  #122 №342688 

>>342685
Хотя, ты действительно на мой ответил.
Пора отлипнуть от монитора, лол. Пойду прогуляюсь.

Аноним Срд 09 Апр 2014 20:22:37  #123 №342697 

>>342684
>Какие профиты?
Будешь знать второй язык

>Работа
Поэтому больше вакансий тебе подойдёт

Аноним Срд 09 Апр 2014 22:04:31  #124 №342712 

>>342674
надо знать минимум, в идеале - верстать на бутстрапе, всё остальное упрощение для тех, кто уже и так знает.

Аноним Срд 09 Апр 2014 22:21:10  #125 №342720 

>>342674
Самодельный сайтик с регистрацией и бутстрапом, сверстанный по примерам http://getbootstrap.com/getting-started/#examples плюс небольшой курс http://try.jquery.com/ за пару-тройку недель отлично раздупляют по поводу хтмл и ксс, например.

Аноним Чтв 10 Апр 2014 19:53:27  #126 №343049 

>>342477
> ООП там просто нет - т. е. не получится даже посмотреть, что это такое
troll_mode = True ООП это прошлый век. На вольфрам можно программировать как в Стартреке, посредством естественного языка. Программисты больше не нужны, на вольфрам может программировать каждый (кто владеет речью).

Аноним Чтв 10 Апр 2014 19:58:07  #127 №343053 

>>343049
Что характерно, ты речью не владеешь, потому что способен просклонять слово вольфрам

Аноним Чтв 10 Апр 2014 21:03:44  #128 №343083 

>>343053
И где именно я просклонял слово "вольфрам"?
Просто скажи что бомбануло, не стесняйся.

Аноним Чтв 10 Апр 2014 21:18:33  #129 №343095 

Какого хуя так мало работы для питона? Блядь, ебаные Похапе и Джаваскрипты, заебали вкрай.

Аноним Чтв 10 Апр 2014 21:21:39  #130 №343097 
1397150499871.png

>>343049
> На вольфрам можно программировать как в Стартреке, посредством естественного языка.
http://www.wolframalpha.com/input/?i=anus+vs+jupiter

Аноним Птн 11 Апр 2014 14:39:11  #131 №343355 
1397212751741.png

Смотри, анон, какую хуйню сделал. Как можно сделать более изящнее?

http://www.codeskulptor.org/#user29_VDrVWEOXwaqNxd1.py

Аноним Птн 11 Апр 2014 14:59:36  #132 №343364 

>>343355
http://www.codeskulptor.org/#user29_VDrVWEOXwaqNxd1_0.py

Аноним Птн 11 Апр 2014 16:14:40  #133 №343400 

>>343364
И што это, лол?

Guess the number between 1 an 100

Lower
You entered: 50
Guesses remains: 6

Lower
You entered: 25
Guesses remains: 5

Lower
You entered: 12
Guesses remains: 4

Lower
You entered: 6
Guesses remains: 3

Lower
You entered: 3
Guesses remains: 2

Higher
You entered: 1
Guesses remains: 1

You lose!

New game started!
Guess the number between 1 an 100

Последней цифрой я ввел двойку.

Аноним Птн 11 Апр 2014 17:08:13  #134 №343435 

>>343364
Здорово. Намного чище.

Аноним Вск 13 Апр 2014 00:36:58  #135 №343896 

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

Аноним Вск 13 Апр 2014 01:13:42  #136 №343911 

>>343355
http://www.codeskulptor.org/#user29_h6CVTUae6WNV9Nd.py

Аноним Вск 13 Апр 2014 01:57:23  #137 №343925 

>>343896
Именно потому, что
> разные хорошие библиотеки есть только нём
все пишут на второй ветке, соответственно для неё ещё больше разных хороших библиотек. Плюс всякие PyPy и stackless 3.x ещё не полностью поддерживают, например. Ну и многим не нравится форсированный юникод.

Аноним Вск 13 Апр 2014 09:11:07  #138 №343962 

Питонисты, поясните за ооп.
Объект обязательно должен присваиваться переменной? Или может быть анонимным как функция?

Аноним Вск 13 Апр 2014 10:45:58  #139 №343969 

>>343962
string s = new huy(pizda).tostring()
нутыпонел

Аноним Вск 13 Апр 2014 10:48:50  #140 №343970 

>>343962
>Питонисты
Блядь, не заметил. Сьеби со своим быдлоговном нахуй.

Аноним Вск 13 Апр 2014 11:05:28  #141 №343972 

>>343970
Но ведь это питон-тред.
На насчет этого >>343969 понял.
Все работает, спасибо. Хочу в приложении обойтись минимумом переменных. Не люблю я их.

Аноним Вск 13 Апр 2014 12:29:03  #142 №343980 

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

Аноним Вск 13 Апр 2014 13:37:13  #143 №343990 

>>343980
http://www.brython.info/

Аноним Вск 13 Апр 2014 13:43:41  #144 №343992 

>>343990
Медленноват же. Вот если бы он умел транслировать в джаваскрипт на лету (типа jit), тогда был бы охуенен, пожалуй. Есть PythonJS, хотя он и несколько ограничен. Но для него вроде не завезли source maps, поэтому еботня с отладкой. Лучше уж не выебываться и писать на coffeescript.

Аноним Вск 13 Апр 2014 17:08:00  #145 №344016 

зачем нужен питон, когда есть дг?

Аноним Вск 13 Апр 2014 21:24:06  #146 №344052 

Вот вы где.

У меня есть парочка вопросов.

1. Как из программы на C/C++ вызвать функцию на Python? 100% можно. Но как?

2. Как обернуть в декоратор метод, но чтобы сама функция декоратора принимала параметр self? Только через двойное обетование?

Аноним Вск 13 Апр 2014 21:26:12  #147 №344053 

>>344016
Что такое дг?

Аноним Вск 13 Апр 2014 21:29:58  #148 №344054 

>>344053
http://pyos.github.io/dg/
>>344052
>Как из программы на C/C++ вызвать функцию на Python? 100% можно. Но как?
https://docs.python.org/3.5/c-api/veryhigh.html
>Как обернуть в декоратор метод, но чтобы сама функция декоратора принимала параметр self?
http://ideone.com/2SXxYQ

Аноним Вск 13 Апр 2014 21:43:36  #149 №344058 

>>344054
Второй, я честно, видел, но я не понял.

Например PyQt из коробки умеет как-то переопределять виртуальные функции классов, подменяя реализацией на питоне сишную реализацию.

Третий - мне в функции yoba (которая и есть декоратор) использовать self хотелось.

Сейчас перехотелось, но вопрос остался.

Аноним Вск 13 Апр 2014 21:49:41  #150 №344059 

>>344058
Не та ссылка. https://docs.python.org/3.5/extending/extending.html#calling-python-functions-from-c
>Третий - мне в функции yoba (которая и есть декоратор) использовать self хотелось.
Как ты его исползовать будешь, если на момент вызова ебы не то что инстанса, даже класса еще нет?

Аноним Вск 13 Апр 2014 22:00:17  #151 №344062 

>>344059
Понял.
Тупой вопрос, кинул в корзину.


Еще вопрос. Как грамотнее реализовать что-то подобное enum?

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

Сейчас делаю просто набор глобальных переменных

line = 0
solid = 1

Но это не очень удобно.

и так далее...

Аноним Вск 13 Апр 2014 22:01:38  #152 №344064 

>>344062
>Еще вопрос. Как грамотнее реализовать что-то подобное enum?
https://docs.python.org/3.5/library/enum.html

Аноним Вск 13 Апр 2014 22:02:58  #153 №344065 

>>344064
Во.

А если я пишу на 3.3 (просто на момент начала проекта, она была актуальна)

Стоит переходить?

Аноним Вск 13 Апр 2014 22:04:48  #154 №344066 

>>344065
А почему нет? 3.4 обратно-совместим. (3.5 еще не вышел если что.)

Аноним Вск 13 Апр 2014 22:17:13  #155 №344068 

>>344066
Спасибо Анон!

Аноним Пнд 14 Апр 2014 01:31:10  #156 №344124 

Придумал себе задание, но не понимаю как его реализовать.
Задание следующее: матрицу размером А х В, состоящую из единиц, заполнить на заданный процент нулями. Единственное приходящее на ум решение это создать список длиной А*В, заполнить его на нужный процент нулями с начала, а потом перемешать. Но это уже будет не матрица.
В общем, я в замешательстве, подскажите что-нибудь.

Аноним Пнд 14 Апр 2014 01:38:11  #157 №344125 

>>343355
О, я тоже этот курс прохожу. Вчера за полчаса до дедлайна успел таки сделать.

Алсо, что скажете про codeacademy.com?

Аноним Пнд 14 Апр 2014 02:19:53  #158 №344140 

>>344124
Если тебе хочется сделать именно так, то можно работать с матрицей так, как будто это список:


def doSomethingWithMatrix(matrix, something):
rowLength = len(matrix[0])
for i in range(len(matrix) * rowLength):
matrix[i / rowLength][i % rowLength] = something()
Аноним Пнд 14 Апр 2014 04:35:45  #159 №344152 

>>344124
[kostyli]
Матрица - функция от аргументов-натуральных чисел.
Можешь обернуть список, чтобы getitem setitem etc. кортеж нужный принимали.
[/kostyli]

Аноним Пнд 14 Апр 2014 08:49:23  #160 №344164 

>>344124
import numpy

Аноним Пнд 14 Апр 2014 09:21:00  #161 №344170 

>>344124
>Но это уже будет не матрица.
Ну преврати в матрицу.

to_matrix = lambda xs, row_size: list(map(list, zip(*[iter(xs)] * row_size)))
Аноним Втр 15 Апр 2014 12:52:05  #162 №344424 

>>344125
На кодакадеми прошел полностью курс. Довольно годно, базовые понятия вполне даёт.
Алсо, сейчас играю на http://www.checkio.org/
Такие-то уровни, ачивки, бэджики и прочее. И еще удобно, что есть решения разделенные по красивости, быстрости. То есть, сделал, а потом можно глянуть на красивые решения и оценить свой быдлокод.

Аноним Втр 15 Апр 2014 23:25:40  #163 №344563 

>>344053
> import '/sys/stdin'
Ну пиздец, сажаскрыл.

Аноним Срд 16 Апр 2014 21:07:04  #164 №344828 

Ребята, помогите, нужно написать функцию которая принимает произвольную длинную строку разделенных слов, на выходе должно вернуть строку, составленную из слов, присутствующих в строке ввода. Общая длина результирующей строки должна быть как можно ближе к 140 символам.

Аноним Срд 16 Апр 2014 22:28:29  #165 №344852 

>>344828
Лол, не так давно похожую задачу задавали, только в двухмерном пространстве и с прямоугольниками.
https://en.wikipedia.org/wiki/Bin_packing_problem
Решается частичной сортировкой, перебором, отсеиванием, перемешиванием, гуглом.
Вот ещё интересный метод: http://habrahabr.ru/post/209610/

Аноним Срд 16 Апр 2014 22:34:27  #166 №344853 

>>344563
У вас FROM . IMPORT BOMPA

sageАноним Срд 16 Апр 2014 22:35:02  #167 №344854 

>>344828
отжиг

!!zunHIrSt Чтв 17 Апр 2014 01:38:10  #168 №344888 

>>344828
https://en.wikipedia.org/wiki/Knapsack_problem
https://en.wikipedia.org/wiki/Subset_sum_problem

Array.prototype.maxBy = function (estimate) {
var maxItemIndex;
var maxItemValue = -Infinity;
for (var i = 0; i < this.length; ++i) {
var value = estimate(this[i]);
if (value > maxItemValue) {
maxItemIndex = i;
maxItemValue = value;
}
}
return this[maxItemIndex];
};

var knapsack = function (limit, items, options) {
var estimate = (options && options.estimate) || function (item) { return item; };
var join = (options && options.join) || function (a, b) { return a + b; };
var optimals = [0];
if (options && options.hasOwnProperty('neutral')) {
optimals[0] = options.neutral;
}
// пропущенный здеся код читателю предалагается написать в качестве упражнения!
return optimals[limit];
};

var quux = function (text, sep, limit) {
return knapsack(limit, text.split(sep), {
estimate: function (word) { return word.length; },
neutral: ''
})
};
Аноним Суб 19 Апр 2014 17:35:17  #169 №345712 

>>344424
>Алсо, сейчас играю на http://www.checkio.org/
А есть еще подобные сайты?

Аноним Суб 19 Апр 2014 22:54:20  #170 №345800 

>>334669
В питоне можно определить свой тип данных?

Аноним Вск 20 Апр 2014 00:57:09  #171 №345820 

>>344125
Чё за курс?

Аноним Вск 20 Апр 2014 01:06:39  #172 №345825 

>>345800
Сделать свой type?
https://docs.python.org/3/reference/datamodel.html?highlight=metaclass
или что ты имел ввиду?

Аноним Вск 20 Апр 2014 01:55:48  #173 №345841 

>>344424
Ага, начал упарываться. Сложновато для меня, правда.
>потом можно глянуть на красивые решения и оценить свой быдлокод.
Дико печет после того как выстрадал решение в 30 строк, а задачу можно решить в одну.
>>345712
Например,
www.pythonchallenge.com
>>345820
https://class.coursera.org/interactivepython-004

Аноним Вск 20 Апр 2014 13:54:44  #174 №345887 

Кто-нибудь пробовал использовать QuickCheck для питона? Например вот этот https://pypi.python.org/pypi/pytest-quickcheck/0.8
Как оно?

Аноним Вск 20 Апр 2014 20:07:33  #175 №345974 

Есть функция

def define(url,url1,url2,url3):
q = browser(url)
w = browser(url1)
e = browser(url2)
r = browser(url3)

Как это реализовать если урлов может быть 2, а может 100500? Заранее спасибо.
Аноним Вск 20 Апр 2014 20:21:49  #176 №345978 

>>345974
Очень просто:
def define(*urls):
return list(map(browser(url), urls))

Аноним Вск 20 Апр 2014 20:23:09  #177 №345980 

>>345978
Во второй строке должен быть отступ.

Аноним Вск 20 Апр 2014 20:25:02  #178 №345981 
1398011102945.jpg

>>345980
Спасибо, анон :3

Аноним Вск 20 Апр 2014 20:25:28  #179 №345982 

>>345978
Отмена. Не работает. Сейчас разберусь, в чем дело.

Аноним Вск 20 Апр 2014 20:37:11  #180 №345988 

>>345981
Завернул функцию в лямбду, и все заработало. Не знаю, почему. Я только вторую неделю программирование изучаю, и еще нихуя не знаю.
Но этот вариант рабочий:

def define(*urls):
return list(map(lambda url: browser(url), urls))
Аноним Вск 20 Апр 2014 20:39:51  #181 №345990 

>>345988
Без лямбды выдает ошибку:
'list' object is not callable

Аноним Вск 20 Апр 2014 20:40:57  #182 №345991 
1398012057078.jpg

>>345988

Аноним Вск 20 Апр 2014 20:47:58  #183 №345997 

>>345991
Вызывать функцию как обычно, но количество аргументов может быть любым. Аргументы идут просто друг за другом:
define(url0, url1, url2)
Только этих урлов может быть сколько угодно.
А что ты пишешь?

Аноним Вск 20 Апр 2014 22:31:01  #184 №346071 

>>345997
Парсер. Если бы ещё подсказали чем обработать js. Там прост карта генерируется джаваскриптом. Список по 25 пунктов, страницы [1] [2] [3] .. сделаны на жс, [1] <-- это прост функция, которая при событии просто меняет эти 25 пунктов на новые. Я хз как описать чтобы было понятно.

Аноним Пнд 21 Апр 2014 00:41:53  #185 №346111 

>>345988
>>345990
Потому что первый аргумент у map это функция. А ты вызываешь функцию, следовательно там то, что она возвращает, судя по ошибке это list.

Аноним Пнд 21 Апр 2014 00:46:47  #186 №346112 

http://ideone.com/6Lg486

sageАноним Пнд 21 Апр 2014 01:22:30  #187 №346123 

Гвидо дал им 3-й python. Ленивость, yield from, программируй! Нет, не хочу, хочу жрать говно. Передаю все аргументы сразу, чтобы последовательно их использовать. И это программисты? Мудачьё!

Аноним Пнд 21 Апр 2014 05:49:06  #188 №346148 

>>346123
Создаем функцию для создания генераторов:

def get_gen(*urls):
for url in urls:
yield browse(url)

Создаем генератор:
new_gen = get_gen(url1, url2, url3)

Обрабатываем урл:
new_gen.next()

Все правильно сделал?
Аноним Пнд 21 Апр 2014 05:50:47  #189 №346149 

>>346112
Ага, понял.

Аноним Пнд 21 Апр 2014 06:55:43  #190 №346151 

А можно как-то аппендить итеатор? Ну, то есть, сделать так, чтобы он работал как очередь.

Аноним Пнд 21 Апр 2014 09:22:33  #191 №346160 

>>346151

import collections

class yobadeque (collections.deque):
def iter(self): return self
def next(self): return self.popleft() # тут можно обработать элемент
def repr(self): return object.repr(self)

xs = yobadeque([url1, url2, url3])
xs.append(url4)
Аноним Пнд 21 Апр 2014 10:12:53  #192 №346172 

>>346148
Нет, нахуя вообще такая функция, которая просто мапает свои входные параметры? Почему не сделать так:


urls = (url1, url2, url3)
for result in map(browser, urls):

...

И зачем хранить каждый урл в отдельной переменной с номером?
Аноним Пнд 21 Апр 2014 11:09:21  #193 №346183 

>>346172
Да, понял тебя.

Аноним Пнд 21 Апр 2014 22:27:40  #194 №346402 

Помогите, пожалуйста, написать прогу, шифрующую текст. Например, а = 11, б = 12, в = 13, г = 14, д = 15, е = 16, ж = 21 и т.д.
Я совсем нуб и не знаю как это сделать. Через объявление переменных, а затем code = raw_input ("Введите текст")? И еще: как в питоне сделать какой-нибудь экзешник или типа того, чтобы инфтерфейс был юзер-френдли? То есть как перенести код в графический интерфейс? Заранее спасибо.

Аноним Пнд 21 Апр 2014 23:04:07  #195 №346412 

>>346402
Так тебе помочь, илт написать за тебя, лалка? И как ты гуй с экзешником связал

Аноним Пнд 21 Апр 2014 23:18:58  #196 №346418 

>>346412
Ну вот ты бы как реализовал это, лалка? Или вот так:
if a
print 11
elif b
print 12
elif c
print 13 и т.д.

Я имел в виду то, чтобы пользователь открыл эту прогу, вбил текст, получил шифр. Чтобы он не ебался с командными строками, powershell'ами и т.д.

Аноним Пнд 21 Апр 2014 23:25:34  #197 №346420 

>>346418
Гугли python dictionary.
А вообще, судя по вопросам - тебе ещё долго учиться.

Аноним Втр 22 Апр 2014 11:34:42  #198 №346493 

>>346402
Просто представялешь букву в виде числа и делаешь шифт:
ord('a')-213=11

Аноним Втр 22 Апр 2014 11:41:58  #199 №346495 

>>346402
>>> def letter_to_cipher(input_str):
if type(input_str) is str:
output = ''
for letter in input_str:
code = ord(letter)-213
output += str(code)
return output
else:
print "Input Error: not a string"

Аноним Втр 22 Апр 2014 12:13:51  #200 №346500 

>>346402
>Помогите, пожалуйста, написать прогу, шифрующую текст
Палю годноту, только никому не показывай:
http://inventwithpython.com/hackingciphers.pdf

Аноним Чтв 24 Апр 2014 07:14:01  #201 №347022 

Как покороче записать такое в питоне:


def function():
try:
do_huita()
except():
do_another_huita
do huita()
Аноним Чтв 24 Апр 2014 09:49:31  #202 №347032 

>>347022


def function():
if uslovie_pochemu_nado_provesti_podgotovitelnie_deystviya:
do_another_huita()
huita()
Аноним Чтв 24 Апр 2014 14:40:20  #203 №347112 

Как мне получить предыдущее значение итерации?
Я придумал только пихать все значения в лист, и потом доставать оттуда.
тотал ньюфаг

Аноним Чтв 24 Апр 2014 15:03:17  #204 №347123 

>>334732
Мудак чтоль? Программист куда привлекательное какого-нибудь филолога, при условии, что внешние данные у них на одном уровне

Аноним Чтв 24 Апр 2014 15:39:04  #205 №347146 

>>347112
Если тебе понадобилось получать предыдущее значение итерации - ты что-то делаешь не так.


>>> a = [1,2,3]
>>> for i, v in enumerate([1,2,3]):
... if i > 0: print(a[i - 1])
...
1
2
Аноним Чтв 24 Апр 2014 16:05:41  #206 №347174 

>>347146
Еще что расскажешь? Напиши без этого, например, программу, которая возвращает все суммы соседних элементов в списке.
>>347112
for predyduschee, novoye in zip(xs, xs[1:])

Аноним Чтв 24 Апр 2014 16:25:26  #207 №347188 

>>347174
Очевидно, что такая программа не нужна.

Аноним Чтв 24 Апр 2014 16:33:38  #208 №347191 

>>347174
А если серьезно, ты же сам описал решение без обращения к предыдущему элементу итерации.


[a + b for a, b in zip(arr, arr[1:])]
sageАноним Чтв 24 Апр 2014 16:53:05  #209 №347199 

zipWith (+) x (tail x)
динамикоукраинцы так не могут

Аноним Чтв 24 Апр 2014 16:57:10  #210 №347203 

>>347199
map (+) x (tail x)

sageАноним Чтв 24 Апр 2014 17:03:55  #211 №347210 

>>347203
>map (+) x (tail x)
http://ideone.com/NpP7mc

Аноним Чтв 24 Апр 2014 17:08:56  #212 №347213 

>>347191
>>347174
Ну ето для долбоёбов вариант (создаёться копия мосива), с индексами правельнее. а если нужьен будет предпоследний элемент или n предидущих через один?

Аноним Чтв 24 Апр 2014 17:12:17  #213 №347214 DELETED

>>347199

ideone.com/jPr8RE

Аноним Чтв 24 Апр 2014 17:14:02  #214 №347217 

да, если хочишь с zip всё-таки, то исползуй itertools.islice, хотя бы лениво всё будет.
>>347213

sageАноним Чтв 24 Апр 2014 17:14:42  #215 №347218 

>ideone.com/jPr8RE
THE -=SKOBKI=- PROGRAMMING LANGUAGE
ок

Аноним Чтв 24 Апр 2014 18:18:20  #216 №347239 

>>347213
Чем правильнее то, тремя тактами процессора?

Аноним Чтв 24 Апр 2014 20:36:00  #217 №347291 

>>347239
а вот и долбоёб объявился
>создаёться копия мосива

Аноним Чтв 24 Апр 2014 21:03:43  #218 №347297 

>>347291
Не притворяйся дебилом, ты понял о чем я.

Аноним Чтв 24 Апр 2014 21:25:00  #219 №347306 

>>347297
еси в мосиве не 2 елемента, а 2 миллиона, то ето будет не "3 такта"

Аноним Чтв 24 Апр 2014 21:35:16  #220 №347309 

>>347297
http://ideone.com/oYbkUW

Аноним Чтв 24 Апр 2014 23:10:25  #221 №347333 

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

Аноним Чтв 24 Апр 2014 23:20:33  #222 №347336 

>>346495
Не работает(

Аноним Чтв 24 Апр 2014 23:45:43  #223 №347343 

>>347333
четабельность не пострадает, а скорее даже повисится если использовать индексы.
соптимизирует он, послушайте долбоёба, как будто сложно сразу нормално зделать. ето не просто как "я исползовал алгоритм попрощи, мало ли итак сойдёт, а еси что заменю на более сложный и быстрый", никаких плюсов вообще нет, ето ошибка. исползуй ты islice вместа обычново я бы даже не пердел в тхред.

Аноним Птн 25 Апр 2014 00:59:57  #224 №347366 
1398373197037.png

>>347210
Ну не знаю, у меня все работает.

Аноним Птн 25 Апр 2014 02:53:28  #225 №347373 DELETED

>>347366
ШГ

Аноним Птн 25 Апр 2014 04:22:18  #226 №347381 
1398385338025.jpg

>>334669
А вот и вы.
Вопрос такой: Питон, SQL, как?

Что-то вразумительное по поиску называется PDO, но на на сайте проекта не могут даже даунлоад страничку содержать в порядке, могу представить, что там дальше.

Так как же жить?

Аноним Птн 25 Апр 2014 04:44:53  #227 №347382 

>>347032
Ну вообще мне надо было исключение обработать, ну да уже неактуально.

Аноним Птн 25 Апр 2014 04:47:04  #228 №347383 

>>347381
Что тебе нужно? Писать чистые запросы к базе через питон? python-sql чем плох?

Аноним Птн 25 Апр 2014 05:07:45  #229 №347385 

>>347383
Вот не нашел сразу. Спасибо.

Аноним Птн 25 Апр 2014 06:04:28  #230 №347387 

>>347383

Я, конечно, дико извиняюсь, но эта библиотека вообще о чем?
Где в ней, например, к базе, собственно, подконнектиться?

>>347385

sageАноним Птн 25 Апр 2014 06:18:58  #231 №347388 

>>347387
А о чем тебе нужно? Секунда в гугле python mysql connect
http://sourceforge.net/projects/mysql-python/
Может, тебе вообще ORM нужна?

Аноним Птн 25 Апр 2014 06:19:20  #232 №347389 
1398392360486.jpg

>>347387
Да, на случай, если вдруг не очевидно.
Мне нужно из своей программы подключиться к sql серверу, например, мускулю, выполнить запрос и получить обратно результат.

Такая себе рядовая задача, казалось бы.

Аноним Птн 25 Апр 2014 06:22:49  #233 №347390 

>>347388
Я как-то все "python sql" больше искал, с нулевым результатом.

Сажицу прибереги для кого нибудь, она тут не к месту.

Аноним Птн 25 Апр 2014 11:42:07  #234 №347429 

>>347343
Буду говорить в твоем же стиле: а если там не сумма соседних элементов, а нечто более сложное, да еще и вложенное (Python - язык про списки, не забываем), что, тоже заебись ебля с индексами будет? i, j, k, l?

Аноним Птн 25 Апр 2014 16:35:33  #235 №347495 

>>347429
ох говноед. какие i, j, k? суть не в итератьсии непосредствино через элемент или в итератьсии через индекс, а в ленивости. я же сказал про етот конкретно случай и добавел про islice. пойми ты уже и закрой своё тупое еблище, пока я тебе его не закрыл.

Аноним Птн 25 Апр 2014 18:44:19  #236 №347513 

>>347495
Хотел объяснить, разжевать тебе на пальцах, о чем я говорю, но господи ты боже мой, как же я проиграл.
>пойми ты уже и закрой своё тупое еблище, пока я тебе его не закрыл.
Досвиданья

Код ривью Аноним Суб 26 Апр 2014 02:13:59  #237 №347655 

Тэкс. Я тут код написал. Не поленись, попробуй разобраться в нем как будто тебе это надо и скажи со своей колокольни что бы ты сделал по-своему.
http://ideone.com/isq8md

Аноним Суб 26 Апр 2014 04:33:17  #238 №347691 

>>347112
а не выебываться и сделать например
prev = None
for element in iterable:
print(prev, element)
prev = element
религия не позволяет?

Ну если уж хочется ИЗЯЩНО, то
for element in iterable:
print(element, next(iterable, None))
результат немного другой, но смысл в общем тот же

Аноним Суб 26 Апр 2014 04:34:33  #239 №347692 

>>347691
проебал разметку, ну ладно

Аноним Суб 26 Апр 2014 04:46:13  #240 №347694 

>>347692
Ах нет, виноват, второй вариант таки не годится.

Аноним Суб 26 Апр 2014 04:59:27  #241 №347695 

current = None
for prev, current in ((current, i) for i in iterable): print(prev, current)

Аноним Суб 26 Апр 2014 14:33:25  #242 №347784 

>>347655
> eval
Очень плохая идея, особенно когда можно без него обойтись.
Лучше ещё немного посидеть и написать несколько классов для нормального представления алгебраического выражения, например - ввиде дерева.
Тогда, нарушая порядок вычисления, можно будет получать более инитересные неправильные ответы.

> get_*_expression
copypasta, на copypastе, copypastой погоняет..
Всю разницу можно передать в параметрах, а EASY, MEDIUM, HARD сдлать словарями.

def get_expression(truth, left, right, operators)
MEDIUM = dict(
left = (-100, 100),
right = (0,100),
operators = OPERATORS[:2],
)
get_expression(False, **MEDIUM)
Аноним Суб 26 Апр 2014 21:14:08  #243 №347957 

>>347784
Насчет eval'a знаю что плохой тон, но вот как раз парсер не хотелось свой писать.
Второй совет мне понравился, учту.
Спасибо, что потратил время.

Аноним Суб 26 Апр 2014 23:45:52  #244 №348016 

>>347957
Парсер то тебе зачем? Ты же выражение генерируешь, а не считываешь.

Аноним Вск 27 Апр 2014 17:11:16  #245 №348208 
1398604276033.jpg

Есть один пакет.
Каким образом его можно сделать переносибельным? Просто импортить не получается, ругается на неправильные внутренние импорты, да на много что еще.
Если точнее, то его нужно использовать в Сублиме.

В питоне не шарю, просто нужно сделать быстро.

Аноним Пнд 28 Апр 2014 00:53:26  #246 №348342 

>>347655
пиздец, люди есть ещё люди которые не знают что такое комбинаторные парсеры и pyparsing в частности

Аноним Пнд 28 Апр 2014 01:36:32  #247 №348357 

>>348208
Всем спасибо, разобрался.

Аноним Пнд 28 Апр 2014 10:20:08  #248 №348405 

Сап, антон, помоги. Расскажи как в программке на wxPython отделить код гуя от функций кнопок из того же кода. Чтобы, в общем, был модуль под функции кнопок и модуль под сами кнопки. Надеюсь понятно. Приветствуются ссылки, примеры и т.д.

sageАноним Пнд 28 Апр 2014 11:48:44  #249 №348415 

>>348405
>wxPython
>2014

Аноним Пнд 28 Апр 2014 12:20:48  #250 №348420 

>>348342
Топ кек. Конкретно в этой задаче мне это абсолютно не нужно, элитный наш.

Аноним Пнд 28 Апр 2014 15:32:55  #251 №348490 

>>348415
Нет времени менять направление :(

sageАноним Пнд 28 Апр 2014 20:00:37  #252 №348580 

>>348490
нет времени понять сколько времени

Аноним Вск 04 Май 2014 09:57:39  #253 №350391 

А я сейчас сво первый блекджек реализовал на питоне.
Я, кстати, всегда думал, что блекджек - это такая дубинка, которой сутенёры шлюх воспитывают, и которую во всяких БДСМ-игрищах используют. А оказалось, что это такая карточная игра.
Век живи - век учись.

Аноним Вск 04 Май 2014 12:26:59  #254 №350416 

>>350391
Последней сентенцией рассмешил, братишка.
Код то будешь показывать?

Аноним Вск 04 Май 2014 12:34:39  #255 №350417 

Подумал тут про онлайн-казино. Где можно почитать об их юридическом регулировании?

Аноним Вск 04 Май 2014 12:51:04  #256 №350420 

>>350417
На сайте правительства Сингапура.

sageАноним Вск 04 Май 2014 14:39:44  #257 №350434 

>>350420
можно ссылку?

sageАноним Вск 04 Май 2014 17:06:44  #258 №350464 

>>350434
>2014
>просить ссылку

Аноним Пнд 05 Май 2014 02:46:17  #259 №350587 

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

пока что я делаю это к примеру из цепочек replace('x','')
то, что это пиздец как не круто, мне становится уже понятно
после трёх replace подряд. накрутил свою функцию:


def revome(self,chars):
... s = self
... for c in chars:
... s = s.replace(c, '')
... return(s)


но должны же быть элегантнее пути?
Аноним Пнд 05 Май 2014 06:20:10  #260 №350593 

>>350587
Регэкспы.

Аноним Пнд 05 Май 2014 07:41:17  #261 №350595 

>>350587
def remove(self,chars):
return(''.join(list(filter(lambda x: x not in chars, self)))

Аноним Пнд 05 Май 2014 08:41:40  #262 №350597 

>>350593
как будет выглядеть для таких символов '#','*','(',')','=' ?

Аноним Пнд 05 Май 2014 11:36:44  #263 №350619 

>>350597

from functools import partial
import re

def mk_replacer(chars, replace=''):
expr = '[%s]+' % re.escape(''.join(chars))
return partial(re.compile(expr).sub, replace)

remove_junk = mk_replacer('#*(),=?')

>>> remove_junk('#te*s(t) re,m=o?ve')
'test remove'
Аноним Пнд 05 Май 2014 13:43:06  #264 №350652 
1399282986225.gif

>>350587
Типа в две строчки:

def remove(string, chars_to_remove):
....return ''.join([c for c in string if c not in chars_to_remove])

Похоже на >>350595, но без лямбд.

Или так:
def remove(string, chars_to_remove):
..out = ''
....for c in string:
......if c not in chars_to_remove:
........out += c
..return out

Аноним Пнд 05 Май 2014 13:51:09  #265 №350656 

>>350595
Алсо, зачем представлять строку как лист, а затем объединять. Можно ведь так:
return filter(lambda x: x not in chars, self)
Или это такая толстая шутка?

Аноним Пнд 05 Май 2014 13:56:57  #266 №350660 

Аноны, посоветуйте хорошо написанные проекты на сабже, исходники которых можно найти где-нибудь на гитхабе. Хочу научиться читать чужой код и перенять всякие кошерные паттерны.

Аноним Пнд 05 Май 2014 14:10:43  #267 №350670 

>>350619
Ещё это можно легко обобщить до работы со строками:

from functools import partial
import re

def mk_replacer(chars, *subs, replace=''):
subs = subs + (chars,) if subs else chars
expr = '(?:%s)+' % '|'.join(map(re.escape, subs))
return partial(re.compile(expr).sub, replace)
Аноним Пнд 05 Май 2014 16:43:26  #268 №350726 

>>350656
>>> def remove(self,chars):
... return filter(lambda x: x not in chars, self)
...
>>> remove("asdf","a")
<filter object at 0x7fd38b0be510>
>>>

Аноним Пнд 05 Май 2014 19:04:26  #269 №350772 

>>350726
у тебя какой-то неправильный питон
http://www.codeskulptor.org/#user31_VSTW3IpAL0_0.py

Аноним Пнд 05 Май 2014 19:15:30  #270 №350775 

>>350772
Просто он не некрофил.
https://docs.python.org/3.0/whatsnew/3.0.html#views-and-iterators-instead-of-lists

Аноним Втр 06 Май 2014 11:09:05  #271 №350979 

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


from vtoroy import *

dwach = 0


def nomadota1():
print(dwach)
return

nomadota2()
nomadota1()

Во втором:

from perviy import *

def nomadota2():
dwach = 20


При выполнении первого модуля, nomadota1 печатает 0, хотя dwach был изменен на 20 в nomadota2.
Как так?
Аноним Втр 06 Май 2014 11:51:50  #272 №350991 

>>350979
https://docs.python.org/3.4/faq/programming.html?highlight=namespace#what-are-the-rules-for-local-and-global-variables-in-python
https://docs.python.org/3.4/tutorial/classes.html#scopes-and-namespaces-example

Аноним Втр 06 Май 2014 12:10:25  #273 №350999 

>>350991
Ок, добавил глобал dwach. Ничего не изменилось.

В первом:


from vtoroy import *

dwach = 0


def nomadota1():
print(dwach)
return

nomadota2()
nomadota1()

Во втором:

from perviy import *

def nomadota2():
global dwach
dwach = 20
return

Аноним Втр 06 Май 2014 13:10:29  #274 №351010 

>>350999
http://stackoverflow.com/questions/744373/circular-or-cyclic-imports-in-python
http://stackoverflow.com/questions/6351805/cyclic-module-dependencies-and-relative-imports-in-python
http://effbot.org/zone/import-confusion.htm

> При выполнении первого модуля
начинает выполняться perviy модуль.
* from vtoroy import ж
начинает выполняться vtoroy модуль.
** from perviy import ж
Хотя perviy модуль ещё не закончил выполняться, его имя уже попало в кеш, поэтому второй раз он не выполняется.
А так как он только начал выполняться - он ещё пустой и из него ничего не импортируется.
** def nomadota2(): global dwach; dwach = 20
Определяет замыкание nomadota2, в модулe vtoroy.
** vtoroy модуль закончил выполняться
* dwach = 0
Определяет имя dwach, со значением 0, в модуле perviy.
* def nomadota1(): print(dwach)
* nomadota2()
Вызывается замыкание nomadota2, из модуля vtoroy
** global dwach
Так как nomadota2 определена в модуле vtoroy, global ищет имя dwach в нём.
** dwach = 20
Так как имя dwach, в модуле vtoroy, не определено - оно создаётся со значением 20.
** замыкание nomadota2 закончило выполняться
* nomadota1()
Вызывается функция nomadota1
** print(dwach)
Имя dwach, в nomadota1, не определено. Поэтому оно ищется на один уровень выше, там где nomadota1 была определена - в модуле perviy. Там имя dwach определено со значением 0 - print печатает ноль.
** функция nomadota1 закончила выполняться
* perviy модуль закончил выполняться

Аноним Срд 07 Май 2014 15:12:42  #275 №351348 

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

>To fix this, either refactor your program to avoid circular imports (moving stuff to a separate module often helps), or move the imports to the end of the module (in this case, if you move import Y to the end of module X, everything will work just fine).

Переменную dwach выносил в другой модуль - то же самое. Вызов from vtoroy import * переносил в конец - не помогает.

>Вызывается замыкание nomadota2, из модуля vtoroy
** global dwach
Так как nomadota2 определена в модуле vtoroy, global ищет имя dwach в нём.
** dwach = 20
Так как имя dwach, в модуле vtoroy, не определено - оно создаётся со значением 20.

Но если я определю from perviy import nomadota, он все равно ее не увидит?

Аноним Срд 07 Май 2014 15:57:30  #276 №351361 

>>334669
Анчоусы, какой редактор понимает разницу между #!/usr/bin/env python | pypy и #!/usr/bin/env python2 | pypy2 (на примере арча)? Просто заебало в Geany постоянно менять интерпретаторы. Да, python2 нинужен. Слышал.

Аноним Срд 07 Май 2014 20:32:44  #277 №351462 

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

Аноним Срд 07 Май 2014 22:27:12  #278 №351502 

>>351462
потоки в питон не завезли?
Task.Run(()=>
{ ...
for(var i=0;i<99999999999999;i++)
{
EbaText = i;
}
}
)

Аноним Срд 07 Май 2014 22:53:23  #279 №351511 

>>351462
Использовать yield?

Аноним Срд 07 Май 2014 23:20:39  #280 №351515 

>>351462
Если ты про гуй, то надо запустить новый поток, в нем делать этот цикл, а значение переменной передавать через сигналы обратно в основной поток, и там уже делать label.setText(str(i)).

Аноним Срд 07 Май 2014 23:39:45  #281 №351519 

>>351348
> не понял как избежать этой ситуации.
Обращайся к переменной явно:

import vtoroy
vtoroy.dwach = 40
Аноним Чтв 08 Май 2014 09:51:21  #282 №351573 

>>351519
Ебать я лох. Как все просто-то. Спасибо, анон.

Аноним Чтв 08 Май 2014 15:06:31  #283 №351637 
1399547191063.png

Питон це Україна!

Аноним Чтв 08 Май 2014 15:56:36  #284 №351641 
1399550196982.png

>>351637
Вот это це Україна!

Аноним Пнд 12 Май 2014 12:27:46  #285 №352588 

Новенький врывается в тред!
Я совсем совсем нуб. Просто хочу научиться кодить для собственного развития. Выбрал питон так как обещали его простоту и доступность. Пока посмотрел пару начальных курсов. Вроде не уберсложно но возникают вопросы на которые я не знаю где найти ответы. По этому буду спрашивать здесь. Тем более специализированный тред есть. Еще раз напомню в кодинге я полный ноль.
И так первая ситуация.
Я хочу что бы цикл запускался через равные промежутки времени определенное кол-во раз. По завершению каждой итерации не знаю как правильно все называется пока но надеюсь понятно пользователь должен ввести данные. В зависимости от того что он ввел повторение цикла прекращается или продолжается до набора установленного кол ва раз.
Например:
Требуется ввести сколько будет 2+2
Если ввели 4 то программа завершается и выводит "ты у мамы молодец"
Если ответ введен не правильно или в течении 30 секунд ответ не был введен то требование ввести сколько будет 2+2 повторяется и так 3 раза. Если по истечению третьей итерации ответ так и не получен возвращается "Ты тупой уебок"

Как я себе это вижу:
def функию
input вопрос
if вопрос равен 4 то
print похвала
else
print констатация тупости
Примерно так. Но проблема в том что подобный код будет спрашивать только один раз. Как сделать что бы это было n раз при чем циклы повторялись через определенное кол во времени? Я так понимаю нужно куда то всобачить накопитель который будет считать циклы и будет что то типа.
n=0
while n<=3 повторить цикл
Но каким образом это присобачить к предыдущему коду я пока не понимаю. Но это полбеды. С этим я как нибудь могу разобраться. Есть подозрение что это нужно сделать через другую фунцию. Типа

def опросник
n=0
while n<=3 выполнить фунцию с вводом данных

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

Как таймер то присобачить? Совсем без понятия.

Аноним Пнд 12 Май 2014 13:05:53  #286 №352592 

>>352588
Создаешь строку, в цикле проверяешь нажатые клавиши, и если это Enter, то юзер ввёл ответ, проверяешь строку на то, соответствует ли она тому, что ты ждешь. Если не энтер, то приделываешь этот символ к строке и крутишься дальше. На каждой итерации проверяешь текущее время, если оно больше чем время_перед_началом_цикла + 30 секунд, то ругаешься и уменьшаешь количество проходов на 1. Если количество проходов стало равно нулю, то выходишь из цикла.
Хотя, возможно, в пистоне есть какая-нибудь функция для тебя, которая будет сигнализировать раз в 30 секунд.

Аноним Пнд 12 Май 2014 13:33:11  #287 №352596 

>>352592
Открой для себя raw_imput() и time.sleep

Аноним Пнд 12 Май 2014 15:18:20  #288 №352622 

>>352588
Для твоего таймера нужно либо завести отдельный поток который через 30 секунд прервет основной поток в котором идет ожидание пользовательского ввода, либо нужен асинхронный ввод вывод как в нодежс.
Можно сделать проще но по другому: подождать пока пользователь введет ответ, и если прошло больше 30 секунд то ответ не засчитывать.

Аноним Пнд 12 Май 2014 15:20:50  #289 №352624 

>>352596 Смотри пока у меня получилась следующая поебень.

"def загадка (n):
ответ=input(n)
попытка=0
while (int(ответ)!=4 or попытка>4):
попытка=попытка+1
print ('неправильно')
ответ=input(n)
return 'правильно'
"
Она долбит вопрос по кругу пока не получит правильный ответ. Если в IDLE вбить "загадка ('сколько будет 2+2?'". Поясни дегенерату что я не так сделал со счетчиком? У меня он просто перестает реагировать на правильный ответ после 4й итерации. Почему так получается я понимаю. Как его заставить выйти из цикла после 4й итерации? И если можно чуть поподробней с time.sleep. Как с помощью него отложить действие в цикле я понял. А как задать условие проверки?

Аноним Пнд 12 Май 2014 15:27:37  #290 №352628 

>>352624 даже немного уточню чего я хочу. После 4й попытки он должен сказать "ты хуй" и на этом закончить с вопросами. Насколько я понимаю для этого нужно использовать if внутри цикла while. Так или нет?

Аноним Пнд 12 Май 2014 15:29:37  #291 №352630 

>>352624
У тебя условие в цикле неправильное, надо

int(ответ) != 4 and попытка <= 4
. Тогда выйдет из цикла, если будет правильный ответ либо превышено кол-во попыток. В конце функции просто проверь, какое условие сработало.
Аноним Пнд 12 Май 2014 15:32:27  #292 №352632 

>>352630 о спасибо огромное! В синтаксисе еще особо не разобрался всего второй день как занялся подобным.

Аноним Пнд 12 Май 2014 15:45:52  #293 №352639 

>>352630 По итогам получилась следующая фигня. Вроде как даже работает как задумано.


def загадка (n):
ответ=input(n)
попытка=0
while (int(ответ)!=4 and попытка<=3):
попытка=попытка+1
print ('неправильно')
ответ=input(n)
if попытка>2:
print('ты глуп')
else:
return 'правильно'



Остался вопрос с таймером. Что то никак не врублюсь как его приделать. Идеально было бы если бы следующий круг цикла выполнялся даже если ответ не введен.
Аноним Пнд 12 Май 2014 16:04:20  #294 №352642 

>>352639
>Остался вопрос с таймером
>>352622

Аноним Пнд 12 Май 2014 16:06:03  #295 №352644 

>>352596
Если ты про то, что нужно вызывать sleep(01) в цикле, то хуй знает, зачем ты это спизданул. Если нет, то если пользователь введёт ответ через секунду после появления вопроса, не придётся ли ему ждать ещё 29 секунд, пока твой слип() вернётся? То есть, опять же, непонятно, зачем ты это спизданул.

Аноним Пнд 12 Май 2014 16:24:26  #296 №352648 

>>352642 прости меня я глуп и все равно не понимаю. Все что я придумал это таймер


время=0
while (время<=5):
время=время+1
time.sleep(1)
print ('времени осталось', 6-время)

который будет отсчитывать условные несколько секунд. И то мне кажется что можно было сделать проще. Но даже куда и как запихнуть этот таймер я не понимаю.
Аноним Пнд 12 Май 2014 16:32:46  #297 №352649 

>>352644
вопрос не читай
@
сразу отвечай

Сходу пришло в голову что-то вроде этого:
http://www.codeskulptor.org/#user31_0dokOp14Dp_1.py

А по факту >>352622 кун прав. Нужно попробовать сделать треды.

Аноним Пнд 12 Май 2014 17:25:49  #298 №352654 

>>352648
Ну потоки ты пока не осилишь, так что сделай просто проверку времени после ответа юзера.


import time

def загадка (n):
ответ=input(n)
попытка=0
start = time.clock()
while (int(ответ)!=4 and попытка<=3):
попытка=попытка+1
print ('неправильно')
ответ=input(n)
elapsed = time.clock() - start
if elapsed > 30:
return 'time out'
if попытка>2:
print('ты глуп')
else:
return 'правильно'

Аноним Пнд 12 Май 2014 17:49:40  #299 №352662 

>>352654 спасибо это то чего я желал.

Аноним Пнд 12 Май 2014 18:02:59  #300 №352664 

>>352648
Хуита это, а не таймер. У тебя будет затрачиваться 0.0033 на сравнение while (time<=5), ещё 0.0022 на time+=1, ещё 0.0011 на print. В итоге через сутки у тебя будет нехуёвая такая погрешность.

Аноним Пнд 12 Май 2014 18:07:25  #301 №352668 

Может кто-нибудь покажет как реализовать эту хуиту с тредами? Буду благодарен.
>>352649 -кун

Аноним Пнд 12 Май 2014 18:51:48  #302 №352677 

>>352668
Попробовал сделать треды. Оказалось что на питоне невозможно прервать тред - есть только возможность бросить KeyboardInterrupt в главном треде, но даже это не прерывает пользовательский ввод - исключение бросается уже после ввода.
Пишут что на прыщах можно сделать через сигналы или select.
Таким образом под шиндой можно сделать только через эмуляцию ввода строки как вот этот >>352592 предложил.

Аноним Пнд 12 Май 2014 18:52:19  #303 №352678 

>>352654
> потоки ты пока не осилишь
Для этой задачи, осиливать не так уж и много.

from _thread import interrupt_main
from itertools import islice
from threading import Timer

def _timeout():
print('Timeout!')
interrupt_main

def спроси(вопрос, timeout=15):
w = Timer(timeout, _timeout)
w.start()
try:
r = input(вопрос)
w.cancel()

except KeyboardInterrupt:
r = None

return r

def загадка(вопрос, правельный_ответ, попытки=3, время=15):
задай_вопрос = lambda: спроси(вопрос, timeout=время)

for ответ in islice(iter(задай_вопрос, 'сдаюсь!'), попытки):
if ответ == правельный_ответ:
print('правильно')
return True

print('неправильно')

print('ты глуп')
return False
Аноним Пнд 12 Май 2014 18:59:10  #304 №352679 

>>352678
ну и конечно же 'w.cancel()', на всякий случай, сразу перед 'return', а не в блоке 'try:'
быстрофикс

Аноним Пнд 12 Май 2014 18:59:25  #305 №352680 

>>352678
Вот я почти такую же хуйню накатал, и понял что оно не работает.
>>352677

Аноним Пнд 12 Май 2014 19:05:20  #306 №352681 
1399907120187.png

>>352680
УМВР.
Или что ты подразумеваешь под "работает"?

Аноним Пнд 12 Май 2014 20:16:39  #307 №352695 
1399911399164.png

>>352678
>ввод-вывод с таймаутом
>потоки
Что за хуйню я прочитал.

Аноним Пнд 12 Май 2014 20:31:09  #308 №352698 

>>352695
> Что за хуйню я прочитал.
Добро пожаловать в разработку под Вин Ды.
Для порядка, тут нужно ещё msvcrt упомянуть.

Аноним Пнд 12 Май 2014 20:37:33  #309 №352699 
1399912653886.png

>>352698
Для порядка можно упомянуть что такое решение не будет работать, если хочется хуйни вроде навигации стрелочками, истории ответов и прочего readline'а. Нужна отдельная либа.

Аноним Пнд 12 Май 2014 22:06:01  #310 №352727 

>>352681>>352678
У меня под вынь7 процесс бесконечно ждет ввод юзера, а потом уже решает был таймаут или нет.

Аноним Пнд 12 Май 2014 22:58:16  #311 №352737 

>>352727
У меня, под линь3.12, пишет Timeout и ждёт нажатия enter.

Аноним Втр 13 Май 2014 13:20:56  #312 №352846 

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

Например таблица умножения


i = 0
while (i <= 9):
j = 0
i=i+1
while (j <= 9):
j = j + 1
результат = i * j
print (результат,'=',i,'*',j)

у меня получилось что то такое. Но оно делает полный круг вложенного цикла то есть поднимает j до 10 потом делает первый цикл поднимая i до 10. Как сделать так что бы циклы выполнялись по очереди?
Аноним Втр 13 Май 2014 13:22:50  #313 №352847 

>>352846 вопрос отменяется меня посетило озарение лол.

Аноним Вск 18 Май 2014 20:45:13  #314 №354118 

Как в пайтоне войти во внутренний цикл во время чтения файла, и потом выйти из него при условии?


fobj = open(filename, 'r')
for line in fobj:
m = re.find('pr', line)
if m:
тут должен быть цикл, который продолжит чтение:
r = re.find('2ch', линия)
count += 1
if если опять встречается строка, подобная m = break
Аноним Вск 18 Май 2014 20:47:05  #315 №354119 

>>354118
грубо говоря, мне нужно работать со строками, которым находятся между строками-маркерами.

Аноним Вск 18 Май 2014 21:06:32  #316 №354122 

>>354119
Вводи флаг и внутри цикла выполняй отдельную ветку, если он активен.

Аноним Вск 18 Май 2014 21:14:25  #317 №354123 

>>354122
А такие вещи


for line in fobj:
for line in fobj:
чтобы line продолжилась из первого цикла?

никак не прокатывают?

Короче, хуёво я тут знаю про итерабл.
Аноним Вск 18 Май 2014 21:20:56  #318 №354124 

>>354119

from itertools import dropwhile, takewhile
from functolls import wraps

def fnot(f):
@wraps(f)
def _f(*args, **kw):
return not f(*args, **kw)
return _f

def строки_между(начало, конец, итератор):
не_начало = fnot(начало)
не_конец = fnot(конец)

while True:
итератор = dropwhile(не_начало, итератор)
строки = list(takewhile(не_конец, итератор))

if строки:
yield строки

else:
return

for строки in строки_между(re.compile('маркер начала').find,
re.compile('маркер конца').find,
open(filename, 'r')
):
# и тут работаешь со строками ...
pass
Аноним Вск 18 Май 2014 21:37:39  #319 №354130 

>>354124
Вернее так:

from itertools import dropwhile, takewhile
from functools import wraps

def fnot(f):
@wraps(f)
def _f(*args, **kw):
return not f(*args, **kw)
return _f

def строки_между(начало, конец, итератор):
не_начало = fnot(начало)
не_конец = fnot(конец)

while True:
итератор = dropwhile(не_начало, итератор)
next(итератор) # drop marker
yield takewhile(не_конец, итератор)

for строки in строки_между(re.compile('маркер начала').find,
re.compile('маркер конца').find,
open(filename, 'r')
):
# и тут работаешь со строками ...
pass

быстрофикс
Аноним Вск 18 Май 2014 21:39:13  #320 №354131 

>>354124
спасибо, но я пока с трудом понимаю происходящее. Буду дальше читать.

Аноним Вск 18 Май 2014 21:49:41  #321 №354134 

>>354131
> с трудом понимаю происходящее
Ничего сложного:
next/yield - https://docs.python.org/3/glossary.html#term-generator
takewhile/dropwhile - https://docs.python.org/3/library/itertools.html?#itertools.dropwhile
re.compile - https://docs.python.org/3/library/re.html#re.compile
wraps (тут для красоты) - https://docs.python.org/3/library/functools.html?#functools.wraps

Аноним Вск 18 Май 2014 21:52:48  #322 №354135 

>>354134
я понимаю, но сейчас осваиваю пайтон после С++ и перестроить мозг пока трудновато. Ну и указатели мерещатся в *args, **kwargs.

Аноним Втр 20 Май 2014 11:38:09  #323 №354452 
1400571489509.jpg

Антон, не могу просто в треды и локи.

набросай пример, как максимально четыре треда складывают два аргумента и пушут в один файл.

полчаса-как-питонист Втр 20 Май 2014 14:16:03  #324 №354489 
1400580963215.png

>>354452
немного обрисую ситуацию.

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

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

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

Аноним Втр 20 Май 2014 14:36:47  #325 №354492 

>>354489
Ну ты и проблему придумал. Если бы нужно просто ограничить число потоков до макс. 4, то проблема решается семафором. Но если нужно сделать максимум 4 в секунду, тут я даже хз как подступиться. Как тебе идея сделать счетчик, и каждые 250 мс увеличивать его на 1, если он не превышает 4? И запрещать делать запросы, если счетчик = 0.

Аноним Втр 20 Май 2014 18:07:21  #326 №354559 

Кароч, есть два класса:


class Hui(object):
def init(self, pizda_object):
self.pizda_object = pizda_object

class Pizda(object):
def init(self, hui_object):
self.hui_object = hui_object

Как мне инициализировать экземпляры этих классов, если они, блядь, ссылаются друг на друга?
Аноним Втр 20 Май 2014 18:08:22  #327 №354560 

>>354559
Да, я сломал эту сраную разметку питонокодом.

sageАноним Втр 20 Май 2014 18:14:36  #328 №354567 

>>354559
NEEQAQUE

Аноним Втр 20 Май 2014 18:18:30  #329 №354570 

>>354567
Пиздец. Суть в том, что, на самом деле, я наследую оба класса от суперкласса Dzhigurda из чужого модуля dzhigurda. И в нем инит перегружен так, что должен принимать ссылку на объект класса, наследующего Джигурде.
Ебать мой хуй.

Аноним Втр 20 Май 2014 18:20:34  #330 №354572 

>>354570
Точнее, инит должен принимать ссылку на объект не наследника Джигурды, по задумке автора модуля.
Но мне нужно, чтобы он принимал именно такую ссылку.

Аноним Втр 20 Май 2014 19:08:11  #331 №354597 

>>354489
Можно вот так сделать:

from multiprocessing.pool import ThreadPool
from time import sleep

def throttled(rate, iterable):
delay = 1/rate
for i in iterable:
yield i
sleep(delay)

for результат in ThreadPool().imap_unordered(обработчик, throttled(4, запросы)):
# ...
pass

Аноним Втр 20 Май 2014 19:14:54  #332 №354604 

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

Аноним Втр 20 Май 2014 19:21:34  #333 №354610 

>>354604
> по 1 запросу в 250 миллисекунд
> 4 за секунду
А чего ещё не хватает?

Аноним Втр 20 Май 2014 19:37:58  #334 №354617 

>>354489
>потоки
>I/O
Опять? https://docs.python.org/3/library/asyncio.html

Аноним Втр 20 Май 2014 20:41:08  #335 №354635 

>>354489
https://gist.github.com/anonymous/6d9f05a0cee3c4af3dda

Аноним Срд 21 Май 2014 19:40:28  #336 №354953 

Посоны, алярма!

Пишу приложение в Django. Есть класс:

from django.contrib.auth.models import AbstractUser

class ForumUser(AbstractUser):
avatar = models.ImageField(upload_to='avatars')

Если изначально таблица создаётся при помощи syncdb, то всё заебись. Если же при помощи South выполняю миграцию, то пароль юзера записывается в какой-то абсолютно непонятный для Django хэш и, как следствие, не могу залогиниться в админку. Суперюзера создаю с помощью createsuperuser. Помогите, котаны!

Аноним Вск 25 Май 2014 12:13:29  #337 №355837 

Хочу отправлять сообщения вконтактике используя mechanize
Вот мой код:
http://codepad.org/9zrfhXhL
Проблема в том, что все логинется, выполняется без ошибок, но сообщение нихуя не отправляется. Даже не знаю в чем тут проблема.

Аноним Вск 25 Май 2014 12:28:10  #338 №355841 

>>355837
>Даже не знаю в чем тут проблема.
В коде.

Аноним Вск 25 Май 2014 12:33:46  #339 №355844 

>>355841
Код спизжен с хабра.
http://habrahabr.ru/post/216001/

Аноним Вск 25 Май 2014 12:48:21  #340 №355847 

>>355844
В генетическом.

Аноним Вск 25 Май 2014 12:48:43  #341 №355848 

>>355837
Реквест отменяется. Дело было не в коде, а в настройках параши (она требовала номер телефона перед отправкой сообщения)

Аноним Вск 25 Май 2014 23:52:42  #342 №356077 

>>342639
>Сложный ли для изучения фреймворк?
Ни капли.
>Что надо предварительно знать?
Ничего, лол. Я даже Python не знал, но уже умел писать на нём. SRSLY

Аноним Пнд 26 Май 2014 09:52:04  #343 №356148 

>>355847
Петросяна?

Аноним Срд 28 Май 2014 17:56:28  #344 №357107 
1401285388260.jpg

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

Аноним Срд 28 Май 2014 18:18:09  #345 №357117 

>>357107
While True - бесконечный цикл
break - выход из цикла
Если item == false, то выполнится условие if not item, т.к. тело if выполняется, если условие истинно, а не ложь == истине

Аноним Срд 28 Май 2014 18:32:11  #346 №357122 

Какие есть библиотеки для автоматизации тестирования GUI для третьего питона? У меня гуглится только pywinauto но он для второго

Аноним Срд 28 Май 2014 20:42:39  #347 №357166 

>>357122
rational rose

Аноним Срд 28 Май 2014 22:03:01  #348 №357183 

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

Аноним Срд 28 Май 2014 22:18:27  #349 №357191 

>>357183
райсовский курс на курсере. там тебя научат игрушки простенькие делать.

Аноним Срд 28 Май 2014 22:58:50  #350 №357198 

>>357191
спс покурю. Вообще выкладывают ли лабы/методички из универов по Питону в рунете ?

Аноним Чтв 29 Май 2014 00:33:17  #351 №357235 

>>357166
А ты меня не траллируешь? То что я видел по rational rose - это джава и бейсик.
Да и вообще, мне не нужно отдельное ide для написания скриптов, я вполне обойдусь каким нибудь нотепад++, именно библиотек нет?

Аноним Суб 31 Май 2014 14:26:33  #352 №357997 

Как настроить Python Launcher for Windows (Console) чтобы он не закрывался после выполнения всего что написано? Может что-то в самом коде нужно писать? Я же заебусь так запускать каждый раз

Аноним Суб 31 Май 2014 14:33:07  #353 №358000 

>>357997
Все, понял сам.

sageАноним Суб 31 Май 2014 19:17:59  #354 №358069 

>>357997
>>358000
Ты дурак?

Аноним Суб 31 Май 2014 21:04:23  #355 №358100 

>>357997
>
Все, понял сам.
input()

Аноним Суб 31 Май 2014 21:07:19  #356 №358102 

>>357997
У Лутца все ВПЕРДЕ написано, так что прежде чем писать - пролистай на пару страниц.

Аноним Вск 01 Июн 2014 19:35:38  #357 №358367 
1401636938250.png

Делал тут сегодня домашку по алгоритмом, и столкнулся с такой проблемой.
Я представил граф в виде вложенного листа:
gr = [ ([1], [2, 3]),
([2], [1, 3, 4]),
([3], [1, 2, 4]),
([4], [2, 3])
]
Перед каждой новой итерацией алгоритма, нужно делать копию графа, чтобы избегать мутаций. Как оказалось list(graph) в таких случаях не помогает. Пришлось изворачиваться и делать вот такую хуйню:
graph_copy = [(list(v), list(m)) for (v, m) in graph]
Есть ли какой-то более элегантный способ сделать копию многомерного листа? А то я даже боюсь представить, что будет в случае более сложной структуры вложенности, чем у меня.

Аноним Вск 01 Июн 2014 19:46:27  #358 №358369 

>>358367
Делай нормальный класс и не выёбывайся.

Аноним Пнд 02 Июн 2014 01:05:13  #359 №358465 

>>358367
https://docs.python.org/3/library/copy.html?highlight=copy#module-copy

Аноним Пнд 02 Июн 2014 10:46:50  #360 №358516 

>>358465
Спасибо.
copy.deepcopy(x) - как раз то, что нужно!

Аноним Пнд 02 Июн 2014 15:06:56  #361 №358561 

>>358516
>deepcopy
>как раз то, что нужно!
Скорее всего нет, в подавляющем большинстве случаев создание копии мутабельных данных — признак "неправильного" алгоритма.

Аноним Пнд 02 Июн 2014 16:07:54  #362 №358572 

>>358367
Рекомендую представлять граф словарем.

Аноним Пнд 02 Июн 2014 19:27:33  #363 №358623 

>>358572
Смотря для чего:
https://en.wikipedia.org/wiki/Graph_%28data_structure%29#Representations

Аноним Пнд 02 Июн 2014 19:32:29  #364 №358625 
1401723149811.jpg

Курсы кодакадеми по Питону совсем говно и трата времени, или стоит пройти? Сейчас начал читать Лутца.



ньюфаг

Аноним Пнд 02 Июн 2014 23:21:27  #365 №358680 

>>358625
Лутц слишком подробно пишет.
Лучше прочитай какое-нибудь введение страниц на 150, и начинай писать. А уже во время писания, читай нужные главы из Лутца, ну и официальную документацию.

Аноним Втр 03 Июн 2014 03:57:21  #366 №358758 

>>358680
А что писать-то? Борду 5000 запросов/сек?

Аноним Втр 03 Июн 2014 07:16:34  #367 №358770 
1401765394014.jpg

>>358758
Пиши борду внутри борды.

Аноним Втр 03 Июн 2014 12:47:19  #368 №358799 

>>358770>>358758
Я уже понял, что раздел из говна и населен всякими чсвшными кретинами, с опытом в 5 лет.
Ясно, идите нахуй с такими ответами.

Аноним Втр 03 Июн 2014 14:21:43  #369 №358810 

>>358799
da ti je uebok bez zadach

Аноним Втр 03 Июн 2014 17:05:26  #370 №358843 

>>358758
Просто на самом деле никто проекттвоеймечты за тебя не придумает. Начинай писать просто что-нибудь полезное и приятное для себя, выбирай сам. оно с неба не упадет.

Аноним Срд 04 Июн 2014 04:44:29  #371 №359001 
1401842669037.jpg

каким модулем обмазаться, чтоб читать exif под третий питон? (ибо их дохуя в гугле)

Аноним Срд 04 Июн 2014 05:57:50  #372 №359004 

>>359001
А как из нескольких вилок ты выбираешь ту, которой пожрешь? Просто возьми один из них.

Аноним Срд 04 Июн 2014 08:20:15  #373 №359013 

>>359004

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

Аноним Срд 04 Июн 2014 15:46:47  #374 №359092 

Допустим, есть некая строка на сервере. Эту строку скачиваем в клиент для редактирования.
И потом нужно отправить на сервер изменения, не отправляя всю строку.
В какую сторону копать? Мне кажется, это весьма типовая задача, но не приходит в голову, по какому запросу искать ответ на stackoverflow.

Аноним Срд 04 Июн 2014 17:42:00  #375 №359127 

>>359092
Нашел подходящий модуль в стандартной библиотеке - difflib.

Аноним Срд 04 Июн 2014 18:39:24  #376 №359142 

котаны!

баловался кто айпитоном?

Аноним Срд 04 Июн 2014 20:08:00  #377 №359162 

Анон, мне вот надо разобраться с парсингом строк.

есть ngnix Лог со строками вида

178.137.91.215 - - [21/Feb/2014:06:44:53 +0000] "GET /work/homepages-maths-year-6/ HTTP/1.0" \
200 10427 "178.21.22.22:7070" 0.123

В общем хочу сделать так, чтобы выдавали, допустим, только все строки где время "0.123" было бы больше 0.100 или допустим статус был бы не 200

Я начал гуглить, но мне выдало огромное решение с матпакетом и какой-то либой в виде import apachelog panda и numpy - вообще не понятно.


Есть ли какое либо более просто решение, можно пример, пожалуйста.

Аноним Срд 04 Июн 2014 20:43:56  #378 №359177 

>>359162
простое решение - это бери grep и sort, и даже питон тут не нужен

Аноним Чтв 05 Июн 2014 00:36:07  #379 №359243 

>>359162

from shlex import split
src, _, _, date, gmt_offset, req, rcode, wtf, dst, time = split(
'''178.137.91.215 - - [21/Feb/2014:06:44:53 +0000] "GET /work/homepages-maths-year-6/ HTTP/1.0" 200 10427 "178.21.22.22:7070" 0.123'''
)
Аноним Чтв 05 Июн 2014 16:08:55  #380 №359385 

>>359243
Мне кажется тут не сходится по разделениям.

Аноним Птн 06 Июн 2014 14:18:55  #381 №359707 

>>359243
А, нет. Все ок.
Разобрался как она работает и читает. Вот теперь я пытаюсь разобраться как сделать чтобы она с файла считывала это все.

Говно в виде

from shlex import split
log = open("file.txt", "r")
src, _, _, date, gmt_offset, req, rcode, wtf, dst, time = split(log)
print rcode

Понятное дело не работает. Как мне импортировать тот же Txt где на каждой строке будет как раз такой отчет, как я понял надо через цикл гнать, после того как прочту файл?
Аноним Птн 06 Июн 2014 20:18:06  #382 №359762 

>>359707

from collections import namedtuple
from operator import itemgetter
from shlex import split

class Report(
namedtuple('_Record', 'src date gmt_offset req rcode wtf dst time')
):
_imask = itemgetter(0, 3, 4, 5, 6, 7, 8, 9)

def new(cls, log):
record = list(cls._imask(split(log)))
record[1] = record[1].lstrip('[')
record[2] = record[2].rstrip(']')
return super().new(cls, *record)

reports = map(Report, open('file.txt'))

print(list(
filter(lambda r: r.rcode == '200' and float(r.time) >= 0.1, reports)
))
Аноним Птн 06 Июн 2014 20:20:06  #383 №359763 

>>359762
конечно же, абу спиздил все дандерскоры, но ты понял

Аноним Птн 06 Июн 2014 22:34:19  #384 №359802 
1402079659075.png

Пикрелетйед годнота?

Аноним Птн 06 Июн 2014 23:07:32  #385 №359812 

>>359802
Скачал, но читать пока не начал. Как начну — отпишусь.

Аноним Пнд 09 Июн 2014 05:50:08  #386 №360302 

>>359802
В Дарэмском университете на одном из модулей первого курса компьютерной науки советуют прочесть эту книгу. Годная вещь, описывающая разные алгоритмы и всё с ними связаное.

Аноним Пнд 09 Июн 2014 15:15:32  #387 №360406 

>>359812
Где ты ее нашел?

Аноним Пнд 09 Июн 2014 17:48:45  #388 №360450 

>>360406
Не помню, где-то в гугле. Хочешь, расшарю?

Аноним Пнд 09 Июн 2014 20:54:35  #389 №360493 

>>360302
В райсовском питонокурсе на курсере второй курс из серии по этой книге рассказывают?

Аноним Втр 10 Июн 2014 07:52:58  #390 №360534 

что читать чтобы быстро понять самую суть языка?
dive into python или сейчас есть что-то более можное?

Аноним Втр 10 Июн 2014 07:54:32  #391 №360535 

>>360534
> можное
модное
slfx

Аноним Втр 10 Июн 2014 09:14:02  #392 №360541 

>>360450
Ты еще спрашиваешь? Конечно.

Аноним Втр 10 Июн 2014 09:22:43  #393 №360542 

>>360541
google: Goodrich Data Structures & Algorithms in python pdf
первая ссылка

Аноним Втр 10 Июн 2014 12:35:35  #394 №360561 

>>360542
Я слепой. Спасибо.
Не думал, что гугл выдаст ссылку на варез.

Аноним Втр 10 Июн 2014 20:30:54  #395 №360686 

>>359802
Дык райсовские курсы Principles of Computing и Algorithmic Thinking по этой книге или нет?

Аноним Втр 10 Июн 2014 22:50:54  #396 №360754 

>>334669
Анон, есть для питона какие-нибудь либы, предоставляющие интерфейс к DOM, такой же, как в ЖС, или похожий? Хочется, чтобы было как-то так:


document = DOMDocument()
document.set_document(open('file.html'))
el = document.getElementById('lolka')
el.innerHTML = "Sasi hui"
document.save_changes()

Вот просто парсеров хтмля всяческих дохуя, а чего-то подобного я не нашел.
Аноним Срд 11 Июн 2014 00:47:53  #397 №360779 

>>360754
Soup

Аноним Срд 11 Июн 2014 09:47:11  #398 №360813 

Сап, питонач. Послушай унылую историю моей унылой жизни. Мне 25. Образование у меня связано с автоматикой. Работаю я погромистом-пусконаладчиком контроллеров. Это одноклеточное программирование мышкой. Деградирую и просираю остатки потенциала. Заинтересовался питоном полгода назад. Более-менее освоился в базе. Заинтересовало PyQt, just for fun пишу сейчас виджеты, которые тащат с XML погоду и курсы валют, например. Глянул вакансии и охуел с требований: помимо питона нужны плюсы, ПХП и стандартный веб-набор. И 3 года опыта, лол. У меня вообще ноль шансов? Где питонщики начинают карьеру?

Аноним Срд 11 Июн 2014 13:22:22  #399 №360848 

>>360813
В ссаном подвале, провонявшем тухлой крысятиной, а ты думал?

Аноним Срд 11 Июн 2014 14:41:58  #400 №360875 

>>360813
Разве что джанго ВЕДОМЫМ.

Аноним Срд 11 Июн 2014 20:44:29  #401 №360961 

>>360813
Ты на что вакансии-то смотрел?

Аноним Срд 11 Июн 2014 22:06:43  #402 №360969 

>>360961
Очевидно, релевантные запросу "python" на hh и indeed.

Аноним Срд 11 Июн 2014 23:23:34  #403 №361002 

Гвидоны, что лучше: упороться Торнадо, или сначала изучить asyncio?

Аноним Срд 11 Июн 2014 23:39:23  #404 №361007 

>>361002
pynum

Аноним Чтв 12 Июн 2014 00:58:44  #405 №361021 

>>360969
На какой уровень? На junior надеюсь?

Аноним Птн 13 Июн 2014 02:49:55  #406 №361198 

АНОН хелп, мой питон не хочет команды выполнять, ссылается на неверный синтаксис, хотя делал все по образцу http://www.diveintopython3.net/your-first-python-program.html

Аноним Птн 13 Июн 2014 03:02:29  #407 №361199 

>>360813
http://www.youtube.com/watch?v=ebaDjwr0lw8

Аноним Птн 13 Июн 2014 06:01:25  #408 №361203 

>>361198
А ты точно запустил скрипт третьим питоном?

НЬЮФАЖИНЕ НУЖНА ПОМОЩЬ Аноним Птн 13 Июн 2014 07:02:14  #409 №361204 

>>334669
Посаны, я в погромировании вообще не шарю. Как я понял, то сначала стоит учить питон. Вот я его скачал, установил и в книжке написано, что надо поменять значения переменной в path. Я всё сделал по инструкции, но при вводе в cmd python3 -v мне пишет:
'python3' is not recognized as an internal or external command, operable program or batch file.
Как исправлять? Что делать? Делал всё чётко по инструкции, а тут такая ебола.

НЬЮФАЖИНЕ НУЖНА ПОМОЩЬ Аноним Птн 13 Июн 2014 07:19:56  #410 №361208 

>>361204
Всё отменяется посоны. Сам исправил.

Аноним Птн 13 Июн 2014 12:14:09  #411 №361231 

Программач, лень шерстить интернеты, наверняка ты это знаешь, ньюфажине нужны задачи по пайтону, проект эйлера не предлагать, ньюфажине всего 15 лет, он больше загрузит свой мозг матаном, чем непосредственно набиванию руки операторами и функциями. Около-головоломок не нужно тоже, нужно что то вроде "напиши такое то чтобы выводило такое через такие-то костыли".
Спасибо тебе, программач.

Аноним Птн 13 Июн 2014 12:28:19  #412 №361236 

>>361231
https://www.coursera.org/course/principlescomputing
Здесь как раз дают всякие задачки и проверяют их юнит-тестами. Курс только начался, первое задание - реализовать логику вот этой http://gabrielecirulli.github.io/2048/ игры. Вписывайся, тебе подойдёт, отвечаю.

Аноним Птн 13 Июн 2014 22:18:00  #413 №361413 

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

Аноним Суб 14 Июн 2014 00:33:44  #414 №361442 

>>361413 При чем тут программирование?

sageАноним Суб 14 Июн 2014 09:00:38  #415 №361474 

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

Аноним Суб 14 Июн 2014 12:11:31  #416 №361484 

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

Аноним Суб 14 Июн 2014 12:23:28  #417 №361486 

Бля, поцаны. Swift это тот же питон, базарю. Только слегка приправленный эпловской строгостью.

sagesage sage Суб 14 Июн 2014 12:29:47  #418 №361488 

>>361486
НЕТ!

Аноним Суб 14 Июн 2014 12:48:33  #419 №361489 

Какой питон лучше учить ньюфагу, 2.х или 3.х? Читаю книгу Лутца, он описывает работу преимущественно в 3.х
мимоньюфаг

Аноним Суб 14 Июн 2014 13:24:18  #420 №361493 

>>361489
Учи актуальную версию, некроёбом всегда стать успеешь.

Аноним Суб 14 Июн 2014 16:06:32  #421 №361515 

Как посмотреть результат цикла, который получился, если я запустил его через .py. Все проходит нормально, но окно закрывается мгновенно!
мимоньфаг

Аноним Суб 14 Июн 2014 16:11:03  #422 №361516 

>>361515
Win+R -> powershell -> python C:\...\yobascript.py

Аноним Суб 14 Июн 2014 16:13:02  #423 №361517 

>>361516
>>361515
Или тоже самое в обычной cmd. И не надо путь в ручную писать, все драг-энд-дропом.

Аноним Суб 14 Июн 2014 16:23:30  #424 №361520 

>>361516
Спасибо, помогло
>>361517
через cmd выдает ошибку в синтаксисе

Аноним Суб 14 Июн 2014 16:45:42  #425 №361526 

Если я оставлю DEBUG=True в Django, то как именно злоумышленник сможет навредить мне?

Аноним Суб 14 Июн 2014 16:57:46  #426 №361529 

>>361526
Выебет ночью твою мамку-шлюху, очевидно.

Аноним Суб 14 Июн 2014 17:02:53  #427 №361532 

>>361529
А кроме этого?

Аноним Суб 14 Июн 2014 18:10:12  #428 №361557 

>>361526
http://stackoverflow.com/questions/14470601/debug-true-django
https://docs.djangoproject.com/en/dev/ref/settings/#debug

Аноним Суб 14 Июн 2014 18:13:02  #429 №361560 

Ананасы, какие вообще перспективы, если выучишь Python?

Аноним Суб 14 Июн 2014 19:00:04  #430 №361580 

>>361557
Это я читал, но хочу поконкретнее. Например, можно ли, используя уязвимость в виде DEBUG=True, украсть исходники полностью или что-то ещё?

Аноним Суб 14 Июн 2014 20:23:55  #431 №361605 

Возникла тут некоторая проблема.
Нужно опрашивать базу данных раз в некоторое время(0.5 сек пока), собирать список определенных событий. Потом обрабатывать эти события, отправлять некоторую информацию обратно. Проблема в том, что нагрузка может быть неравномерной, и иногда этих 0.5 секунд может не хватить для обработки немалого кол-ва событий.
Хотелось бы каким-то образом реализовать два асинхронных цикла, пишуших в один лист. Один цикл дожен раз в некоторое время делать extend списка, другой должен просто по мере успеваемости pop-ать элемент из списка и обрабатывать его. Это вообще физически возможно? Что стоит почитать, куда смотреть?

Аноним Суб 14 Июн 2014 20:44:48  #432 №361611 

>>361605
И запускаешь процессы через multiprocessing
И передаешь данные через Queue
Ну ты понел
А если у тебя там еще и дохуя нод, можешь организовать распределенную очередь через RabbitMQ какой-нибудь.

Аноним Суб 14 Июн 2014 22:23:28  #433 №361635 

>>361560
Я пока лично для себя никаких перспектив не вижу.

Аноним Вск 15 Июн 2014 02:23:06  #434 №361665 

>>361635
а что ты из себя представляешь?

sageАноним Вск 15 Июн 2014 04:05:10  #435 №361669 

>>361560
Нахуй питон, если есть dg?

sageАноним Вск 15 Июн 2014 11:04:34  #436 №361684 

>>361669
Нахуй dg, если есть хаскелль?

Аноним Вск 15 Июн 2014 11:26:41  #437 №361689 

>>361684
Нахуй хаскелль, если есть питон?

Аноним Вск 15 Июн 2014 11:47:48  #438 №361692 

>>361689
Нахуй питон, если есть руби?

Аноним Вск 15 Июн 2014 13:42:00  #439 №361712 

>>361692
Нахуй руби, если есть пролог?

Аноним Вск 15 Июн 2014 14:27:57  #440 №361721 

>>361712
нахуй пролог, если есть dg?

Напоминаю Аноним Вск 15 Июн 2014 15:24:23  #441 №361732 
  1. языки богов - html+css, dg
    2. нужные языки - ракета раби немерле скала эрланг
    3. ненужные все остальные
    4. языковое дно - пхп кресты дарт го пердл
    5. я думал, что уже достиг дна, и тут снизу закукарекали - тикль
Аноним Вск 15 Июн 2014 15:31:53  #442 №361734 

>>361732
dg — ето пародия на хачкиль? посмотрел… хуета какаето, орегенальнвй пифон итак конфетка. зачем нужна ета параща? примеры, например.

Аноним Вск 15 Июн 2014 16:14:21  #443 №361749 
1402834461405.gif

>>361732
И тащут сюда свои кофескрипты.

Аноним Вск 15 Июн 2014 16:15:04  #444 №361750 

>>361734
Дг:

print $ except
err => with fd = open 'yoba' => fd.read -1
err :: IOError and err.errno == 13 => 'access denied'


Гвидон:
try:
with open('yoba') as fd:
_data = fd.read(-1)
except IOError as err:
if err.errno == 13:
_data = 'access denied'
else:
raise err # и то не эквивалентно, тут строка в трейсбек добавится
print(_data)


Дг:
import '/os'
import '/dogeweb'
import '/dogeweb/r'

yoba = dogeweb.app $ r.file
'/static/<path:name>', name ~> @static $ os.path.join (os.path.dirname file) 'static' $ os.path.normpath name
'/', ~> template.render 'root' $ yield from $ database.async_load 'something'

yoba.run '0.0.0.0' 8000


Гвидон:
import os
import dogeweb
from dogeweb import r # уебищно уже в 3 строке!

def _static_file(req, name):
# гвидон не может в нормальные анонимные функции
return req.static(os.path.join(os.path.dirname(file), 'static', os.path.normpath(name)))

def _root_page(req):
return template.render('root', (yield from database.async_load('something'))) # не осилили yield from без скобок сделать

yoba = dogeweb.app(
r.file(
('/static/<path:name>', _static_file),
('/', _root_page)
)
)

yoba.run('0.0.0.0', 8000)


Еще примеры нужны?
Аноним Вск 15 Июн 2014 16:28:19  #445 №361753 

>>361750
Где ОС на Питоне, сука?

Аноним Вск 15 Июн 2014 16:32:23  #446 №361756 

>>361753
Как напишешь аллокатор памяти чтобы его можно было без ОС запускать, тогда и приходи.

sageАноним Вск 15 Июн 2014 17:40:56  #447 №361772 

>>361750
Не надоело еще говно свое форсить?

Аноним Вск 15 Июн 2014 17:53:54  #448 №361775 

>>361772
тебе уебать мудак?

Аноним Вск 15 Июн 2014 18:06:49  #449 №361781 
1402841209392.png

Я решился податься в python.
Есть хороший опыть в css и html, inb4 он тут не пригодится.
И так, я установил brackets и python.
А с чего начать? Какие книги есть на великом и могучем?
Что вообще делать? Я себе это просто представить не могу.

sageАноним Вск 15 Июн 2014 18:10:13  #450 №361782 

>>361781
Возвращайся обратно в /b.

Аноним Вск 15 Июн 2014 18:14:34  #451 №361783 

>>361781
html и css -> js, уёба

Аноним Вск 15 Июн 2014 18:44:33  #452 №361796 

Пагни, а кто какое IDE использует для написания на питоне?

Аноним Вск 15 Июн 2014 18:52:16  #453 №361800 

>>361796
PyCharm

Аноним Вск 15 Июн 2014 18:54:55  #454 №361802 

>>361783
Что ты несешь? Жс - куча говна вместо языка. HTML+CSS3 - тьюринг-полная связка.
>>361796
gedit

Аноним Вск 15 Июн 2014 19:22:15  #455 №361821 
1402845735377.jpg

Где скачать бесплатно без смс и регистрации на русском языке пикрелейтед?
И еще, скомпилированный бинарник Nuitka'ой не требует интерпретатора, но требует, чтобы Python Standard Library был установлен, да?

Аноним Вск 15 Июн 2014 19:23:41  #456 №361824 

>>361821
>И еще, скомпилированный бинарник Nuitka'ой не требует интерпретатора, но требует, чтобы Python Standard Library был установлен, да?
Смотря как слинкован. Если твой гвидон был собран с --with-shared, то все слинкуется динамически и интерпретатор будет нужен. Добро пожаловать в увлекательный мир компиляторного байтоебства.

sageАноним Вск 15 Июн 2014 19:24:52  #457 №361825 

>>361796
PyCharm, IDLE, Notepad++

Аноним Вск 15 Июн 2014 19:35:25  #458 №361838 

>>361821
http://www.twirpx.com/file/916832/
https://популярная__социальная_сеть_для_школьников/doc9547340_132979438

Аноним Вск 15 Июн 2014 19:56:38  #459 №361861 

Кому лимончиков?

Аноним Вск 15 Июн 2014 20:05:54  #460 №361865 

>>361821
http://skladchik.com/

Аноним Вск 15 Июн 2014 22:20:15  #461 №361907 

>>361796
eric

Аноним Пнд 16 Июн 2014 10:40:06  #462 №361976 

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

Аноним Пнд 16 Июн 2014 11:34:43  #463 №361985 

>>361796
vim.

Аноним Пнд 16 Июн 2014 14:08:32  #464 №362000 
1402913312171.jpg

Ребят, а есть такие же шпаргалки по Python? Хотелось бы всегда самое важное перед глазами иметь. Таблицы желательно (если есть хоть что-то).

Аноним Пнд 16 Июн 2014 14:12:18  #465 №362002 

>>362000
По-английски называется cheatsheet - шпаргалка
И берешь и гуглишь в гуглкартинках

Аноним Пнд 16 Июн 2014 14:53:53  #466 №362012 

>>362002
Спасибо, братишка.

Аноним Пнд 16 Июн 2014 19:23:51  #467 №362063 

Анон, поясни за курс http://acodemy.ru/.
И еще, что из литературы по питону переведенной на ру стоит прочитать? Погружение в Питон 3 у меня чем глубже, тем сложнее перевод, точнее больше времени занимает перевод глав.

Аноним Пнд 16 Июн 2014 21:26:30  #468 №362114 

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

Аноним Срд 18 Июн 2014 22:44:13  #469 №362733 

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

Аноним Срд 18 Июн 2014 22:58:47  #470 №362745 

>>362733
>ищу советы по самодисциплине и самоконтролю во время обучения.
Вписаться на курсы на курсере. Там дедлайны и прочее.

Аноним Чтв 19 Июн 2014 03:02:54  #471 №362802 

В мухосрансках вообще нет вакансий -________-

Аноним Чтв 19 Июн 2014 16:11:36  #472 №362907 

>>362802
В мухосрансках вообще кроме 1эсников никто не нужен почти.

Аноним Чтв 19 Июн 2014 17:07:58  #473 №362919 


>>362907
пхп макаки еще нужны.

Кстати о них, они считаются за погромистов вообще?

А питон - 1 вакансия на мой задрищенск в 500к

Аноним Чтв 19 Июн 2014 17:09:04  #474 №362921 

>>362919
>Кстати о них
Я об одинэсниках конечно же. Двусмысленно получилось.

Аноним Чтв 19 Июн 2014 17:16:57  #475 №362923 

>>362919
Именно пхп-программисты нужны мало. В основном нужно уметь накатывать битрикс, и прикручивать к нему пизженные шаблоны. Ну а пхп - это просто дополнительный необязательный скилл. У нас, по крайней мере, именно так. Город на 500 тысяч.

Аноним Чтв 19 Июн 2014 18:02:37  #476 №362925 
1403186557698.jpg

Аноны, как мне совершить действие, по изменению переменной?
Например, мне нужно каждую секунду, ОДИН РАЗ ,выводить на экран какой-то текст.

Аноним Чтв 19 Июн 2014 18:56:00  #477 №362930 

>>362925


import time
while 1==1:
time.sleep(1)
print(text)

Аноним Чтв 19 Июн 2014 19:50:31  #478 №362935 

>>362925
Используй asyncio.

Аноним Чтв 19 Июн 2014 19:52:24  #479 №362936 

Потсоны, есть одна проблема. Мне нужно навесить листенер на изменение переменной. Дергать каждый раз при изменении функции не канает, она меняется из нескольких мест, да и переменных на самом деле несколько.
Что-то вроде таблицы excel получается, где ты меняешь одну ячейку - и тут же меняются зависимые от нее (и зависимые от них, по цепочке). Подскажите либу или фичу! Спасибо, да пребудет с вами Питон-Гвидон

Аноним Чтв 19 Июн 2014 20:16:50  #480 №362937 

>>362936
Используй asyncio, который советовали выше. Он для таких штук и создавался.

Аноним Чтв 19 Июн 2014 23:23:36  #481 №362989 

>>362937
Нет, он создавался для асинхронного ио, а не для датафлова.
>>362936
Ну так прикрути какую-нибудь систему сигналов и эмить при изменении, какие проблемы. А лучше вообще избавься от переменных и передавай эту инфу только через сигнал.

Аноним Чтв 19 Июн 2014 23:24:06  #482 №362990 
1403205846146.jpg

>>362930
> 1==1

Аноним Птн 20 Июн 2014 11:55:40  #483 №363064 

>>362990
Это такой олдовый способ записать True.

Аноним Птн 20 Июн 2014 12:52:20  #484 №363069 
1403254340672.jpg

>>363064

Аноним Птн 20 Июн 2014 12:59:38  #485 №363072 

>>362936
> переменная меняется из нескольких мест
Очень хуёвая идея..

> меняешь одну ячейку - и тут же меняются зависимые от нее
Можно погуглить Reactive programming, а можно запилить собственный одноколёсный велосипед, вроде: http://ideone.com/trqwzk

Аноним Птн 20 Июн 2014 13:20:42  #486 №363074 

>>363072
Ну и конечно надо поменять

if hasattr ..:
...
else:
...

на
try:
...
except AttributeError:
...


слоуфикс
Аноним Птн 20 Июн 2014 14:29:44  #487 №363095 

>>362936

def change(variable, new_value):
....
Аноним Суб 21 Июн 2014 13:36:52  #488 №363402 

Тут ведь есть специалисты по асинхронному программированию?
Посмотрите код сопрограммы для торнадо. Ничего же не блокируется?
<code>
@tornado.web.asynchronous
@tornado.gen.coroutine
def get(self):
db = self.settings['db']
cursor = db.messages.find().sort([('_id', -1)])
result_list = [r for r in (yield cursor.to_list(length=10))]
self.write(messages_template.generate(data=result_list))
</code>

Аноним Суб 21 Июн 2014 13:42:13  #489 №363405 

>>363402
Разметку проебал.


@tornado.web.asynchronous
@tornado.gen.coroutine
def get(self):
db = self.settings['db']
cursor = db.messages.find().sort([('_id', -1)])
result_list = [r for r in (yield cursor.to_list(length=10))]
self.write(messages_template.generate(data=result_list))
Аноним Суб 21 Июн 2014 13:43:53  #490 №363406 

>>363405
Ну пиздец.


@tornado.web.asynchronous
@tornado.gen.coroutine
def get(self):
db = self.settings['db']
cursor = db.messages.find().sort([('_id', -1)])
result_list = [r for r in (yield cursor.to_list(length=10))]
self.write(messages_template.generate(data=result_list))
Аноним Суб 21 Июн 2014 13:59:00  #491 №363411 

>>363406
А чем ты пользуешься для доступа к базе данных? Модуль Torndb НЕ является асинхронным, поэтому если ты пользуешься им всё будет блокироваться тут:
cursor = db.messages.find().sort([('_id', -1)])

Аноним Суб 21 Июн 2014 14:03:38  #492 №363413 

>>363411
Motor - асинхронный драйвер для монги.
cursor.to_list(length=10) возвращает Future.

Аноним Суб 21 Июн 2014 14:08:30  #493 №363415 

>>363413
Тогда не должно блокироваться. Но я не уверен, что написано правильно - в процедурном стиле, без колбэков. Как мне (дилетанту) кажется, если запрос к базе будет выполняться дольше, чем будет выполнено self.write, то значение result_list будет пустым.

Аноним Суб 21 Июн 2014 14:16:43  #494 №363416 

>>363415
Это не процедурный стиль. Там есть обратный вызов, но он как бы скрыт для простоты. Сопрограмма же.
Собственно, у меня с этим и возникла проблема - я понимаю как программировать колбэки вручную, но не совсем понимаю, как работают сопрограммы.
То есть, вот объект Future, он возвращается сразу, но принимает какое-то значение только когда оно вытащено из базы.
А это ничего, что я после получения этого объекта, еще всяко его обрабатываю, делаю списковое включение, отдают шаблонизатору?
>если запрос к базе будет выполняться дольше, чем будет выполнено self.write, то значение result_list будет пустым.
Вот тут я и не понимаю, как это работает.
Но чисто интуитивно кажется, что self.write() не должна вызываться, пока не будет готов список.
Собственно, в этом и вопрос - не заблокируется ли тут все?

Аноним Суб 21 Июн 2014 14:31:44  #495 №363419 

>>363416
Cука пиздец(( спроси на стаковерфлоу, мне самому интересно. Когда делал проект на Торнадо, так и не смог понять, как это работает и сделал всё в блокирующем стиле.

Аноним Суб 21 Июн 2014 14:33:54  #496 №363420 

>>363416
Кстати, только что понял, что не нужно генерировать список, потому что to_list(), внезапно, уже список и возвращает.


@tornado.web.asynchronous
@tornado.gen.coroutine
def get(self):
db = self.settings['db']
data = yield db.messages.find().sort([('_id', -1)]).to_list(length=10)
self.write(messages_template.generate(data=data))
Аноним Суб 21 Июн 2014 14:35:45  #497 №363421 

>>363419
Я уже читаю доки питона о сопрограммах.
А зачем ты использовал торнадо, если не использовал асинхронность? Проще было взять тот же фласк.

Аноним Суб 21 Июн 2014 14:41:20  #498 №363422 

>>363421
>А зачем ты использовал торнадо
Ради tornado-sockjs. Вообще, я собирался использовать, но не осилил.

Аноним Суб 21 Июн 2014 17:47:45  #499 №363468 

>>363420
>только что понял
>потому что to_list(), внезапно, уже список и возвращает

Как ты вообще программируешь, если ты пишешь .to_list() и результат выполнения для тебя внезапен? Нахуй ты вообще пишешь?

Аноним Суб 21 Июн 2014 17:54:08  #500 №363472 

>>361796
СаблаймТекст

Аноним Суб 21 Июн 2014 18:38:43  #501 №363483 
1403361523449.png

>>363420
Проиграл на изи.

Аноним Суб 21 Июн 2014 18:39:46  #502 №363484 

>>363468
Я не пишу пока. Я только сегодня сел его ковырять. Вот, ковыряю.

Аноним Суб 21 Июн 2014 18:42:41  #503 №363487 

>>363484
Вся суть питоноблядей.
сам питоноблядь. Его кажущаяся простота позволяет писать, не зная фундаментальных основ - ну работает, а хуле надо

Тред уровня /b/ Аноним Суб 21 Июн 2014 18:52:18  #504 №363489 
1403362338640.jpg

Как мне кажется, все треды тут слишком практичные и узконаправленные. Если оффтоп и появляется, то в виде унылого траллинга не к месту.
Давайте устроим ИТТ более расслабленное и поверхностное общение. Я начну со вполне стандартного "кит или слон".
Какой язык САМЫЙ ОБЪЕКТНО-ориентированный? На мой взгляд, Java
Самый универсальный? Python
Самый бесполезный (из используемых)? Не знаю, если честно
Самый сложный (из используемых, брейнфак не берём) ясчитаю, пхп - научиться на нём программировать ПРАВИЛЬНО - непосильно из-за отсутствия учебных пособий
Самый академический? Не знаю. LISP?
Самый переоценённый? на данный момент - не знаю. Ранее - C++

Аноним Суб 21 Июн 2014 18:58:32  #505 №363491 

>>363489
Промахнулся, вот тред http://2ch.hk/pr/res/363490.html

Аноним Птн 27 Июн 2014 19:27:10  #506 №365252 

Есть ли возможность сделать объект неизменяемым? Ну, то есть, чтобы попытка изменить (создать) атрибут вызывала ошибку?

Аноним Птн 27 Июн 2014 19:41:38  #507 №365261 

>>365252
Выкинуть исключение, при изменении/добавлении атрибута - можно.
Сделать объект не изменяемым - нельзя.

Аноним Птн 27 Июн 2014 19:44:20  #508 №365265 

>>365261
>Выкинуть исключение, при изменении/добавлении атрибута - можно.
Не подскажешь, по каким словам искать информацию об этом?

Аноним Птн 27 Июн 2014 19:50:40  #509 №365267 

>>365265
Переопредели ‗‗setattr‗‗

Аноним Птн 27 Июн 2014 21:42:09  #510 №365298 

Ссаентифик-программеры, как работает scipy.signal.convolve2d? Пробую на простейших примерах, а оно выдает совершенно не то, что я ожидаю. С моим знанием инглиша проще тут спросить, чем гуглить.

Платиновые вопросы /pr/ Аноним Суб 28 Июн 2014 03:45:39  #511 №365353 

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

Аноним Суб 28 Июн 2014 07:48:40  #512 №365375 

>>365353
Mark Summerfield: Programming in Python 3
Steven F. Lott: Building Skills in Python

Аноним Пнд 30 Июн 2014 17:37:02  #513 №366067 

Писать вот так норм или говнокодие?


tuple(('to_mongo', 'save', 'find', 'update', 'delete'))
fields = [x for x in self.dir() if x[:2] != '__' and x not in _]

Или лучше так:

tpl = ('to_mongo', 'save', 'find', 'update', 'delete')
fields = [x for x in self.dir() if x[:2] != '__' and x not in tpl]
Аноним Пнд 30 Июн 2014 22:06:26  #514 №366145 

>>366067
Не понял что такое "not in _]", можешь пояснить?
Только изучаю питон

Аноним Втр 01 Июл 2014 13:14:29  #515 №366261 

Питонач, смотри что я тебе принёс.

http://python-rutour.rhcloud.com/tour/ тадам!

Делайте перекат, уёбы

Аноним Срд 02 Июл 2014 10:31:29  #516 №366532 

>>366261
Супер, спасибо! Особенно за то, что на русском.
Только изучаю питон

Аноним Чтв 03 Июл 2014 12:24:31  #517 №366893 

Господа, в закрепленном треде, в списке с литературой , не зря все книги по питону упомянуты на английском языке ? Это не намёк на то, что от переводов лучше держаться подальше

Аноним Пнд 07 Июл 2014 19:17:07  #518 №368281 

Питонач, дай совет. Есть список объектов, нужно получить из этого списка первый объект с определенным атрибутом, либо None. Например, у нас есть

item_list
, и мы хотим получить из него объект с айди
item_id
. Вариант с генератором красив, но не очень читабелен.
item = next((_ for _ in item_list if _.id == item_id), None)

Немного лучше с list comprehension:

lst = [_ for _ in _all if _.id == 300]
item = lst[0] if lst else None

Третий вариант - в лоб пройтись по всем элементам, ну тут всё понятно. Какой вариант выбрать? Где золотая середина между изяществом, читабельностью и скоростью работы?
Аноним Пнд 14 Июл 2014 21:00:42  #519 №370297 

>>368281
Работает и похуй. Это же питон.

comments powered by Disqus