Программирование


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
510 60 146

Python /python/ Аноним 27/07/19 Суб 03:06:20 14432451
1.jpg (1823Кб, 1800x839)
1800x839
2.jpg (1989Кб, 1619x2024)
1619x2024
3.png (130Кб, 512x362)
512x362
Продолжаем обсуждать самый лучший язык программирования

ЧАВО: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat - с этого начинать, перед тем как задавать вопросы Анон, ты конечно сразу станешь спрашивать, но для приличия хоть открой ссылку какую-нибудь

Книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Ещё книжек? https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек Богу книжек! https://yadi.sk/d/H-00n-UG3RSQem

Предыдущий: >>1430914 (OP)
Аноним 27/07/19 Суб 07:36:21 14432732
Первыйнах
Аноним 27/07/19 Суб 09:41:13 14432853
>>1443245 (OP)
говноязык.

Особенно в сравнении со swift OR elixir.
Аноним 27/07/19 Суб 10:26:56 14432954
Работал кто с django_channels? Помогите нюфагу, я уже замучался.
Короче, есть такой URLRouter

URLRouter([
path('device/<device_name>',IndicatorConsumer),
path('add',IndicatorConsumer),
path('', IndicatorConsumer)
])

И такая функция в консьюмерах:

async def websocket_connect(self,event):
print('connection succefull ', event)
await self.send({
'type': 'websocket.accept'
})
self.device_id = self.get_device_id(self.scope['url_route']['kwargs']['device_name'])

Суть в том, что scope['url_route']['kwargs']['device_name']) должна получать имя девайса, только на страницах device/device_name. Но эта хуйня ищет device_name на любой из страниц, которая есть в URLRouter, и если не находит, то закрывает сокет. А она не находит.
В документации вроде четко написано что делается так, но у меня не выходит
Аноним 27/07/19 Суб 12:15:56 14433185
Репост из предыдущего

Суп питонач. Вкатываюсь в Django Channels и Celery. Сколько времени понадобится на освоение этих вещей?

Влез в Channels, и блядь статьи даже на русском хуй понятны. Новая терминология. Я до этого ни с асинхронщиной, ни с сокетами не работал. Ну хуй с ним накатил на проект, сделал уведомления через сокеты, но то что я использовал это 2% от всех возможностей Channels'ов.

Полез дальше в Celery, пока только накатил на проект ещё не разбирался, но ебать их страничка настроек в доках занимает наверное листов 20 А4 формата.

В общем посоветуйте статей\книжек на русском и английском языках чтобы прям по пальцам и терминология и основные концепции. Буду премного благодарен.
Аноним 27/07/19 Суб 14:13:15 14433926
Что лучше для построение нейросети для распознания текста, цифр в частности?

scikit learn
tensorflow
keras?
Аноним 27/07/19 Суб 14:13:55 14433947
image.png (12Кб, 551x218)
551x218
image.png (32Кб, 742x246)
742x246
>>1443245 (OP)
Помогите разобраться. Только начал изучать python 2.7, изучаю классы и хочу сделать связный список. На первом пике образец с сайта, на втором то что у меня. В чём проблема?
Аноним 27/07/19 Суб 14:24:28 14433988
>>1443392
Тензерфлоу и прочие керасы - это уже прошлый век. Сейчас в основном используют градиентный бустинг или опорные вектора для распознавания изображений.
Аноним 27/07/19 Суб 14:26:43 14434009
>>1443394
1. Учи пистон 3
2, Покажи/дай полную ссылку на пример.

>>1443392
Скит-лерн это больше для обучения и вката, серьёзную нейронку не построишь на ней(на сколько я знаю).
Остальные два пункта подходят для твоих целей.

>>1443318
По каналам ничего не подскажу. Так их и не начал учить, хах.
По Celery обычно хватает доков. Я начинал с простого запуска тасок и мониторинга их. И только после этого привязку к джанге делал. И тебе советую, абстрагироваться от джанги и тыкать просто в Celery.

Аноним 27/07/19 Суб 14:28:48 144340210
Аноним 27/07/19 Суб 14:35:44 144340311
image.png (25Кб, 324x365)
324x365
>>1443402
А где ты там list(node1) увидел?
Если делать как по примеру - всё ок.
Аноним 27/07/19 Суб 14:47:54 144340712
Screenshot 2019[...].png (36Кб, 1362x98)
1362x98
При запуске jupyter notebook есть эта ошибка.
Все работает. Но меня смущает эта ошибка. Нагуглить что-то внятное не могу.
Кто знает, что это такое?
Аноним 27/07/19 Суб 14:59:13 144341213
>>1443394
Я начал учить питон году в 2009-10, сразу с третьего. Потом правда пришлось перекатываться на второй, такой на работе был, но там питон не основной был, и вообще очень долго сообщество перекатывалось.

Это было 10 лет назад. Но в 2019 писать на втором питоне? Ну как бы очень плохая идея. Учи третий и забудь второй как страшный сон. В третьем масса технологий, которые принципиально отсутствуют. Перекат на 3 питон уже окончательно произошёл.

1) не используй next для имён самостоятельных переменных. Это зарезервированное слово, встроенная функция питона.

2) не очень понятно, что ты пытаешься сделать. Когда ты пишешь list(node1), ты пытаешься создать список, но для этого объект должен быть итерируемым. Ты можешь реализовать свой итератор, но несколько сложнее, надо реализовывать методы __iter__, __next__. Отложи это пока.

В примере слева не делают итератор с точки зрения питона, там демонстрация именно связанного списка как алгоритмической структуры. Ты должен передать свой node1 в эту функцию print_list, и по идее, она напечатает то, что ты хочешь.
Аноним 27/07/19 Суб 15:00:55 144341314
>>1443412
>которые принципиально отсутствуют
которые принципиально отсутствуют во втором
Аноним 27/07/19 Суб 15:08:29 144341415
>>1443318
Про Channels не скажу, не осваивал, по описанию в документации и по тому, как комментируют, не нравятся. Нет ощущения полноценной интеграции с джанго.

>>1443318
>Я до этого ни с асинхронщиной, ни с сокетами не работал.
Вот лучше с этими технологиями разобраться независимо, понять, как это работает. Они просты и очевидны, когда их нормально поймёшь, но сложны, пока начинаешь. Асинхронность заметно сложнее, особенно если раньше с подобными технологиями не работал. Но реально лучше с простейших консольных программ начать.
Аноним 27/07/19 Суб 15:18:45 144341616
>>1443295
Ничего не понимаю в channels, но поведение примерно ожидаемое. У тебя ведь один общий обработчик для трёх видов путей. Если в пути не было device_name, то и в обработчике его не будет, может где-нибудь возникнуть ошибка обработки и исключение из-за обращения к неопределённому элементу словаря и т.п.

Может я не прав, так как не изучал channels и не понимаю, как они работают.
Аноним 27/07/19 Суб 16:18:33 144344217
image.png (57Кб, 962x495)
962x495
Посоны, а как понимать алгоритмы?
Сижу над задачей час, посмотрел решение, оно там в одну строчку.
Как? Можно ли как то повысить уровень знания построения алгоритмов?
Аноним 27/07/19 Суб 16:23:00 144344718
>>1443403
>>1443412
Установил 3 питон, написал всё верно ошибки не выдаёт, но выводит не числа. Опять же не пойму почему.
Аноним 27/07/19 Суб 16:23:27 144344819
image.png (38Кб, 583x610)
583x610
Аноним 27/07/19 Суб 16:30:05 144345220
>>1443448
У тебя функция печатает сам объект, это некоторая структура. Ты должен печатать не print(node), a print(node.login)
Аноним 27/07/19 Суб 16:31:56 144345321
thinking-face1f[...].png (12Кб, 160x160)
160x160
Работаю уже на второй работе по Питону, рассматриваю вариант перехода на третью. Решил в фоновом режиме подтянуть всякие скилы, в том числе теорию. Открываю статью про SOLID, вроде все любопытно, но тут же осознаю, что, например, сериализаторы в Django Rest Framework это нефига не S. И как с этим жить? Решил почитать про ПАТТЕРНЫ, и тоже как-то все не заходит...

Сложилось ощущение, что это все не про программирование вообще, а про программировании на джаве какой-то. Думаю теперь, надо ли мне для профессионального роста в это погружаться или лучше про кубернетисы почитать.
Аноним 27/07/19 Суб 16:38:43 144345522
>>1443452
Точно. Спасибо большое
Аноним 27/07/19 Суб 16:40:28 144345623
>>1443453
> про кубернетисы почитать
This
Аноним 27/07/19 Суб 17:48:02 144349924
Vge1UW1FFZE.jpg (45Кб, 540x960)
540x960
>>1443448
>светлая версия pycharm'a

Аноним 27/07/19 Суб 17:54:45 144350625
Есть смысл заморачиваться с платной версие пайчарма для зеленого работяги в самом начале пути? Или бесплатная версия более чем достаточна?
Аноним 27/07/19 Суб 18:05:46 144351326
>>1443506
Более чем достаточно. Я б даже посоветовал Atom или VSCode, они легче и лучше подходят для простых вещей
Аноним 27/07/19 Суб 18:33:03 144352227
Ануня, в файле запускаю скрипт, он исполняет код находящийся в другом файле. Как мне поймать ошибки возникающие в функции вызываемой из второго файла?
Аноним 27/07/19 Суб 19:01:20 144353628
>>1443442
Здесь и алгоритма как такового серьёзного нет - просто выводится зависимость искомой длины шнурка от a, b, l и N согласно условию задачи.
Аноним 27/07/19 Суб 19:35:26 144354529
>>1443506
Зеленому и бесплатная оверхед
Аноним 27/07/19 Суб 19:45:30 144355130
>>1443506
Нахуя тебе пичарм, если ты вкатывальщик зеленый? Просто нахуя, vscode подойдет, да даже блокнот обычный да даже вим, но для тебя ето геморрой будет.
Аноним 27/07/19 Суб 20:12:59 144356131
>>1443245 (OP)
Аноны, такая проблема, может кто сталкивался: поставил линукс, пайчарм, сначала вроде норм работало, но после перезапуска открываю её, открывается автоматом проект, делает update skeletons /usr/bin/python3. 7 или как-то так, и где-то на пятой части этого апдейта система зависает намертво.
Причём это точно не память кончается, я отслеживаю её.
Аноним 27/07/19 Суб 21:03:39 144359132
>>1443561
Я понял, что как только что-то взаимодействует напрямую с системным интерпретатором то всё сразу же ложится нахуй. С интерпретатором venv всё работает хорошо(вроде). Как это пофиксить? На винде делал всё через системный
Аноним 27/07/19 Суб 23:37:54 144364433
Безымянный.png (8Кб, 880x600)
880x600
Есть картинки (черный квадрат) на которой могут быть разные объекты с произвольным смещением.

Задача кропать изображение по границе объекта.


Объект не явный, классифицировать сложно, но размер его +- один и тот же поэтому по сути нужна только левая верхняя точка. Какие есть способы его определить?
Аноним 28/07/19 Вск 00:11:46 144365834
Как вкатиться в питон? Что посоветуете для новичка?
Аноним 28/07/19 Вск 00:24:29 144366135
>>1443658
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
Аноним 28/07/19 Вск 01:07:35 144366536
>>1443661
> Tornado или Gevent

Это блять какого года паста? 2009?
Аноним 28/07/19 Вск 01:25:54 144366937
pasta1.png (68Кб, 702x533)
702x533
pasta2.png (75Кб, 1107x298)
1107x298
Аноним 28/07/19 Вск 01:28:08 144367138
Таки смог скомпилить питон+киви в апк. Ггвп. Теперь точно в жабу не уйду. Удачи всем кто старвается
Аноним 28/07/19 Вск 13:16:52 144382239
Доброго дня, аноны.
На связи инженер-программист с опытом в ~5 лет.
Был и есть макакой на JS, PHP, NodeJS. Хочу стать настоящим макакой на python.
Как считаете, сложно будет перейти? Может кто-то испытывал такой опыт? Концепции-то похожи будут? В какую сторону копать и что изучать лучше?
Аноним 28/07/19 Вск 13:47:46 144384440
>>1443245 (OP)
Ищу кого-нибудь для общения вокруг программирования и матана, обмена ссылками и книгами, а так же для парного программирования.
Мои языки C, Python. Считаю что программист из меня так себе.
Сферы интересов: Теория игр, теория принятия решений, Управление и оптимизация, многокритериальное принятие решений, Марковские модели, конечные автоматы, теория графов, теория вероятностей, статистические методы, имитационное моделирование, ии и коллективное поведение и проч.
korbelan@mail.ru
Аноним 28/07/19 Вск 15:45:47 144395041
image.png (213Кб, 648x533)
648x533
image.png (127Кб, 873x426)
873x426
image.png (52Кб, 671x619)
671x619
>>1443245 (OP)
Аноны, подскажите раку. Вроде как смог создать связный список из объектов класса с одним аргументом, но как сделать 2 и более аргументов? На первых двух пиках для одного аргумента. На третьем попытка сделать для двух.
Аноним 28/07/19 Вск 15:57:47 144395842
>>1443658
Почитай ОП пост, а вообще я б советовал пройти базовый курс на Курсере или Питонтьюторе и дальше решать задачки
Аноним 28/07/19 Вск 16:09:50 144396543
>>1443950
У тебя ошибки в 16 и 19 строках.
Что там запятая значит? Ты явно хотел что-то другое, но для питона запятая это способ записи типа данных tuple.

Вообще, вывод лучше иначе форматировать, специальными средствами.
Или как
out = "[%s, %s " % (current.login, current.password)
или
out = "[{}{} ".format(current.login, current.password),
или
f"[{current.login}, {current.password}"
последний только для питона 3.6 и новее.
Аноним 28/07/19 Вск 16:16:10 144396644
изображение.png (8Кб, 975x111)
975x111
>>1443950
Можешь передавать словарь из аргументов в конструктор списка, или через args. В операторе __str__, можно сделать вывод через генератор. хз не стал доделывать
Аноним 28/07/19 Вск 16:24:37 144397545
>>1443965
Не, формат не подойдет, а если он захочет добавить поле для вывода ? Придется менять формат.
Аноним 28/07/19 Вск 16:37:42 144397846
image.png (35Кб, 602x548)
602x548
>>1443965
Точно. Дело в запятой было, спасибо
Аноним 28/07/19 Вск 16:38:29 144398047
>>1443966
Хорошо, попробую и так сделать. Спасибо
Аноним 28/07/19 Вск 16:41:28 144398448
>>1443950
Я бы вообще строки 14-19 переписал иначе. Тут дублирование сплошное, можно всё тоже самое проще записать

out = []
current = self.first
while current != None:
out.append("{}{}".format(current.login, current.password))
current = current.next
return "[{}]".format(" ".join(out))

ПОМОГИТЕ МНЕ 10 ЛЕТ! ВАСЯ 28/07/19 Вск 17:34:53 144402149
z = "zerg"
p = 'Protos'
t = 'Terrain'
x = True
while x:
selected_character = input()
if selected_character == p:
print('prosdoasodosaod')
x = False
elif selected_character == z:
print('asdasdasdasd')
x = False
elif selected_character == t:
print('sadsdasdasd')
x = False
else:
print('trya gagimn')
print(selected_character)
Я УЧУ ПИТОН УЖЕ 2 ЧАСА! ДА Я ДУРАЧОК!. ВООТ ВОПРОСИК!
Я ХОЧУ ЧТОБЫ ЕСЛИ ОТВЕТ НЕ БУДЕТ ТАКОЙ КАК В ЭТИХ ПЕРЕМЕНЫХ МЕНЯ ЦИКЛ ВОЗРАЩАЛ К ИНПУТУ! КАК В ИГРЕ УГАДАЙ ЧИСЛО !
ВАСЯ 28/07/19 Вск 17:43:10 144402650
Аноним 28/07/19 Вск 18:04:01 144403651
При поиске картинки в картинке лучше использовать на столько маленькое изображение на сколько это возможно или чем больше деталей в темплейте тем лучше?

Как влияет на скорость рост размера?
Аноним 28/07/19 Вск 20:10:56 144407652
А что там из нового для освоения питона? если для джанго это джанго 2 с примерами. То для вката кроме давйпитона нет ничего?
Аноним 28/07/19 Вск 20:21:18 144408153
>>1444076
Есть база, общая для всех. Есть конкретные направления, они часто про технологии в целом, чем про питон. Уже зависит от того, что конкретно тебе надо.
Аноним 28/07/19 Вск 20:27:14 144408254
fotonoexif.jpg (12Кб, 828x77)
828x77
Аноны, привет. Читаю python crash course eric matthes (2019) и немного проблемы с переводом/пониманием. Правильно ли понял и выполнил ли я задание? Подсобите, плиз.

multipleList = [value*3 for value in range(3,31,3)]
print(multipleList)
Аноним 28/07/19 Вск 20:45:37 144408755
>>1444081
Да мне бы прочитать примитивным языком про разные модулю и про правильность организации программы. Вообще конечно все в доках можно прочиттать
Аноним 28/07/19 Вск 21:18:31 144410256
изображение.png (27Кб, 1232x132)
1232x132
изображение.png (54Кб, 821x360)
821x360
http://ideone.com/vbgT4j
base.html

url второй скрин

Помогите... уже менял абсолютный url в href, все равно вместо url на основе slug - выбивает эту ошибку

код из учебника


Аноним 28/07/19 Вск 21:27:20 144410657
>>1444082
Вроде нужны кратные трём в промежутке от 3 до 30. Убери множитель у value.
Аноним 28/07/19 Вск 21:47:48 144411058
>>1444076

Есть ещё книга Fuent Python (наши дубляторы-надмозги перевели как "Python. К вершинам мастерства"), она покрывает язык практически полностью, но для начинающего не подойдет. Единственное, насколько я помню, там используется старый синтаксис для корутин, поэтому глава про асинхронность немного устарела. По этой теме можешь посмотреть https://www.youtube.com/playlist?list=PLlWXhlUMyooawilqK4lPXRvxtbYiw34S8 и доклады David Beazly.
Аноним 28/07/19 Вск 21:55:55 144411259
>>1444110
Пасибо =). Вообще пошел бы лучше на курсы какие нить чтобы на вопросы с которыми сталкиваюсь мог бы ответить кто-то... но это все херня нет доверия курсам
Аноним 28/07/19 Вск 22:04:48 144411760
>>1444112
Для этого есть Stack Overflow
Аноним 28/07/19 Вск 22:20:45 144412761
>>1444117
я не могу столько ждать ответа и писать на английском =(
Аноним 28/07/19 Вск 22:26:42 144412962
>>1444127
Все эти вопросы были заданы до тебя 10 лет назад)
Аноним 28/07/19 Вск 22:31:45 144413063
>>1444112

