Вы видите копию треда, сохраненную 22 сентября 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
* на Django
Документация. На хабре есть отличное руководство по нему на русском. Я так вкатывался.
Ну там устаревшее к сожалению, изучаю его. Какие успехи у тебя уже, что серьезного написал?
А, так. По мелочи. Не тяготею к вебу. Использовал его ток для микро веб сервиса
Да. Я есть. Прогрессирую неплохо, учитывая что одновременно подтягиваю сам питон.
O'Rielly Introduction to Flask. Видеокурс.
Flask Web Development (2014) (e-book).
https://github.com/humiaozuzu/awesome-flask - репа со всем что только возможно.
Если у тебя OSX то можешь подтянуть себе Dash.app и прогрузить туда гайды по питону, фласку и джиндже. В качестве редактора рекомендую chocolat (есть автокомплит для фласка). Ну в PyCharm тоже вроде есть поддержка фласк.
Дерзай, удачи.
Забыл добавить - многие вещи поменялись с момента издания этих гайдов. Обычно обратная совместимость есть, но если сервер сыплет "блаблабла deprecated" то пиздуй сразу в доки и смотри как делать по-новому.
Ну не знаю даже. Тащить целый комбайн с индексацией и плагинами, да еще и который в джаве крутится это как-то не по-питоньи.
Мне, как новичку, редактора хватает.
Окей, перефразирую: как лучше всего реализовать на джанго восстановление доступа к аккаунту?
Там в репозитории фласка примеры рабочие есть.
Все остальное у тебя вообще от непонимания работы веб-аппликации.
Да.
Я теперь понял, что рекурсивная функцию это просто как обычный цикл. В нём есть выход, есть продолжение. А изменение i - это вызов функции с измененным аргументом
Ничего серъезного. Я надеюсь ты понимаешь что стек веб-аппа немного шире чем бекенд и не грезишь быстрым продакшеном.
Что есть если в функции два рекурсивных вызова?
def sort(a):
middle = len(a) // 2
left = sort(a[:middle])
right = sort(a[middle:])
# ...
return sorted
Рекурсия != цикл в общем случае.
>Я надеюсь ты понимаешь что стек веб-аппа немного шире чем бекенд и не грезишь быстрым продакшеном.
Вопрос в этом и не стоял.
Короче декоратор роутер оборачивает функцию и выводит возвращаемое значение в браузер
https://www.youtube.com/watch?v=qla-KaMF-2Q
Вот совсем для нюфагов
https://github.com/pallets/flask/blob/master/examples/flaskr
Там есть пример. Если ничего не понимаешь, то заебашь простое приложение по стандарту wsgi для начала без фреймворков.
А лучше вообще почитай эволюцию гейтвей интерфейсов, многое прояснит.
>>832802
А, слайс не кидает IndexError, это хуёво.
И вообще вопрос, что нужно знать студенты, чтобы подрабатывать в сфере it ?
>что нужно знать студенты, чтобы подрабатывать в сфере it ?
Уметь обращаться с пылесосом и половой тряпкой.
джанго, обычный бложик с постами, коментами, рейтингами, левелами и т.п. Я просто не знаю, какой именно сайт пилить для хорошего резюме, и пока что делаю самый очевидный вариант.
как джанго осваивал? вообще непонятная хрень. выкладывай код свой давай
Джанго понятное как банка пива, если ты выполнил немного условий предварительно:
1. Выучил питон
2. Выучил стандартную библиотеку
3. Поигрался с bottle
4. Навернул книженцию все еще актуального и совершенно без проблем до сих пор работающего Адриана Головатого
Мимопроходил
Выпил волшебную таблетку и сразу все понял, так все в жизни и бывает.
видит джанго - джанго джанго
сунул джанго джанго в джанго
джанго джанго джанго джанго
ехал джанго через боттл
видит джанго в речке фласк
сунул джанго фласку в боттл
flask nginx alchemy flask
В треде профессионал! А я просто жалкий петросян без работы. Сразу почувствовал себя петухом. Спасибо за ушат холодной воды!
Профессиональный петросян?
Ну в первом да, нужна, а во второй уже базу из первого потащил.
Там нельзя делать шаг, отличный от 1.
Ребята, я вот щас продолжаю эти рекурсивные функции решать. На чекио заниматься нельзя, но теперь их задания кажутся мне сложными. Я остановился на какой-то ледяной станции, 2 задание, сложность - элементари. Там дан набор команд (PUSH x, POP, KEEP) и нужно их сделать в общем. Я до поломки чекио пытался сделать, но не получалось. В школе программиста задания тоже сложные. Зайчика я так и не сделал, а следующее за ним вообще страшное какое-то.
Я слышал, что на питоне плохо оптимизированы рекурсии, так что мне тогда изучать ? Куда идти ?
man OOP
загрузить все фотки в оригинальном разрешении
загрузить все видео в оригинальном разрешении
загружам в папку <username>
загружаем по порядку, сначала новые, потом старые
если находим в папке уже загруженный файл то остановка дальнейших загрузок и выход
Накой ноут взять для кодинга. FullHD, 8 оперативы и хватит?
Меньше 16Гб для питона даже не пытайся брать. Рекомендую просто брать самый дорогой который найдёшь Макбук + Apple Cinema Display.
Какую ? Следующая за зайчиком - пикрелейтед. Я её даже не пробовал решать из-за лени.
Так что мне делать дальше ? С питоном я познакомился, как углубиться ?
Только решение пока не пости.
>Так что мне делать дальше ? С питоном я познакомился, как углубиться ?
Тут ничего такого питоно-специфичного нет.
Математику нужно знать, в идеале аналитическую геометрию (векторы, скалярное произведение), но можно обойтись и линейными уравнениями.
Двачую. Доставте ему ту пасту
Если хочешь, могу дать тебе на допилку проект, который делал ради изучения питона :3
За одно буду ревьювить твой код.
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь[1] при одном упоминании твоей зарплаты.
>Что это ?
Берешь список дачников / участков, делишь на несколько частей, все части обрабатываешь параллельно (например, через multiprocessing)
Заебал со своей конфой.
Сладкий батхæрт спамера-неудачника
аля
text = 'ololo'
@
замена букв
text2= новому тексту
@
print(text2)
man replace
Вот я нуфаг и хочу написать прогу для загрузки фоток с инстаграма. Что мне делоть?
спасибо антох, а то гугл выдаёт неизведаннoсть:
from string import maketrans
def replace_text(text, valc):
"""
text = 'abcdefg'
valc = {'a': 1, 'g': 2}
print replace_text(text, valc)
1bcdef2
"""
frm = ''.join([str(i) for i in valc.keys()])
to = ''.join([str(i) for i in valc.values()])
trantab = maketrans(frm, to)
return text.translate(trantab)
if __name__ == '__main__':
import doctest
doctest.testmod()
'b': 'x''}))
Scrapy
Это если ты хочешь по таблице заменять символы.
Вместо replace('o', 'a').replace('b', 'c'), можно создавать таблицу замены:
{'o': 'a', 'b': 'c'}
В виде кoда мoжешь пoказать? А тo глупo выглядит хуйня урoвня:
text = "13"
text2 = text.replace('1', '2')
text3 = text2.replace('3', '4')
print(text3)
Погугли инстаграм АПИ. И вообще начни с гуглежа python instagram, вероятно уже сто тысяч мильонов либ написано.
Возможно, понадобится зарегать своё приложение и получить секретный код. После чего качать свои сраные фоточки.
Вот скелет типичного скрипта:
http://pastebin.com/mJSECBpg
Сделан из реального скрипта, работающего с реддитом и имгуром.
благoдарю
text = "ololo"
replaceDict = {'o':'h','l':'a'}
for key, replacement in replaceDict.items():
__text = text.replace( key, replacement )
__print(text)
На самом деле хуйня не так уж и глупо выглядит. Она супер легко читаема. Flat is better than nested.
Как написать свою имиджборду? Взять какой-нибудь фреймворк (торнадо, допустим) и дальше видно будет?
Вoт тебе FizzBuzz супер легко читаемый https://github.com/Autism-Corporation/FizzBuzz/blob/master/FizzBuzz
Там целочисленное деление, когда-нибудь станет равен 0, да и при не целочисленном стал бы.
Я просто в недоумении и не знаю что делать.
Суть в том, что не логиниться и все. HALP!!!!
>прошу, не пишите про то, что функцию не вызвал
Все показывает, что я не авторизовался. :C
Вроде как, метод request автоматом POST запрос отправляет. Но в чем дело, ХМММММ.
Забей на urllib, возьми:
https://github.com/kennethreitz/requests
Почему не логинится, кто его знает. Может там токен в форме где-нибудь, который ты не указал.
Может логин/пароль неверные.
Посмотри в хроме, какие данные форма отправляет на сервер.
Во втором питоне / это целочисленное деление для int'ов.
Хром пишет, что только username и password, больше ничего. :C
Не знаю, насколько поможет Requests, но попробую, спасибо.
Я так больше не могу. Сначала ебался с настройкой версий самого питона, потому что в ёбаной убунте изначально прописан второй, а для ёбанной обезьянги 1.8.7 нужен третий. Затем я ебался с самой обезьянгой, потому что инструкция на сайте написана для 1.10, а у меня стоит 1.8.7. и я вообще уже не ебу, как её обновлять. Я только собрался с силами, но, блять, возникают какие-то мелкие проблемы, которые СУКА я не могу решить даже с гуглом. СУКА СУКА СУУУКАА как вы заебали со своими версиями, сука, почему всё не может работать СУКА СУУКАААА А АААААА !!№;;"!!!)"ВВА" ЫУА ЫВА
Выговорился? Полегчало?
Нашел короче по твоему совету вот энто https://github.com/rarcega/instagram-scraper/blob/master/app.py
только эта мудреная хрень качала фотки с белыми краями, а это мне не понравилось, пришлось чуть подправить, благо это легче чем писать всё с нуля.
Держи, может понадобится http://pastebin.com/BvpN6jB1
+1 голос к requests.
Удобно, ясно, просто.
На твоем уровне за голову хватит.
На будущее: не надо менять значение переменной без нужды, избегай конструкций типа x = func(x). Я про encoded_data. Изъебнись и придумай другое название, с тебя не убудет.
Использовать в функции аргументы из глобального скоупа (контекста, пространства имен), не передавая их в функцию явно - не очень хорошо.
Если уж заворачиваешь в функцию, должно быть def login(url, headers, login_data). Можно писать дефолтные значения типа headers=headers если хочется ее вызывать просто как login() и чтобы все само сделалось.
С чем ты там ебался я не пойму?
На большинстве дебиан based систем (в тч убунты) ты просто пишешь в консольке python3 если хочешь третий питон и python если второй.
Так же и скрипты (python3 script.py).
Та же херня с pip, если для третьего питона то pip3 install something
R E Q U E S T S
E Q U E S T S R
Q U E S T S R E
U E S T S R E Q
E S T S R E Q U
S T S R E Q U E
T S R E Q U E S
S R E Q U E S T
В том-то и дело, что у меня ПОСТОЯННО СУКА возникают какие-то мелкие проблемы, которые даже с гуглением нельзя решить. А потом выясняется, что у них элементарное решение и я не понятно на что потратил 3 часа. СУУУУККА КАК ЗАЕБАЛО НУ ЁБ ТВОЮ МАТЬ
Это нормально. У всех так же, разве что с опытом мелкие проблемы становятся более сложными, но процесс всегда остается тем же.
Питон это не для тебя, учи лучше сишечку.
Если веб - то как минимум простой веб-фреймворк, хтмл. Но это будет совсем страшно. Для нормального в 2к16 вида придется изучить какую-нибудь простую клиентскую js-библиотеку и фреймворк типа семантека или бутстрапа.
Если десктоп - то питониевую обертку гуев (tkinter, gtk, qt).
https://gist.github.com/anonymous/8ee15a838a1d343685d5d3fe70db0b
Комментов бы туда. Регэкспы я вообще только в онлайн-билдерах читать умею.
1. Кодировки-кодировочки. Ебёмся третий день.
2. Устанавливаем 64битный пичарм на 16битную шиндовс.
3. Какой антивирус мне поставить на питон?
4. Что такое PATH. Откровения бывалых.
5. pip распидорасил всё после апдейта, переустанавливаем всем селом.
6. Хакирские секреты чорной магии: как компилять экстеншены. Ставим cygwin под mingw под winapi под msvc под виртуалкой на убунте.
7. Супир алгаритмы: пишем пагинацию на MySQL
Я пытался рассмеяться, но у меня не получилось.
От души, братан!
Не уверен, но мне кажется что ты один и тот же чел, который в каждом треде подсказывает ребзе как и что делать не обкладывая хуями.
Не в каждом, но да, в нескольких.
Я не помню, почему я решил там деку использовать, может быть потому что не знал про нее раньше и наткнулся на нее на stackoverflow.
Там можно было через слайсы сделать: s[i:] + s[:i].
Почему все используют это кретинство? Чем это лучше строкового метода .format?
В 3.6 будут f-строки, можно будет забить и на % и на format.
В целях самообучения сойдет, чтобы понять как работает map и reduce, но через сумму и list comprehension читабельнее получится.
>2016
>комменты
Ебать.
https://gist.github.com/anonymous/8d5493a6dff78019d3d6d6c87337a457
>>833892
А то.
Ну да, недавно только въехал в эти функциональные штуки.
> Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библио
Копипаста блять !!!!!!!!!!
Но я всё равно начал читать вглубь питона. Когда прочитаю - смогу решать задачки ?
Нет.
Те, что тут постят? Нет. Для этого тебе нужно читать книги по алгоритмам.
Проиграли всем загоном.
Удачи.
Спасибо
Алсо, я решил эту задачу с помощью динамического программирования ?
Ах да, жду советов по улучшению кода
О, да, так лучше
Анон, что посоветуешь? Возможно либы какие, статьи почитать там? Сам на питон перекатился неделю как, просто многопоточный вариант сего говна наговнокодил, но скорость не радует и где-то память течет :(
grequests
Есть ли возможность писать текст на изображении в поле определенного размера и положения с автоадаптацией размера шрифта под это поле? Костыли или другие модули приветствуются.
пробовал, нихуя не понял, наваял какой-то ужас (с трудом понимаю даже что некоторые куски кода делают) -http://pastebin.com/hfKGyu7k
Наверное с прочтения шапки.
Вышла новейшая книга пикрелейтед, можешь попробовать ее вместо неподъемного Лутца и иже с ним.
https://gist.github.com/anonymous/efcd3a5f871e7f78431d326d97f8e9dd
Отпишись по поводу производительности, мне лень самому замерять.
Питон - петушиный язык, питонопетух - не человек!
Будто плохое.
Двачую.
Будто хорошее.
спасибо, поставил 50к строк на тест. Несколько вопросов:
Почему он пишет результаты в файл каждые ~420 строк?
Как-то можно выставить таймаут на соединения (во входном списке присутствуют мертвые домены, по идее это должно увеличить скорость).
Влияет ли на скорость кол-во воркеров?
И можно ли как-то запустить данный код еще и в несколько потоков? В один поток скорость асинхронного решения меньше, чем синхронного в 100 потоков :(
Примерно 400 строк в минуту против 1000 строк в минуту на 100 потоках
Возможно ли как-то пробросить уже вшитые формы макета в валидатор, а не вставлять формы методами wtf? Или может есть какая-нибудь другая библиотека, которая умеет валидировать типичные инпуты типа дат, е-мэйлов и резать длину?
какие нахуй пиллоу? мы тут лесенки ебашим.
Не получается.
Может поискать полегче задачки на эту же тему ? Как мне стать умнее черт возьми ?
> Почему он пишет результаты в файл каждые ~420 строк?
http://stackoverflow.com/questions/3167494/how-often-does-python-flush-to-a-file
> Как-то можно выставить таймаут на соединения (во входном списке присутствуют мертвые домены, по идее это должно увеличить скорость).
http://aiohttp.readthedocs.io/en/stable/client.html#timeouts
> Влияет ли на скорость кол-во воркеров?
Влияет.
> И можно ли как-то запустить данный код еще и в несколько потоков? В один поток скорость асинхронного решения меньше, чем синхронного в 100 потоков :(
Не знаю.
Дай мне свой список ссылок.
Что-то непонятное задание. Имеется в виду сколько ступенек будет у лесенки из n кубиков? Или сколько всего таких лесенок можно сделать?
А какие там примеры?
А теперь давай перефразируем эту хуйню как: Дано число А. Нужно найти все множества, элементы которого будучу проссумироваными дадут нам число А. Из множества множеств небходимо исключить такие множества где элементы повторяются. Изи-пизи 5-10 строк кода на рубях, кек.
> Из множества множеств небходимо исключить такие множества где элементы повторяются.
И где более дальние элементы больше чем ближние типа.
Ну и как это сделать ?
А ты и вправду рубист. Ты пробовал запускать с числом побольше?
ожидаемо, нихуя не будет работать. вообще ограничение на 16 мебе памяти намекает, что правильным решением будет маршализировать результаты функции и с йоба-фейсом сдать решение комиссии, а чё тз-то выполнено, все работает. Ладно шучу. хуй знает как оптимизировать, можно даже подумать, но навскидку, я бы подумал над оптимизированным алгоритмом генерации слагаемых..
1)Импортировал файл верхнего уровня. Программа запустилась.
2)Импортировал функцию reload
3)Использовал reload для prog и ничего не запустилось.
4)Попытался reload модуля script1 для prog. Ничего не запустилось. Потому-что не импортировал сначала script1
5)Импортировал script1
6)Применил reload для script1 и все прекрасно заработало именно для этого модуля. Какого черта не запускает тогда файл верхнего уровня?
Добавляю таймаут по гайду - начинают сыпаться ерроры(
вообщем, чуть-чуть подумал, алгоритм примерно такой:
> # 1 [ [1] ] 1
> # 2 [ [2] ] 2
> # 3 [ [1, 2], [3] ] 3
> # 4 [ [1, 3], [4] ] 4
> # 5 [ [1, 4], [2, 3], [5] ] 5
> # 6 [ [1, 2, 3], [1, 5], [2, 4], [6] ] 6
> # 7 [ [1, 2, 4], [1, 6], [2, 5], [3, 4], [7] ] 7
для N = 1,2 ответ единичка. Внутренее состояние: множество множеств мощностью в один элемент [[x]], т.е. [[1]] или [[2]].
для K из 3..N (N - число на входе) в цикле i от 1 до К делаем следующую штуку: берем i, определяем с = K - i, смотрим множество множеств для с (для K 1 и 2 множеств множеств мемоизировано зарание). Множество множеств для с дополненное элементом i, будет частью множества для i. Дополняем, естественно не должно быть повторов внутри дополняемого множества (все элементы дополняемого множества строго больше i, если нет отклоняем) это же исключит симметрию.
Результатом работы будет множество множеств для i, просто объединяем их. Мемоизируем объединение в кэше (жрать не много памяти будет для 100 элементов полагаю влезем в 16 мб) для последующего использования. В полученном объединении мощность это ответ для i. Соответственно последовательно строим множества пока не дойдем до K=i. Получается быстро и эффективно, правда строчек будет не 5-7, а под 30-40 , ну или меньше, смотря как писать.
Ну может там какие тонкости неясно написал, но это походу дела уточняется. Это будет полное решение этого нинужного говна. Простая задачка, разминка для ума перед сессией формошлепства.
Генерируешь пару uid, token. Высылаешь пользователю на мыло, принимаешь пару uid и токен и новый пароль. https://github.com/sunscrapers/djoser/tree/master/djoser - посмотри как это организовано здесь, правда тут для рест апи
Код странно себя ведет, нихуя не могу понять почему. Ща запощу.
Результат они выдают одинаковый. Кроме вида цикла ничего не меняется. Весь прикол в том, что вариант с for ... range выполняется в 10-20 раз медленнее, чем с while.
Должно существовать не рекурсивное решение, что-нибудь с помощью матриц.
Еще куча задач на эту тему:
https://www.hackerrank.com/domains/algorithms/dynamic-programming
В версии на питоне numpy используется, который заточен под всякие вычисления с матрицами.
Ты очень эмоционально ко всей этой хуйне относишься. Нервы побереги.
За полчаса у меня проходит весь файл:
http://ideone.com/VpnfQE
17.5к ошибок, 3.2к вордпресс, я не знаю, то ли там у тебя так много ссылок битых, то ли таймауты маленькие стоят.
Ехал filter через filter.
Видит filter в map-е filter.
Сунул filter lambd-у в filter.
Filter filter filter filter.
Ну и очевидный requests
кодю для себя небольшие программки для работы
Что делать, если Питон заебал своей медлительностью?
Нет, серьезно, более уёбищной скорости выполнения надо поискать.
Простейший пример: битовый числа 657 на 10^8 повторенирях. Сравниваю время выполнения на Питоне и на Си (написано через while i< а не через for i in range чтобы было всё, сука, честно и одинаково).
##################
from time import time
i=1
t1=time()
while i <= 108:
a=657
a<<1
i+=1
t2=time()
print(t2-t1)
##################
и
##################
#include <stdio.h>
#include <time.h>
#define N 657
int main(void)
{
int a,i=1;
double t1,t2;
t1 = clock();
while (i <= 100000000)
{
a=N;
a<<1;
++i;
}
t2 = clock();
printf("Time = %f", (t2-t1)/CLOCKS_PER_SEC);
return 0;
}
##################
КАКОГО ХУЯ интерпретатор Питона тратит на это больше 19 секунд, а скомпилированный код Си делает то же самое за 0.143 секунды???
Есть ли смысл смотреть в сторону компиляции змеи?
кодю для себя небольшие программки для работы
Что делать, если Питон заебал своей медлительностью?
Нет, серьезно, более уёбищной скорости выполнения надо поискать.
Простейший пример: битовый числа 657 на 10^8 повторенирях. Сравниваю время выполнения на Питоне и на Си (написано через while i< а не через for i in range чтобы было всё, сука, честно и одинаково).
##################
from time import time
i=1
t1=time()
while i <= 108:
a=657
a<<1
i+=1
t2=time()
print(t2-t1)
##################
и
##################
#include <stdio.h>
#include <time.h>
#define N 657
int main(void)
{
int a,i=1;
double t1,t2;
t1 = clock();
while (i <= 100000000)
{
a=N;
a<<1;
++i;
}
t2 = clock();
printf("Time = %f", (t2-t1)/CLOCKS_PER_SEC);
return 0;
}
##################
КАКОГО ХУЯ интерпретатор Питона тратит на это больше 19 секунд, а скомпилированный код Си делает то же самое за 0.143 секунды???
Есть ли смысл смотреть в сторону компиляции змеи?
>интерпретатор Питона тратит на это больше 19 секунд
Начнём с того, что time.time время не в секундах показывает, а хуй пойми как.
А продолжим пикрилом. У тебя пень 3 что ли, что 19 секунд выполняется?
Можешь на хуй пойти - это как вариант
>написано через while i< а не через for i in range >чтобы было всё, сука, честно и одинаково
Для таких ебланов как ты были придуманы генераторы
Если переписать через функцию,то займет 14.5 секунд, что через time, что через timeit.
При этом Си в 100 раз быстрее.
Давай, быдло, напиши мне через генератор это, чтобы хотя бы за секунду выполнялось.
А, точно, ща исправлю, проверю.
Бля ебаная макака
Я, говорю, переписал, через функцию и сравнил time и timeit. Результат одинаковый +-14.5 секунд.
Кстати, тебе там уже написали, что у тебя 108 итераций с 100000 повторениям в timeit вместо одного на 100000000.
> (написано через while i< а не через for i in range чтобы было всё, сука, честно и одинаково).
У тебя какое-то странное понимание честности и одинаковости.
Что-то у вас с ним дохуя большая разница получается, 14.5 против 0.232 с.
Как ты подсветку запилил?
оптимизация алгоритма годная да, а вот то что петон жрет четверть гигабайта в пике это показывает как заточены вычисления матриц, кекус. (спойлер: через жопу)
Ага
в сишке очевидная оптимизация, так как дальше эта а не используется - цикл 10^8 не может работать быстро в принципе.
P.S. Если ты зеленый самоучка, то в ответ помогу с Django и Elasticsearch(хотя откуда тебе знать такие слова)
Держи немного всякой бредовой фигни что мне в голову приходит иногда
1. У меня нет друзей, не нужно.
2. Не понял, в чем фишка. Удобный сайт для подписки на спам? Но зачем?
3. И что делать с этими достопримечательностями потом?
4. Это неплохо, но я хотел себе на планшет оффлайн базу данных лекарств.
2. Потому что за пределами it подписки это почти единственный способ актуально узнавать новости типа хоть какие есть конференции и тд
Куча народу ими пользуется. Ясен хуй что большая часть сразу метит как прочитанные, но все равно очень даже пользуются.
3. Списком выводить по gps- удаленности от юзера
>>835641
2. Я что странно даже не видел попыток что-то такое делать, одни кошельки с платными блядь категориями и возможностью сфоткать чек
>>835639
Неплохо, спасибо. Надо завести такую же привычку. )) Есть пару идей, которые уже прикинул как реализовать. Недавно запилил пре-альфу - сравнение цен в магазинах через парсинг сайтов или прайс-листы. Вообще планирую довести все это до полноценной системы, оценивающей выгодность покупки у того или иного поставщика.
На еще че я хочу:
Генератор профилактик заболеваний
1. Составить таблицу болезней
2. Составить таблицу профилактик с категориями 1) физ упражнения 2) регулярные обследования идти анализы 3) курсы медикаментов для профилактики 4) диеты ........
3. Составить таблицы более подробные по п.2: физ упражнения с картинками поз, альтернативные медикаменты, разница в двух анализах дающих на выходе один результат - короче эдакое many to many relationship по альтернатива
4. Проверка не противоречивости рекомендаций, что бы больному с циррозом от гепатита не предлагать бокал красного вина для снижения давления
5. Галочками выбирать болезни, получать рекомендации вплоть до экспорта анализов в календарь аутлука или регулярных напоминаний / обновлений по интересовавшим болезням
6. Калькулятор что бы предлагать на основании некоторых вводных рекомендованные болячки - ну типа сидячая работа, малоподвижный образ жизни, редкий секс - бойся простатита,
7. интеграция калькулятора в п.4: жирный - значит не бегай, а крути педали что бы колени не убить и тд
Я думаю проще запилить энциклопедию
Подготовкой к олимпиаде по программированию 11 класса. Задания для меня слишком сложные или слишком легки, я не знаю что делать
Не заебывайся на сложном, оценил задачу - не видишь решения - приступай к следующей, потом вернешься.
Даже если хуево подготовился - езжай и пробуй свои силы, хоть соснешь - будешь помнить потом как неприятно всасывать и не будешь проебывать время на нюни.
Ешь, спи, дрочи поменьше - дрочуны не доводят дела до конца. ))
Спасибо
>>835671
В своё время тоже ехал на них. Если не готовился к ним ещё со средней школы, то и смысла ехать нету. Ради интереса разве. А учитывая, как бинарно выглядят для тебя задачи, и то, что это твой последний шанс (11 класс), то советую тебе лучше целиться на ЕГЭ, а не на подготовку к синтетическим задачам.
>>>835683
Просто ты сорвал джекпот в генетической лотерее
Пикрил - простая задачка, но захотелось решить как-нибудь покороче. Это нормально, или говнокол? Как можно еще укоротить решение?
<script src="http://ideone.com/e.js/2tarxE" type="text/javascript" ></script>
Спасибо.
Даю тебе доступ к репозиторию с кодом, даю пару тасков что тебе надо допилить, ты отправляешь коммиты, спрашиваешь вопросы, я тебе поясняю по харду за твой код, как лучше, за PEP8 и все такое.
Проект писался для таких же целей. Профита с него нет.
Кратко о себе. 10 лет программирую на всякой хуйне, в основном базы данных. Могу ограниченно в шарпы, жабу, обжект паскал(что коненчсо кал), и прочее такое.
То есть со мной можно говорить на одном языке.
Теперь конкретно задаю свои ответы.
Сел за Пайтон пару дней назад. Покурил маны, дошел до 6й ( по счету 7й) задачи Пайтон челенджа, стало скучно.
Решил отключить голову от загадок, и написать простецеий клиент для веб сервиса своей конторы. Чисто попрактиковаться. И... соснул со старта.
Подскажите мне, есть в этом -вашем, блядь ПИТОНЕ, адекватная сборка(модуль) для работы с SOAP(WSDL), чтобы работало сразу и без ебли?
Я конечно погуглил, но половина того, что предлагают тут https://www.python.org/ у меня попросту не ставится, половина не взлетает, видимо из-за каких то багов с совместимостью.
https://www.python.org/
На комп встало но не заработало OSA, SOAP2Py, pysimplesoap
Некоторые пекейджи pip install просто не может постаивть, т.к. у меня нет Си компайлера. (поставить его не могу, прав на это в конторе нет)
Лонг стори шорт: реквистирую модуль для работы с СОАП , реализующий ВСДЛ и не требующий СИ компайлера для установки.
Ваш SQL-кун
Зачем? Реализовать xml-rpc протокол (как сервер так и клиент) можно за 2-3 вечера под пивас. А так мануалов много, даже гуглить за тебя не буду.
Чет не хватает теоритической подготовки.
Имеешь в виду самому такой модуль написать?
А какие БАЗОВЫЕ сборки надо будет юзать?
Если у тебя не завелся suds, то это проблемы вашей анальной модерации, но никак не python.
Что ты подразумеваешь под базовыми сборками?
Теория вся описана в rfc. Можешь попробовать с virtualenv поиграться.
Дай мне)
Под базовыми сборками я понимаю то, что ставиться когда запускаешь ИнсталлПитонВин64.ехе
у меня тут питон 2.7 и питон 3.5
Кодю, соответственно, в ИДЛЕ или в ПиЧарм
Что такое СУДС вообще не знаю, сорян.
Но вообще да,у меня проблемы с анальной модерацией сети, отчасти. То есть я могу тащемта качать веши с гитхаба, пип инсталл работает
Я не могу себе ПОСТАВИТЬ на тачку сишный компайлер.
Твои проблемы, надо было профильную вышку заканчивать.
Я к тому, что это научная сфера больше, чем програмисткая
Может я всё-таки тупой и мне нахуй не нужно лезть в олимпиаду ? Здесь сложность 31% всего, а я уже полтора часа решаю
И вдогонку - взлетит ли идея на aiohttp соорудить эдакий диспатчер приложений, чтоб одним процессом обслуживать сразу дохера сайтов - асинхронщина же?
в чём проблема то? Первым шагом строишь уникальные массивы, где границы массива это первое и последнее число равное первому сектору.
Потом в цикле начиная с самого короткого проходишь все это говно по каждому массиву и доказываешь что каждое повторение цикла и есть текущий цикл. Или скипаешь эту хуйню И идешь дальше.
>лишь элегантность решения.
Как, например, конструкция for/else. Оче редко используется, а тут прям как родная зашла, аж приятно было писать.
Математику попробуй, серьезно, только не всю, дискретку например или просто задачки на логику.
Если родился тупым, то никак. У меня такое мышление было изначально. Это при том, что я гуманитарий.
http://ideone.com/zaOyVI Ты куда-то не туда смотришь.
А это чёрт его знает, от природы/с детства. Любить решать всякие головоломки, ребусы хуебы, задачи на мудрецов в шляпах и т.д. Ну и те же задачи на программирование, наверное, тоже помогают.
>>836080
И не слушай этого петуха, вопрос усердия и прокачки соответствующих навыков. Никто не хорош абсолютно во всем.
Вопрос субстрата в виде уровня развития соответствующих полей и подполей головного мозга, маня. А это врожденный фактор, который нельзя ни прокачать и ни развить.
Ты биолог дохуя? Нет. Если бы Энштейн не пошел бы в школу, а вырос в лесу, стал бы он великим ученым? Нет. Гены обуславливают стартовые условия, которые кстати можно еще и просрать, если ничего не делать.
Ну я сейчас слушаю вот это курс https://stepic.org/course/Дискретные-структуры-83/syllabus
, как заявлено автором первые два модуля освоят даже школьники, дальше хз. Я пока первый прохожу, все норм.
Да, дохуя биолог. Эйнштейн пошел в школу - круто, да. Только вот у него был аномальный головной мозг, и, грубо говоря очень простым языком, математические области были нереально большими в ущерб гуманитарным.
Но есть еще примеры. Куча Васянов, которые годами пытаются научиться кодить, но все равно ничего не получается. А все почему? А потому, что от природы тупые. Ассоциативные области головного мозга, отвечающие за логическое и абстрактное мышление, у таких людей ничтожных размеров; Даже если они положат всю свою жизнь на то, чтобы кодить, они все равно будут отставать от тех, кого биологический рандом наградил нормальным субстратом для решения задач погроммирования.
И да, я не утверждал, что данный сударь тупой, и предел его развития настолько низкий, что ему ничего не светит.
Благодарю.
как насчет choices заебенить в поле? https://docs.djangoproject.com/en/1.10/ref/models/fields/#choices
В форме поле будет отображаться как выпадающий список с 2-мя вариантами выбора и проверять ниче не надо.
Спасибо, удобная штука.
добавочный вопрос - как реализовать пользователей сайта и добавить им возможность добавлять книги, авторов, добавить личный кабинет и прочую шушару? В какую сторону смотреть?
В джанге все это есть по умолчанию. Вот отсюда можешь стартануть: https://docs.djangoproject.com/en/1.10/topics/auth/
Там внизу есть ссылки, по ним попереходи и найдешь информацию о том, как использовать стандартные auth views, расширять модель пользователя и прочее.
Профили и добавление книг/авторов, в принципе, делаются так же, как и обычные страницы с формами. Ну или из админки можно все это добавлять.
Нампи, подлец, astype(int) перевёл в numpy.int64, а не питоновский. Потому и медленее. Но у тебя список в десять раз дольше создаётся — http://ideone.com/ep2NM4
Буду завтра доделывать всё остальное
Тебя миллион конвертаций в int не смущают?
Нихуя не понятно, в чём там у тебя проблема-то? Ход по диагонали это же просто pos[0][0] +/-=n, pos[0] +/-=n. Но у тебя же вообще просто конвертируется цифробуквенная координата в индекс матрицы. Или ты хочешь проверить, разрешён ли такой ход?
тож интересно
> Тебя миллион конвертаций в int не смущают?
Это всё я буду фиксить после того как задание засчитается.
> Нихуя не понятно, в чём там у тебя проблема-то?
Попробовал сделать ход влево-вверх, но у меня проихошла хуйня (смотреть в верхнюю правую часть), поэтому нужно написать нормальную формулу
> pos[0][0] +/-=n, pos[0] +/-=n
А это сработает ? Это же относительно начала отсчета координат, а мне нужно относительно ферзя
Уебанство.
python-dev пакет накати, gcc не может хеадер найти
>>836396
> вот я пишу код, он вроде работает, но я не понимаю, почему именно
Лил, у нас так сервак на работе пашет, никто не понимает как, но умудряемся какие-то фичи добавлять даже
>>836397
flask микрофреймворк, это как бы клей для приложения. А джанго навороченная тяжелая хуита. Если нужен минимум удобностей юзай лучше bottle
>flask микрофреймворк, это как бы клей для приложения.
Какой еще нахуй клей? Фласк by design сломан, приложения с ним превращаются в дрисню, где на каждый дрист нужно дергать глобальные переменные.
Тоже так делаю, смотрю на числа и подгоняю под них код.
Да. И чтобы все это рассчитывалосьь относительно Ф
Мочарня, пора завести прикрепленный тред с сылками на конфы
В Django зато все из коробки.
Ну в подобных фреймворках своя атмосфера. Они by design заточены под однопоточное выполнение с uwsgi со своим окружением. То есть для uwsgi нудно плодить еще воркеров если понадобится.
Хочется большей модульности - есть асинхронщина.
хм. интересное ж задание.
Есть первое N. смотришь, чему оно равно.
Потом второе н2. Если н2 меньше н выполняешь каой-то код. Теперь я буду думать всё ночь. Спасибо, АНон!
клева
Через обычные циклы будешь едлать ?
Капец блять, такое простое решение
man server gateway interface
man mvc
man orm
А дальше просто посмотри примеры в репозитории. Собственно я так и делал.
Помогите с XML и Xpath. Почему выражение не находит элемент и xpath выдает пустой результат ?
Скрипт (с xml в строке):
http://ideone.com/pmn5Zg
XML в виде отдельного файла
http://pastebin.com/sxsRV8Hy
сам XML проверенный, ошибок не выдает
есть два стула
раз
nodes= tree7.xpath("//[local-name() = 'outputTree']/[local-name() = 'command']/*[local-name() = 'pivotTable' and @varName='gender']")
два
ns = {"oms": "http://www.ibm.com/software/analytics/spss/xml/oms"}
nodes= tree7.xpath("/oms:outputTree/oms:command/oms:pivotTable[@varName='gender']", namespaces = ns)
наслаждайся своими неймспейсами
Попробуй в поле ForeignKey добавить аргумент on_delete.
https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.ForeignKey.on_delete
По умолчанию - CASCADE, то есть связанные объекты удаляются. Попробуй PROTECT, который бросит эксепшн при попытке удаления или DO_NOTHING
Я не понимаю, разве просто сравнить строку с её reversed вариантом не вариант)?
я свое первое (и пока последнее) быдлоподелие на фласке писал с чистыми sql запросами к sqlite3 базе лол
желательно чтобы можно было колбеки для процессинга ответа передавать.
преобразование во float оберни в try-catch.
вместо % используй .format. всегда выводи значения через format.
если а=0, будет деление на ноль.
проверь скрипт flake8
премного благодарен
Не мог бы ты пояснить насчёт второго пункта? почему вынос через .format лучше, чем через %
> Не мог бы ты пояснить насчёт второго пункта? почему вынос через .format лучше, чем через %
Не слушай поехавшего фанатика.
Берешь и без задней мысли пишешь, попутно выучив верстку на html и css
format функциональнее, но если тебе удобнее и хватает % форматирования, то нет ничего плохого в том, чтобы использовать его.
К слову, logging модуль до сих пор использует проценты.
Вот есть у меня класс Hand (у которого есть cards и number), делаю от него дочерний класс Player (c name и points).
1) как сделать, чтобы Player унаследовал первые два?
2) как сделать, чтобы Player унаследовал только cards, а number присвоил 0
3) как сделать, чтобы Player унаследовал только number (у Player будет только number, name & points)
stackoverflow уже полчаса читаю, доков по суперу с __init__ не нашел
через супер всегда же обрабатываются все родители, не?
1. вызываешь супер инит
2. п.1 + self.number = 0
3. самое просто это del self.cards
3a. можно сделать super().__init__(cards=None) и в Hand.__init__ проверять, если cards is None, не присваивать.
Но скорее ты что-то не так проектируешь.
Можешь именно код скинуть под все три случая? пожалуйста
я даже не могу разобраться какие параметры куда прописывать
я представляю это типа:
def __init__(self, что тут?)
super(Hand, self).__init(хз что тут писать)
self.points = points
self.name = name
del self.number
Вот эти два хз меня и смущают, нигде не нашел что за что отвечает.
> Но скорее ты что-то не так проектируешь.
там все кроме первого вопроса - для вообще понимания возможностей такого подхода
> def __init__(self, что тут?)
Какие аргументы класс принимает, те и пиши.
> super(Hand, self).__init(хз что тут писать)
Тут наверное super(Player, self) ты хотел написать, можешь вообще просто super() использовать в 3 питоне.
Что писать? То, чем хочешь инициализировать родительский класс.
class Hand:
. . def __init__(self, number, cards=54):
. . . . super().__init__()
. . . . self.cards = cards
. . . . self.number = number
class Player(Hand):
. . def __init__(self, name, number, points=10):
. . . . super().__init__(number)
. . . . del self.cards
. . . . self.name = name
. . . . self.number = number
. . . . self.points = points
player = Player('anon', 1, 5)
Это старые доки, они передумали выпиливать.
https://docs.python.org/3/tutorial/inputoutput.html#old-string-formatting
Сделай обёртку над __getattr__, хуле ты как калека? может и либа, конечно, есть, но идея реста, чтобы использовать хттп и следовательно либы для хттп. иначе бы сделали новый протокол без лишнего говна
Покажи, как ты сейчас дергаешь апи на паре примеров.
Потом покажи, как тебе хотелось бы дергать.
Тому шо виндопогромистам не нужен пайтон, у них своего говна навалом
А че тебе не так на винде? Хуярю с пайчарма на винде, все норм.
Каким раком? Что тебе не нравится?
Стандартное решение это пройтись до середины строки с обоих концов, сравнивая символы по пути.
Т.е. :
1) в def __init__(self, name, number, points=10) я прописываю ВСЕ атрибуты, которые нужны новому классу?
2) а в super().__init__(number) - то, что берется из родительского? Но зачем тогда del self.cards?
3) > super().__init__()
я правильно понимаю, что это просто запустит весь код init родителя, т.е. создаст self.number и self.cards или выполнит что-то еще (при наличии)?
что тогда дает указание атрибутов типа super().__init__(number)?
при выполнении self.deck.deal(self.players, 1) выдает
AttributeError: 'list' object has no attribute 'deck'
хотя сам deck - объект с методом deal
В самом шелле вручную то же самое вбиваю - отлично все работает, карты сдаются, очки считаются и т.д.
http://pastebin.com/SdE2n9zm - сам код
http://pastebin.com/wwQV0dbJ - оба модуля для него
Это вообще не ошибка.
1. Да.
2. У cards есть значение по умолчанию (54), поэтому его не нужно было указывать. Когда ты вызываешь инит родительского класса, то он исполняется, в данном случае родитель присваивает объекту number и cards, но ты не хотел карты у игрока, поэтому и del self.cards.
3. Правильно. Указание аргументов необходимо потому, что родитель требует этого.
Представь себе, что ты просто создаешь новый объект класса Hand. В данном примере, Hand требует от тебя указать number и по желанию cards при создании.
Пайтон как раз таки нужен, в отличии от телеграма.
Надо мной как будто гильотина, которая скоро упадёт :(
Задача
Моя реализация - http://pastebin.com/ADWJg0tq
Считает 100 лет, как ускорить? Вообще нет идей
Точнее вообще не могу результата дождаться, видимо это надо писать на сях...
Ну да, это сигма то-есть сумма элементов в некотором диапазоне. Допустим ∑ x при x принадлежит от 1 до 10 значит просто сумма всех чисел от 1 до 10
Умничка. Тогда у тебя все будет хорошо. А я вот неудачник, который лучше только своей собаки, но тоже превозмогаю.
Нужно найти число минимальных факториалов которые разделятся без остатка , на каждый элемент от 600 000 000 до 610 000 000, (если такой факториал есть.
То есть нужно найти факториал, которые без остатка делится на каждое число от 600 млн до 610 млн ?
Сколько таких фактоиралов нужно найти ? Сколько можно, но ведь они будут очень долго считаться же ?
В том-то и дело, нужно найти для каждого числа такой факториал (минимальный), который разделится на это число без остатка, при этом не указаны границы, я выставил не более 500, уже час считает лол. Для небольших цифр быстро находит, наверняка есть изящное решение.
Позже попробую
Элементарно жи: http://ideone.com/SJZ9dk
max_saw_op — более примитивный и топорный вариант, который просто выбирает нужный начальный оператор (больше или меньше) и при каждом "верном" сравнении меняет его на другой. Скорее всего, не самым эффективным способом, зато в одну строку.
>>837502
Не, нихуя не понял. Нужно найти факториал, которые делится без остатка на все эти числа или нужно найти ? Нужно найти несколько таких факториалов ? А что за магические символы в условии тогда ?
Для каждого числа нужно найти факториал, который делится на него без остатка и потом все факториалы эти сложить и вывести сумму. Короче я хуй забил уже.
Это разные факториалы
Ну да, похоже, я просто раздробил на отдельные функции.
Ой, точно
http://ideone.com/g6Wn5O
Запускал на pypy с установленным sympy, считалось минут 7-8 для значений 570000000, 580000000.
На сложности элементари была задача про булеву алгебру, теперь её нет, что за хуйня.
>В общем случае, значение функции s(n) равно наименьшему числу m, такому что m! без остатка делится на n.
Если я правильно понял задачу, то очень просто.
Возьми напиши функцию, которая раскладывает факториал на множители (это очень быстрая операция для факториала). Далее разложи твой n на множители (уже не факториальное разложение) и найди первое m!, которое включает в себя n множители.
Это в первом приближении. Тут есть много вариантов оптимизации.
Добавлю, что начинать поиск m нужно с наибольшего простого числа из n.
Вот тебе еще одна мысль.
Создай список с разложением факториалов на множители. Т.е. это будет список списков с числами.
Каждый следующий факториал - это просто предыдущий с добавленными туда сомножетилями следующего m.
Тебе понадобится либа для факторизации.
Далее, когда тебе нужно вычислить s(n), то ты делаешь следующие:
1. Факторизуешь n
2. Делаешь проход по списку и первый entry, который у тебя включает факторизированное n и будет нужное m
Далее суммируешь эмы.
Опять же есть простор для оптимизации. Плюс тут нужно решить memory-speed tradeoff.
Вангую, что тут есть хитрое математическое решение, которое можно получить если знать предметную область.
Но ты всего вышеприведенного сделать не сможешь, т.к. ты тупой школьник, который даже опыта написания кода толком не имеет.
Я нагуглил где ты эту задачу взял
https://school.hh.ru/
Следует заметить, что для факториала достаточно взять максимальное число p m, где p простой множитель и m его степень в разложении, тогда все остальные множители будут уже включены.
Или не совсем степень. Например 8, которое 2^3, для него факториалом будет 4, а не 6 = 2 3, из-за того, в 4! уже имеются все искомые 3 двойки, 2 и 4 = 2 * 2, то есть нужно искать это число, а не степень.
Но все равно это долго для больших чисел,
C числами от 0 до 10м вычисляется за 10 минут на сpython, с числами от 570м до 580м около часа. Я не знаю, может быть если построить какое-нибудь дерево для чисел меньше некоторого N и не вычислять разложение для 570000000 + k каждый раз с нуля, то можно будет сократить время до 10 минут.
Первый параграф нехуя не понял.
> и первый entry, который у тебя включает факторизированное n и будет нужное m
Индекс первого entry, конечно. Разумеется у список отсортирован по возрастающему.
Вот так я сконвертил слова в коды символов:
https://ideone.com/hX3A15
а вот как отсортировать этот список и потом chr'нуть их обратно я не понимаю.
>а вот как сортировать строки по лексикографическому порядку я не знаю.
google: lexicographical order
Так и делается. Причем не только строки, а вообще любые контейнеры, насколько я понимаю.
открываю проджект - папка рандомных скриптов вперемешку с баш костылями, куча глобальных переменных, роуты в декораторах
ну хуйня, думаю, лох какой-то писал, открываю фласковики по структуре проектов, и тут-то меня ждет кекус-максимус:
> Here’s an example __init__.py:
>
> from flask import Flask
> app = Flask(__name__)
>
> import yourapplication.views
фласкодебилы, вы там совсем ебанулись?, кто в здравом уме будет советовать это говно?
Ты познал суть, молодец. Теперь можешь переходить на следующий уровень.
Не очень понял.
>
>Сайты на flask хуёво делать, анон говорил что на нём хорошо api'шки делать.
А можно более конкретно. Хочу вкатиться в это дело.
Чем плох фласк и хорош? На чем лучше всего делать сайты?
схуя там .0 получается понимаю там с плавающей точной в js пиздец, но тут целые числа складываются. Мне что теперь при любой проверке на int число насильно в целое превращать?
>9600 + 8440
C:\Python27\python.exe C:/Users/apavlov/PycharmProjects/PySaHelper/Main.py
18040
Process finished with exit code 0
Ну ты код-то может покажешь? Флоат у тебя, очевидно, получается ещё при подсчёте суммы выигрыша.
питан 3,5
LINK : fatal error LNK1181: cannot open input file 'glew32.lib'
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\
BIN\\x86_amd64\\link.exe' failed with exit status 1181
Ебаный рот, ну у меня же лежит glew32.lib в C:\Windows\System32
Что делать то, котаны?
http://pastebin.com/32i9Q51i
там флоат еще в банкролле виден
при создании он равен 0, изменяется кодом:
for player in self.players:
player.make_stake()
self.bankroll += player.stake
def make_stake(self):
self.stake = games.ask_number("\n" + self.name + ", what's your stake? (1 - %s): " % self.money, 1, (self.money + 1))
self.stake = round(self.stake)
self.money -= self.stake
попробовал округлить ставку - все равно общая сумма флоатом получается
> ну напиши ты int() для своего результата, и успокойся
это и будет мартыхо-подходом, ты мне причину скажи
На. https://docs.python.org/3/library/functions.html?highlight=round#round
Если ты с инатми оперируешь, то что ты там округляешь-то, блин?
> self.bankroll / len(winners)
при делении двух целых оно мне выдает флоат, даже если получается целое
Только вот херня, попытался портировать свой микро веб-скрппер, хотел обойтись без lxml, потому как её надо ставить отдельно. В итоге - столько говна глотнул.
На стековерфлоу хуй различишь о какой версии вопрос.
Python2 ебёт мозги с utf8, python3 не имеет иструментов для веб парсинга.
Нахуй так жить?
Что почитать, чтобы перестать соасть хуй?
А может нахуй вообще этот ваш python?
>python3 не имеет иструментов для веб парсинга
Это скорее "я лох и не умею найти нужные инструменты"
https://docs.python.org/3/library/html.parser.html
>python3 не имеет иструментов для веб парсинга.
Погодь, погодь, но ведь beautiful soup на третьем питоне пашет. В чем проблема?
>хотел обойтись без lxml
Нахуя? libxml в любом дистре легко ставится, я даже в слаке на память скажу, как эту либу установить. А биндинг под неё есть и на 3 питоне с момента релиза.
>Он имеет много функционала, которым хакеры тебя похакают.
Добавлю.
На youtube видео посмотри по этому поводу. Очень распространенная ошибка использовать такой умный инструмент. Причем не только в питоне этим грешат, а еще и в java мире.
>требует, что ему дали корректный html
Именно, или надо фиксить на ходу.
За
>defuzedxml
Спасибо.
Уже на xpath всё сделано.
пывтаюсь сделать кнопку в КИВИ , но не просто так, а чтоб можной было к ней обращаться
Как из примера работает
class MainApp(GridLayout):
..def __init__(self, kwargs):
....super(MainApp, self).__init__(kwargs)
....self.add_widget(Button(text='Hello'))
Я хочу сделать как то так
class MainApp(GridLayout):
..myButton = Button()
..def __init__(self, kwargs):
....myButton.draw()
но так не получается, дроу, это само собой псеводокод. Суть в том, что я не вижу методов прорисовать эту ебаную кнопку если она объявлена как поле класса
еслип писать
self.add_widget(self.myButton)
оно истерит что нельзя присваивтаь виджет самому себе
Аноны, что делать?
пывтаюсь сделать кнопку в КИВИ , но не просто так, а чтоб можной было к ней обращаться
Как из примера работает
class MainApp(GridLayout):
..def __init__(self, kwargs):
....super(MainApp, self).__init__(kwargs)
....self.add_widget(Button(text='Hello'))
Я хочу сделать как то так
class MainApp(GridLayout):
..myButton = Button()
..def __init__(self, kwargs):
....myButton.draw()
но так не получается, дроу, это само собой псеводокод. Суть в том, что я не вижу методов прорисовать эту ебаную кнопку если она объявлена как поле класса
еслип писать
self.add_widget(self.myButton)
оно истерит что нельзя присваивтаь виджет самому себе
Аноны, что делать?
Я хочу сделать логгер, который будет использоваться таким образом:
Перед функцией ставится декоратор
@logger(name="qwer", severity=2, color="yellow", out="qwer.log")
def f(x, y, z...):
body
Далее уже в самой функции, когда я хочу отправить сообщение в лог:
dprint("message")
Вопрос тут в том, как из dprint узнать, какой в данный момент logger я должен использовать (имя, файл, цвет etc).
Склоняюсь к варианту, что использовать интроспекцию и смотреть стек.
thx
Явно объявить эти параметры атрибутами класса или объекта не хочешь?
>
>Тогда осваивай брейнфак.
Я видел, что что-то такое есть в фласке, но не копал, как это сделано. Если тут не помогут, то, конечно, посмотрю через некоторое время, но хотелось бы получить быстрый ответ.
>какой в данный момент logger
А может иметь один логгер и изменять его параметры? Просто декораторы они как бы не так работают же.
тотальный говнокод - http://ideone.com/LSZQkE
В декораторе должен быть не выбор логгера, а просто смена параметров одного единственного, тем более, что имея столько параметров, нужно клепать несколько десятков их.
>А может иметь один логгер и изменять его параметры?
Не, не годится. Вообще, ты должен бы понять, что это паттерн.
>В декораторе должен быть не выбор логгера, а просто смена параметров одного единственного, тем более, что имея столько параметров, нужно клепать несколько десятков их.
Я допускаю, что в начале проги создаются несколько логгеров, а далее в декораторе можно указать логгер в качестве параметра. Далее dprint будет писать в него.
Задача все таже.
Ну тогда вот примерно мой код и используй, навреное, если никто его не обоссыт.
>Вообще, ты должен бы понять, что это паттерн.
?
>Ну тогда вот примерно мой код и используй, навреное, если никто его не обоссыт.
Интересная фишка с глобалом. Насколько я понимаю, global просто указывает, что надо искать переменную выше по стеку?
>global просто указывает, что надо искать переменную выше по стеку?
Нет, искать он и так будет доходя до глобала, при использовании (как словарь loggers), указание на global нужно, чтобы он не создавал локальную dprint на 14-ой строке. Если убрать global, он увидит в коде функции dprint = ... и станет ругаться на то, что "local variable 'dprint' referenced before assigned", на строке 13 (prev_dprint = dprint).
Просто тут тебе либо функцию dprint писать так, чтобы она перед логгированием сообщения проверяла какую-то переменную, которую твой декоратор изменяет, либо просто переопределять сам идентификатор 'dprint' как у меня сделано. Других вариантов лично я не вижу/не знаю.
А если в стеке будет несколько global-переменных идущих следом, то как это будет работать? Спрашиваю вообще, а не в случае с логгером.
И спасибо за примемчик.
>Не надо использовать lxml. Он имеет много функционала, которым хакеры тебя похакают
Скинь видос, не гуглится.
>Скинь видос, не гуглится.
К сожалению не записал адрес. Видос у меня есть, но он на другом винте.
Помню, что это было видео с какой-то конференции по питону. Еще помню, что автор там из Новой Зеландии.
>А если в стеке будет несколько global-переменных идущих следом,
В смысле несколько? Не может быть несколько глобальных с одним именем же. Он остановится на первой найденной — http://ideone.com/Psb2zT
Или ты имеешь в виду просто код "global a, b, c, d"?
>Он остановится на первой найденной
Ок.
>Или ты имеешь в виду просто код "global a, b, c, d"?
Нет.
---
Перекат делать будем?
Важно ещё, что на первой найденной относительно места объявления функции, а не вызова — http://ideone.com/GhJnOi
>Важно ещё, что на первой найденной относительно места объявления функции, а не вызова
Век живи - век учись.
http://www.pythonchallenge.com/pc/def/equality.html
У меня получился такой код:
http://pastebin.com/yGJA4PnY
Находит то что нужно, но что-то на ответ это не похоже.
Пробовал и с условием, что первые три - одинаковые, тоже не подходит
Да, там 7 and в одном условии, но я не знаю как это сделать элегантней
Есть варианты?
Если не трудно:
1) как можно такое условие короче сделать? Т.е. сразу сравнить три первых элемента. x[1,2,3].isupper() - не подходит, этож новый лист получится
2) в питоне можно один аргумент сразу на 2+ условий проверить, например: if a > 0 and < 3 ?
мусорка из символов для покопаться - в коде самой странице если что
Не понял задания. Что сделать-то нужно? И что во входном файле? И как ты узнаешь правильный ответ или нет? И что это за хуйня вообще?
Вообще - загадки. Можешь начать с главной - там все написано. Суть: на странице есть загадка, чтобы ее отгадать - нужно что-то сделать, применяя навыки программирования (необязательно на питоне). Ответ вставляешь в адресную строку, если правильный - попадаешь на след задание.
В предыдущем задании в исходном коде страницы был кусок текста (мешанина из символов), из которого нужно было сделать осознанный текст, убрав все кроме букв.
>1.
all([x.isupper() for x in y])
>x[1,2,3].isupper() - не подходит, этож новый лист получится
x[1,2,3] это вообще что должно быть?
>2
if 0 < a < 3. Внутренне питон это сам раскрывает до if 0 < a and a < 3.
http://ideone.com/5VY3YG Ну, при условии, что такая последовательность там одна.
> all([x.isupper() for x in y])
а в [x.isupper() for x in y] жирным что такое?
Задача(насколько я понял): нужно найти прописные буквы, которые окружены тремя СТРОЧНЫМИ
блдж, может там нужно не больше трех? щас попробую
Т.е. я хочу проверить первую буквы и сразу 2 ее соседа на строчность
> x[1,2,3] это вообще что должно быть?
1,2,3 - элементы х
> if 0 < a < 3
неудачный пример выбрал, можно ли проверить a > 0 и a! = 3?
> блдж, может там нужно не больше трех?
помогло, но
> if letter.isupper() and file[(idx+1)].isupper() and file[(idx+2)].isupper() and file[(idx+4)].isupper() and file[(idx+5)].isupper() and file[(idx+6)].isupper() and file[(idx+3)].islower() and file[(idx-1)].islower() and file[(idx+7)].islower()
кажется костылем каким-то
>а в [x.isupper() for x in y] жирным что такое?
for i in range(10) знаешь что такое? То же самое.
[x for x in range(5)] == [0, 1, 2, 3, 4]
>нужно найти прописные буквы, которые окружены тремя СТРОЧНЫМИ
Да. Там их несколько таких последовательностей, в итоге слово составляется.
>Т.е. я хочу проверить первую буквы и сразу 2 ее соседа на строчность
isupper() применяется к элементу. Как применить его к нескольким элементам сразу я уже показал.
>можно ли проверить a > 0 и a! = 3?
Ээ, if a > 0 and a != 3?
Спойлер решения двумя нечитаемыми однострочниками (list comprehension'ы и regex): https://repl.it/DY97
а, не, однострочник только с регэкспом, другой вариант же всё равно требует создагния seq и bitstr. Ну, две строки.
>помогло, но
не "не больше", а ровно три же. Потому я у себя и сделал последовательность из 9, а не 7 символов.
>кажется костылем каким-то
Ну, формально от этого никуда не денешься, тебе нужно проверят регистр символов, просто это всё красивше можно сделать.
Спасибо, завтра попробую разобраться что там у тебя я в питоне вообще 3ю неделю, о bitstr, all и тд только сегодня услышал
>>838583
да, я чот заглавные строчными называл
Вы видите копию треда, сохраненную 22 сентября 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.