Вообще да, обратная связь - самая важная вещь в обучении, поэтому самоучкам очень сложно добиться хорошого результата. Ну а большниство очных курсов - наебалово, как ты правильно заметил, ну либо они стоят слишком дорого для вкатывальщика. Чтобы компенсировать этот недостаток, можно гуглить любую фигню которая тебе кажется странной (желательно на английском), даже если у тебя всё работает, то посмотри, как это сделано у других, можно просто искать в гитхабе по ключевым словам и смотреть исходники.
Аноним 29/07/19 Пнд 00:28:46 144416864
Аноним 29/07/19 Пнд 01:15:00 144417965
>>1444168
Там всё написано в сообщение об ошибке.
У тебя шаблон url требует поле slug, которое не пустое. А ты, судя по ошибке, пытаешься построить этот url с пустым параметром, который обязательный.
Аноним 29/07/19 Пнд 02:15:31 144418566
Сколько времени займет вкат в питон и джанго? Сам фронтендер, опыт работы год, пишу на ангуляре, умею делать бекенды на node+express.
Аноним 29/07/19 Пнд 02:24:05 144418867
>>1444185
Всё зависит исключительно от тебя. Кто так вопросы задаёт? Несколько месяцев надо.

Начни просто с питона, поймёшь, насколько интересный для тебя язык и как заходит.

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

Короче, начни просто с питона. Если зайдёт, то и остальное освоишь. А пока питон не освоишь, во фреймворки лучше не лезть.
Аноним 29/07/19 Пнд 02:52:48 144419168
>>1444188
Асинхронность к нему разве нельзя прикрутить? Куда же без неё-то.
Аноним 29/07/19 Пнд 03:19:48 144419469
Аноним 29/07/19 Пнд 08:55:36 144423170
Аноним 29/07/19 Пнд 14:38:25 144435171
Аноны, как можно вкатиться в Django? Не хочу втупую сидеть и читать книжки и доки без особой практики. Есть какие-то видеокурсы может или просто сборники с текстовой лекцией и задачами к ней? Как вообще сами вкатывались и каким образом изучали фреймворк?
Аноним 29/07/19 Пнд 15:42:52 144437472
lrg.jpg (63Кб, 500x656)
500x656
>>1444351

Сначала проходишь Django Polls - Пример из официальной документации.

Потом качаешь книжку Leightweight Django, читаешь только Главы 1-4. Делаешь все задания. Параллельно учишься работать с гитом (скачай сазу GitKraken и не ебись с консолью как вонючий бумер) Пример из книги разрастается от простого к сложному, по сути, в конце параграфа у тебя получается рабочий проект но с некоторыми фичами.

Тут ты должен понять что 1) Фуллстек это путь в никуда 2) Можно учить сразу Рест АПИ фреймворк.

Потом Идешь на в документацию джанги, читаешь про

Модели
Кверисеты

Потом на всякий случай проходишь туториал рест фреймворка https://www.django-rest-framework.org/

Теперь можешь начинать писать свою имиджборду. Да, она будет без фронтенда ну и хуй с ним.
Параллельно прочитай про pytest и сделай интеграционные тесты для своей борды (запостить сообщение/попытаться открыть удаленный тред/проверь что тред не апается когда он в бамплимите и т.д.).
Аноним 29/07/19 Пнд 16:00:12 144438473
>>1444374
> (скачай сазу GitKraken и не ебись с консолью как вонючий бумер)
А чего там ебаться? git pull git commit git push

> Фуллстек это путь в никуда
Почему?
Аноним 29/07/19 Пнд 16:26:02 144440074
>>1444384
>А чего там ебаться? git pull git commit git push
Только если ты будешь комитить всё и сразу в одном комите.
К гит-клиентах с GUi есть удобная функция для того что бы комитить конкретные строки, откатывать изменения наглядно и т.д.
Но консольные команды знать надо, офк, иначе есть возможно обосраться на собесе и на сервере.

Аноним 29/07/19 Пнд 16:38:07 144440275
>>1444129
Ты недооцениваешь мою ебанутость, и нелепость составления формулировок ^)
>>1444130
Не понимаю как это на гите искать, ну а если есть что-то похожее готовое то смысл разбираться отпадает, ведь можно копипастить

Сталкиваюсь с проблемами типа не понимания как работает модуль schedule, или же thread. Потом оказалось что ониработают как надо но программа просто не работает дальше hendler от telegram-bot-api.
Хотя знаете, это на самом деле лень, просто человеческая лень. Когда у тебя есть документация и ты можешь все прочитать и понять, но предпочитаешь ныть, что вот если бы был наставник было бы так здорово. Хотя лопатить всю доку это же пиздец
Аноним 29/07/19 Пнд 16:51:12 144441476
image.png (6Кб, 380x127)
380x127
Что с ним не так? Почему ключи и объекты в словаре в таком порядке?
Я понимаю, что словарь - неупорядоченная структура, но почему, к примеру, в {i: i for i in range(5)} элементы выстроены нужным образом, то есть в соответствии со значениями i?

мимонуб
Аноним 29/07/19 Пнд 16:56:11 144442077
>>1444191
Можно, но очень коряво, неочевидно и ограничено. Это решения (как channels) для историй, когда у тебя уже есть проект на джанго, и тебе надо что-то асинхронное вдруг прикрутить, но не для того, чтобы строить на этом асинхронный проект.

После ноды это будет смотреться уныло и убого. Есть другие фреймворки, но в них меньше плюшек, которые есть в джанго.
Аноним 29/07/19 Пнд 17:06:23 144442778
>>1444351
Этап 1:
Из официальной документации по джанго, очень желательно на английском, смотришь главу "Writing your first Django app"

https://docs.djangoproject.com/en/2.2/intro/

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

Потом можно разбирать более детально отдельные части. Я бы рекомендовал сначала разобраться с обработкой url, как они вызываются (это просто, но тут надо смотреть на вторую версию джанго, а не на 1.9), потом со View и немного с шаблонами (шаблоны крайне желательно подключить jinja2 и с ними работать), потом с моделями, как делать разные запросы. Про всё есть как обзорная документация, так и детализированная.

Аноним 29/07/19 Пнд 17:08:55 144443079
>>1444414
Порядок ключей гарантированно соответствует порядку добавления только в питоне начиная с 3,6 (мб 3,7 точно не помню), во втором этого вообще нет.
Аноним 29/07/19 Пнд 17:18:33 144443480
>>1444402
>Когда у тебя есть документация и ты можешь все прочитать и понять, но предпочитаешь ныть, что вот если бы был наставник было бы так здорово.
Грамотный наставник очень нужен и полезен, но где его взять? Как важны хорошие выстроенные систематизированные курсы, это не документация, но где их найти? Большинство коммерческих курсов про то, чтобы состричь денег со случайных вкатывальщиков. Нормальный будет стоить дорого и слушателей для него не найдёшь. Но зато если продерёшься через всё это, то будешь среди немногих, кто смог.
Аноним 29/07/19 Пнд 17:38:24 144444581
>>1444374
Годная информация. Воспользуюсь, спасибо.
А с гитом я работал, команды знаю. Да и в PyCharm всё довольно удобно реализовано, так что консолью я где-то год не пользуюсь уже.

>>1444427
И тебе спасибо за ответ.
Аноним 29/07/19 Пнд 17:47:07 144445282
>>1444430
> только в питоне начиная с 3,6 (мб 3,7 точно не помню)
Вроде как с 3,8? По крайней мере читал недавно особенности 3,8 и там это было в списке.
Мимодругойанон
Аноним 29/07/19 Пнд 19:42:33 144453883
>>1444402

Ну ты накодил своё решение, тебе кажется, что оно косячное, ищешь , как данную проблему решили другие люди и заимствуешь лучшие приемы. Да на самом деле иногда лучше скопипастить удачное решение, чем городить свой велосипед, главное разобраться в этом решении и вынести из него что-нибудь для себя.
Аноним 29/07/19 Пнд 19:44:58 144453984
>>1444402

Если не понимаешь как работают треды и подобные вещи, то тебе нужно почитать что-нибудь по операционным системам, например таненбаума.
Аноним 29/07/19 Пнд 19:49:13 144454085
>>1444434

Сомневаюсь, что наставник знает документацию любой либы наизусть. Наставник может проводить код-ревью, указывать на косяки связанный с чистым питоном ну или с очень популярными либами типа Django, Flask и т.д., его главная задача - это прояснение каких-то относительно общих вопросов и указывание на твои слабые места
Аноним 29/07/19 Пнд 19:54:11 144454286
>>1444452

https://mail.python.org/pipermail/python-dev/2016-September/146327.html

С 3.6 в CPython словарь упорядочен в порядке добавления, в других реализациях Python это не гарантируется. С версии 3.7 это уже фича языка, то есть все реализации языка должны гарантировать упорядочность словаря.
Аноним 29/07/19 Пнд 20:02:05 144454687
15276249102150.jpg (230Кб, 811x968)
811x968
>>1444179
>А ты, судя по ошибке, пытаешься построить этот url с пустым параметром, который обязательный.

Так в том и дело, я нехрена не понимаю как оно может быть пустым, если оно НЕПУСТОЕ, а конфигурируется исходя из читаемого url-slug при создании поста.

А тут эта хня еще вызывает ошибку даже без перехода к посту, а при переходе к самому приложению "blog", а точнее при вызове базового хтмл

я не понимат

Аноним 29/07/19 Пнд 20:38:33 144456088
>>1444540
>Сомневаюсь, что наставник знает документацию любой либы наизусть.
А зачем знать наизусть? Если ты понимаешь, как устроено и как работает, то или сразу сможешь объяснить, что не так, или быстро сможешь ответ найти в документации.

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

Но правда на работе редко кто-то готов быть наставником. Чаще все сами по себе. В универах в этом плане проще.
Аноним 29/07/19 Пнд 20:40:51 144456389
>>1444546
Видимо ты вызываешь неправильно, не передаёшь нужный параметр, как надо. При создании поста, когда ты тэг url вызываешь, ты явно должен указывать и параметры, чуть по-разному в стандартном джанго и jinja2. Значит, ты как-то намудрил с этим параметром, только и всего.
Аноним 29/07/19 Пнд 20:51:07 144457890
>>1444546
Попробуй вместо '' в первом url поставить '/'
или другой вариант, вызвать в браузере не
localhost:8000/blog/
а
localhost:8000/blog

то есть без закрывающего слеша
Аноним 29/07/19 Пнд 20:51:32 144457991
>>1444430
>>1444452
>>1444542
Спасибо за ответы. Сам пользуюсь 3.4.2, потому и результат соответствующий.
Аноним 29/07/19 Пнд 20:54:39 144458392
>>1444563
ладно, спасибо.

Буду искать.

второй день мучаюсь, если возникает нетривиальная ошибка, просто выпадаю в прострацию и уныние, сложно бороться
Аноним 29/07/19 Пнд 21:55:56 144463393
Не могу долго учить язык программирования, именно учить, а не программировать или читать книгу. Есть книга по питону, обучение идёт как по маслу всё быстро понимаю, но более 3-4 страниц в день не могу осилить. При этом времени на них уходит примерно 1,5 часа. Но это пиздец как высасывает мои ресурсы, хотя я по силам могу ещё покодить или что-нибудь почитать, но что-нибудь новое на сегодня для узнать я не хочу
Аноним 29/07/19 Пнд 22:04:38 144464194
>>1444633
Попробуй вместо книг смотреть курсы
Аноним 29/07/19 Пнд 22:05:39 144464395
>>1444641
мне книга нравится. она очень хорошая. но спасибо, после неё попробую обязательно
Аноним 29/07/19 Пнд 22:21:04 144466096
Аноним 29/07/19 Пнд 22:23:31 144466797
Python for Everybody Specialization с курсеры или книга Mark Lutz Learning Python/Programming Python?
Что лучше подойдет для вката?
Какое мнение в целом по курсу Python for Everybody Specialization? Стоит ли платить за него чтобы проверки работ были?
Аноним 29/07/19 Пнд 22:31:59 144467498
>>1444667
Напиши заявление на фин. помощь
Аноним 29/07/19 Пнд 22:33:58 144467699
15427266854742.jpg (109Кб, 700x818)
700x818

>>1444578
>>1444563

ситуация становится охуительной

Я уже нашел на гитхабе код автора
Весь перебрал

В итоге на мозг капнуло "а вдруг эта херня как то не так обрабатывает теги"

Зашел в админ панель и удалил последние 2 поста помеченные тегами

И ОН БЛЯТЬ ЗАРАБОТАЛ

И Я В УПОР НЕ ПОНИМАЮ ПОЧЕМУ И ПРИЧЕМ ТУТ base.html, и как эти посты в detail.html влияют на основную страницу

Короче все решилось. но НИПАНЯТНА почему

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

"Я решил проблему, но как и почему я не знаю, но я её решил, потому что она не вылезает" потрясающе.
Аноним 29/07/19 Пнд 22:35:32 1444679100
>>1444676
>эта боль веб макакена
Аноним 29/07/19 Пнд 22:39:41 1444686101
>>1444674
Ты про Financial aid? Я, кстати, так и не понял до конца, что это за хуитка такая. Чем отличается от обычной оплаты курса?
Аноним 29/07/19 Пнд 22:53:54 1444691102
>>1444686
Ничем, но нужно ждать одобрения две недели
Аноним 29/07/19 Пнд 22:56:57 1444692103
>>1444691
А про сам курс (специализацию в целом, там вроде сразу пять курсов идёт) что думаешь? Стоит того или лучше по книжкам учить?
Аноним 29/07/19 Пнд 23:03:07 1444697104
>>1443245 (OP)
Насколько корректно использование eval и exec в коде? Заметил, что это "не по понятиям", хоть кто-то из разрабов со стажем их юзает? И при каких обстоятельствах?
Аноним 29/07/19 Пнд 23:08:55 1444699105
>>1444400
Если git add . то конечно можешь все сразу. Команд там 20 или около того. Да и это куда быстрее и привычнее, когда все в одном окне делаешь(в терминале офк). Раньше я тоже гуями пользовался. Да и сейчас иногда, если это удобнее быстрее. Но обычно консоль выигрывает. Не слишком красиво, зато быстро и удобно.
Аноним 29/07/19 Пнд 23:33:57 1444710106
>>1444692
Забыл добавить, что фин. помощь на всю специализацию сразу оформить нельзя, нужно оформлять на каждый курс.

Бегло посмотрел программу курсов, если честно, то не очень. На мой взгляд слишком долго, по программе курса ты к ООП перейдешь только на 4 курсе, т.е. на 21 неделе, т.е. через 5 месяцев. Конечно, ты скорее всего будешь проходить эту специализацию быстрее, но всё равно. К тому же язык в данной специализации разбирается довольно поверхностно, если судить по программе, то даже если ты пройдешь всю специализацию полностью, то твоих знаний будет недостаточно, чтобы претендовать на вакансию джуна (при этом я беру в расчёт только знание языка, джуну ещё фреймворки нужно знать). Задания не смотрел, судя по названиям довольно прикладные, что хорошо, но не уверен.

С другой стороны пролистал Learning Python Лутца и тоже немного удивился. По содержанию претензий нет, если изучишь данную книгу, то будешь довольно уверено себя чуствовать с питоном, знаний языка будет достаточно для джуна, единственное в книге не затрагивается асинхронность (хотя от джунов редко требуют) и стандартные библиотеки Python. К тому же в конце каждой главы есть набор вопросов и упражнений с решениями, что тоже положительно скажется на качестве твоего обучения, только задания не очень прикладные, поэтому если будешь изучать Python по книге, то советую иногда делать какие-нибудь мини-проекты. Но в книге 1200 страниц, что на мой взгляд довольно много, видимо автор достаточно водянисто пишет, но с другой стороны для новичка это может быть даже полезно. Советую заранее расчитать скорость изучения языка по этой книге и сколько это у тебя займет времени в итоге.

В общем, если выбирать из этих двух вариантов, то я бы посоветовал Лутца, но ты не рассказал о своих текущих навыках и целях и к какой цели ты стремишься
Аноним 29/07/19 Пнд 23:48:29 1444716107
>>1444710
Спасибо огромное за ответ!

Питон для прикладных задач нужен. На голого прогера-джуна не претендую староват уже для такого
Я инженер-конструктор, и есть желание покопаться в сторону машинного обучения, датамайнинга и нейронок. Плюс, скрипты для автоматизации работы в CAD'ах, инженерные расчёты и так в целом для комфортной жизни.
В своё время учил Delphi и немного C++, ооп, даже немного до ассемблера добрался, но все это было в далекие студенческие беззаботные годы.
Аноним 29/07/19 Пнд 23:52:29 1444722108
Надо смотреть на то, что человек умеет и какой у него бэкграунд.

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

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

Если с нуля, то надо прочитать просто самые основы языка, и начать решать разные задачи, примерно как на литкоде простые.

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

Вот если уже практика программирования есть, то другое дело. Но это надо смотреть на то, какой опыт и что умеешь.
Аноним 29/07/19 Пнд 23:53:49 1444723109
>>1444716
>В своё время учил Delphi и немного C++, ооп, даже немного до ассемблера добрался
Это совсем не начальный уровень и тут уже будет сильно проще.
Аноним 29/07/19 Пнд 23:57:36 1444725110
>>1444723
Ну, да. Какие-то знания есть, даже Кнута в своё время читал.
Но после студенческих увлечений ушел сильно в инженерную работу, и совсем программирование на десять лет забросил, а это считай вечность.
Так что я тут как полуновичок наверное.
Аноним 30/07/19 Втр 00:06:25 1444728111
>>1444716
Тогда даже не знаю, возможно специализация для тебя более предпочтительна будет. Для решения прикладных задач и ML тех знаний будет более чем достаточно, плюс там задания и проекты относятся к этой теме.

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

Ещё по теме автоматизации слышал хорошие отзывы о книге Automate the boring with python, возможно тоже будет неплохим вариантом для тебя.
Аноним 30/07/19 Втр 07:30:44 1444790112
Хорошо знаю core пайтона, куда двигаться теперь? Что учить, что читать?
Аноним 30/07/19 Втр 08:56:14 1444808113
>>1444716
О, коллега, тоже работал конструктором на заводе, сейчас тружусь технологом на станке с ЧПУ в мелкой конторе. На досуге и в свободное рабочее время стараюсь всякие расчеты автоматизировать сначала в Экселе для понимания логики, а потом в пайтоне. Сложно, конечно, все осмыслить, но стараюсь.
Аноним 30/07/19 Втр 09:09:00 1444809114
>>1444633
Как не странно тебе нужно научится, учится. Как анон уже писал выше, приготовь свое рабочее место, убери со стола и поставь таймер. Например, поставил таймер и блять не перестаешь учить, пока время не пройдет. ТЫ НЕ ДОЛЖЕН чувствовать себя как дома, будто ты на паре или на работе. НЕ ОТКЛИКАЙСЯ на всякие там вкшечки и инстаграмы.
Аноним 30/07/19 Втр 11:29:46 1444824115
>>1444633
Я тоже не могу заставить себя читать больше 20 страниц в день "Изучаем Python" Лутца. Одна первая глава чего стоит: автор 20 страниц повторяет несколько идей. Начиная с 3-ей главы не так абсурдно, но читать все равно сложно.
Есть ли чтиво, которое читается легче/увлекательнее?
Аноним 30/07/19 Втр 13:17:38 1444866116
>>1444824
ну я литературу на английском всю читаю. на русском может быть тоже 20 страниц в день бы было.

>>1444809
да это хуйня всё, я не отвлекаюсь. могу спокойно сидеть больше часа без перерыва читать книгу. меня просто плющить начинает если я ИЗУЧИЛ сегодня более 4-х страниц в день. мозг болит что ли, хуй знает как это объяснить. тяжело в себя новой информации много запихивать, во истину самый тяжкий труд это учение!
Аноним 30/07/19 Втр 13:42:17 1444877117
В результате работы функции я получаю ответы

261
262
...
269
270
....
300

Как сделать дополнительную функцию для замены этих результатов в упрощенный вид, 260-269 - представлять как 1, 270-270 - 2 итд.
Аноним 30/07/19 Втр 14:16:54 1444889118
>>1444877
def normalise(number):
____if number == 260:
________return 1
____if number == 261:
________return 1
____if number == 262:
________return 1
____if number == 263:
________return 1
____if number == 264:
________return 1
____if number == 265:
________return 1
____if number == 266:
________return 1
____if number == 267:
________return 1
____if number == 268:
________return 1
____if number == 269:
________return 1
____if number == 270:
________return 2
____if number == 271:
________return 1
____if number == 272:
________return 1
____if number == 273:
________return 1
____if number == 274:
________return 1
____if number == 275:
________return 1
____if number == 276:
________return 1
____if number == 277:
________return 1
____if number == 278:
________return 1
____if number == 279:
________return 1
____if number == 280:
________return 1
____if number == 281:
________return 1
____if number == 282:
________return 1
____if number == 283:
________return 1
____if number == 284:
________return 1
____if number == 285:
________return 1
____if number == 286:
________return 1
____if number == 287:
________return 1
____if number == 288:
________return 1
____if number == 289:
________return 1
____if number == 290:
________return 1
____if number == 291:
________return 1
____if number == 292:
________return 1
____if number == 293:
________return 1
____if number == 294:
________return 1
____if number == 295:
________return 1
____if number == 296:
________return 1
____if number == 297:
________return 1
____if number == 298:
________return 1
____if number == 299:
________return 1
____if number == 300:
________return 1
____if number == 301:
________return 1
____if number == 302:
________return 1
____if number == 303:
________return 1
____if number == 304:
________return 1
____if number == 305:
________return 1
____if number == 306:
________return 1
____if number == 307:
________return 1
____if number == 308:
________return 1
____if number == 309:
________return 1
____if number == 310:
________return 1
____if number == 311:
________return 1
____if number == 312:
________return 1
____if number == 313:
________return 1
____if number == 314:
________return 1
____if number == 315:
________return 1
____if number == 316:
________return 1
____if number == 317:
________return 1
____if number == 318:
________return 1
____if number == 319:
________return 1
____if number == 320:
________return 1
____if number == 321:
________return 1
____if number == 322:
________return 1
____if number == 323:
________return 1
____if number == 324:
________return 1
____if number == 325:
________return 1
____if number == 326:
________return 1
____if number == 327:
________return 1
____if number == 328:
________return 1
____if number == 329:
________return 1
____if number == 330:
________return 1
____if number == 331:
________return 1
____if number == 332:
________return 1
____if number == 333:
________return 1
____if number == 334:
________return 1
____if number == 335:
________return 1
____if number == 336:
________return 1
____if number == 337:
________return 1
____if number == 338:
________return 1
____if number == 339:
________return 1
____if number == 340:
________return 1
____if number == 341:
________return 1
____if number == 342:
________return 1
____if number == 343:
________return 1
____if number == 344:
________return 1
____if number == 345:
________return 1
____if number == 346:
________return 1
____if number == 347:
________return 1
____if number == 348:
________return 1
____if number == 349:
________return 1
____if number == 350:
________return 1
____if number == 351:
________return 1
____if number == 352:
________return 1
____if number == 353:
________return 1
____if number == 354:
________return 1
____if number == 355:
________return 1
____if number == 356:
________return 1
____if number == 357:
________return 1
____if number == 358:
________return 1
____if number == 359:
________return 1
____if number == 360:
________return 1
____if number == 361:
________return 1
____if number == 362:
________return 1
____if number == 363:
________return 1
____if number == 364:
________return 1
____if number == 365:
________return 1
____if number == 366:
________return 1
____if number == 367:
________return 1
____if number == 368:
________return 1
____if number == 369:
________return 1
____if number == 370:
________return 1
Аноним 30/07/19 Втр 14:19:36 1444891119
>>1443245 (OP)
а кто на втором пике? создатель писоса питона?
Аноним 30/07/19 Втр 14:30:52 1444900120
>>1444790
А что тебе интересно?

TensorFlow, Keras, Torch...
Аноним 30/07/19 Втр 14:32:54 1444903121
>>1444889
Спасибо, но нет ли способа покороче? А то у меня же не только эти значения, а значительно больше.

Как-то массивы наверное можно сделать без перечесления, а с указанием диапазона и проверять есть ли число в массиве если есть присваивать новое значение.
Аноним 30/07/19 Втр 14:42:57 1444906122
image.png (22Кб, 551x189)
551x189
>>1444903
Формулируй сразу как тебе надо, я первый ответ писал полчаса >:C
Аноним 30/07/19 Втр 14:47:32 1444910123
>>1444906
Круто, добра тебе анончик!
Аноним 30/07/19 Втр 14:49:42 1444911124
>>1444889
Это троллинг такой? Твоя функция даже не работает нужным образом, а просто возвращает единицу при 260 <= number <= 370.
Аноним 30/07/19 Втр 14:51:11 1444912125
Снимок экрана 2[...].png (701Кб, 1042x964)
1042x964
>>1444906
Надеюсь, ты пошутил.
Аноним 30/07/19 Втр 14:53:18 1444915126
Анон, посоветуй бесплатный питон хостинг. Я запилил телеграм бот на хероку, но через полчаса он засыпает и просыпается секунд через 15.
Или это норм для фри хостинга и лучше вариантов нет?
Аноним 30/07/19 Втр 14:57:55 1444919127
>>1444912
Так у челика на 270 возвращает 2, а у тебя везде 1. Это не то, что нужно было.
Аноним 30/07/19 Втр 14:58:05 1444920128
image.png (19Кб, 290x415)
290x415
Аноним 30/07/19 Втр 14:58:38 1444921129
>>1444915
Может ты запускаешь хуево?
Запускай в фоне через nohup python main.py &
Аноним 30/07/19 Втр 14:59:40 1444923130
>>1444920
Не то, 2 должно быть только в диапазоне 270-270, в глаза долбишься?
Аноним 30/07/19 Втр 15:00:39 1444925131
>>1444923
Да не он прав, в оппосте опечатка очевидно же 270-279 должно быть
Аноним 30/07/19 Втр 15:00:55 1444926132
>>1444923
Я не только в глаза не долблюсь, но и в лобные доли, потому и понимаю, что он просто опечатался и имел в виду 270-279.
Аноним 30/07/19 Втр 15:03:10 1444928133
Снимок арвоннвл[...].PNG (21Кб, 356x646)
356x646
>>1444921
> nohup python main.py

это их стандартная фича для бесплатного акка
Аноним 30/07/19 Втр 15:04:26 1444929134
>>1444919
Ну руками поменял бы, когда вставлял. Нет проблем
Аноним 30/07/19 Втр 15:12:48 1444934135
olgachocolate66[...].jpg (63Кб, 829x1472)
829x1472
>>1444920
Тебе тоже спасибо огромное. Я запомню что можно и так делать, но тот вариант мне подходит больше т.к. я не упомянул в тз, что диапазоны не всегда из 10 чисел и могут быть с пропусками.

А есть какие-нибудь сайты с такими простыми задачками, желательно с возможностью посмотреть ответы и варианты решений?
Аноним 30/07/19 Втр 15:23:10 1444937136
Чето у меня тупой вопрос. Вот django: в качестверазраба макаки мне надо работать с многопоточностью или нет? Здравый смысл говорит, что да. Но оверинжиринг заставляет сомневаться. Что-то без круда явно же надо стараться запихать в треды?
Аноним 30/07/19 Втр 15:30:14 1444940137
>>1444920
Вы троллите блядь, нахуя вам циклы какие-то.. print(a//10 - 35)
Аноним 30/07/19 Втр 15:40:15 1444943138
Аноним 30/07/19 Втр 15:43:00 1444945139
>>1444940
print(a//10 - 25), тогда уж.
Аноним 30/07/19 Втр 15:44:44 1444947140
>>1444945
А, ну да, я опечатался
Аноним 30/07/19 Втр 16:01:12 1444958141
>>1444940
Нет, мы быдлокодеры. А ты говнокодер.
Аноним 30/07/19 Втр 16:02:52 1444960142
изображение.png (10Кб, 863x248)
863x248
Сап, питонисты, столкнулся с такой хуйней как шаблонизатор Джаного. И я блять вообще не понимаю, что это ? Какой это язык, как это понимать ? Что за скобки, проценты и тд ?
Аноним 30/07/19 Втр 16:14:10 1444964143
Аноним 30/07/19 Втр 16:17:47 1444965144
Аноним 30/07/19 Втр 16:18:08 1444966145
>>1444964
Мы быдло, а ты говно.
Аноним 30/07/19 Втр 16:33:17 1444976146
>>1444966
Да вы троллите по-моему просто, тут у вас какое-то соревнование было по самому ебанутому решению простейшей задачи. Странно только, что его ещё первый челик с ифами выиграл, обогнать его было невозможно
Аноним 30/07/19 Втр 16:48:53 1444987147
>>1444976
Технически выиграл его ты, ибо даже его код иногда выдаёт нужные значения, в отличие от твоего с опечаткой.
Аноним 30/07/19 Втр 16:59:27 1444994148
>>1444987
Да только опечатка исправляется в один символ после получения неожиданного ответа(отрицательных чисел быть не должно было по постановке задачи), а у вас нужно переписывать полностью, потому что вместо выражения на два действия у вас алгоритм перебора с циклом на n//10 - 25 итераций
Аноним 30/07/19 Втр 17:02:05 1444998149
>>1444994
Алсо, если серьёзно, то я советую порисовать черепашкой несколько заданий из http://judge.mipt.ru/mipt_cs_on_python3/labs/lab1.html
Задание на спираль Архимеда, на вложенные многоугольники, и на н-конечную звезду. Они и интересные и не очень долгие и там нужно собирать математические выражения.
Аноним 30/07/19 Втр 17:30:23 1445014150
Screenshot.png (57Кб, 634x508)
634x508
Аноним 30/07/19 Втр 17:37:08 1445019151
>>1444998
Блин, прикольная штука. Я и не знал, что у питона такое есть.
Аноним 30/07/19 Втр 17:48:50 1445024152
>>1445019
А то! Можно ещё модуль graphics скачать, там про это есть тоже следующих главах курса. Но для геометрических фигур хватает черепашки. Там потом ещё тема будет про рисование фракталов, на рекурсивные алгоритмы.
Аноним 30/07/19 Втр 18:16:55 1445038153
>>1444906
Выглядит красиво , но работать же будет только первый диапазон
Аноним 30/07/19 Втр 19:27:00 1445079154
>>1444965
Сасибо анон. Лучше ставить jinja2 или оставить Django шаблоны ?
Аноним 30/07/19 Втр 19:36:02 1445085155
>>1445079
Не трогай что работает, лол.
Джанго шаблоны не сильно отличаются от других стандартных. Научишься на них - считай знаешь остальные.
Выучи базовые вещи: получение ссылки на статичные данные (картинки, скрипты), работа с переданными аргументами, циклы и условия, наследование шаблонов (самая ахуенная вещь).
Аноним 30/07/19 Втр 20:28:00 1445116156
>>1445079
Они похожие, но лучше jinja2, штатные немного корявые. У jinja2 больше возможностей и удобства при обращении к словарям и т.п. Jinja2 более универсальные, и на других фрейворках работают, и даже в другие языки портированы довольно близко. В целом для начала можно не заморачиваться, ключевые принципы одни, смотри просто, чьи доки тебе удобнее читать и понимать.

Самое крутое в шаблонах, это возможность наследования и макросы, вот там они по-настоящему разворачиваются.
Аноним 30/07/19 Втр 20:39:25 1445122157
цетата.jpg (133Кб, 807x656)
807x656
Объясните, пожалуйста, про метод Ньютона для нахождения квадратного корня. Гуглил, но ничего не понимаю что написано, что за приближение, что это вообще такое...
Аноним 30/07/19 Втр 20:41:44 1445126158
>>1445122
Если не понимаешь, то начни с основ матана, иначе это бессмысленно. Например, на сайте для заочников и не только mathprofi или в школе/универе
Аноним 30/07/19 Втр 20:43:40 1445129159
>>1445126
Я уже разобрался, спасибо не надо. Просто не понимал что такое "приближение"
Аноним 30/07/19 Втр 20:50:12 1445135160
>>1443844
>>Теория игр, теория принятия решений, Управление и оптимизация, многокритериальное принятие решений, Марковские модели, конечные автоматы, теория графов, теория вероятностей, статистические методы, имитационное моделирование, ии и коллективное поведение и проч.
иными словами - мозг пытается составить обобщенную модель мозга с целью надежного и длительного выставления произвольных функций оптимизации. и чтоб внимание получше работало. в РЦП такими вещами очень интересуются вроде бы.
Аноним 30/07/19 Втр 21:28:38 1445185161
>>1444808
Привет брату инженеру! Расскажи что получилось автоматизировать на питоне? Удобно ли пользоваться? Заморачивался ли с интерфейсом?
Аноним 30/07/19 Втр 21:38:29 1445195162
>>1444728
Спасибо.
Буду глядеть специализацию тогда. Мне питон больше в прикладных задачах нужен, да.

> Automate the boring with python
Есть такая, да. Уже скачал, буду изучать. Спасибо еще раз.
Аноним 30/07/19 Втр 22:25:26 1445218163
>>1445122
>>1445126
Разобрался полностью с этим, теперь у меня вопрос какое отношение это имеет к погромированию? Типа алгоритм? Я ньюфаня, не обссыкайте за глупые вопросы
Аноним 30/07/19 Втр 22:46:25 1445225164
>>1445218
Никакого. Это не программирование. Программирование это когда ты в доту играешь. Или в инсте фотки лайкаешь. А какие-то там вычисления, это не программирование.
Аноним 30/07/19 Втр 22:52:37 1445229165
>>1445218
Это основа.
Допустим, тебе надо будет нарисовать график по точкам, но не от руки, как в школе, а с интерполяцией сплайнами. Вот тут ты берешь матлаб питон и пишешь себе на будущее функцию, которая за пару минут тебе красиво все покажет и нарисует.
ЯП - исполнитель, а тебе нужно знать, что исполнять и как это написать
Аноним 30/07/19 Втр 22:53:46 1445230166
>>1445229
Спасибо, я ничего не понял. Но всё равно спасибо, пойду дальше тогда книжку читать
Аноним 30/07/19 Втр 22:56:50 1445234167
>>1445230
Потому что это вычматы, а не питон. Для глобального понимания, как решать задачу, и существуют алгоритмы, которые изучаются в отрыве от языка.
Аноним 30/07/19 Втр 22:58:22 1445236168
>>1445234
ну так там книга и есть эта. типа обучения основам погромирования общим на примере питона.
Аноним 31/07/19 Срд 00:59:39 1445272169
>>1445234
Вычмат о том, чтобы доказать сходимость решения, скорость сходимости и т.п. А программирование о том, чтобы реализовать это на практике.

Задача программиста в том, чтобы разобраться в проблеме и реализовать решение в виде программы. Всё сугубо утилитарно.

Вот разберись и реализуй.
Говно из жопы Пидор Ебаный 31/07/19 Срд 06:29:38 1445309170
15580779430600.jpg (108Кб, 532x675)
532x675
>>1443245 (OP)
Антоши, вот я тупой дебил и нихуя не умею. Хочу научится погромированмю. Решил выбрать пока питон, он вроде как самый лёгкий и неплохой такой. Вот скажите, не зашквар ли читать книгу "питон для детей" если я уже не дитё?
Аноним 31/07/19 Срд 06:45:41 1445310171
>>1445309
>вот я тупой дебил
Справедливо, раз ты задаешь такие вопросы


Нет не зашквар.
Пидор Ебаный 31/07/19 Срд 06:51:56 1445311172
15532420716450.jpg (57Кб, 500x435)
500x435
>>1445310
Спасибо тебе анон, сейчас пойду спать и завтра постараюсь начать читать эту книгу.
Аноним 31/07/19 Срд 23:11:58 1445695173
>>1443245 (OP)
Братцы, на работе (режимное говнопредприятие) нет инета, а мне очень бы помогли пакеты Питона для работы с Excel и PDF форматами. Как их сцуко установить, если pip install не пашет? Я раздобыл исходники с Гитхаба, но как эти модули дальше установить, чтоб они работали?
Аноним 31/07/19 Срд 23:22:13 1445704174
>>1445695
Можно сделать через virtualenv, портируемый режим. Дома создаёшь всё, что тебе надо, ставишь все пакеты, которые нужны, приносишь куда надо, копируешь и запускаешь.
Аноним 31/07/19 Срд 23:25:18 1445706175
>>1445695
Качаешь колёса, ставишь колёса через pip.
Аноним 31/07/19 Срд 23:27:45 1445710176
>>1445695
Что ты там делаешь? Вали оттуда, целее и сытее будешь.
Аноним 31/07/19 Срд 23:51:35 1445723177
>>1445710
Съебусь только к октябрю. Сначала надо премию получить, сходить в отпуск и получить новые отпускные за полгода

>>1445704
Наверно так и надо пробовать. Но я виртуалку еще не настраивал, тем более портируемую и для сторонней машины, годную инструкцию подкинуть не сможешь?

>>1445706
? качаю куда? и можно ли указать этому менеджеру откуда устанавливать пакет? везде по pip лишь базовые сведения аля "щелкни сюда чтоб установить 5 разных фреймворков", но нигде толком не объясняют на низком уровне как собственно этот менеджер пакетов работает
Аноним 31/07/19 Срд 23:53:55 1445724178
>>1445723
Берешь флешку, на ней создаешь виртуалку, в которую уже ставишь все, что нужно.
На работе собсна кидаешь на эту флешку нужные файлы и работаешь с ними из под виртуалки.
Для настройки просто загугли virtualenv
Аноним 01/08/19 Чтв 00:20:30 1445734179
как эффективнее всего реализовать сохранение статуса выполнения цикла?(чтобы брал значение переменной из txt файла)
Аноним 01/08/19 Чтв 02:10:37 1445770180
Screenshot from[...].png (34Кб, 432x274)
432x274
Screenshot from[...].png (27Кб, 566x509)
566x509
Screenshot from[...].png (59Кб, 1008x251)
1008x251
Аноны, собсна, какого хуя такое происходит и как это исправить?
Чому оно не работает? Вроде всё делал по тутору с сайта DRF, но выдаёт такую хуйню. УРЛ проёбан по полной.
Гугл выдаёт гайды от обоссаных индусов с кривым кодом.
Аноним 01/08/19 Чтв 09:11:02 1445799181
img_rgb = np.array(sct_img)
resized_image = cv.resize(img_rgb , (0, 0), fx=5, fy=5)

cv.imwrite('xxx.png', resized_image)
im = cv.imread('xxx.png')

im[np.where((im == [0, 0, 0]).all(axis=2))] = [255, 255, 255]



Как работать с изображением без сохранения/чтения напрямую? Если resized_image добавить в последнюю строку будет ошибка AttributeError: 'bool' object has no attribute 'all'. Какой тип нужен? Я же вроде в сам начале в numpy.array перевел.
Аноним 01/08/19 Чтв 09:33:34 1445813182
Есть массив

array = ["Bob", "Alex", "Bob", "John", "Bob", "Alex", "Bob"]


как вывести не повторяющиеся элементы и их количество, т.е.
bob - 4
alex - 2
john - 1
Аноним 01/08/19 Чтв 09:55:35 1445823183
Суп питонач. Есть здесь продвинутые веб макаки?
Есть заготовка проекта. В нём channels, celery, redis ещё и фронт на ноде с server side rendering. Вот хочу всё это ебануть в nginx + docker, но ума не приложу с чего начать.

Предполагаю, для начала надо запустить хотя бы сам проект через nginx без всяких докеров, а после успешной отладки уже пытаться всё упаковывать в контейнеры. Надеюсь на ваши советы.
Аноним 01/08/19 Чтв 10:27:22 1445834184
Аноним 01/08/19 Чтв 10:28:46 1445836185
>>1445834
ну а тривиальный способ это сделать лист с уникальными элементами и для каждого элемента листа получить count в исходном листе
Аноним 01/08/19 Чтв 10:46:55 1445841186
Аноним 01/08/19 Чтв 11:24:43 1445866187
>>1445813
В питоне есть стандартный модуль collections, а в нем есть класс Counter, он делает сразу то, что тебе нужно
Аноним 01/08/19 Чтв 11:34:49 1445871188
>>1445734
Не понятно, что тебе нужно конкретно. Но, наверно, тебе полезно будет почитать про генераторы в питоне, ну, там, yield, next, и все дела
Аноним 01/08/19 Чтв 11:50:23 1445872189
>>1445695
pip умеет скачивать пакеты со всеми завизимостями, но не устанавливать их, а сохранить в указанной директории, которую ты можешь спокойно скопировать на флешку и перенести куда угодно, а еще pip умеет устанавливать пакеты не из интернета, а из локальных файлов и папок. Так что, можешь дома выкачать нужные пакеты вместе с их зависимостями, а потом принести их на работу и установить, и все с помощью pip. Вообще pip до хрена всего умеет, не поленись изучить его документацию, хотя бы ту, что он сам про себя в консоли показывает.
Аноним 01/08/19 Чтв 12:57:03 1445889190
>>1445799
бамп

я ща проверил dtype, там до сохранения uint8 и после чтения uint8, но напрямую не рабоатет.
01/08/19 Чтв 16:07:25 1446024191
image.png (76Кб, 810x452)
810x452
>>1444021
Анон, у тебя всё правильно, просто не стоит вводить p,z,t , а нужно вводить то, что записано в переменной, тобишь Zerg , Protos, Terrain.
Аноним 01/08/19 Чтв 16:55:59 1446042192
>>1445770
Бумп.
Что за блядство такое, этот DRF..
Аноним 01/08/19 Чтв 17:03:52 1446046193
Аноним 01/08/19 Чтв 17:18:02 1446051194
image.png (51Кб, 628x406)
628x406
>>1446046
Причём тут регулярки?
Если пикрил предлагается в офф доках ДРФа.
У меня подобная херня, только вместо "" мой роут начинается с "api/".
Или я чего-то не понимаю?
Аноним 01/08/19 Чтв 19:53:00 1446133195
>>1445866
>>1445813
Есть стандартный метод у списка
array.count('Bob')
Аноним 01/08/19 Чтв 19:53:49 1446135196
>>1446133
А, не так понял задачу.
Аноним 01/08/19 Чтв 21:22:40 1446182197
>>1443245 (OP)
Что нужно знать, чтобы етл на вашем яп писать?
Аноним 02/08/19 Птн 01:59:15 1446328198
>>1446182
Желательно минимальное знание англа, а потом учить язык
Аноним 02/08/19 Птн 03:00:15 1446335199
>>1446328
Спасибо, английский я знаю.
А более подробный ответ на вопрос можно?
Аноним 02/08/19 Птн 13:23:23 1446541200
>>1446335
Если вообще не знаешь язык, то можешь либо пройти курс Питонтьютора, либо прочитать "Укус питона", это основа(документация еще, конечно же)
Потом смотришь нужные тебе библиотеки и начинаешь что-то делать с их использованием.
Можно просто решать задачи на chekio/codingame/pythonchallenge
Аноним 02/08/19 Птн 13:34:35 1446553201
Сап питонач. Хочу изучать питон. Какое издание "Изучаем питон" Лутса выбрать?
Аноним 02/08/19 Птн 13:45:34 1446568202
Аноним 02/08/19 Птн 13:50:16 1446572203
Аноним 02/08/19 Птн 14:13:41 1446591204
>>1446572
Можешь и его, для вкатывания нет разницы особой, так как это все же книга для +- углубленного изучения, а пятое издание еще не переведено, насколько я знаю
Аноним 02/08/19 Птн 14:17:16 1446594205
>>1446591
Хорошо, спасибо за ответ
Аноним 02/08/19 Птн 14:51:09 1446621206
Питонач, пришла идея сделать бота для телеги.Ты его добавляешь, кидаешь название паблосов из вк, а он все посты, которые будут выходить после твоей подписки на них в боте телеги, будет постить. Че, как вам? такое же реально сделать?
Аноним 02/08/19 Птн 14:52:50 1446624207
>>1446621
Просмотри апи вк и поймешь
Аноним 02/08/19 Птн 14:56:05 1446628208
>>1446624
а че если я просто буду парсить, там же не будет никаких подводных
Аноним 02/08/19 Птн 15:02:47 1446630209
>>1446621
>такое же реально сделать?
Реально. Недавно только щупал я бы сказал, касался даже апи ВК и там есть всё, что тебе надо. Дело 2-3 функций. Вот только нахуя оно? Сейчас каждый 2-ой, если не 1,5-ый, паблик имеет свой ТГ канал для сруба бабок с рекламы вдвое чаще обычного, так что какого-то большого импакта не вижу, разве что брать посты с групп непопулярных на 10-20к тел.

>>1446628
Нахуя парсить страницы при живом апи? Всё равно, что тебе дадут мотоцикл, чтобы ты до дома доехал, а ты рот ебал чо-то с ним разбираться, ключ зажигания там какой-то ещё вставлять, и поедешь на своём раздолбанном велосипеде.
Аноним 02/08/19 Птн 15:04:44 1446632210
>>1446628
Как сказано выше, можно и парсить, но это себя не уважать. Апи дает как минимум опыт и удобство
Аноним 02/08/19 Птн 15:07:21 1446634211
>>1446630
благодарю. Да вот по наблюдениям не у каждой группы есть тг канал. А у меня то задумка в том, что можно будет совершенно любую группу сделать
Аноним 02/08/19 Птн 15:16:51 1446639212
50788817b72.jpg (106Кб, 750x422)
750x422
Питонач, есть серьёзный вопрос. Как вкатиться в работу? Вот я правда. У меня есть знания питона, которые позволяют мне кодить всякие штуки для себя, с чем я успешно справляюсь. Я могу прочитать чужой код, найти ошибки в нём и исправить их. Если мне скажут разобраться в фреймворке, я прочитаю документацию и всё пойму без особых проблем. Но это же блять нихуя не учитывается при устройстве на работу! Всем нужно, чтобы ты решал какие-то ебанутые задачи и разруливал ситуации, которые ну вот вообще никогда не возникнут, если только не полный долбоёб пишет код. Понимать, что от кого и когда наследует и как эта хуйня работает в очень глубоком представлении, хотя по факту есть тут вообще те, кому эти глубочайшие знания необходимы на практике? Если есть, пруфайте, и я ухожу нахуй.
Так вот, что мне нужно собственно. Есть ли какой-то сборник задач, вопросов и прочего, которые составлены по собеседованиям? Чтобы вот со всеми этими ебанутыми ситуациями в коде, со всеми доёбами до каждого атрибута в каком-то доисторическом классе и всё в этом духе. Очень прошу поделиться подобным, потому что заебало уже всё максимально. Или просто хоть напишите, как сами к собеседованию готовились, если вы работаете питон девом.
В МВП не отправляйте. Там никто не сидит и не шарит, к тому же вопрос именно касается сабжа, а не других ЯП.
Аноним 02/08/19 Птн 15:24:58 1446642213
Аноним 02/08/19 Птн 15:38:50 1446653214
Аноны, есть одна проблема.

В функции:

https://pastebin.com/x0bdh59k

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

ЧЯДНТ????
Аноним 02/08/19 Птн 16:09:07 1446669215
>>1446639
>Как вкатиться в работу?
Заходишь на hhru. Ищешь вакансии в своем городе. Если видишь что многим нужны технологии которых вообще не знаешь - учишь их. Жмешь ОТКЛИКНУТЬСЯ. Ждешь. Проходишь собес. Работаешь. Вопросы?
Аноним 02/08/19 Птн 17:28:00 1446798216
image.png (15Кб, 483x268)
483x268
>>1446653
Как нуб могу предположить, что где-то по ходу кода возбуждается IndexError.
Так же, как нуб, я не очень понимаю, что делает указанная на скрине часть кода. Не нужен ли здесь return?
Аноним 02/08/19 Птн 17:54:54 1446815217
Как вставить текст из буфера обмена в список?

Или вообще можно ли сразу работать с текстом в буфере обмена? Мне нужно будет находить в нем знак и копировать несколько символов после этого знака.
Аноним 02/08/19 Птн 17:59:11 1446817218
Аноним 02/08/19 Птн 18:04:21 1446819219
Писать гуевые приложения для винды на питоне это норм или я поехавший?

Я не погромист, но раньше делал в офисе для теток и не только всякие утилитки для облегчения жизни на delphi.

Сейчас немного начал питон изучать. Думаю для набора опыта переписать некоторые из них.
Аноним 02/08/19 Птн 18:26:34 1446827220
>>1446798
>возбуждается IndexError
Да, так и есть. Но даже если тут и возникает какая-то ошибка, то должен возвращаться list_of_text, который выше был дополнен.

>Не нужен ли здесь return?
Нет. Потому что скрипт вызывает себя еще раз, что бы проделать еще одну операцию, пока определенные условия не будут соблюдены, либо пока не вызовется ошибка.
Аноним 02/08/19 Птн 18:32:05 1446832221
Аноним 02/08/19 Птн 18:33:40 1446834222
>>1446819
Ну можно, но ето изврат.
Аноним 02/08/19 Птн 18:40:23 1446841223
>>1446834
Почему? Я сам внутренне это чувствую, но как ты это объясняешь?
Аноним 02/08/19 Птн 19:21:15 1446874224
просто интересно. на каком языке программирования в основном пишут программы которые работают в видеокамерах, стационарных телефонах, микроволновках и т.д.
Аноним 02/08/19 Птн 19:21:36 1446876225
Аноним 02/08/19 Птн 19:21:55 1446877226
Аноним 02/08/19 Птн 19:24:50 1446879227
>>1446876
>>1446877
а на технику которая выпускалась в 90-е годы тоже java?
Аноним 02/08/19 Птн 19:27:54 1446881228
Аноним 02/08/19 Птн 20:13:09 1446904229
Аноним 02/08/19 Птн 20:22:27 1446911230
>>1443245 (OP)
А есть тут успешные джанго-разработчики? Как по вашему, что должен уметь/знать джун на эту позицию?
Я вроде как подтянул базовые знания, попробовал в редис, селери. Даже жс на уровне ajax запросов выучил.
Но на работу идти стремно, потому что кажется что я просто не смогу в энтерпрайз, я хуй знает какие там общепринятые практики и вот это вот всё.
Я в основном для работы проекты пилил, на своих костылях. Работало, да и хуй с ним. Но работу сейчас хочется поменять.
Аноним 02/08/19 Птн 20:23:54 1446913231
к теме про vk api. Как получиь посты конкретной группы, так и не нашел:?
Аноним 02/08/19 Птн 20:24:27 1446914232
>>1446653
Нашел уже сам проблему, но появился другой вопрос: "Как остановить цикл, который СУКА НЕ ХОЧЕТ ОСТАНАВЛИВАТЬСЯ?"

Дело в том, что в функции я запускал саму же функцию, но, если так можно выразиться, 1 поток функции не хочет оканчиваться даже если поставить после вызова функции break
Аноним 02/08/19 Птн 20:24:39 1446915233
>>1446913
вопрос снят, я открыл доки api и понял, лол
Аноним 02/08/19 Птн 20:26:47 1446918234
>>1446914
Вопрос снят, просто сделал еще одну (другую) функцию
Аноним 02/08/19 Птн 20:27:51 1446919235
>>1446874
Си, кресты. Никто не пишет такое на жабе, тебе пиздят. Внутри твоей видеокамеры вообще ртос на сишке крутится почти наверняка.
Аноним 02/08/19 Птн 20:33:06 1446924236
>>1446919
я думал что на си ++ . на джаве наверное для современных больше пишут.
Аноним 02/08/19 Птн 20:37:48 1446928237
211.png (622Кб, 817x571)
817x571
>>1446919
интересно на каком языке написано по на котором пикрил работает. пикрил 2000-го года выпуска.
Аноним 02/08/19 Птн 20:45:07 1446938238
Питонач, получаю я значит посты с группы и че бля? Получаю почти мгновенный "Rate limit reached" и это при 2500 - 5000 разрешенных вызовов, но вызвал ф-ию я только 2-3 раза. що за нах
Аноним 02/08/19 Птн 20:57:06 1446953239
>>1446938
крч мой план такой: Если будет много людей, то надо будет делать сортировку, типа 2-3 чела подписаны на "двач" и, чтобы бот понимал это и делал вызов только один раз, а отсылал троим. Это нужно, чтобы, если 1к пользователей на двач подпишутся, то бот каждый вызов не херачил для этой тысячи людей.
Аноним 02/08/19 Птн 20:59:48 1446958240
>>1446953
ну и снова возвращаясь к api vk или парсу. Парс все же надежнее, кто меня там заблочил, запросы бесконечные. А так это же пиздец, либо 100акков создавать, чтобы когда один терял доступ к апи система заходила под другим акком и обращалась к апи до тех пор, пока снова не блочнит, либо делать одного бота под конкретную группу, но это не устраивает меня. Я хочу, чтобы человек писал какие группы ему нужны, а бот сам все отправлял в виде новостей, вк тогда нахой не нужен будет.
Аноним 02/08/19 Птн 21:25:57 1446979241
>>1446958
Вот же блядь, я теперь через приложение вк не могу получить посты со стены групп, тк превысил число запросов, лол
Аноним 03/08/19 Суб 02:10:30 1447149242
.png (99Кб, 317x372)
317x372
В очередной раз пробую закрыть гештальт и научиться в погромирование.
В данный момент где-то на середине укуса питона. За что взяться после него?

Тут еще такое дело, я не могу понять кто я по складу ума - гуманитарь или техноблядок, с голой математикой у меня всегда был пиздец, зато хоть сколько-то имеющие прикладной аспект (химия, физика) понимались нормально. Ну и есесно всякая гуманитарная хуита с легкостью заходила. Прошу учесть это при совете.
Аноним 03/08/19 Суб 08:10:15 1447202243
>>1447149
Гуманитарий-хуянитарий. Тебе 14 лет, что ты такие вопросы задаешь? По твоему тут у каждого премия Тьюринга или что?
Как завещали старейшины сначала ты должен запилить свою борду. Можешь начать "Python. к вершинам мастерства". Она углубляется в разные аспекты питона и вполне актуальна, кроме разделов с asyncio
Аноним 03/08/19 Суб 13:07:44 1447297244
image.png (16Кб, 654x260)
654x260
Есть два потока, в одном я должен чекать появление новых постов в группе, а в другом слушать что прислал юзер боту. Как не пытался два никогда не стартуют, только какой-то один в зависимости от того, какой первый создашь. В чём проблема? Пробовал threading, _thread, вот версия через multiprocessing. Но суть то везде одна и та же, просто передаёшь функцию и запускаешь поток.
Аноним 03/08/19 Суб 13:23:18 1447302245
Аноним 03/08/19 Суб 13:37:09 1447308246
>>1443295
Даже смотреть не буду в таком виде -- пости на пастубин.

>>1443318
За каким хуем вообще втыкают ченнелс в джангу, если можно сделать отдельный сервис на асинхронном фреймфорке типа того же торнадо? Вебсокеты это уже событийное программирование, а это не прерогатива джанги.
Аноним 03/08/19 Суб 13:42:40 1447313247
Аноны, есть вопрос.

https://pastebin.com/UF6hPZVZ

Дело в том, что мне надо, что бы код просто вызвал другую функцию (ge2) в функции (ge), и ничего не возвращал. Как мне это сделать?
Аноним 03/08/19 Суб 13:45:29 1447315248
Подскажите какие плагины мастхев или просто очень хорошие для pycharm? Например можно сделать автодополнение хотя бы примерно как в саблайме?
Аноним 03/08/19 Суб 13:45:34 1447316249
Аноним 03/08/19 Суб 13:49:20 1447319250
>>1447313
>return list
Убери ретурн тогда. Строго говоря в питоне функции всегда возвращают что-то. Если явно не указан ретурн, тогда возвращается None
Аноним 03/08/19 Суб 13:49:48 1447320251
>>1447302
Все сильно поменялось с тех времен. Концепция та же, но инструменты изменились
Аноним 03/08/19 Суб 13:50:34 1447322252
Аноним 03/08/19 Суб 14:01:08 1447334253
>>1447319
Спасибо, буду думать
Аноним 03/08/19 Суб 17:33:43 1447470254
doge.png (779Кб, 1366x656)
1366x656
Братишки, сосу хуйца, как полагается всем, кто хочет стать великим программистом. На данный момент хуец состоит из нескольких индусских циклов.
https://pastebin.com/kmTCkz2X
Хочу понять принцип, а именно почему после итерации в подцикле с 9 по 11ую строчки интерпретатор улетает в самое начало цикла на первую строку, а не продолжает бегать по подциклу, а потом спускаться ниже и ниже. ЧТО НЕ ТАК С ОТСТУПАМИ БЛЯТЬ? простите
Аноним 03/08/19 Суб 17:58:02 1447484255
В vs code норм с питоном работать или лучше ставить для него что-то отдельное?
Аноним 03/08/19 Суб 18:14:59 1447492256
>>1447297
Ну ребят, ну чё за приколы, почему второй поток не стартует?
Аноним 03/08/19 Суб 18:20:52 1447496257
>>1447470
Что на вход подаешь и что пишет?
Что эта хуита вообще делает?
Если при входе в цикл x не a, b или c, то он так и будет бегать, потому что ты i не меняешь.

Если ты хочешь посчитать все вхождения каждого элемента из трех, сделай нормальный проход по коллекции:
for element in x:
...
а не байтоебский.
Аноним 03/08/19 Суб 18:59:34 1447512258
Изучаем пайтон Лутца 5-е издание ещё сохраняет актуальность? Если нет, то чем заменить? Вроде как эта самая новая книжка в шапке, но ей уже 6 лет, что вроде как не малый срок.
Аноним 03/08/19 Суб 19:46:25 1447546259
>>1447492
Что такое bot.polling и почему бы подставляешь вызов функции, а не саму функцию? Если ты вызываешь функцию, то в target будет записан результат вызова (предполагаяется что ещё какая-то функция, которую можно вызвать), и только потом стартует процесс
Аноним 03/08/19 Суб 20:01:25 1447554260
>>1447316
Вторая вообще не про асинхронку, там про низкоуровниевую работу с сокетами, что-то про HTTP, а потом они не к селектам идут, а к форкам.

Первая тяжеловеская и с устаревшим синтаксисом, там asyncio.coroutine / yield from. Ну может если через генераторы разбирать внутреннее устройство асинхронной работы и нормально, глубже понимание будет, но это тяжёлый путь и опыт хороший нужен в питоне. В том числе с теми же генераторами, с работой с select, и т.п., а это серьёзный уровень.
Аноним 03/08/19 Суб 20:54:04 1447595261
>>1447554
Обе ссылки объясняют простую вещь - высокопроизводительный веб-сервер реализуется на основе событий операционной системы. А первая объясняет что корутины в контексте asyncio это синтаксический сахар над callback-ами которые задаются таким событиям в качестве обработчиков.
Аноним 03/08/19 Суб 20:55:19 1447598262
>>1447546
Это функция, которая слушает команды юзера, которые он боту в чат кидает
Аноним 03/08/19 Суб 21:05:19 1447610263
>>1447546
> почему бы подставляешь вызов функции, а не саму функцию?
Блять, спасибо, что навёл меня на решение. Ты лучший
Аноним 03/08/19 Суб 21:06:27 1447613264
>>1447470
Какой у тебя там подцикл с 9 по 11 строчку? Если условие после if имеет значение True, то он просто выполнит две следующие строчки кода, а код, следующий после else, выполняться по очевидным мне причинам уже не будет.
Аноним 03/08/19 Суб 21:21:25 1447626265
>>1447595
Это тяжеловесно, ненаглядно, через это трудно продраться. И насколько я понимаю, в будущем от этого уйдут, внутренняя реализация может быть другой. Уже сейчас yield from и async не очень совместимы в одной функции.

Вообще, это сложная вещь, чтобы с этого начинать.

https://www.youtube.com/watch?v=MCs5OvhV9S4

Вот тут лекция на ютубе, на английском, где поясняется на примере вся история с асинхронности, причём и на примере потоков, и на примере генераторов. Намного более наглядная, чем этот текст.

Но генераторы-корутины ещё очень небольшая часть от asyncio. Там больше магии с разными сущностями (корутины, Future, Task, scheduler (планировщик), event loop, event loop policy), идеи плохо расписаны, что ключевое, что нет.

Я бы вообще советовал тем, кто на JS немного пишет, разобраться с асинхронностью там для начала. И с коллбэками, и с промисами, и с async/await. После этого понять питон будет проще. В питоне модель асинхронности сложнее, хотя сейчас её упрощают специально. В 3.7 уже можно просто писать, не погружаясь в технические детали. А в 3.5-3.6 уже сложнее, в 3.4 какой-то полный ад.
Аноним 03/08/19 Суб 22:35:58 1447677266
Пацаны, не обосыти, а помогите! Только начинаю осваивать питон.

У меня есть 2 списка: files, language

Мне нужно внутри цикла (for element in files:) перебирать еще и список language

Как правильно написать это?



directory = '/Users/Desktop/pythom/upload/'
files = os.listdir(directory)
language = ['english', 'russian', 'spanish']

for element in files:
print(directory+element)
Аноним 03/08/19 Суб 22:45:45 1447681267
>>1447677
Ну внутри цикла и перебирай, сделай внутри цикла ещё один цикл но уже по второму списку.
Аноним 03/08/19 Суб 22:50:33 1447685268
>>1447677
Каким образом тебе его нужно перебирать? Что нужно делать с элементами списка language?
Первое, что приходит на ум с таким количеством данных:
for element in files:
____for lang in language:
________<какая-то операция>
____<какая-то операция>
Аноним 03/08/19 Суб 22:51:58 1447687269
>>1447626
Это хорошая база чтобы начать.

И да, это видео я в свое время тоже видел и оно мне ответов на мои вопросы не дало. Поэтому я скинул эти ссылки, а не это видео.

Ну и тогда уж можно было бы скинуть версию с переводом
https://www.youtube.com/watch?v=ys8lW8eQaJQ
Аноним 03/08/19 Суб 22:54:00 1447688270
>>1447681
Всё братишка, я тупанул, спасибо!
Аноним 03/08/19 Суб 22:54:27 1447689271
>>1447685
Да, спасибо, так и сделал. От души!
Аноним 03/08/19 Суб 22:55:40 1447690272
Аноним 03/08/19 Суб 23:17:02 1447693273
>>1447470
PEP 8 по отступам
я нихуя не понял что это за код и что он делает

Аноним 03/08/19 Суб 23:32:45 1447706274
>>1447693
Человек явно недавно вкатываться начал, а ты ему уже про PEP 8.

Код, если я не ошибаюсь, всего-навсего считает количество 'a', 'b' и 'c' в строке x.
Аноним 03/08/19 Суб 23:44:52 1447711275
Ультра-нубас снова на связи.

Я получаю все docx файлы из директории:
files=glob.glob("/Users/gobsek/Desktop/pythom/bookstoupload/.docx")

Абсолютный путь пытаюсь заменить на относительный

print (os.path.dirname(os.path.abspath(__file__)))
Получаю /Users/gobsek/Desktop/pythom

Как мне совместить:
os.path.dirname(os.path.abspath(__file__)) + /bookstoupload/
.docx

Чтобы на выходе получить, что glob ищет все файлы docx в папке bookstoupload по адресу os.path.dirname(os.path.abspath(__file__))

Аноним 03/08/19 Суб 23:48:30 1447712276
>>1447711
Вот так работает, но это костыль же, верно?
И я не понимаю каких-то совсем основ

path = os.path.dirname(os.path.abspath(__file__))
files=glob.glob(path+"/bookstoupload/*.docx")
Аноним 04/08/19 Вск 00:38:14 1447722277
Пацаны, а тут по селениум по хардкору поясняют или нахуй шлют?
Аноним 04/08/19 Вск 00:45:21 1447725278
Аноним 04/08/19 Вск 00:48:56 1447726279
4605b7cf7e1ab87[...].jpg (413Кб, 2240x1400)
2240x1400
>>1447496
Это задача на нахождение символов a, b, c в строке. Строка вида "aaaabbbbcba"
Объясните пожалуйста неофиту, что есть
>нормальный проход по коллекции
и
байтоебский [проход по коллекции(?)]
>>1447706
ДА! Моя хуйня оказывается читабильна. вкатываюсь чуть больше месяца хз где менторов искать, вот пришёл на двощ, ведь здесь все мои друзья
>>>1447613
Моя теория была такова:
- Сначала цикл бегает 2 и 4;
- Потом выполняется условие else, и начинается подцикл между 9 и 11;
- Потом работаетусловие else на строке 12, и идёт следущий подцикл

Но после выполнения первой итерации на подцикле 9 - 11 строки у меня интерпретатор уходит на первую строку. Не могу понять почему.
Аноним 04/08/19 Вск 01:06:28 1447731280
Не разбирусь как логгировать все ошибки?

Вот в консоле мне пишет ошибку, всё заебись. Как это всё в файл направить?

Пока придумал только py мойскрипт.py > log.txt

Но это же костыль. Смотрю на модуль logging и нихуя не пойму, честно говоря.
Аноним 04/08/19 Вск 01:08:26 1447733281
>>1447731
в документации к logging есть пара статей-туториалов.
Аноним 04/08/19 Вск 01:09:55 1447734282
>>1447726
Напиши условие задачи.
Аноним 04/08/19 Вск 01:13:19 1447737283
>>1447733
Там написано сделать вот так и будет заебись

logging.basicConfig(
level=logging.INFO,
filename='app.log', filemode='a')

но нихуя не заебись, пустой файл имею
Аноним 04/08/19 Вск 01:14:38 1447738284
Аноним 04/08/19 Вск 01:15:59 1447739285
Поцоны, подскажите нубу:

class Stand:

def __init__(self, name):
self.name=name


stand1=Stand('stand1')
stand2=Stand('stand2')
stand3=Stand('stand3')
stand4=Stand('stand4')


class File:

def __init__(self, name, stand):
self.name=name
self.stand=stand

file1=File('file1', stand1)
file2=File('file2', stand2)
file3=File('file3', stand3)
file4=File('file4', stand4)


class Request:

def __init__(self, name, file):
self.name=name
self.file=file


send = Request('send', [file1, file3])
resend = Request('resend', [file1, file2, file3, file4])
delete = Request('delete', [file4, file3])


На вход получаем атрибут name класса Stand и атрибут name класса Request. В результате я должен получить объект класса File, который соответствует заданным значениям. Как это правильно реализовать?
Аноним 04/08/19 Вск 01:17:14 1447740286
>>1447738
import os
import glob
import logging


path = os.path.dirname(os.path.abspath(__file__))
logging.basicConfig(
level=logging.DEBUG,
filename=path+'/app.log', filemode='a')

def main():
files=glob.glob(path+"/bookstoupload/*.docx")
language = ['english', 'russian', 'spanish']
print (files)

for element in files:
for lang in language:
print(element)
print(lang)
f = open(path+'/books.txt', 'a')
f.write(os.path.basename(element) + " " + lang + " "+ "DONE"'\n')
f.close()
os.remove(element)
f = open(path + '/books.txt', 'a')
f.write(os.path.basename(element) + " " + "REMOVED"'\n')
f.close()

main()
Аноним 04/08/19 Вск 01:29:38 1447743287
Untitled-1.jpg (122Кб, 1047x439)
1047x439
Аноним 04/08/19 Вск 01:37:10 1447748288
>>1447743
Ну вот смотри, у тебя в условии не сказано, что могут быть только символы a, b, c, сказано что надо учитывать регистр, то есть могут быть варианты AaaRtQppQbccccCcr и т.п.

Поэтому ты не может так явно сравнивать. Идея решения такая:
1) ты заводишь переменную "последний символ" и счётчик. Если текущий символ в последовательности такой же, как последний, увеличиваешь счётчик. Если же другой, выводишь "последний символ"+"счётчик", обновляешь переменную "последний символ", присваиваешь значение счётчику = 1.

2) тут тонкости с тем, как стартовать цикл и с тем, как его завершить, чтобы не потерять последнюю группу символов. Несложно, но надо сделать. Разные способы есть.
Аноним 04/08/19 Вск 01:58:30 1447757289
>>1447748
С регистром вроде вопросов нет.
1) Погоди, "последний символ" это литера, которую в данный момент проверяет программа? Кстати, поясни почему счетчику нужно присвоить значение 1, помню, что я до этого как-то дошёл сам, но потом забыл. Почему не 0?
2) В моём полном коде есть len(s), я ее как раз таки сделал, чтобы на последнем символе цикл прекратить.
Аноним 04/08/19 Вск 02:07:32 1447762290
>>1447757
>В моём полном коде есть len(s), я ее как раз таки сделал, чтобы на последнем символе цикл прекратить.
Это тоже один из вариантов. Ещё вариант есть добавить в конец символ не из списка, который встречаться не может, тогда он будет просто утерян, а все целевые останутся.

Мне просто в принципе не нравятся лишние проверки в цикле, не очень нужные и разовые. Слёту, можно такой вариант сделать:

seq = "aabbDDcdadfddsssasdfa" # мы закладываемся, что длина ненулевая
count = 0 # перед стартом 0, чтобы корректно начать цикл
prev = seq[0]
for symbol in seq:
if symbol != prev:
print("{}{}".format(symbol, count))
prev = symbol
count = 1 # У нас уже есть один новый символ
else:
count += 1
else: # это условие будет выполнено по окончании цикла, особенность питона
print("{}{}".format(symbol, count))

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

Аноним 04/08/19 Вск 02:46:00 1447769291
Блядь, так как эти ебанные ошибки логировать в файл. Пиздос, уже индуса просмотрел, нихуя не понял.

Я что при использовании import logging должен сам расставлять вот эти хуевины в коде? А если не расставил, то хуй мне, а не логи?
logging.debug("This is a debug message")
logging.info("Informational message")
logging.error("An error has happened!")

Что нет готовой библиотеки/модуля, чтобы все ошибки записывать в файл? Не может же быть такого
Аноним 04/08/19 Вск 06:17:46 1447786292
>>1447726
>Объясните пожалуйста неофиту, что есть
>>нормальный проход по коллекции
Смотри, пусть у тебя есть список xs, тогда просто пройтись по нему от начала до конца идиоматично можно так

for x in xs:
print(x)

А можно представить, что это массив в языке си и делать так:

for i in range(len(xs)):
print(xs)
i += 1

или даже

i = 0
while i < len(xs):
print(xs)
i += 1

Это правильно, но не так хорошо читается.


По задаче отступы правильно, но ты не во всех ветвления прибавляешь единичку и индексу. Если бы ты сделал плоский свитч (if .. elif .. elif .. else) это было бы проще отловить.
Аноним 04/08/19 Вск 06:19:57 1447787293
Аноним 04/08/19 Вск 06:34:55 1447788294
7705.jpg (111Кб, 800x360)
800x360
Требую эту картину на ОП-пик!
Аноним 04/08/19 Вск 08:30:27 1447792295
>>1447712
Нормально, но pythonic-way - это использование библиотеки pathlib при работе с путями:

from pathlib import Path

path = Path(__file__) / 'bookstoupload'
files = path.glob('*.docx')
Аноним 04/08/19 Вск 13:21:55 1447869296
скиньте чатик питонистов в тележке
Аноним 04/08/19 Вск 13:25:37 1447872297
Хелпаните плз. Не могу понять как использовать классы дада, я тупой. Например как это сделать с классами и сохранением изменённого словаря. https://pastebin.com/T7hrSdJf
Аноним 04/08/19 Вск 13:42:34 1447884298
>>1447872

class MyClass:

def __init__(self, my_dict):
self.my_dict = my_dict

def add(self, key, item):
self.my_dict[key] = item

def delete(self, key):
del self.my_dict[key]

def search(self, item):
return self.my_dict.get(item)

def show(self):
for k, v in self.my_dict.items():
print('{}: {}'.format(k, v))




my_dict = {'name0': 'number0', 'name1':'number1', 'name2':'number2'}

m = MyClass(my_dict)
# m.show()

m.add('name99', 'number99')
# m.show()
m.delete('name0')
#m.show()
print(m.search('name99'))


остальное сам сделай
Аноним 04/08/19 Вск 13:43:09 1447885299
Аноним 04/08/19 Вск 14:41:26 1447912300
>>1443245 (OP)
Какая сейчас примерная зряплата для вкатывальщиков(в ДС)? Насколько трудно найти работку, если в приоритете не веб?
Есть примерно год опыта ковыряния по вечерам своего кривого проекта на джанге и пандасах. Олсо до этого несколько лет кодил на плюсах, но это было давно и неправда.
Аноним 04/08/19 Вск 14:48:47 1447916301
Аноним 04/08/19 Вск 17:13:09 1447991302
https://pastebin.com/QSSd0dC2
Как сделать этот уебищный кусок кода c проверкой нескольких условий более красивым и лаконичным?
Использовать обратный слэш в питоне это вроде как зашквар и признак нуба.
Аноним 04/08/19 Вск 17:25:34 1447999303
image.png (6Кб, 290x218)
290x218
Нуб уже который раз в треде. Как реализовать создание нового экземпляра уже с новыми параметрами на месте старого в теле method?

>> f = Foo(1, 2, 3)
>> f
<какой-то объект Foo с атрибутами 1, 2, 3>
>> f.method(2, 2, 8)
>> f
<какой-то объект Foo с атрибутами 2, 2, 8>
Аноним 04/08/19 Вск 17:30:33 1448003304
>>1447991
Первое, что пришло в голову: if last_sym not in (",", ":", "=", "--") and len(line) > min_len.
Аноним 04/08/19 Вск 17:42:44 1448005305
Аноним 04/08/19 Вск 18:08:57 1448018306
>>1447991
Как, блять, вообще один последний символ может быть равен двум '--'. Почему last_sym = line[-1:] А не просто last_sym = line[-1]
Аноним 04/08/19 Вск 18:14:40 1448022307
>>1448018
Да никак, это я по невнимательности проебался чутка.
Аноним 04/08/19 Вск 18:42:36 1448037308
>>1447999
Ты хочешь вообще все переинициализировать? Тогда наверное лучше сделать f = Foo(2, 2, 8), так понятнее, что ты пересоздаешь объект. Если хочешь часть атрибутов поменять, то просто в методе это и делай
def method(self, a, b, c):
self.a = a
self.b = b
self.c = c
Аноним 04/08/19 Вск 18:44:06 1448040309
>>1447991
>Использовать обратный слэш в питоне это вроде как зашквар и признак нуба.
Иногда без него никуда не деться, если надо - используй и никого не слушай потом может быть отрефакторишь
Аноним 04/08/19 Вск 19:22:22 1448056310
image.png (8Кб, 267x225)
267x225
>>1448037
Пожалуй, подобный способ для моих целей подходит даже больше. Спасибо.
Впрочем, и по своему вроде удалось реализовать.
Аноним 04/08/19 Вск 20:14:19 1448067311
Хай питонач, есть тут кто, кто шарит за апи телеги? Вопрос какой, можно ли сделать так, чтобы добавив бота и написав ему команды, бот самостоятельно отправлял какие то новости итд итп в личку? Можно ли как-то узнать идентификатор беседы юзера и бота или самого юзера?
Аноним 04/08/19 Вск 20:16:06 1448068312
>>1448067
легко

sendmessage есть метод, указываешь юзверя, бот отправляет по @id-шнику ну или по числовому, надо его отдельно узнавать
Аноним 04/08/19 Вск 20:26:42 1448073313
Привет, анон-питон. Подскажи плиз фреймворк/либу для разворачивания простейшего сервака с парочкой роутов.

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

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

def my_hanler(req):
print(req)

server.start()
server.listen(/api/huyapi/, my_handler)

Обнял того, кто наведет на путь истиный.
Аноним 04/08/19 Вск 20:36:14 1448078314
>>1448073
Ответ формы можно хоть через import http.server сделать.
А так - бери Flask, ещё никто не жаловался на него.
Аноним 04/08/19 Вск 20:38:46 1448079315
>>1448078
Спасибо, наверное import http.server возьму. Фласк излишен будет, мне там в прямом смысле 10 строк кода нужно - схоронять данные из формы в текстовый файл и больше ничего не делать
Аноним 04/08/19 Вск 21:12:21 1448104316
Хело, ананасы.
Я в программировании вообще абсолютный нюфаг, в свое время баловался на начальном уровне CSS+HTML, шо как бы намекает, что я далеко не программист.
Так вот, возникла внезапная необходимость собрать кое-какую хуевину...
Существует огромный, сцуко, файл *.docx на почти тысячу страниц, состоящий из множества таблиц, в каждой из которых перечисляются люди, учащиеся на одной специальности, но в разных шарагах, и небольшого описания к каждой из них. В каждой таблице пять столбцов (на деле не совсем так, но для простоты представим). Первый столбец - номер строки, второй - id-число, третий - ФИО персонажа, четвертый - численное значение балла на экзе, пятый - трехзначный номер заведения, в котором персонаж состоит.
Так вот, надо каким-то образом научить железный ящик выбирать из этого файла только персонажей из конкретной шараги и сохранять в отдельный файл, желательно - с группировкой по специальностям.
Звучит совершенно не сложно, кажется (кроме этапа с подключением .docx файла), но у меня, как у человека, который в пайтоне только задачки на питонтьюторе решал, попытка представить принцип работы целиком вызывает когнитивный диссонанс.
Так вот, товарищи, поделитесь, пожалуйста, как такую хрень можно вообще реализовать? Каким вы видите подобный скрипт? За любую информацию буду благодарен люто-неистово, только дайте направление, куда копать. Если в чем-то я проебался и это что-то нереализуемо - скажите, пожалуйста, что именно, что теперь делать-то вообще и вообще. И насчет реализуемого тоже что-нибудь скажите, пожалуйста.
Сумбурно, но, как говорится, "часики-то тикают". Заранее спасибо, пацаны.
Аноним 04/08/19 Вск 21:15:13 1448107317
>>1448104
Нахуя тебе питон для этого? VBA для кого придумали?
Аноним 04/08/19 Вск 21:28:43 1448118318
>>1448107
Вооот, уже ответы пошли. Люблю анона. Попиздил гуглить, что это такое.
Насчет пайтона - хуй знает, нравится он мне почему-то))9
Давно хотел заняться изучением, а тут вот такая необходимость возникла, я и загорелся чет. Но если на нем я слишком заебусь этим заниматься, то ладно, можно отложить, думаю.
А на этой твоей хуйне мою хуйню будет сильно геморно склепать?
Аноним 04/08/19 Вск 21:30:43 1448119319
>>1448118
Вах, ебац, типа прям с вордом работать умеет. Благодать. Покурю.
А в принципе если отмести тот факт, что мне нужно работать именно с *.docx, на пайтоне это реализуемо?
Аноним 04/08/19 Вск 21:35:23 1448123320
big1544750217An[...].png (143Кб, 360x360)
360x360
>>1448104
мне кажется легче в sql все записать, спарсить всё и записать

https://github.com/python-openxml/python-docx/issues/13

там даже какой-то полуготовый ответ лежит, мельком глянул
парсишь таблицы и все запихиваешь в базу sql
Аноним 04/08/19 Вск 21:36:00 1448124321
>>1448119
Можно и через питон, но нахуя, если микрософт тебя прямо в ворд всё запихали.
Аноним 04/08/19 Вск 22:01:54 1448138322
>>1448068
благодарю анончек, посмотрю! Счастья и здоровья тебе
Аноним 04/08/19 Вск 22:04:31 1448140323
>>1448123
Оп, охуенно. Полностью ещё не прочитал, но выглядит полезно. Насчет SQL тоже покурю утром, попытаюсь вникнуть в твою мысль, анонче. Спасибо за годную ссылочку.
Аноним 04/08/19 Вск 22:07:02 1448143324
Анон, поясни в чём разница между

class MyClass:

____test = 0

и

class MyClass:

____def __init__(self, test):
________self.test = test

Когда и что юзается и какие есть подводные?
Аноним 04/08/19 Вск 22:09:24 1448146325
>>1448143
В первом случае у тебя переменная общая на весь класс, то есть глобальная, во втором у каждого объекта своя переменная.
Аноним 04/08/19 Вск 22:14:21 1448151326
>>1448119
Вся работа тут в подключении docx, парсинге данных, обработке разных исключительных ситуаций и наступании на потенциальные грабли. То есть 90% работы будет в том, чтобы загнать этот docx в какую-нибудь нормальную питон-структуру. А там уже можно легко и быстро данными манипулировать.

Тут реально от питона ничего.
Аноним 05/08/19 Пнд 01:09:30 1448235327
Есть парочка вопросов по телеге.

Вот добавил я бота, написал ему, например, что хочу читать такой-то тред и приложил ссылку на него. Бот обработал запросик и начал слать ответь анонов. Эти ответы будут видеть все пользователи бота или именно тот пользователь, что написал ссылку треда? Если все ,то можно сделать работу бота по каждого пользователя, а не под всех?
Аноним 05/08/19 Пнд 01:31:55 1448241328
>>1448235
скинь код, как можно без кода понять кому бот шлет сообщение
Аноним 05/08/19 Пнд 01:47:05 1448244329
>>1448241
я не про свой код. Я спрашиваю реально ли сделать то, что я хочу?
Аноним 05/08/19 Пнд 01:47:57 1448245330
Я правильно понимаю, что стоит делать бота для телеги без использования библиотек? Ну чтобы учиться с API работать и всё такое?
Аноним 05/08/19 Пнд 02:14:10 1448257331
>>1448245
Нет, делай через либы, если таковые есть, если нет, то ебаш через реквесты
Аноним 05/08/19 Пнд 04:08:07 1448271332
>>1444903
Выкатывается в тред нуб. Вообще можно через in range это оформить.
Аноним 05/08/19 Пнд 12:58:04 1448365333
>>1448235
так ты же шлешь ответы КОНКРЕТНОМУ челику, а не всем подряд
Аноним 05/08/19 Пнд 13:07:26 1448369334
>>1448365
не кричи, мать. Почитал доки и понял, что высрал хуету
Аноним 05/08/19 Пнд 13:42:01 1448385335
>>1448369
>Почитал доки
Ебать ты экстремал
Аноним 05/08/19 Пнд 13:47:12 1448390336
>>1443442
Ты чё бля гонишь? Паразит!

def pizda(a, b, i, N):
return (((aN)+(bN)+i)*2)-a
Аноним 05/08/19 Пнд 14:11:37 1448395337
Щас работаю линукс админом, думаю стать питон макакой. Какие подводные? Не поздно ли делать перекат в 24 года?
Аноним 05/08/19 Пнд 14:16:58 1448397338
>>1448395
Иди нахуй, дебил, весь раздел своей парашей засрал.
Поздно уже, ты слишком тупой.
Аноним 05/08/19 Пнд 15:21:22 1448439339
>>1448395
Подводных никаких, не поздно.
Аноним 05/08/19 Пнд 15:23:39 1448443340
>>1448056
Ну это почти то же самое, что и a = Foo(5), только неявно, а питонодзен говорит, что явное лучше неявного, так что смотри, не отстрели себе ничего.
Аноним 05/08/19 Пнд 17:02:13 1448487341
Поясните за сокеты, плз.
Допустим, есть приложение на джанге. В это приложение хуйня на ардруине шлет гет запросы через форму и записывает их в базу. На другой странице они рендерятся в хтмл. Возможно ли с сокетами сделать асинхронное обновление этих записей, на странице которые они рендерятся, чет никак не могу понять? Потыркался в аякс, но там немного не то что мне нужно, там данные обновляются с указанным интервалом. А мне надо как только прилетело новое значение на сервер - оно сразу же отрисовалось у клиента
Аноним 05/08/19 Пнд 17:42:50 1448503342
>>1448487
> А мне надо как только прилетело новое значение на сервер - оно сразу же отрисовалось у клиента
ZMQ/RabbitMQ
Аноним 05/08/19 Пнд 17:48:01 1448507343
>>1448503
Спасибо, буду в этом направлении рыть. Юзать это все равно с каким нибудь асинхронным фреймворком типа Celery, да?
Аноним 05/08/19 Пнд 17:52:17 1448512344
>>1448507
> асинхронным фреймворком типа Celery
> фреймворком
Это не совсем так.
Смотря какая у тебя архитектура там вообще, можешь с Селери, можешь отдельно.
Аноним 05/08/19 Пнд 20:59:01 1448585345
>>1448512
Да у меня там нет ничего толком. Все просто, уровень не выше чем бложек из мануалов.
Ладно, спасибо за наводку. Добра.
Аноним 05/08/19 Пнд 21:57:19 1448609346
87fb13120a0f917[...].png (217Кб, 412x500)
412x500
Есть ебучий датафрейм.
В ячейках одного столбца есть ебучие кортежи, причем ключи там примерно одинаковы.
Как вычленить этот сраные кортежи, так чтобы ключи стали новыми столбцами, а значения - значениями столбцов?
Аноним 06/08/19 Втр 11:15:19 1448805347
Хайль питонисты. Язык очень люблю, мне нравится на нём писать, да и опыта уже не мало. Но я не люблю веб, не люблю датасайнс и прочие математические приблуды...
Мне нравится писать что-то, что используется повседневно, я был бы счастлив участвовать в разработке ворда, клиента стимача, Файерфокса и тому подобного.
На данный момент я использую питон для разработки игор (но мне просто повезло, что есть финансирование. Не уверен, что если его перекроют я найду аналогичную работу) и для автоматизации задач (что своих, что помогаю девопсам в крупной ИТ компании из спб).

Есть вообще при таких раскладах смысл продолжать задротить питон? Или стоит заняться джавой (которую я тоже люблю)? Или вообще уйти на C# (к языку претензий не имею, кроме того, что методы начинаются с большой буквы, а вот VS я непереношу. Но, наверное, можно привыкнуть)?

Ваше мнение?
Аноним 06/08/19 Втр 14:33:39 1448887348
Хай питонач, написал я бота и залил его на пайтонэнивер, запустил и вроде работает, но бот принимает только команду /start, ни на что другое не реагирует, хотя вебхук установлен. Пробовал вырубить /setprivacy, но ничего не помогло. хелп. Прилагаю скрины.
Аноним 06/08/19 Втр 14:34:12 1448888349
image.png (106Кб, 1509x811)
1509x811
image.png (30Кб, 511x531)
511x531
Аноним 06/08/19 Втр 15:20:17 1448911350
Аноним 06/08/19 Втр 15:20:59 1448912351
>>1448911
мне не твое мнение нужно, а что сделатЬ, чтобы заработала.
ебучий зуммер
Аноним 06/08/19 Втр 15:28:07 1448918352
>>1448912
Попробуй сосать хуи
Аноним 06/08/19 Втр 15:29:06 1448920353
>>1448918
порвался, либераха

Ты вместо своих высеров помог бы брату питонисту
Аноним 06/08/19 Втр 15:40:45 1448926354
>>1448918
хахах, я даун. Я не тот файл редаичил, что запускался.
Аноним 06/08/19 Втр 16:22:37 1448958355
>>1448805
Си-сярп хорош для геймдева, бери его !
Аноним 06/08/19 Втр 16:31:01 1448961356
image.png (2267Кб, 1508x932)
1508x932
>>1448805
Можешь попробовать какой нибудь Рygame или Pyglet. Но сишарп пока что кажется более лучшим решением.
Аноним 06/08/19 Втр 16:39:53 1448968357
>>1448920
>>1448926
Вот видишь, стоило пососать хуи - и все сразу получилось.
Аноним 06/08/19 Втр 16:43:59 1448970358
Как заставить эту хуету вернуться к началу цикла вхиле, а не переспрашивать, хочу ли я продолжить?

def user(nickname, name, last_name):
"""Собирает в словарь информацию о пользователе и выводит её"""
while True:
user_info = []
user_info.append (name)
user_info.append (last_name)
user_info_array = {}
user_info_array [nickname] = user_info
for nname, uinfo in user_info_array.items():
print(nname, uinfo[0], uinfo[1])
quit = input ('do u wona quit? ')
if quit == 'no':
False


nickname = input ('Enter ur nickname ')
name = input ('Enter your name ')
lastname = input ('Enter govnour lastname ')

user(nickname, name, lastname)
Аноним 06/08/19 Втр 16:48:38 1448972359
>>1448970
Пробелы проебалися, извините
Аноним 06/08/19 Втр 16:54:57 1448974360
>>1448970
>>1448972
Хлебушек я, совсем не так делаю. Вопрос отзывается
Аноним 06/08/19 Втр 16:56:00 1448975361
>>1448970
Могу предположить, что вместо "False" нужен "break".
В следующий раз выкладывай на pastebin. Облегчишь задачу и себе, и другим.
Аноним 06/08/19 Втр 16:57:36 1448976362
>>1448975
Не помогает бреак, и вообще там я неправильно в словарь никнеймы складываю
Аноним 06/08/19 Втр 17:02:22 1448977363
>>1448970
А что ты такое хочешь сделать? По факту у тебя в функции вечный цикл, из которого нет выхода.
Аноним 06/08/19 Втр 17:05:07 1448979364
>>1448977
Нихуя не вечный, и хуй знает что я делаю. Дошел до функций в учебнике и захотел немножко забежать вперед без подсказок автора
Аноним 06/08/19 Втр 17:12:52 1448982365
1.png (36Кб, 600x413)
600x413
2.png (16Кб, 562x250)
562x250
Ага, вот
Аноним 06/08/19 Втр 17:25:47 1448999366
А в пизду, зря только мозг себе вынес. Пойду дальше читать
Аноним 06/08/19 Втр 17:31:32 1449007367
>>1448979
Как же не вечный, если вечный? Твоё
if quit == 'no':
____False

не сделал для его остановки ровным счётом нихуя.
Аноним 06/08/19 Втр 17:33:33 1449009368
>>1449007
Если написать NO, то один хуй выйдет из цикла, просто проебался со значением. Вон на картинке более менее нормально сделал, например
Аноним 06/08/19 Втр 17:36:27 1449011369
>>1449007
Ты не понял походу, я хотел анально заставить вернуться питон в начало цикла вхиле, чтоб оно запрашивало ввод с никнейма, нейма и ластнейма по новой.
Аноним 06/08/19 Втр 17:57:56 1449027370
>>1449011
Для этого у тебя инпуты из промта должны быть внутри цикла, иначе как ты введёшь новую информацию? Один раз ввёл и всё, функция твоя раьотает только с уже введёнными данными
Аноним 06/08/19 Втр 18:00:47 1449028371
>>1449027
Ааааааа, сука, блядь. Спасибо
Аноним 06/08/19 Втр 18:28:55 1449043372
>>1448982
Нахуя ты везде пробелы перед скобками ставишь? Тебе даже среда говорит, что ты еблан и что-то делаешь не так.
Аноним 06/08/19 Втр 18:32:01 1449044373
>>1449043
Понял, принял. А я то думал чего это он выёбывается
Аноним 06/08/19 Втр 19:09:30 1449054374
>>1449044
Загугли как делать reformat code в твоём редакторе и делай регулярно. Таким образом легко изучишь pep 8
Аноним 06/08/19 Втр 23:25:32 1449165375
PyQt5 юзал кто-нибудь?
Делаю кнопки, и у них коллбек с опциональным аргументом (какие-то кнопки передают его, какие-то нет).
Коллбек типа такого:
def onClick(self, opt_arg=None):
И в общем когда делаю проверку этого optarg внутри функции, то он внезапно возвращает False вместо None, хотя пока никто и не передает туда ничего.
В чем косяк? Нормальных доков по кути на питоне не нашел, поэтому хз какая там сигнатура.
Аноним 06/08/19 Втр 23:32:16 1449168376
>>1449165
Бля, там в кликед еще передается чекед зачем-то.
https://doc.qt.io/qt-5/qabstractbutton.html#clicked
Хотя во всех примерах пишут button.clicked.connect(partial(calluser,name)) и в коллбеке не смотрят никакой чекед, хуйня какая-то.
Аноним 07/08/19 Срд 00:31:22 1449185377
>>1449168
Питонач на помощь.

У меня есть функция, которая парсит всякое и отправляет их куда мне надо. Как мне сделать так, чтобы все повторялось? Кстати, все это надо отправлять нескольким людям, повтор отправки для всех разный и что отправляется тоже. Как реализовать отправку по времени, нужно ли использовать классы для этого?
Аноним 07/08/19 Срд 00:45:44 1449188378
>>1449185
Сделай циклом.
Что-то возможно стоит отдельными тредами сделать.
По времени надо таймеры смотреть или системную дату.
Задача не понятна нихуя.
Аноним 07/08/19 Срд 01:02:13 1449192379
>>1449188
крч, поступает запрос от пользователя, тип пропарси сайт и таких пользователей много, у каждого свои хотелки. Но смысл один, прога парсит сайт и повторяет это каждый час, например. Вот первый юзер пишет пропарси хх.ру и это в 14:00, получает результаты и через час бот снова их отправляет.
второй пользователь пишет в 16 часов и бот должен в 17 ему снова отправить результат.
Аноним 07/08/19 Срд 01:17:29 1449195380
>>1449192
Ну хз, храни пул ивентов, которые надо обработать. При запросе добавляй в пул инфу. В каком-то треде крути проверку ивентов.
Или при запросе тупо на таймер вешай событие, а при отправке снова его засекай.
Если это веб-сервис или тг-бот, там мб какие-то свои еще приколы есть.
Аноним 07/08/19 Срд 01:20:08 1449198381
Аноним 07/08/19 Срд 01:27:53 1449201382
>>1449198
Если надо долгосрочно, то скорее всего да.
Аноним 07/08/19 Срд 05:46:34 1449228383
>>1449185
>>1449192
Тебе нужны менеджеры задач, типа Celery и проще.

Архитектурно: интерфейсный модуль получает от пользователя задачу и складывает в очередь сообщений, например просто в БД в виде строки или объекта
"parse sweet-wet-pussy-cats.com 01:08:2020 14:00"
одновременно у тебя крутится несколько процессов-воркеров, они сканируют эту очередь задач, забирают, выставляют флаг "выполняю". Как сделают, записывают итоговый результат куда-то, в файл или БД, выставляют флаг "выполнено" и ссылку на результат.

Обмен заданиями/сообщениями можно делать через БД, это самое простое. Или использовать специальные брокеры обмена сообщений и/или менеджеры задач, от простых вариантов до энтерпрайз решений. Я бы рекомендовал начать или с обмена через БД, или с максимально простых брокеров, навроде такого: https://huey.readthedocs.io/en/latest/ потом поймёшь, что тебе надо и на каком уровне, нужен ли серьёзный инструмент и какой.
Аноним 07/08/19 Срд 07:19:13 1449237384
Аноним 07/08/19 Срд 07:47:08 1449242385
232131231223.png (10Кб, 466x218)
466x218
????????????????????????????????????????
Почему цифры работают а буквы нет!?!??!?!!?!?
Аноним 07/08/19 Срд 07:50:41 1449244386
>>1449242
Тебе не нужно заниматься программированием. Пойти в охранники, оставь программирования омежкам-задротам, которые понимают, чем имя переменной отличается от её значения. Например чем имя переменной отличается от строки.
Аноним 07/08/19 Срд 07:52:17 1449245387
>>1449244
Не останавливай меня на пол пути! Я такой же сыч как вы!!! Я хочу научиться прогромировать! Так почему не работает?
Аноним 07/08/19 Срд 07:56:09 1449247388
Ну всё я понял, оказывается нужно было сделать ""
Аноним 07/08/19 Срд 10:05:34 1449279389
>>1449242
В кавычки возьми и пиши на третьем питоне.
Аноним 07/08/19 Срд 10:57:44 1449305390
>>1449242
print (pidor % ('pidor', 'huila'))
А вообще советую третий питон: 'you are {0} or {1} ? '.format('pidor', 'huila') или ещё проще f'{переменная со строкой №1} or {переменная со строкой №2}'
Аноним 07/08/19 Срд 11:02:11 1449306391
Анон, я знаю что нужное мне решение существует, но не знаю как его гуглить.
Есть пользовательский ввод команды по типу
command [-flag] [-flag ("attribute")]
Как сделать обработку команд красиво? А то единственное что в голову приходит -- разбить в массив строку по пробелам, собрать те части, что с кавычками используя остаток от деления надвое, потом искать все, что начинается с - и проверять на наличие атрибутов (кавычек)
Аноним 07/08/19 Срд 11:14:37 1449310392
>>1449306
В стандартной библиотеке питона есть модуль argparse
Аноним 07/08/19 Срд 11:32:05 1449317393
>>1449279
>>1449305
В смысле "третий питон"? Где его скачать? Я вроде последнюю версию качал, если что.
Аноним 07/08/19 Срд 13:05:38 1449354394
>>1449237
>>1449228

Вот же бля, сложновато. Придется доки читать и вникать. Благодарю. Думал сделать быстро, но придется попотеть.
кст, а можно будет сделать таски ассинхронными?
Аноним 07/08/19 Срд 13:54:15 1449370395
image.png (173Кб, 908x287)
908x287
image.png (148Кб, 703x346)
703x346
>>1443245 (OP)
Помогите решить проблему. Изначальная задача заключается в том, что из CSV файла беру данные и создаю массив с помощью numpy.array(на первом пике) и необходимо посчитать скользящую среднюю по последнему столбцу, после чего добавить столбец состоящий из чисел скользящей средней в изначальный массив. В интернетах нашёл следующий способ расчета скользящей средней(на втором пике), однако этот код вообще ничего не выдаёт. И даже если как-то сделать, что этот код заработает, как его адаптировать допустим для массива, который закоментен во второй строке на втором пике, потому что я уже несколько часов пытаюсь как-то манипулировать этим массивом, но все время ошибки связанные с типами данных. Вот код для средней:
import numpy as np
# a=np.array([[1.1], [2.2], [3.3], [4.4], [5.5], [6.6], [7.7]])
def moving_average(a, n=3) :
ret = np.cumsum(a, dtype=float)
ret[n:] = ret[n:] - ret[:-n]
return ret[n - 1:] / n
a = np.arange(20)
moving_average(a)
Аноним 07/08/19 Срд 14:06:43 1449377396
Аноним 07/08/19 Срд 16:15:30 1449412397
>>1449370
Не углублялся в задание, но твоя программа ничего не выдаёт, потому что ты результат работы функции ни сохраняешь, ни вводишь через print.
Аноним 07/08/19 Срд 16:16:27 1449414398
>>1449412
выводишь*

быстрофикс
Аноним 07/08/19 Срд 16:42:50 1449433399
Сап 2ch, подскажи годных видео-уроков по Kivy.
Аноним 07/08/19 Срд 17:43:26 1449449400
>>1449412
Да, я даун, вроде вторую неделю уже учусь и почему-то подумал, что он щас без принта выведет всё.
Аноним 07/08/19 Срд 17:44:35 1449450401
Аноним 07/08/19 Срд 18:40:56 1449470402
>>1449354
С помощью celery они как раз и будут выполняться в фоне
Аноним 07/08/19 Срд 18:42:25 1449472403
Аноним 07/08/19 Срд 18:47:09 1449475404

>>1449470
Сначала попробую на RabbitMQ сделатЬ, вроде полегче. Посмотрим. буду обращаться ,если словлю тупняк
Аноним 07/08/19 Срд 21:48:46 1449556405
Запилил свой первый пет-проект, стоит сюда выкладывать? Боюсь, что меня здесь затроллят и обосрут так, что мне уже не захочется дальше учить питон.
Аноним 07/08/19 Срд 22:27:53 1449569406
>>1449556
Кидай. Оценят адекватно, а остальных шли нахуй
Аноним 08/08/19 Чтв 04:36:55 1449629407
Аноним 08/08/19 Чтв 05:00:21 1449631408
>>1449629
И алсо как вообще понять, что я должен ждать с помощью await, а что нет?
В документации к aiohttp есть пример:
async with aiohttp.ClientSession() as session:
async with session.get('http://httpbin.org/get') as resp:
print(resp.status)
print(await resp.text())
Например resp.text ожидается с await, а resp.status нет. Где прочитать почему?
Аноним 08/08/19 Чтв 06:03:55 1449635409
>>1449317
Правильное форматирование строк в третьем питоне такое:
https://docs.python.org/3/library/string.html#format-string-syntax

То, как делаешь это ты - легаси и ты рискуешь все сломать в в определенный момент. Ну и вообще, конечно, лучше сразу учиться делать по документации а не по старым туториалам от васяна.
Аноним 08/08/19 Чтв 06:07:16 1449636410
>>1449635
Бля, ну я хз, я вроде качал самую последнюю версию с сайта.
>Ну и вообще, конечно, лучше сразу учиться делать по документации а не по старым туториалам от васяна.
По документации я нихуя не понимаю. И учу по книге "питун для дытей", а это книга 2017 года, вроде не такая и старая.
Аноним 08/08/19 Чтв 06:14:13 1449637411
>>1449370
. Внутри пандас уже np.ndarray, зачем тебе в него явно переводить я не понимаю

. Не надо самому городить математические функции, они есть в scipy или в самом пандас:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rolling.html

. Не итерируйся без необходимости по нампайным структурам - лучше найди функцию которая сделает это за тебя на си, будет драматически быстрее. Когда работаешь с numpy + scipy + pandas, полезно мыслить вообще не циклами, а потоками данных и редьюсами.
Аноним 08/08/19 Чтв 06:15:11 1449638412
>>1449449
Попробуй прототипировать в jupytert notebook, там без принтов выдает.
Аноним 08/08/19 Чтв 06:16:00 1449639413
>>1449556
Выкладывать лучше на гитхаб, конечно.
Аноним 08/08/19 Чтв 06:28:47 1449640414
>>1449636
Дело не в версии интерпретатора, а в версии синтаксиса, которую ты используешь. Актуальный синтаксис - это format strings, например:
print("I have fucked {name}'s mother.".format(name="Vasya"))

Здесь ты в фигурных скобках пишешь имя переменной, которую подставляешь, потом к строке применяешь метод format(), и в него передаешь, что оименно и всесто какого аргумента ты хочешь подставить. Можно вообще так:
substring_from_above = "!"
text = "Here goes some substring: {}".format(substring_from_above)
print(text)

Ну и совсем сахарок:
salary = 30000000
print(f"Я питонист и зарабатываю {salary:#x}кк/нс")
Аноним 08/08/19 Чтв 06:33:34 1449641415
>>1449640
Спасибо, но я к сожалению ничего не понял.
В общем-то та версия интерпретатора на которой я сижу не актуальна? Нужно качать формат стринг?
Аноним 08/08/19 Чтв 06:40:52 1449643416
>>1449636
>"питун для дытей", а это книга 2017
Первое издание в 2012.
Аноним 08/08/19 Чтв 06:46:46 1449645417
>>1449641
Нет, просто вместо
outstr = "%s pidor"
name = "Vasya"
print(outstr % name)

писать
outstr = "{} pidor"
name = "Vasya"
print(outstr.format(name))

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

Можешь еще сюда глянуть
https://pythonworld.ru/osnovy/formatirovanie-strok-metod-format.html
Аноним 08/08/19 Чтв 06:59:14 1449647418
>>1449643
Тут в скобочках написано 2017.
Аноним 08/08/19 Чтв 07:11:46 1449648419
>>1449647
Имею в виду, что некоторые вещи из этой книги могли устареть, даже с учетом того, что ее переиздавали.
Аноним 08/08/19 Чтв 08:36:08 1449657420
Здрасьте. Никогда не работал с GUI, всегда довольствовался просто текстом.
Теперь захотел для личных нужд написать кой-че, так что посоветуйте, пожалуйста, модуль для того, чтобы лихо написать программу с графикой (ничего особо фэнси, просто кнопочки, ползунки, чеклисты и поля ввода нужны).
Аноним 08/08/19 Чтв 09:06:25 1449668421
>>1449631
В документации всё есть
https://docs.aiohttp.org/en/stable/client_reference.html

coroutine async-with get(url,...

get - это корутина, соответственно её ты или вызываешь с await, ну или оформляешь явно в задачу, но это другая история. Если бы метод был обычным, в asyncio таких много, но в aiohttp.ClientSession вроде таких нет, то их уже надо вызывать обычным способом.

status - это просто свойство.
Аноним 08/08/19 Чтв 09:45:51 1449681422
Аноним 08/08/19 Чтв 10:09:35 1449687423
Аноним 08/08/19 Чтв 12:03:17 1449729424
Аноним 08/08/19 Чтв 16:28:15 1449872425
>>1449681
Хм. А если у меня такого с десяток: скраперы там всякие, утилиты, главное, что с ирл применением, плюс беки для петшопов и имиджборд с хуевым вырвиглазным фронтом, на собеседования есть смысл ходить?
алсо я начал вкат в прогу через кресты, и без задней мысли могу хуячить указатели на указатели на указатели
Аноним 08/08/19 Чтв 17:00:23 1449893426
>>1449681
Хунта
Пишешь складно, но как пэт проект супер ущербно
Аноним 08/08/19 Чтв 18:01:00 1449928427
>>1449893
В смысле слишком простенько?
Аноним 08/08/19 Чтв 19:11:30 1449953428
>>1449928
Да
И это не нужно, что нового ты сделал? Ничего! Это можно найти за 2 мин гугления
Не показывай это работодателю
Аноним 08/08/19 Чтв 19:33:42 1449974429
>>1449953
>И это не нужно, что нового ты сделал? Ничего! Это можно найти за 2 мин гугления
>Не показывай это работодателю
Большую часть говна, которое пишут программистишки можно найти за пару минут гугления. Так что пусть показывает, хоть какой-то код лучше, чем ничего.
Аноним 08/08/19 Чтв 19:39:16 1449980430
>>1449953
>>1449928

Pet-project и не обязан являться чем-то новым, с помощью него ты показываешь потенциальному работодателю свои скилли, сама идея не оценивается (по крайней мере в программировании так).
Но показывать данный проект работодателю не стоит, тут я согласен. Во-первых слишком мало кода и проект слишком простой, во-вторых качество кода оставляет желать лучшего, видно что до джуна не дотягиваешь, причём довольно сильно. Есть, конечно, и положительные моменты: наличие readme, requirements и config-файла (правда ini не самый удачный формат), также хорошо, что есть логгирование и комментарии к коду. Судя по гитхабу это твой первый проект, так что вполне нормальный результат.
Аноним 08/08/19 Чтв 19:57:27 1449999431
>>1449953>>1449980
В качестве пет-проджекта не годится, понял.
Это моя первая программа на питоне, решил для начала запилить что-то более-менее простое, так как еще не уверен в своих силах.
Аноним 08/08/19 Чтв 20:01:02 1450006432
>>1449999

Ну для первого проекта очень даже хорошо, я сначала так и подумал, что проект учебный. Но косяки и недочёты, конечно, присутствуют
Аноним 08/08/19 Чтв 20:06:20 1450017433
>>1450006
>Но косяки и недочёты, конечно, присутствуют
Что больше всего смущает?
Аноним 08/08/19 Чтв 20:42:32 1450063434
>>1450017

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

>total_lines = sum(1 for line in open(txt_file))
Решение элегантное, но файл нужно закрыть, а лучше вообще использовать контекстный менеджер with при открытии файла (загугли как работать с файлами правильно)

Работа с путями (где проверка на os.name) совсем не pythonic-way. Как минимум есть os.path.join (которую ты использовл выше), а вообще самым лучшим вариантом является использование встроенной библиотеки pathlib.

>requests.get('https://myanimelist.net/anime/' + mal_id + '/a/pics')
Для таких случаев вместо обычной конкатенации лучше использовать f-строки (f-strings), если версия питона 3.6+, тогда и mal_id к строке не нужно будет преобразовывать

С форматированием кода всё довольно неплохо, но не идеально, во-первых обрати внимания на то как нужно форматировать импорты согласно PEP8 (можешь просто isort например заюзать), плюс ещё по мелочи есть, прогони через линтер какой-нибудь.
Аноним 08/08/19 Чтв 20:54:42 1450073435
>>1450063
Ого, благодарю за подробную конструктивную критику.
Взял всё на заметку.
Аноним 08/08/19 Чтв 21:20:54 1450096436
Суп питонач. Изучаю celery. Не могу понять из контекста, что такое feed task. Это какой-то тип больших жирных задач или чего?
09/08/19 Птн 11:15:05 1450323437
>>1450063
> Решение элегантное
Говно решение. Что так, что эдак, файл все равно прочитается целиком, все строки. Поэтому лучше прочитать строки и явно сделать len(), а не городить неведомо что.
Аноним 09/08/19 Птн 11:18:35 1450324438
Питона я тупой.
В чем разница между тредингом и мультипроцессингом?
Можно ли импортировать другой файл в основной чтобы все инструкции импортируемого исполнялись фоном, это делать через мультипроц? И как это сделать мхе

Как какие ограничения снимает мультипроц относительно трединга?
Аноним 09/08/19 Птн 11:56:58 1450351439
>>1450323
Ты тормозишь.
Если сделать
with open('file.ext') as f:
for line in f:
do_something

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

Аноним 09/08/19 Птн 12:02:42 1450356440
>>1450324
Ты можешь запустить тред, тогда у тебя общий процесс, общая память, общие переменные и т.п. Но есть проблемы с GIL. А можешь запустить отдельный процесс, он не будет связан напрямую с основным. У тебя нет проблемы GIL, у тебя полностью независимое адресное пространство, свои переменные и т.п., но другие способы синхронизации данных, тебе явный обмен надо делать. Плюс перерасход ресурсов, каждый процесс память занимает.

В питоне у тредов очень большие ограничения по производительности по сравнению с тредами. В обычном питоне, не PyPy, распараллеливания в этом случае фактически нет. Только если у тебя какие-то ресурсоёмкие операции во внешних модулях, написанных на C, исполняются, тогда есть смысл, и когда с блокирующими операциями ввода-вывода работаешь.

Короче, читай теорию, это большая и сложная тема.
Аноним 09/08/19 Птн 12:45:18 1450399441
>>1450356
Проблему я свою решил) В процессе решия оказалось что signal может быть только в мейн треде, если мультипроцессами это делать, то можно?
Понял что нельзя в мультипроце жонглировать данными, гораздо сложнее общение одного с другим и вывод общего. Можно ли там же использовать global или все через сторонние места храниэений, бд или файл?
Да надо будет почитать, но так сложно себя заставить.

Спасибо за ответ.
Аноним 09/08/19 Птн 13:02:07 1450415442
>>1450399
Это сложная область, лучше потратить время и полноценно с ней разобраться, поработать на тестовых примерах, чтобы треш не лепить.

Есть разные способы взаимодействия между тредами и процессами. Вот есть shared memory между процессами, но лучше этого механизма избегать. Ты можешь потоки данных из одного процесса в другой слать, или через Queue, то есть очереди.

Много разных подходов есть. Нельзя в двух словах объяснить. Это квалифицированная область, требует профессионального подхода. Найди время, чтобы разобраться.
Аноним 09/08/19 Птн 13:30:10 1450456443
>>1450415
Хорошо, у лутца нормально объяснено это? Гуглинг выдаёт куару, по ней и разрешил свою проблему, но вопросов возникает много мелких. Примеры и задачи на эту тему тоже в шапке есть?
Аноним 09/08/19 Птн 20:45:25 1450631444
>>1450456
Почитай в какой-нибудь книге по операционным системам (например в Таненбауме) главу про процессы и потоки для начала
Аноним 09/08/19 Птн 23:15:05 1450685445
d28f6aa21bdfa2f[...].png (2Кб, 358x52)
358x52
Анон, нужна помощь ньюфагу. Есть часть кода пикрелейтед. Нужно, чтобы "yes" выполнялось и когда юзер вписывает Yes, и yES, и YES - словом, чтобы регистр не учитывался. Головой понимаю, что нужно использовать вот метод string.lower() - его нужно применить к answer, но пока не совсем понимаю синтаксис и не знаю, как его пристроить в этот код. Помоги, пожалуйста.
Аноним 09/08/19 Птн 23:17:10 1450687446
https://www.last.fm/api/show/user.getFriends

Добрый вечер. Как работать с подобным API в Python? Подскажите хотя бы, в сторону чего смотреть, а то я совсем нуб.
Аноним 09/08/19 Птн 23:18:44 1450688447
Аноним 09/08/19 Птн 23:22:07 1450689448
Аноним 09/08/19 Птн 23:24:48 1450691449
>>1450688
Блин. Я был уверен, что метод надо было применить именно к answer. Но спасибо! А вообще, именно к введенной строке его можно применить?
Аноним 09/08/19 Птн 23:35:13 1450696450
>>1450691
Да, конечно. Не вижу для этого препятствий.
Аноним 09/08/19 Птн 23:40:03 1450700451
>>1450689
Выглядит круто. Спасибо.
Аноним 09/08/19 Птн 23:44:40 1450704452
>>1450696
А как? Я не понимаю, как синтаксически составить такую конструкцию.
answer = answer.lower(str(input('Another question? ')))
возвращает ошибку, что answer не определен (кстати почему?)
Аноним 09/08/19 Птн 23:58:09 1450712453
>>1450704
Потому что ты вызываешь метод .lower() для ещё не определённой строки answer, а не для твоего инпута. Правильным вариантом будет
answer = str(input('Another question? ')).lower()
Аноним 10/08/19 Суб 00:03:49 1450713454
David Coffin – [...].webm (8080Кб, 426x240, 00:02:31)
426x240
>>1450712
Вот оно что. Спасибо огромное!
Аноним 10/08/19 Суб 17:48:44 1450957455
Вкатываюсь в питон.
Обьясните почему в шапке настолько старые ссылки? Хабр 2012 года! Гитхаб 15 года!
>полезные материалы для начального уровня.
2013 год.
За это время питон вообще никак не развивался?
Аноним 10/08/19 Суб 18:05:04 1450970456
>>1450957
>Вкатываюсь в питон.
А другие вкатывались 5-10 лет назад и просто не следят, что там вышло нового для вкатывальщиков.

Ссылки с книжками актуальные, там и 2017 книжки есть и даже новее думаю. Это надо бы как-то систематизировать, проглядеть материалы и рассортировать по каталогам "для вкатывающихся с нуля", "для вкатывающихся с других языков", для продвинутых, по технологиям и т.п. Но всем лень.

>>1450957
>За это время питон вообще никак не развивался?
Сама основа языка почти не изменилась, для начинающих. Да и так почти во всех языках, кроме разных JS и совсем новых, которые только появились. База старая. Из нового только asyncio. Но это сложновато для вкатывальщиков.
Аноним 10/08/19 Суб 18:06:52 1450973457
>>1450957
В шапке прошлого треда был коммент, что ФАК устарел.
Аноним 10/08/19 Суб 18:30:03 1450985458
>>1450970
Поэтому питон 3 выкатили уже 10 лет как, а бомбит у всех по сей день.
Аноним 10/08/19 Суб 20:56:26 1451058459
image.png (7Кб, 332x271)
332x271
Добрый вечер. Есть варианты сделать один атрибут "зависимым" от другого так, чтобы при изменении значения одного менялось значение другого?

нуб пытается в ооп
Аноним 10/08/19 Суб 21:35:40 1451071460
Из A Byte of Python:
https://pastebin.com/nrgwUu1W

В интерпретаторе всё работает, как ожидается. Но в jupyter-lab выводит какое-то говно:
https://pastebin.com/kMMd0swV

1 строка - создается объект
2 строка - видно, что вызывается метод __del__ - не известно, по какой причине. В коде объект не удалялся.
4 строка - вызывается метод sayHi(), который возвращает поле объекта. Но при этом ранее сработал метод __del__. WTF?
Аноним 10/08/19 Суб 21:40:06 1451073461
Аноним 10/08/19 Суб 22:58:56 1451100462
Поясните зачем в имиджборде использовать Celery? Не могу сам дойти что то.
Аноним 10/08/19 Суб 23:17:09 1451103463
Анон, помоги со словарями.
У меня есть словарь, который будет изменять сообщение, введенное пользователем:
alphabet = {'one':'1', 'two':'2'}

encoded_message = str(input('Enter an encoded message: '))

for i, k in alphabet.items():
____output = encoded_message.replace(i,k)
____print(output)

Но почему-то при введении инфы (например, one), программа возвращает
1
one

Почему так? Не пойму, откуда берется задвоение.
Аноним 10/08/19 Суб 23:35:12 1451107464
Пацаны, помогите, а не обосыте!

Мне нужно подключаться из питона к опенвпн - запускать селениум и там работать.

Я опенвпн запускать научился, но вот как дальше быть, если он не завершается же, а работает. Пробую через subprocess.Popen, но всё равно подключается только к впн, а дальше код не выполняется.

import requests, os, sys, subprocess, time
path = '/home/qazw/documents/nordvpn/ovpn_tcp/de507.nordvpn.com.tcp.ovpn'
password = '/root/Downloads/nordvpn/loginpass.txt'
with open("/home/qazw/documents/nordvpn/ovpn_tcp/de507.nordvpn.com.tcp.ovpn", "a") as myfile:
myfile.write('\nscript-security 2\nup /etc/openvpn/update-resolv-conf\ndown /etc/openvpn/update-resolv-conf')
myfile.close()
x = subprocess.Popen(['openvpn', '--auth-nocache','--auth-user-pass', password, '--config', path], shell=True)
try:
while True:
time.sleep(600)
except:
try:
x.kill()
except:
pass
while x.poll() != 0:
time.sleep(1)

Тут код запуска селениума
Аноним 10/08/19 Суб 23:39:56 1451108465
>>1451107
не ебу про питон, но у процесса там, что ли, нет стандартных потоков ввода/вывода?
Аноним 10/08/19 Суб 23:41:21 1451110466
>>1451073
Большое спасибо, анон. Всё получилось так, как я хотел.
Аноним 11/08/19 Вск 00:24:02 1451125467
>>1450713
Не думал что найду эту вэбм здесь. Большое спасибо, долго искал !
Аноним 11/08/19 Вск 00:24:54 1451126468
>>1451110
>>1451058
>чтобы при изменении значения одного менялось значение другого

Это очень ОЧЕНЬ плохой стиль.
Не надо делать такое ооп, пожалуйста.

Всё должно быть явно.
А в питоне - особенно, ибо сказано - explicit is better than implicit.
Хранение функции в переменной? Аноним 11/08/19 Вск 00:36:40 1451131469
1563966185.jpg (111Кб, 600x600)
600x600
Я у мамы дурачок, можно мне как в JS?

var callback;
function setCallback(func){
__callback = func
}
...
callback("пизда накрылась")

Или как реализовать обратный вызо
Аноним 11/08/19 Вск 01:10:21 1451139470
>>1451131
В этом вашем питоне нет нормальных анонимных функций.
(мне, как закоренелому анониму, это особенно неприятно, лол)

Поэтому, надо использовать именованные.
Гвидо так захотел.

Вот так это делается, примерно:
https://repl.it/repls/StarkFlatPrinter
Аноним 11/08/19 Вск 01:30:32 1451144471
>>1451131
Конечно можно, ровно так же, как и у твоём примере.

callback = None
def set_callback(func):
____global callback
____callback = func

или ты что имел в виду?
Аноним 11/08/19 Вск 01:31:38 1451145472
1565476279035.jpeg (131Кб, 845x445)
845x445
Привет. Читаю изучаю питон и вот в книге наткнулся на такое задание.

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

Окей, сделал я так: https://pastebin.com/J6mvtVnB

Но разве это правильно? Получается я всегда должен буду создавать копию массивов listCopyCopyCopy, это ведь отвратительный код?

Про копирование массивов знаю, что делаем это таким образом:
listCopied = listOriginal[:]. Но нельзя ли здесь где-нибудь поставить .lower()?

Спасибо :3
Аноним 11/08/19 Вск 01:37:44 1451148473
>>1451145
Попробовал вместо четвертой строки поставить это:

currentUsersCopy = []
for currentUser in currentUsers: currentUsersCopy.append(currentUser.lower())

Получилось, практически, тоже самое, но более ебланово.
Аноним 11/08/19 Вск 01:44:33 1451150474
>>1451148
Так они сами просят такое кривое решение, что тут сделаешь.

Оно кривое. Я бы проектировал иначе, но это не будет соответствовать ТЗ.

Я бы сделал словарь с записями вида
users = {
'john' : 'JohN',
'pavel' : 'Pavel',
'michael' : 'mICHAel,
}
вот в таком словаре ты хранишь как ключ имя, приведённое к нижнему регистру, а как значение - оригинальное имя, либо более сложную структуру, если потребуется.

Но это не про ТЗ.
Аноним 11/08/19 Вск 01:53:11 1451151475
>>1451150
Мне кажется, что ты не понял задание. Тут данные юзеры будут вносить, а не я сам заполнять. И их может быть как три, так и тысячи. Хз, мб я не догоняю. До словарей ещё не добрался.
Аноним 11/08/19 Вск 02:33:08 1451157476
>>1451145
Не надо копировать массив.
Приводить к нижнему регистру надо непосредственно при проверке.

Проходишь по new_users, затем, внутри, с каждым new_user проходишь по current_users и сравниваешь (в этот момент и приводишь оба имени к нижнему регистру).
Всё.

Ещё раз - копировать/преобразовывать массивы не надо.
Рассматривать это как реальную задачу и "оптимизировать" - тоже не надо.
В реале делают примерно как пишет >>1451150

Аноним 11/08/19 Вск 10:17:06 1451190477
>>1451103
У тебя в словаре две пары ключ-значение. Для каждой пары происходит итерация цикла с принтом в конце. Первая итерация меняет твою строку на "1" и выводит, но другая не делает ничего, потому что в твоей строке нет "two", и выводит тот же самый input. Надеюсь, понятно выразился.
Аноним 11/08/19 Вск 10:36:12 1451197478
>>1451157
Ну так когда я в седьмой строке проверку делаю, как мне currentUsersCopy завернуть в lower? Нельзя ведь метод ко всему массиву применить.
Аноним 11/08/19 Вск 10:49:31 1451206479
>>1451197
Так господи, пройди ручками по всему массиву и проверь, ты вместо того, чтобы написать функцию на три строчки кода теперь всегда будешь искать вариант с сахаром?
Аноним 11/08/19 Вск 10:57:33 1451209480
>>1451206
Покажи, пожалуйста, как это сделать. Я сейчас попробовал loop в loop завернуть, но получилось не то, что я ожидал. Спасибо.
Аноним 11/08/19 Вск 11:49:21 1451221481
image.png (44Кб, 967x365)
967x365
>>1451209
Что у тебя не получилось с вложенными циклами?
Знаешь, с твоими проблемами тебе бы какой-нибудь курс по алгоритмам пройти. В котором тебе вообще не будут разрешать пользоваться никаким сахаром, чтобы с массивами работать по индексам и всё такое.
Аноним 11/08/19 Вск 12:34:30 1451278482
>>1451190
Хм. Выразился-то понятно, но что мне с этим делать? Я думал, что основная фича for loops - это как раз проход по всему массиве информации.
Аноним 11/08/19 Вск 12:39:58 1451285483
>>1451197
>как мне currentUsersCopy завернуть в lower?

Гугли "python map function".
Это вообще одна из фундаментальных вещей в программировании.

Но, как я уже сказал, именно эту задачу так решать не надо.
Это, как правильно заметил анон выше, скорее алгоритмическая задача, обходные пути тут искать не нужно.
Аноним 11/08/19 Вск 12:45:15 1451291484
>>1451278
Переменная output не нужна.
Или копируй сразу туда введёную строку, если не хочешь её портить, почему-то.

В цикле надо делать encoded_message = encoded_message.replace(...)
Выводить результат надо после цикла, а не в цикле.
Аноним 11/08/19 Вск 13:12:49 1451306485
>>1451291
>Или копируй сразу туда введёную строку, если не хочешь её портить, почему-то.

Это я хуйню написал, чисто на автомате.
В питоне строки иммутабельные. Ну, и replace каждый раз возвращает изменённую копию, естественно.
Аноним 11/08/19 Вск 14:52:36 1451365486
4138a33ce17a3d7[...].png (18Кб, 874x216)
874x216
>>1451291
Спасибо за помощь, анон, с этим получилось, но у меня появился какой-то баг в коде, никак не могу понять, в чем дело.
Моя программа сейчас переводит английские слова на фонетический алфавит нато (альфа, браво, чарли и т.д.), код на пикрелейтед, при вводе "test" возвращает вот такое:

>Enter a message: test
>Tango EcHOSierra caRomeo Tango eLiMike a OSierra caRomeo Sierra Tango

Хотя должно возвращать Tango Echo Sierra Tango.
Аноним 11/08/19 Вск 15:16:52 1451380487
>>1451365
Включи мозг.
В словах, на которые ты меняешь буквы, есть те же самые буквы.

Это надо делать по-другому.
В цикле надо проходить по буквам строки: (for c in my_string): ...
Для каждой буквы находить слово в словаре, и добавлять в список (напр. words).

Потом: result = " ".join(words)

Алсо - более кошерно будет использовать map вместо цикла:
https://repl.it/repls/FriendlyEvergreenFormulas
Аноним 11/08/19 Вск 15:23:21 1451385488
ba1d3778a33091a[...].png (36Кб, 590x775)
590x775
>>1451380
Вот именно поэтому программирование кажется мне таким трудным. Я еще не вкатывался в функции, поэтому особо их не понимаю. Можешь, пожалуйста, объяснить свой код?

s = 'ololo'
d = {'o': 'Oscar', 'l': 'Lima'}
Тут все понятно - исходная строка и словарь с парами ключей и значений.

def trans(s):
return d
Определяешь функцию (которая зависит от s?), а вот что именно делает вторая строчка, я не совсем понял.

res = ' '.join(list(map(trans, s)))
Объединяешь что-то.

print(res)
И выводишь результат объединения
Аноним 11/08/19 Вск 15:38:38 1451395489
>>1451385
s - это _параметр_ функции.
Функция должна вернуть значение, используя этот параметр.

Вторая строка (7-я в коде на repl.it) - получить слово из словаря по букве (параметр s) и вернуть его из функции.

Попробуй там сделать print(trans('o')) - всё станет понятно.

Функция map преобразует любой iterable-объект (коллекцию - список, строку и т.п.) в новую коллекцию, преобразуя каждый элемент через функцию (trans в данном случае).
Т.е. коллекция букв превращается в коллекцию слов.

Функция list преобразует результат именно в список (после map - там не список, а специальная коллекция). Она там НЕ нужна, я просто давно не писал на питоне, и добавил для перестраховки.
Т.е. можно просто:
res = ' '.join(map(trans, s))

" ".join(coll) - это метод строки. Он соединяет элементы коллекции в строку результата, используя данную строку (у которой он вызывается) как соединитель. Т.е. соединить элементы коллекции пробелом, в данном случае.

Аноним 11/08/19 Вск 15:58:06 1451406490
>>1451395
Спасибо большое за подробные ответы, анон, буду изучать. Исходя из нашего диалога, скажи, пожалуйста, в чем у меня основная проблема этого непонимания? Может, порекомендуешь что-нибудь конкретное почитать?
Аноним 11/08/19 Вск 16:29:05 1451426491
>>1451406
Практиковаться надо.
Причём, на элементарных вещах.

Вещи типа map так сразу не заходят, с нуля.
Т.е., вроде, всё понятно, но нихуя не понятно.

Задрачивай простые примеры - выражения, циклы, функции.

Попробуй преобразовать выражения типа (2 + 3) 4 в вызовы своих функций, чтобы операторов (+, , ...) в нём не осталось вообще, а были только функции.

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

Попробуй сделать сортировку списка методом "пузырька" - это как раз и достаточно просто и достаточно сложно. Алгоритм прочти в гугле, а код напиши сам.

Вот сюда зайди (и см. examples):
https://repl.it/languages/python_turtle

И т.д.

Попробуй читни вот этот перевод известного курса:
http://aliev.me/runestone/
https://habr.com/ru/post/241696/

Но, это будет сложно, читай медленно.
Всякий матан про букву O можешь пропускать, поначалу.

Ну и прочее подобное - гугол в помощь.

Если читаешь по-английски:
http://composingprograms.com/
Аноним 11/08/19 Вск 16:57:21 1451446492
>>1451126
Ну а как здесь иначе? Я без претензии спрашиваю, мне правда интересно. Не создавать же каждый раз новый объект Foo, если хочется изменить нужное мне значение.
Аноним 11/08/19 Вск 17:10:42 1451451493
>>1451446
Новый объект тут ни при чём.
И, конечно же, такие вещи можно делать, но, надо чётко понимать, зачем.
И стараться избегать этого.

Я имел в виду, что изменение _другого_ аттрибута, в результате изменения первого, должно быть _явным_ и _очевидным_.
Т.е. лучше сделать отдельный метод, с соответствующим названием, типа change_something(...). Или вообще отдельную функцию.

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

Также, полезно в принципе делить объекты на "данные" и "сервисы".
И в объектах "данных" такие вещи строго нежелательны.

См. например, книгу "Object Design Style Guide" (она, правда, ещё не вышла, хз есть уже пиратка или нет). Там примеры на псевдокоде.
Ну и гуглить такое можно, например.
Аноним 11/08/19 Вск 17:46:16 1451479494
Аноним 11/08/19 Вск 17:49:20 1451482495
>>1451451
"Явность" и "очевидность" пока для меня выглядят как какие-то крайне субъективные категории, и я не очень понимаю, почему тот способ с сеттерами-геттерами в них не вписывается.

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

Так или иначе, спасибо. Буду думать и изучать дальше.
Аноним 11/08/19 Вск 18:03:13 1451493496
>>1451221
Ну, тут ты флаг используешь. А я до этого не додумался, хоть и по книге я этого не проходил. Спасибо, интересное решение.

А почему у тебя флаг равен флаг ор тру?
Аноним 11/08/19 Вск 18:46:43 1451525497
Шалом. Посоветуйте поездатый GUI-фреймворк.
Аноним 11/08/19 Вск 18:49:48 1451529498
Может кто ссылку на Грокаем алгоритмы дать? Или что лучше почитать после A Byte of Python?
Аноним 11/08/19 Вск 19:08:45 1451553499
1564838490.jpg (125Кб, 1200x697)
1200x697
>>1451144
Ой, действительно. Спасибки, анончик
Аноним 11/08/19 Вск 19:25:44 1451571500
image.png (41Кб, 1006x308)
1006x308
image.png (43Кб, 1007x330)
1007x330
image.png (37Кб, 1010x273)
1010x273
>>1451493
Ну смотри, на самом деле элегантное решение с флагом это как на пике(1). Я тебе написал с ветвлением, чтобы было нагляднее, но по сути это одно и то же. Что мы тут делаем? мы делаем проверку для каждой пары элементов из двух списков и логически прибавляем к boolean переменной. Таблицу истинности дизъюнкции помнишь? В нашем случае, если хоть один раз условие равно единице, то флаг тоже становится 1. Иначе флаг остается 0.
Полезность такого флага в том, что мы можем его влепить в любой уже написанный алгоритм, работающий с какими-то данными и проверить, есть ли в этих данных элемент, удовлетворяющий нашему условию.
Вообще, следующим шагом оптимизации будет прекратить проверять условия, если одно уже истинно, в этом нет смысла, потому что так и так нужно выводить, что имя занято.
Вот тебе пик2 с применением break(ты же его прошёл?). Как ты можешь видеть, тут мы используем то, что у цикла for есть else-block, он сработает, если цикл прошёл все итерации. Если мы закончили цикл досрочно оператором break, то else не сработает.
Дальше мы видим, что флаг, ищущий определённый элемент в списке нам уже не нужен, если мы этот список полностью не проходим, поэтому мы лишнее убираем. Вот тебе пик 3.
Хз зачем я это всё расписал так, ну надеюсь, что тебе немного поможет.
>>1451529
Хз, насколько это правильный выбор, но я после укуса питона начал вот этот курс http://judge.mipt.ru/mipt_cs_on_python3/
Там и лекции и практики интересные, вообще годнота, короче. Но я его ещё не закончил, и вообще новичок сам.
Кстати, где-то в нюфаг треде есть ещё один анон, который этот курс проходит.
Аноним 11/08/19 Вск 19:34:22 1451579501
>>1451571
>Питон + камелкейз
>Код картинками
Аноним 11/08/19 Вск 19:35:40 1451580502
>>1451579
В камелкейзе у него было изначально.
Код на три строчки нужно заливать на пастебин каждый раз?
Аноним 11/08/19 Вск 19:46:39 1451584503
>>1451482
Если ты только изучаешь всё это - то не обращай внимания.
Для поиграться - это нормально.
Хороший дизайн - это уже следующий этап.

Аноним 11/08/19 Вск 19:58:27 1451587504
>>1451529
На scanlibs dot com есть.
И много чего ещё.
Аноним 11/08/19 Вск 20:29:55 1451606505
Аноним 11/08/19 Вск 20:50:56 1451612506
Аноним 11/08/19 Вск 21:00:02 1451614507
Аноним 11/08/19 Вск 21:15:50 1451620508
Аноним 11/08/19 Вск 22:39:00 1451655509
>>1451571
Спасибо, до брейк ещё не дошел, но там нет ничего сложного. Объяснение твое помогло. Ещё раз спасибо, успехов и тебе в обучении :3.
Аноним 13/08/19 Втр 22:45:43 1452776510
Подскажите книжку для новенького, попробовал "Charles Severance" показалась слишком трудной..и нудной
Аноним 15/08/19 Чтв 14:26:32 1453787511
>>1452776
A byte of pyrhon - Укус питона, 130 стр.
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов