М.Двач / Программирование

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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

Python /python/ 27 июля, 03:06 1443245 В конец треда | Веб

1,8 Мб, 1800x8391,9 Мб, 1619x2024130 Кб, 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)

Ответы432854339443561438444395044660446974489145309456954618246911479124937051606

2 27 июля, 07:36 2 1443273

Первыйнах

3 27 июля, 09:41 3 1443285

>>1443245 (OP)
говноязык.

Особенно в сравнении со swift OR elixir.

4 27 июля, 10:26 4 1443295

Работал кто с 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, и если не находит, то закрывает сокет. А она не находит.
В документации вроде четко написано что делается так, но у меня не выходит

Ответы4341647308

5 27 июля, 12:15 5 1443318

Репост из предыдущего

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

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

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

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

Ответы43400434144730847316

6 27 июля, 14:13 6 1443392

Что лучше для построение нейросети для распознания текста, цифр в частности?

scikit learn
tensorflow
keras?

Ответы4339843400

7 27 июля, 14:13 7 1443394

12 Кб, 551x21832 Кб, 742x246

>>1443245 (OP)
Помогите разобраться. Только начал изучать python 2.7, изучаю классы и хочу сделать связный список. На первом пике образец с сайта, на втором то что у меня. В чём проблема?

Ответы4340043412

8 27 июля, 14:24 8 1443398

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

9 27 июля, 14:26 9 1443400

>>1443394
1. Учи пистон 3
2, Покажи/дай полную ссылку на пример.

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

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

Ответы43402

10 27 июля, 14:28 10 1443402

>>1443400
http://torofimofu.fvds.ru/learnwithpython/ru2e/ch16.html#node вот ссылка

Ответы43403

25 Кб, 324x365
11 27 июля, 14:35 11 1443403

>>1443402
А где ты там list(node1) увидел?
Если делать как по примеру - всё ок.

Ответы43447

36 Кб, 1362x98
12 27 июля, 14:47 12 1443407

При запуске jupyter notebook есть эта ошибка.
Все работает. Но меня смущает эта ошибка. Нагуглить что-то внятное не могу.
Кто знает, что это такое?

13 27 июля, 14:59 13 1443412

>>1443394
Я начал учить питон году в 2009-10, сразу с третьего. Потом правда пришлось перекатываться на второй, такой на работе был, но там питон не основной был, и вообще очень долго сообщество перекатывалось.

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

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

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

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

Ответы4341343447

14 27 июля, 15:00 14 1443413

>>1443412
>которые принципиально отсутствуют
которые принципиально отсутствуют во втором

15 27 июля, 15:08 15 1443414

>>1443318
Про Channels не скажу, не осваивал, по описанию в документации и по тому, как комментируют, не нравятся. Нет ощущения полноценной интеграции с джанго.

>>1443318
>Я до этого ни с асинхронщиной, ни с сокетами не работал.
Вот лучше с этими технологиями разобраться независимо, понять, как это работает. Они просты и очевидны, когда их нормально поймёшь, но сложны, пока начинаешь. Асинхронность заметно сложнее, особенно если раньше с подобными технологиями не работал. Но реально лучше с простейших консольных программ начать.

16 27 июля, 15:18 16 1443416

>>1443295
Ничего не понимаю в channels, но поведение примерно ожидаемое. У тебя ведь один общий обработчик для трёх видов путей. Если в пути не было device_name, то и в обработчике его не будет, может где-нибудь возникнуть ошибка обработки и исключение из-за обращения к неопределённому элементу словаря и т.п.

Может я не прав, так как не изучал channels и не понимаю, как они работают.

57 Кб, 962x495
17 27 июля, 16:18 17 1443442

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

Ответы4353648390

18 27 июля, 16:23 18 1443447

>>1443403
>>1443412
Установил 3 питон, написал всё верно ошибки не выдаёт, но выводит не числа. Опять же не пойму почему.

Ответы43448

38 Кб, 583x610
19 27 июля, 16:23 19 1443448

>>1443447
отклеилось

Ответы4345243499

20 27 июля, 16:30 20 1443452

>>1443448
У тебя функция печатает сам объект, это некоторая структура. Ты должен печатать не print(node), a print(node.login)

Ответы43455

12 Кб, 160x160
21 27 июля, 16:31 21 1443453

Работаю уже на второй работе по Питону, рассматриваю вариант перехода на третью. Решил в фоновом режиме подтянуть всякие скилы, в том числе теорию. Открываю статью про SOLID, вроде все любопытно, но тут же осознаю, что, например, сериализаторы в Django Rest Framework это нефига не S. И как с этим жить? Решил почитать про ПАТТЕРНЫ, и тоже как-то все не заходит...

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

Ответы43456

22 27 июля, 16:38 22 1443455

>>1443452
Точно. Спасибо большое

23 27 июля, 16:40 23 1443456

>>1443453
> про кубернетисы почитать
This

45 Кб, 540x960
24 27 июля, 17:48 24 1443499

>>1443448
>светлая версия pycharm'a

25 27 июля, 17:54 25 1443506

Есть смысл заморачиваться с платной версие пайчарма для зеленого работяги в самом начале пути? Или бесплатная версия более чем достаточна?

Ответы435134354543551

26 27 июля, 18:05 26 1443513

>>1443506
Более чем достаточно. Я б даже посоветовал Atom или VSCode, они легче и лучше подходят для простых вещей

27 27 июля, 18:33 27 1443522

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

28 27 июля, 19:01 28 1443536

>>1443442
Здесь и алгоритма как такового серьёзного нет - просто выводится зависимость искомой длины шнурка от a, b, l и N согласно условию задачи.

29 27 июля, 19:35 29 1443545

>>1443506
Зеленому и бесплатная оверхед

30 27 июля, 19:45 30 1443551

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

31 27 июля, 20:12 31 1443561

>>1443245 (OP)
Аноны, такая проблема, может кто сталкивался: поставил линукс, пайчарм, сначала вроде норм работало, но после перезапуска открываю её, открывается автоматом проект, делает update skeletons /usr/bin/python3. 7 или как-то так, и где-то на пятой части этого апдейта система зависает намертво.
Причём это точно не память кончается, я отслеживаю её.

Ответы43591

32 27 июля, 21:03 32 1443591

>>1443561
Я понял, что как только что-то взаимодействует напрямую с системным интерпретатором то всё сразу же ложится нахуй. С интерпретатором venv всё работает хорошо(вроде). Как это пофиксить? На винде делал всё через системный

8 Кб, 880x600
33 27 июля, 23:37 33 1443644

Есть картинки (черный квадрат) на которой могут быть разные объекты с произвольным смещением.

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

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

34 28 июля, 00:11 34 1443658

Как вкатиться в питон? Что посоветуете для новичка?

Ответы4366143958

35 28 июля, 00:24 35 1443661

>>1443658
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.

Ответы4366544194

36 28 июля, 01:07 36 1443665

>>1443661
> Tornado или Gevent

Это блять какого года паста? 2009?

Ответы43669

37 28 июля, 01:25 37 1443669

68 Кб, 702x53375 Кб, 1107x298

>>1443665
2011 или старше

38 28 июля, 01:28 38 1443671

Таки смог скомпилить питон+киви в апк. Ггвп. Теперь точно в жабу не уйду. Удачи всем кто старвается

39 28 июля, 13:16 39 1443822

Доброго дня, аноны.
На связи инженер-программист с опытом в ~5 лет.
Был и есть макакой на JS, PHP, NodeJS. Хочу стать настоящим макакой на python.
Как считаете, сложно будет перейти? Может кто-то испытывал такой опыт? Концепции-то похожи будут? В какую сторону копать и что изучать лучше?

40 28 июля, 13:47 40 1443844

>>1443245 (OP)
Ищу кого-нибудь для общения вокруг программирования и матана, обмена ссылками и книгами, а так же для парного программирования.
Мои языки C, Python. Считаю что программист из меня так себе.
Сферы интересов: Теория игр, теория принятия решений, Управление и оптимизация, многокритериальное принятие решений, Марковские модели, конечные автоматы, теория графов, теория вероятностей, статистические методы, имитационное моделирование, ии и коллективное поведение и проч.
koWYTrbelanANUSmailU%LPUNCTUMr1B6u

Ответы45135

41 28 июля, 15:45 41 1443950

213 Кб, 648x533127 Кб, 873x42652 Кб, 671x619

>>1443245 (OP)
Аноны, подскажите раку. Вроде как смог создать связный список из объектов класса с одним аргументом, но как сделать 2 и более аргументов? На первых двух пиках для одного аргумента. На третьем попытка сделать для двух.

Ответы439654396643984

42 28 июля, 15:57 42 1443958

>>1443658
Почитай ОП пост, а вообще я б советовал пройти базовый курс на Курсере или Питонтьюторе и дальше решать задачки

43 28 июля, 16:09 43 1443965

>>1443950
У тебя ошибки в 16 и 19 строках.
Что там запятая значит? Ты явно хотел что-то другое, но для питона запятая это способ записи типа данных tuple.

Вообще, вывод лучше иначе форматировать, специальными средствами.
Или как
out = "[%s, %s " % (current.login, current.password)
или
out = "[{}{} ".format(current.login, current.password),
или
f"[{current.login}, {current.password}"
последний только для питона 3.6 и новее.

Ответы4397543978

8 Кб, 975x111
44 28 июля, 16:16 44 1443966

>>1443950
Можешь передавать словарь из аргументов в конструктор списка, или через args. В операторе __str__, можно сделать вывод через генератор. хз не стал доделывать

Ответы43980

45 28 июля, 16:24 45 1443975

>>1443965
Не, формат не подойдет, а если он захочет добавить поле для вывода ? Придется менять формат.

35 Кб, 602x548
46 28 июля, 16:37 46 1443978

>>1443965
Точно. Дело в запятой было, спасибо

47 28 июля, 16:38 47 1443980

>>1443966
Хорошо, попробую и так сделать. Спасибо

48 28 июля, 16:41 48 1443984

>>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 ЛЕТ! ВАСЯ 49 28 июля, 17:34 49 1444021

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 ЧАСА! ДА Я ДУРАЧОК!. ВООТ ВОПРОСИК!
Я ХОЧУ ЧТОБЫ ЕСЛИ ОТВЕТ НЕ БУДЕТ ТАКОЙ КАК В ЭТИХ ПЕРЕМЕНЫХ МЕНЯ ЦИКЛ ВОЗРАЩАЛ К ИНПУТУ! КАК В ИГРЕ УГАДАЙ ЧИСЛО !

Ответы4402646024

ВАСЯ 50 28 июля, 17:43 50 1444026

>>1444021
https://repl.it/repls/RuralPoshLava
ВОТ ФОРМАТИРОВАНЫЙ КОД ЧТОБЫ ВАМ ЛОХАМ БЫЛО УДОБНО ЧИТАТЬ!
СПАСИБО ЗАРАНИЕ !! ВЫ НЕ ЛОХИ Я ЛОХ!

51 28 июля, 18:04 51 1444036

При поиске картинки в картинке лучше использовать на столько маленькое изображение на сколько это возможно или чем больше деталей в темплейте тем лучше?

Как влияет на скорость рост размера?

52 28 июля, 20:10 52 1444076

А что там из нового для освоения питона? если для джанго это джанго 2 с примерами. То для вката кроме давйпитона нет ничего?

Ответы4408144110

53 28 июля, 20:21 53 1444081

>>1444076
Есть база, общая для всех. Есть конкретные направления, они часто про технологии в целом, чем про питон. Уже зависит от того, что конкретно тебе надо.

Ответы44087

12 Кб, 828x77
54 28 июля, 20:27 54 1444082

Аноны, привет. Читаю python crash course eric matthes (2019) и немного проблемы с переводом/пониманием. Правильно ли понял и выполнил ли я задание? Подсобите, плиз.

multipleList = [value*3 for value in range(3,31,3)]
print(multipleList)

Ответы44106

55 28 июля, 20:45 55 1444087

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

56 28 июля, 21:18 56 1444102

27 Кб, 1232x13254 Кб, 821x360

http://ideone.com/vbgT4j
base.html

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

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

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

Ответы44168

57 28 июля, 21:27 57 1444106

>>1444082
Вроде нужны кратные трём в промежутке от 3 до 30. Убери множитель у value.

58 28 июля, 21:47 58 1444110

>>1444076

Есть ещё книга Fuent Python (наши дубляторы-надмозги перевели как "Python. К вершинам мастерства"), она покрывает язык практически полностью, но для начинающего не подойдет. Единственное, насколько я помню, там используется старый синтаксис для корутин, поэтому глава про асинхронность немного устарела. По этой теме можешь посмотреть https://www.youtube.com/playlist?list=PLlWXhlUMyooawilqK4lPXRvxtbYiw34S8 и доклады David Beazly.

Ответы44112

59 28 июля, 21:55 59 1444112

>>1444110
Пасибо =). Вообще пошел бы лучше на курсы какие нить чтобы на вопросы с которыми сталкиваюсь мог бы ответить кто-то... но это все херня нет доверия курсам

Ответы4411744130

60 28 июля, 22:04 60 1444117

>>1444112
Для этого есть Stack Overflow

Ответы44127

61 28 июля, 22:20 61 1444127

>>1444117
я не могу столько ждать ответа и писать на английском =(

Ответы44129

62 28 июля, 22:26 62 1444129

>>1444127
Все эти вопросы были заданы до тебя 10 лет назад)

Ответы44402

63 28 июля, 22:31 63 1444130

>>1444112

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

Ответы44402

64 29 июля, 00:28 64 1444168

>>1444102
Помогите

Django

Ответы44179

65 29 июля, 01:15 65 1444179

>>1444168
Там всё написано в сообщение об ошибке.
У тебя шаблон url требует поле slug, которое не пустое. А ты, судя по ошибке, пытаешься построить этот url с пустым параметром, который обязательный.

Ответы44546

66 29 июля, 02:15 66 1444185

Сколько времени займет вкат в питон и джанго? Сам фронтендер, опыт работы год, пишу на ангуляре, умею делать бекенды на node+express.

Ответы44188

67 29 июля, 02:24 67 1444188

>>1444185
Всё зависит исключительно от тебя. Кто так вопросы задаёт? Несколько месяцев надо.

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

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

Короче, начни просто с питона. Если зайдёт, то и остальное освоишь. А пока питон не освоишь, во фреймворки лучше не лезть.

Ответы44191

68 29 июля, 02:52 68 1444191

>>1444188
Асинхронность к нему разве нельзя прикрутить? Куда же без неё-то.

Ответы4423144420

69 29 июля, 03:19 69 1444194

>>1443661
+ за Dive into python

70 29 июля, 08:55 70 1444231

>>1444191
channels

71 29 июля, 14:38 71 1444351

Аноны, как можно вкатиться в Django? Не хочу втупую сидеть и читать книжки и доки без особой практики. Есть какие-то видеокурсы может или просто сборники с текстовой лекцией и задачами к ней? Как вообще сами вкатывались и каким образом изучали фреймворк?

Ответы4437444427

63 Кб, 500x656
72 29 июля, 15:42 72 1444374

>>1444351

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

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

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

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

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

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

Теперь можешь начинать писать свою имиджборду. Да, она будет без фронтенда ну и хуй с ним.
Параллельно прочитай про pytest и сделай интеграционные тесты для своей борды (запостить сообщение/попытаться открыть удаленный тред/проверь что тред не апается когда он в бамплимите и т.д.).

Ответы4438444445

73 29 июля, 16:00 73 1444384

>>1444374
> (скачай сазу GitKraken и не ебись с консолью как вонючий бумер)
А чего там ебаться? git pull git commit git push

> Фуллстек это путь в никуда
Почему?

Ответы44400

74 29 июля, 16:26 74 1444400

>>1444384
>А чего там ебаться? git pull git commit git push
Только если ты будешь комитить всё и сразу в одном комите.
К гит-клиентах с GUi есть удобная функция для того что бы комитить конкретные строки, откатывать изменения наглядно и т.д.
Но консольные команды знать надо, офк, иначе есть возможно обосраться на собесе и на сервере.

Ответы44699

75 29 июля, 16:38 75 1444402

>>1444129
Ты недооцениваешь мою ебанутость, и нелепость составления формулировок ^)
>>1444130
Не понимаю как это на гите искать, ну а если есть что-то похожее готовое то смысл разбираться отпадает, ведь можно копипастить

Сталкиваюсь с проблемами типа не понимания как работает модуль schedule, или же thread. Потом оказалось что ониработают как надо но программа просто не работает дальше hendler от telegram-bot-api.
Хотя знаете, это на самом деле лень, просто человеческая лень. Когда у тебя есть документация и ты можешь все прочитать и понять, но предпочитаешь ныть, что вот если бы был наставник было бы так здорово. Хотя лопатить всю доку это же пиздец

Ответы444344453844539

6 Кб, 380x127
76 29 июля, 16:51 76 1444414

Что с ним не так? Почему ключи и объекты в словаре в таком порядке?
Я понимаю, что словарь - неупорядоченная структура, но почему, к примеру, в {i: i for i in range(5)} элементы выстроены нужным образом, то есть в соответствии со значениями i?

мимонуб

Ответы44430

77 29 июля, 16:56 77 1444420

>>1444191
Можно, но очень коряво, неочевидно и ограничено. Это решения (как channels) для историй, когда у тебя уже есть проект на джанго, и тебе надо что-то асинхронное вдруг прикрутить, но не для того, чтобы строить на этом асинхронный проект.

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

78 29 июля, 17:06 78 1444427

>>1444351
Этап 1:
Из официальной документации по джанго, очень желательно на английском, смотришь главу "Writing your first Django app"

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

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

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

Ответы44445

79 29 июля, 17:08 79 1444430

>>1444414
Порядок ключей гарантированно соответствует порядку добавления только в питоне начиная с 3,6 (мб 3,7 точно не помню), во втором этого вообще нет.

Ответы4445244579

80 29 июля, 17:18 80 1444434

>>1444402
>Когда у тебя есть документация и ты можешь все прочитать и понять, но предпочитаешь ныть, что вот если бы был наставник было бы так здорово.
Грамотный наставник очень нужен и полезен, но где его взять? Как важны хорошие выстроенные систематизированные курсы, это не документация, но где их найти? Большинство коммерческих курсов про то, чтобы состричь денег со случайных вкатывальщиков. Нормальный будет стоить дорого и слушателей для него не найдёшь. Но зато если продерёшься через всё это, то будешь среди немногих, кто смог.

Ответы44540

81 29 июля, 17:38 81 1444445

>>1444374
Годная информация. Воспользуюсь, спасибо.
А с гитом я работал, команды знаю. Да и в PyCharm всё довольно удобно реализовано, так что консолью я где-то год не пользуюсь уже.

>>1444427
И тебе спасибо за ответ.

82 29 июля, 17:47 82 1444452

>>1444430
> только в питоне начиная с 3,6 (мб 3,7 точно не помню)
Вроде как с 3,8? По крайней мере читал недавно особенности 3,8 и там это было в списке.
Мимодругойанон

Ответы4454244579

83 29 июля, 19:42 83 1444538

>>1444402

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

84 29 июля, 19:44 84 1444539

>>1444402

Если не понимаешь как работают треды и подобные вещи, то тебе нужно почитать что-нибудь по операционным системам, например таненбаума.

85 29 июля, 19:49 85 1444540

>>1444434

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

Ответы44560

86 29 июля, 19:54 86 1444542

>>1444452

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

С 3.6 в CPython словарь упорядочен в порядке добавления, в других реализациях Python это не гарантируется. С версии 3.7 это уже фича языка, то есть все реализации языка должны гарантировать упорядочность словаря.

Ответы44579

230 Кб, 811x968
87 29 июля, 20:02 87 1444546

>>1444179
>А ты, судя по ошибке, пытаешься построить этот url с пустым параметром, который обязательный.

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

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

я не понимат

Ответы4456344578

88 29 июля, 20:38 88 1444560

>>1444540
>Сомневаюсь, что наставник знает документацию любой либы наизусть.
А зачем знать наизусть? Если ты понимаешь, как устроено и как работает, то или сразу сможешь объяснить, что не так, или быстро сможешь ответ найти в документации.

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

Но правда на работе редко кто-то готов быть наставником. Чаще все сами по себе. В универах в этом плане проще.

89 29 июля, 20:40 89 1444563

>>1444546
Видимо ты вызываешь неправильно, не передаёшь нужный параметр, как надо. При создании поста, когда ты тэг url вызываешь, ты явно должен указывать и параметры, чуть по-разному в стандартном джанго и jinja2. Значит, ты как-то намудрил с этим параметром, только и всего.

Ответы4458344676

90 29 июля, 20:51 90 1444578

>>1444546
Попробуй вместо '' в первом url поставить '/'
или другой вариант, вызвать в браузере не
localhost:8000/blog/
а
localhost:8000/blog

то есть без закрывающего слеша

Ответы44676

91 29 июля, 20:51 91 1444579

>>1444430
>>1444452
>>1444542
Спасибо за ответы. Сам пользуюсь 3.4.2, потому и результат соответствующий.

92 29 июля, 20:54 92 1444583

>>1444563
ладно, спасибо.

Буду искать.

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

93 29 июля, 21:55 93 1444633

Не могу долго учить язык программирования, именно учить, а не программировать или читать книгу. Есть книга по питону, обучение идёт как по маслу всё быстро понимаю, но более 3-4 страниц в день не могу осилить. При этом времени на них уходит примерно 1,5 часа. Но это пиздец как высасывает мои ресурсы, хотя я по силам могу ещё покодить или что-нибудь почитать, но что-нибудь новое на сегодня для узнать я не хочу

Ответы446414480944824

94 29 июля, 22:04 94 1444641

>>1444633
Попробуй вместо книг смотреть курсы

Ответы44643

95 29 июля, 22:05 95 1444643

>>1444641
мне книга нравится. она очень хорошая. но спасибо, после неё попробую обязательно

96 29 июля, 22:21 96 1444660

>>1443245 (OP)
https://drive.google.com/drive/folders/13YaFijvuH4dtv-PjUKVWLQ7ZIqXIfCLK

97 29 июля, 22:23 97 1444667

Python for Everybody Specialization с курсеры или книга Mark Lutz Learning Python/Programming Python?
Что лучше подойдет для вката?
Какое мнение в целом по курсу Python for Everybody Specialization? Стоит ли платить за него чтобы проверки работ были?

Ответы44674

98 29 июля, 22:31 98 1444674

>>1444667
Напиши заявление на фин. помощь

Ответы44686

109 Кб, 700x818
99 29 июля, 22:33 99 1444676

>>1444578
>>1444563

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

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

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

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

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

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

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

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

"Я решил проблему, но как и почему я не знаю, но я её решил, потому что она не вылезает" потрясающе.

Ответы44679

100 29 июля, 22:35 100 1444679

>>1444676
>эта боль веб макакена

101 29 июля, 22:39 101 1444686

>>1444674
Ты про Financial aid? Я, кстати, так и не понял до конца, что это за хуитка такая. Чем отличается от обычной оплаты курса?

Ответы44691

102 29 июля, 22:53 102 1444691

>>1444686
Ничем, но нужно ждать одобрения две недели

Ответы44692

103 29 июля, 22:56 103 1444692

>>1444691
А про сам курс (специализацию в целом, там вроде сразу пять курсов идёт) что думаешь? Стоит того или лучше по книжкам учить?

Ответы44710

104 29 июля, 23:03 104 1444697

>>1443245 (OP)
Насколько корректно использование eval и exec в коде? Заметил, что это "не по понятиям", хоть кто-то из разрабов со стажем их юзает? И при каких обстоятельствах?

105 29 июля, 23:08 105 1444699

>>1444400
Если git add . то конечно можешь все сразу. Команд там 20 или около того. Да и это куда быстрее и привычнее, когда все в одном окне делаешь(в терминале офк). Раньше я тоже гуями пользовался. Да и сейчас иногда, если это удобнее быстрее. Но обычно консоль выигрывает. Не слишком красиво, зато быстро и удобно.

106 29 июля, 23:33 106 1444710

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

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

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

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

Ответы44716

107 29 июля, 23:48 107 1444716

>>1444710
Спасибо огромное за ответ!

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

Ответы447234472844808

108 29 июля, 23:52 108 1444722

Надо смотреть на то, что человек умеет и какой у него бэкграунд.

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

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

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

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

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

109 29 июля, 23:53 109 1444723

>>1444716
>В своё время учил Delphi и немного C++, ооп, даже немного до ассемблера добрался
Это совсем не начальный уровень и тут уже будет сильно проще.

Ответы44725

110 29 июля, 23:57 110 1444725

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

111 30 июля, 00:06 111 1444728

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

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

Ещё по теме автоматизации слышал хорошие отзывы о книге Automate the boring with python, возможно тоже будет неплохим вариантом для тебя.

Ответы45195

112 30 июля, 07:30 112 1444790

Хорошо знаю core пайтона, куда двигаться теперь? Что учить, что читать?

Ответы44900

113 30 июля, 08:56 113 1444808

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

Ответы45185

114 30 июля, 09:09 114 1444809

>>1444633
Как не странно тебе нужно научится, учится. Как анон уже писал выше, приготовь свое рабочее место, убери со стола и поставь таймер. Например, поставил таймер и блять не перестаешь учить, пока время не пройдет. ТЫ НЕ ДОЛЖЕН чувствовать себя как дома, будто ты на паре или на работе. НЕ ОТКЛИКАЙСЯ на всякие там вкшечки и инстаграмы.

Ответы44866

115 30 июля, 11:29 115 1444824

>>1444633
Я тоже не могу заставить себя читать больше 20 страниц в день "Изучаем Python" Лутца. Одна первая глава чего стоит: автор 20 страниц повторяет несколько идей. Начиная с 3-ей главы не так абсурдно, но читать все равно сложно.
Есть ли чтиво, которое читается легче/увлекательнее?

Ответы44866

116 30 июля, 13:17 116 1444866

>>1444824
ну я литературу на английском всю читаю. на русском может быть тоже 20 страниц в день бы было.

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

117 30 июля, 13:42 117 1444877

В результате работы функции я получаю ответы

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

Как сделать дополнительную функцию для замены этих результатов в упрощенный вид, 260-269 - представлять как 1, 270-270 - 2 итд.

Ответы4488945014

118 30 июля, 14:16 118 1444889

>>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

118 30 июля, 14:16 118 1444889

>>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

Показать весь текст
Ответы4490344911

119 30 июля, 14:19 119 1444891

>>1443245 (OP)
а кто на втором пике? создатель писоса питона?

120 30 июля, 14:30 120 1444900

>>1444790
А что тебе интересно?

TensorFlow, Keras, Torch...

121 30 июля, 14:32 121 1444903

>>1444889
Спасибо, но нет ли способа покороче? А то у меня же не только эти значения, а значительно больше.

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

Ответы4490648271

22 Кб, 551x189
122 30 июля, 14:42 122 1444906

>>1444903
Формулируй сразу как тебе надо, я первый ответ писал полчаса >:C

Ответы449104491245038

123 30 июля, 14:47 123 1444910

>>1444906
Круто, добра тебе анончик!

Ответы44920

124 30 июля, 14:49 124 1444911

>>1444889
Это троллинг такой? Твоя функция даже не работает нужным образом, а просто возвращает единицу при 260 <= number <= 370.

701 Кб, 1042x964
125 30 июля, 14:51 125 1444912

>>1444906
Надеюсь, ты пошутил.

Ответы44919

126 30 июля, 14:53 126 1444915

Анон, посоветуй бесплатный питон хостинг. Я запилил телеграм бот на хероку, но через полчаса он засыпает и просыпается секунд через 15.
Или это норм для фри хостинга и лучше вариантов нет?

Ответы44921

127 30 июля, 14:57 127 1444919

>>1444912
Так у челика на 270 возвращает 2, а у тебя везде 1. Это не то, что нужно было.

Ответы44929

19 Кб, 290x415
128 30 июля, 14:58 128 1444920

>>1444910

Ответы449234493444940

129 30 июля, 14:58 129 1444921

>>1444915
Может ты запускаешь хуево?
Запускай в фоне через nohup python main.py &

Ответы44928

130 30 июля, 14:59 130 1444923

>>1444920
Не то, 2 должно быть только в диапазоне 270-270, в глаза долбишься?

Ответы4492544926

131 30 июля, 15:00 131 1444925

>>1444923
Да не он прав, в оппосте опечатка очевидно же 270-279 должно быть

132 30 июля, 15:00 132 1444926

>>1444923
Я не только в глаза не долблюсь, но и в лобные доли, потому и понимаю, что он просто опечатался и имел в виду 270-279.

21 Кб, 356x646
133 30 июля, 15:03 133 1444928

>>1444921
> nohup python main.py

это их стандартная фича для бесплатного акка

134 30 июля, 15:04 134 1444929

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

63 Кб, 829x1472
135 30 июля, 15:12 135 1444934

>>1444920
Тебе тоже спасибо огромное. Я запомню что можно и так делать, но тот вариант мне подходит больше т.к. я не упомянул в тз, что диапазоны не всегда из 10 чисел и могут быть с пропусками.

А есть какие-нибудь сайты с такими простыми задачками, желательно с возможностью посмотреть ответы и варианты решений?

Ответы44943

136 30 июля, 15:23 136 1444937

Чето у меня тупой вопрос. Вот django: в качестверазраба макаки мне надо работать с многопоточностью или нет? Здравый смысл говорит, что да. Но оверинжиринг заставляет сомневаться. Что-то без круда явно же надо стараться запихать в треды?

137 30 июля, 15:30 137 1444940

>>1444920
Вы троллите блядь, нахуя вам циклы какие-то.. print(a//10 - 35)

Ответы4494544958

138 30 июля, 15:40 138 1444943

>>1444934
checkio.org

139 30 июля, 15:43 139 1444945

>>1444940
print(a//10 - 25), тогда уж.

Ответы44947

140 30 июля, 15:44 140 1444947

>>1444945
А, ну да, я опечатался

141 30 июля, 16:01 141 1444958

>>1444940
Нет, мы быдлокодеры. А ты говнокодер.

Ответы44964

10 Кб, 863x248
142 30 июля, 16:02 142 1444960

Сап, питонисты, столкнулся с такой хуйней как шаблонизатор Джаного. И я блять вообще не понимаю, что это ? Какой это язык, как это понимать ? Что за скобки, проценты и тд ?

Ответы44965

143 30 июля, 16:14 143 1444964

>>1444958
>кодеры

Ответы44966

144 30 июля, 16:17 144 1444965

>>1444960
Это язык шаблонов, в разных веб-фреймворках они разные, у джанго свой, у фласка например jinja2.
Да кажется сложным, на деле учится за вечер.
https://docs.djangoproject.com/en/2.2/ref/templates/language/
https://djbook.ru/rel1.4/topics/templates.html
сука ты тупая :3

Ответы45079

145 30 июля, 16:18 145 1444966

>>1444964
Мы быдло, а ты говно.

Ответы44976

146 30 июля, 16:33 146 1444976

>>1444966
Да вы троллите по-моему просто, тут у вас какое-то соревнование было по самому ебанутому решению простейшей задачи. Странно только, что его ещё первый челик с ифами выиграл, обогнать его было невозможно

Ответы44987

147 30 июля, 16:48 147 1444987

>>1444976
Технически выиграл его ты, ибо даже его код иногда выдаёт нужные значения, в отличие от твоего с опечаткой.

Ответы44994

148 30 июля, 16:59 148 1444994

>>1444987
Да только опечатка исправляется в один символ после получения неожиданного ответа(отрицательных чисел быть не должно было по постановке задачи), а у вас нужно переписывать полностью, потому что вместо выражения на два действия у вас алгоритм перебора с циклом на n//10 - 25 итераций

Ответы44998

149 30 июля, 17:02 149 1444998

>>1444994
Алсо, если серьёзно, то я советую порисовать черепашкой несколько заданий из http://judge.mipt.ru/mipt_cs_on_python3/labs/lab1.html
Задание на спираль Архимеда, на вложенные многоугольники, и на н-конечную звезду. Они и интересные и не очень долгие и там нужно собирать математические выражения.

Ответы45019

57 Кб, 634x508
150 30 июля, 17:30 150 1445014

>>1444877

151 30 июля, 17:37 151 1445019

>>1444998
Блин, прикольная штука. Я и не знал, что у питона такое есть.

Ответы45024

152 30 июля, 17:48 152 1445024

>>1445019
А то! Можно ещё модуль graphics скачать, там про это есть тоже следующих главах курса. Но для геометрических фигур хватает черепашки. Там потом ещё тема будет про рисование фракталов, на рекурсивные алгоритмы.

153 30 июля, 18:16 153 1445038

>>1444906
Выглядит красиво , но работать же будет только первый диапазон

Ответы45841

154 30 июля, 19:27 154 1445079

>>1444965
Сасибо анон. Лучше ставить jinja2 или оставить Django шаблоны ?

Ответы4508545116

155 30 июля, 19:36 155 1445085

>>1445079
Не трогай что работает, лол.
Джанго шаблоны не сильно отличаются от других стандартных. Научишься на них - считай знаешь остальные.
Выучи базовые вещи: получение ссылки на статичные данные (картинки, скрипты), работа с переданными аргументами, циклы и условия, наследование шаблонов (самая ахуенная вещь).

156 30 июля, 20:28 156 1445116

>>1445079
Они похожие, но лучше jinja2, штатные немного корявые. У jinja2 больше возможностей и удобства при обращении к словарям и т.п. Jinja2 более универсальные, и на других фрейворках работают, и даже в другие языки портированы довольно близко. В целом для начала можно не заморачиваться, ключевые принципы одни, смотри просто, чьи доки тебе удобнее читать и понимать.

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

133 Кб, 807x656
157 30 июля, 20:39 157 1445122

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

Ответы4512645218

158 30 июля, 20:41 158 1445126

>>1445122
Если не понимаешь, то начни с основ матана, иначе это бессмысленно. Например, на сайте для заочников и не только mathprofi или в школе/универе

Ответы4512945218

159 30 июля, 20:43 159 1445129

>>1445126
Я уже разобрался, спасибо не надо. Просто не понимал что такое "приближение"

160 30 июля, 20:50 160 1445135

>>1443844
>>Теория игр, теория принятия решений, Управление и оптимизация, многокритериальное принятие решений, Марковские модели, конечные автоматы, теория графов, теория вероятностей, статистические методы, имитационное моделирование, ии и коллективное поведение и проч.
иными словами - мозг пытается составить обобщенную модель мозга с целью надежного и длительного выставления произвольных функций оптимизации. и чтоб внимание получше работало. в РЦП такими вещами очень интересуются вроде бы.

161 30 июля, 21:28 161 1445185

>>1444808
Привет брату инженеру! Расскажи что получилось автоматизировать на питоне? Удобно ли пользоваться? Заморачивался ли с интерфейсом?

162 30 июля, 21:38 162 1445195

>>1444728
Спасибо.
Буду глядеть специализацию тогда. Мне питон больше в прикладных задачах нужен, да.

> Automate the boring with python
Есть такая, да. Уже скачал, буду изучать. Спасибо еще раз.

163 30 июля, 22:25 163 1445218

>>1445122
>>1445126
Разобрался полностью с этим, теперь у меня вопрос какое отношение это имеет к погромированию? Типа алгоритм? Я ньюфаня, не обссыкайте за глупые вопросы

Ответы4522545229

164 30 июля, 22:46 164 1445225

>>1445218
Никакого. Это не программирование. Программирование это когда ты в доту играешь. Или в инсте фотки лайкаешь. А какие-то там вычисления, это не программирование.

165 30 июля, 22:52 165 1445229

>>1445218
Это основа.
Допустим, тебе надо будет нарисовать график по точкам, но не от руки, как в школе, а с интерполяцией сплайнами. Вот тут ты берешь матлаб питон и пишешь себе на будущее функцию, которая за пару минут тебе красиво все покажет и нарисует.
ЯП - исполнитель, а тебе нужно знать, что исполнять и как это написать

Ответы45230

166 30 июля, 22:53 166 1445230

>>1445229
Спасибо, я ничего не понял. Но всё равно спасибо, пойду дальше тогда книжку читать

Ответы45234

167 30 июля, 22:56 167 1445234

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

Ответы4523645272

168 30 июля, 22:58 168 1445236

>>1445234
ну так там книга и есть эта. типа обучения основам погромирования общим на примере питона.

169 31 июля, 00:59 169 1445272

>>1445234
Вычмат о том, чтобы доказать сходимость решения, скорость сходимости и т.п. А программирование о том, чтобы реализовать это на практике.

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

Вот разберись и реализуй.

108 Кб, 532x675
Говно из жопы Пидор Ебаный 170 31 июля, 06:29 170 1445309

>>1443245 (OP)
Антоши, вот я тупой дебил и нихуя не умею. Хочу научится погромированмю. Решил выбрать пока питон, он вроде как самый лёгкий и неплохой такой. Вот скажите, не зашквар ли читать книгу "питон для детей" если я уже не дитё?

Ответы45310

171 31 июля, 06:45 171 1445310

>>1445309
>вот я тупой дебил
Справедливо, раз ты задаешь такие вопросы

Нет не зашквар.

Ответы45311

57 Кб, 500x435
Пидор Ебаный 172 31 июля, 06:51 172 1445311

>>1445310
Спасибо тебе анон, сейчас пойду спать и завтра постараюсь начать читать эту книгу.

173 31 июля, 23:11 173 1445695

>>1443245 (OP)
Братцы, на работе (режимное говнопредприятие) нет инета, а мне очень бы помогли пакеты Питона для работы с Excel и PDF форматами. Как их сцуко установить, если pip install не пашет? Я раздобыл исходники с Гитхаба, но как эти модули дальше установить, чтоб они работали?

Ответы45704457064571045872

174 31 июля, 23:22 174 1445704

>>1445695
Можно сделать через virtualenv, портируемый режим. Дома создаёшь всё, что тебе надо, ставишь все пакеты, которые нужны, приносишь куда надо, копируешь и запускаешь.

Ответы45723

175 31 июля, 23:25 175 1445706

>>1445695
Качаешь колёса, ставишь колёса через pip.

Ответы45723

176 31 июля, 23:27 176 1445710

>>1445695
Что ты там делаешь? Вали оттуда, целее и сытее будешь.

Ответы45723

177 31 июля, 23:51 177 1445723

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

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

>>1445706
? качаю куда? и можно ли указать этому менеджеру откуда устанавливать пакет? везде по pip лишь базовые сведения аля "щелкни сюда чтоб установить 5 разных фреймворков", но нигде толком не объясняют на низком уровне как собственно этот менеджер пакетов работает

Ответы45724

178 31 июля, 23:53 178 1445724

>>1445723
Берешь флешку, на ней создаешь виртуалку, в которую уже ставишь все, что нужно.
На работе собсна кидаешь на эту флешку нужные файлы и работаешь с ними из под виртуалки.
Для настройки просто загугли virtualenv

179 1 авг, 00:20 179 1445734

как эффективнее всего реализовать сохранение статуса выполнения цикла?(чтобы брал значение переменной из txt файла)

Ответы45871

180 1 авг, 02:10 180 1445770

34 Кб, 432x27427 Кб, 566x50959 Кб, 1008x251

Аноны, собсна, какого хуя такое происходит и как это исправить?
Чому оно не работает? Вроде всё делал по тутору с сайта DRF, но выдаёт такую хуйню. УРЛ проёбан по полной.
Гугл выдаёт гайды от обоссаных индусов с кривым кодом.

Ответы4604246046

181 1 авг, 09:11 181 1445799

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 перевел.

Ответы45889

182 1 авг, 09:33 182 1445813

Есть массив

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

как вывести не повторяющиеся элементы и их количество, т.е.
bob - 4
alex - 2
john - 1

Ответы458344586646133

183 1 авг, 09:55 183 1445823

Суп питонач. Есть здесь продвинутые веб макаки?
Есть заготовка проекта. В нём channels, celery, redis ещё и фронт на ноде с server side rendering. Вот хочу всё это ебануть в nginx + docker, но ума не приложу с чего начать.

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

184 1 авг, 10:27 184 1445834

>>1445813
лучше спроси как научиться задавать вопросы гуглу?
https://stackoverflow.com/questions/28663856/how-to-count-the-occurrence-of-certain-item-in-an-ndarray-in-python

Ответы45836

185 1 авг, 10:28 185 1445836

>>1445834
ну а тривиальный способ это сделать лист с уникальными элементами и для каждого элемента листа получить count в исходном листе

186 1 авг, 10:46 186 1445841

>>1445038
С чего ты взял?

187 1 авг, 11:24 187 1445866

>>1445813
В питоне есть стандартный модуль collections, а в нем есть класс Counter, он делает сразу то, что тебе нужно

Ответы46133

188 1 авг, 11:34 188 1445871

>>1445734
Не понятно, что тебе нужно конкретно. Но, наверно, тебе полезно будет почитать про генераторы в питоне, ну, там, yield, next, и все дела

189 1 авг, 11:50 189 1445872

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

190 1 авг, 12:57 190 1445889

>>1445799
бамп

я ща проверил dtype, там до сохранения uint8 и после чтения uint8, но напрямую не рабоатет.

76 Кб, 810x452
Аноним 191 1 авг, 16:07 191 1446024

>>1444021
Анон, у тебя всё правильно, просто не стоит вводить p,z,t , а нужно вводить то, что записано в переменной, тобишь Zerg , Protos, Terrain.

192 1 авг, 16:55 192 1446042

>>1445770
Бумп.
Что за блядство такое, этот DRF..

Ответы46046

193 1 авг, 17:03 193 1446046

>>1446042
>>1445770
Дружище, кури регулярки и https://docs.djangoproject.com/en/2.2/topics/http/urls/
Я просто в ахуе, что ты такое еще спрашивать сдесь удумал.

Ответы46051

51 Кб, 628x406
194 1 авг, 17:18 194 1446051

>>1446046
Причём тут регулярки?
Если пикрил предлагается в офф доках ДРФа.
У меня подобная херня, только вместо "" мой роут начинается с "api/".
Или я чего-то не понимаю?

195 1 авг, 19:53 195 1446133

>>1445866
>>1445813
Есть стандартный метод у списка
array.count('Bob')

Ответы46135

196 1 авг, 19:53 196 1446135

>>1446133
А, не так понял задачу.

197 1 авг, 21:22 197 1446182

>>1443245 (OP)
Что нужно знать, чтобы етл на вашем яп писать?

Ответы46328

198 2 авг, 01:59 198 1446328

>>1446182
Желательно минимальное знание англа, а потом учить язык

Ответы46335

199 2 авг, 03:00 199 1446335

>>1446328
Спасибо, английский я знаю.
А более подробный ответ на вопрос можно?

Ответы46541

200 2 авг, 13:23 200 1446541

>>1446335
Если вообще не знаешь язык, то можешь либо пройти курс Питонтьютора, либо прочитать "Укус питона", это основа(документация еще, конечно же)
Потом смотришь нужные тебе библиотеки и начинаешь что-то делать с их использованием.
Можно просто решать задачи на chekio/codingame/pythonchallenge

201 2 авг, 13:34 201 1446553

Сап питонач. Хочу изучать питон. Какое издание "Изучаем питон" Лутса выбрать?

Ответы46568

202 2 авг, 13:45 202 1446568

>>1446553
Четвертое

Ответы46572

203 2 авг, 13:50 203 1446572

>>1446568
почему не пятое?

Ответы46591

204 2 авг, 14:13 204 1446591

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

Ответы46594

205 2 авг, 14:17 205 1446594

>>1446591
Хорошо, спасибо за ответ

206 2 авг, 14:51 206 1446621

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

Ответы4662446630

207 2 авг, 14:52 207 1446624

>>1446621
Просмотри апи вк и поймешь

Ответы46628

208 2 авг, 14:56 208 1446628

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

Ответы4663046632

209 2 авг, 15:02 209 1446630

>>1446621
>такое же реально сделать?
Реально. Недавно только щупал я бы сказал, касался даже апи ВК и там есть всё, что тебе надо. Дело 2-3 функций. Вот только нахуя оно? Сейчас каждый 2-ой, если не 1,5-ый, паблик имеет свой ТГ канал для сруба бабок с рекламы вдвое чаще обычного, так что какого-то большого импакта не вижу, разве что брать посты с групп непопулярных на 10-20к тел.

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

Ответы46634

210 2 авг, 15:04 210 1446632

>>1446628
Как сказано выше, можно и парсить, но это себя не уважать. Апи дает как минимум опыт и удобство

211 2 авг, 15:07 211 1446634

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

106 Кб, 750x422
212 2 авг, 15:16 212 1446639

Питонач, есть серьёзный вопрос. Как вкатиться в работу? Вот я правда. У меня есть знания питона, которые позволяют мне кодить всякие штуки для себя, с чем я успешно справляюсь. Я могу прочитать чужой код, найти ошибки в нём и исправить их. Если мне скажут разобраться в фреймворке, я прочитаю документацию и всё пойму без особых проблем. Но это же блять нихуя не учитывается при устройстве на работу! Всем нужно, чтобы ты решал какие-то ебанутые задачи и разруливал ситуации, которые ну вот вообще никогда не возникнут, если только не полный долбоёб пишет код. Понимать, что от кого и когда наследует и как эта хуйня работает в очень глубоком представлении, хотя по факту есть тут вообще те, кому эти глубочайшие знания необходимы на практике? Если есть, пруфайте, и я ухожу нахуй.
Так вот, что мне нужно собственно. Есть ли какой-то сборник задач, вопросов и прочего, которые составлены по собеседованиям? Чтобы вот со всеми этими ебанутыми ситуациями в коде, со всеми доёбами до каждого атрибута в каком-то доисторическом классе и всё в этом духе. Очень прошу поделиться подобным, потому что заебало уже всё максимально. Или просто хоть напишите, как сами к собеседованию готовились, если вы работаете питон девом.
В МВП не отправляйте. Там никто не сидит и не шарит, к тому же вопрос именно касается сабжа, а не других ЯП.

Ответы4664246669

213 2 авг, 15:24 213 1446642

>>1446639
Нахуй.

214 2 авг, 15:38 214 1446653

Аноны, есть одна проблема.

В функции:

https://pastebin.com/x0bdh59k

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

ЧЯДНТ????

Ответы4679846914

215 2 авг, 16:09 215 1446669

>>1446639
>Как вкатиться в работу?
Заходишь на hhru. Ищешь вакансии в своем городе. Если видишь что многим нужны технологии которых вообще не знаешь - учишь их. Жмешь ОТКЛИКНУТЬСЯ. Ждешь. Проходишь собес. Работаешь. Вопросы?

15 Кб, 483x268
216 2 авг, 17:28 216 1446798

>>1446653
Как нуб могу предположить, что где-то по ходу кода возбуждается IndexError.
Так же, как нуб, я не очень понимаю, что делает указанная на скрине часть кода. Не нужен ли здесь return?

Ответы46827

217 2 авг, 17:54 217 1446815

Как вставить текст из буфера обмена в список?

Или вообще можно ли сразу работать с текстом в буфере обмена? Мне нужно будет находить в нем знак и копировать несколько символов после этого знака.

Ответы46817

218 2 авг, 17:59 218 1446817

>>1446815
https://pypi.org/project/pyperclip/

219 2 авг, 18:04 219 1446819

Писать гуевые приложения для винды на питоне это норм или я поехавший?

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

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

Ответы4683246834

220 2 авг, 18:26 220 1446827

>>1446798
>возбуждается IndexError
Да, так и есть. Но даже если тут и возникает какая-то ошибка, то должен возвращаться list_of_text, который выше был дополнен.

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

221 2 авг, 18:32 221 1446832

>>1446819
Норм всё, пили

222 2 авг, 18:33 222 1446834

>>1446819
Ну можно, но ето изврат.

Ответы46841

223 2 авг, 18:40 223 1446841

>>1446834
Почему? Я сам внутренне это чувствую, но как ты это объясняешь?

224 2 авг, 19:21 224 1446874

просто интересно. на каком языке программирования в основном пишут программы которые работают в видеокамерах, стационарных телефонах, микроволновках и т.д.

Ответы468764687746919

225 2 авг, 19:21 225 1446876

>>1446874
Java

Ответы46879

226 2 авг, 19:21 226 1446877

>>1446874
Жаба

Ответы46879

227 2 авг, 19:24 227 1446879

>>1446876
>>1446877
а на технику которая выпускалась в 90-е годы тоже java?

Ответы46881

228 2 авг, 19:27 228 1446881

>>1446879
Бейсик, ассамблер

Ответы46904

229 2 авг, 20:13 229 1446904

>>1446881
понял. спс

230 2 авг, 20:22 230 1446911

>>1443245 (OP)
А есть тут успешные джанго-разработчики? Как по вашему, что должен уметь/знать джун на эту позицию?
Я вроде как подтянул базовые знания, попробовал в редис, селери. Даже жс на уровне ajax запросов выучил.
Но на работу идти стремно, потому что кажется что я просто не смогу в энтерпрайз, я хуй знает какие там общепринятые практики и вот это вот всё.
Я в основном для работы проекты пилил, на своих костылях. Работало, да и хуй с ним. Но работу сейчас хочется поменять.

231 2 авг, 20:23 231 1446913

к теме про vk api. Как получиь посты конкретной группы, так и не нашел:?

Ответы46915

232 2 авг, 20:24 232 1446914

>>1446653
Нашел уже сам проблему, но появился другой вопрос: "Как остановить цикл, который СУКА НЕ ХОЧЕТ ОСТАНАВЛИВАТЬСЯ?"

Дело в том, что в функции я запускал саму же функцию, но, если так можно выразиться, 1 поток функции не хочет оканчиваться даже если поставить после вызова функции break

Ответы46918

233 2 авг, 20:24 233 1446915

>>1446913
вопрос снят, я открыл доки api и понял, лол

234 2 авг, 20:26 234 1446918

>>1446914
Вопрос снят, просто сделал еще одну (другую) функцию

235 2 авг, 20:27 235 1446919

>>1446874
Си, кресты. Никто не пишет такое на жабе, тебе пиздят. Внутри твоей видеокамеры вообще ртос на сишке крутится почти наверняка.

Ответы4692446928

236 2 авг, 20:33 236 1446924

>>1446919
я думал что на си ++ . на джаве наверное для современных больше пишут.

622 Кб, 817x571
237 2 авг, 20:37 237 1446928

>>1446919
интересно на каком языке написано по на котором пикрил работает. пикрил 2000-го года выпуска.

Ответы47690

238 2 авг, 20:45 238 1446938

Питонач, получаю я значит посты с группы и че бля? Получаю почти мгновенный "Rate limit reached" и это при 2500 - 5000 разрешенных вызовов, но вызвал ф-ию я только 2-3 раза. що за нах

Ответы46953

239 2 авг, 20:57 239 1446953

>>1446938
крч мой план такой: Если будет много людей, то надо будет делать сортировку, типа 2-3 чела подписаны на "двач" и, чтобы бот понимал это и делал вызов только один раз, а отсылал троим. Это нужно, чтобы, если 1к пользователей на двач подпишутся, то бот каждый вызов не херачил для этой тысячи людей.

Ответы46958

240 2 авг, 20:59 240 1446958

>>1446953
ну и снова возвращаясь к api vk или парсу. Парс все же надежнее, кто меня там заблочил, запросы бесконечные. А так это же пиздец, либо 100акков создавать, чтобы когда один терял доступ к апи система заходила под другим акком и обращалась к апи до тех пор, пока снова не блочнит, либо делать одного бота под конкретную группу, но это не устраивает меня. Я хочу, чтобы человек писал какие группы ему нужны, а бот сам все отправлял в виде новостей, вк тогда нахой не нужен будет.

Ответы46979

241 2 авг, 21:25 241 1446979

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

99 Кб, 317x372
242 3 авг, 02:10 242 1447149

В очередной раз пробую закрыть гештальт и научиться в погромирование.
В данный момент где-то на середине укуса питона. За что взяться после него?

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

Ответы47202

243 3 авг, 08:10 243 1447202

>>1447149
Гуманитарий-хуянитарий. Тебе 14 лет, что ты такие вопросы задаешь? По твоему тут у каждого премия Тьюринга или что?
Как завещали старейшины сначала ты должен запилить свою борду. Можешь начать "Python. к вершинам мастерства". Она углубляется в разные аспекты питона и вполне актуальна, кроме разделов с asyncio

Ответы47302

16 Кб, 654x260
244 3 авг, 13:07 244 1447297

Есть два потока, в одном я должен чекать появление новых постов в группе, а в другом слушать что прислал юзер боту. Как не пытался два никогда не стартуют, только какой-то один в зависимости от того, какой первый создашь. В чём проблема? Пробовал threading, _thread, вот версия через multiprocessing. Но суть то везде одна и та же, просто передаёшь функцию и запускаешь поток.

Ответы47492

245 3 авг, 13:23 245 1447302

>>1447202
А что с asyncio?

Ответы47320

246 3 авг, 13:37 246 1447308

>>1443295
Даже смотреть не буду в таком виде -- пости на пастубин.

>>1443318
За каким хуем вообще втыкают ченнелс в джангу, если можно сделать отдельный сервис на асинхронном фреймфорке типа того же торнадо? Вебсокеты это уже событийное программирование, а это не прерогатива джанги.

247 3 авг, 13:42 247 1447313

Аноны, есть вопрос.

https://pastebin.com/UF6hPZVZ

Дело в том, что мне надо, что бы код просто вызвал другую функцию (ge2) в функции (ge), и ничего не возвращал. Как мне это сделать?

Ответы47319

248 3 авг, 13:45 248 1447315

Подскажите какие плагины мастхев или просто очень хорошие для pycharm? Например можно сделать автодополнение хотя бы примерно как в саблайме?

Ответы47322

249 3 авг, 13:45 249 1447316

>>1443318
Вот тебе две ссылки - должно помочь в понимании асинхронки. Вторая это часть цикла.

http://aosabook.org/en/500L/a-web-crawler-with-asyncio-coroutines.html#fnref2

https://ruslanspivak.com/lsbaws-part1/

Ответы47554

250 3 авг, 13:49 250 1447319

>>1447313
>return list
Убери ретурн тогда. Строго говоря в питоне функции всегда возвращают что-то. Если явно не указан ретурн, тогда возвращается None

Ответы47334

251 3 авг, 13:49 251 1447320

>>1447302
Все сильно поменялось с тех времен. Концепция та же, но инструменты изменились

252 3 авг, 13:50 252 1447322

>>1447315
kite?

253 3 авг, 14:01 253 1447334

>>1447319
Спасибо, буду думать

779 Кб, 1366x656
254 3 авг, 17:33 254 1447470

Братишки, сосу хуйца, как полагается всем, кто хочет стать великим программистом. На данный момент хуец состоит из нескольких индусских циклов.
https://pastebin.com/kmTCkz2X
Хочу понять принцип, а именно почему после итерации в подцикле с 9 по 11ую строчки интерпретатор улетает в самое начало цикла на первую строку, а не продолжает бегать по подциклу, а потом спускаться ниже и ниже. ЧТО НЕ ТАК С ОТСТУПАМИ БЛЯТЬ? простите

Ответы474964761347693

255 3 авг, 17:58 255 1447484

В vs code норм с питоном работать или лучше ставить для него что-то отдельное?

256 3 авг, 18:14 256 1447492

>>1447297
Ну ребят, ну чё за приколы, почему второй поток не стартует?

Ответы47546

257 3 авг, 18:20 257 1447496

>>1447470
Что на вход подаешь и что пишет?
Что эта хуита вообще делает?
Если при входе в цикл x не a, b или c, то он так и будет бегать, потому что ты i не меняешь.

Если ты хочешь посчитать все вхождения каждого элемента из трех, сделай нормальный проход по коллекции:
for element in x:
...
а не байтоебский.

Ответы47726

258 3 авг, 18:59 258 1447512

Изучаем пайтон Лутца 5-е издание ещё сохраняет актуальность? Если нет, то чем заменить? Вроде как эта самая новая книжка в шапке, но ей уже 6 лет, что вроде как не малый срок.

259 3 авг, 19:46 259 1447546

>>1447492
Что такое bot.polling и почему бы подставляешь вызов функции, а не саму функцию? Если ты вызываешь функцию, то в target будет записан результат вызова (предполагаяется что ещё какая-то функция, которую можно вызвать), и только потом стартует процесс

Ответы4759847610

260 3 авг, 20:01 260 1447554

>>1447316
Вторая вообще не про асинхронку, там про низкоуровниевую работу с сокетами, что-то про HTTP, а потом они не к селектам идут, а к форкам.

Первая тяжеловеская и с устаревшим синтаксисом, там asyncio.coroutine / yield from. Ну может если через генераторы разбирать внутреннее устройство асинхронной работы и нормально, глубже понимание будет, но это тяжёлый путь и опыт хороший нужен в питоне. В том числе с теми же генераторами, с работой с select, и т.п., а это серьёзный уровень.

Ответы47595

261 3 авг, 20:54 261 1447595

>>1447554
Обе ссылки объясняют простую вещь - высокопроизводительный веб-сервер реализуется на основе событий операционной системы. А первая объясняет что корутины в контексте asyncio это синтаксический сахар над callback-ами которые задаются таким событиям в качестве обработчиков.

Ответы47626

262 3 авг, 20:55 262 1447598

>>1447546
Это функция, которая слушает команды юзера, которые он боту в чат кидает

263 3 авг, 21:05 263 1447610

>>1447546
> почему бы подставляешь вызов функции, а не саму функцию?
Блять, спасибо, что навёл меня на решение. Ты лучший

264 3 авг, 21:06 264 1447613

>>1447470
Какой у тебя там подцикл с 9 по 11 строчку? Если условие после if имеет значение True, то он просто выполнит две следующие строчки кода, а код, следующий после else, выполняться по очевидным мне причинам уже не будет.

Ответы47726

265 3 авг, 21:21 265 1447626

>>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 какой-то полный ад.

Ответы47687

266 3 авг, 22:35 266 1447677

Пацаны, не обосыти, а помогите! Только начинаю осваивать питон.

У меня есть 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)

Ответы4768147685

267 3 авг, 22:45 267 1447681

>>1447677
Ну внутри цикла и перебирай, сделай внутри цикла ещё один цикл но уже по второму списку.

Ответы47688

268 3 авг, 22:50 268 1447685

>>1447677
Каким образом тебе его нужно перебирать? Что нужно делать с элементами списка language?
Первое, что приходит на ум с таким количеством данных:
for element in files:
____for lang in language:
________<какая-то операция>
____<какая-то операция>

Ответы47689

269 3 авг, 22:51 269 1447687

>>1447626
Это хорошая база чтобы начать.

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

Ну и тогда уж можно было бы скинуть версию с переводом
https://www.youtube.com/watch?v=ys8lW8eQaJQ

270 3 авг, 22:54 270 1447688

>>1447681
Всё братишка, я тупанул, спасибо!

271 3 авг, 22:54 271 1447689

>>1447685
Да, спасибо, так и сделал. От души!

272 3 авг, 22:55 272 1447690

>>1446928
асемблер

273 3 авг, 23:17 273 1447693

>>1447470
PEP 8 по отступам
я нихуя не понял что это за код и что он делает

Ответы47706

274 3 авг, 23:32 274 1447706

>>1447693
Человек явно недавно вкатываться начал, а ты ему уже про PEP 8.

Код, если я не ошибаюсь, всего-навсего считает количество 'a', 'b' и 'c' в строке x.

Ответы47726

275 3 авг, 23:44 275 1447711

Ультра-нубас снова на связи.

Я получаю все 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__))

Ответы47712

276 3 авг, 23:48 276 1447712

>>1447711
Вот так работает, но это костыль же, верно?
И я не понимаю каких-то совсем основ

path = os.path.dirname(os.path.abspath(__file__))
files=glob.glob(path+"/bookstoupload/*.docx")

Ответы47792

277 4 авг, 00:38 277 1447722

Пацаны, а тут по селениум по хардкору поясняют или нахуй шлют?

Ответы47725

278 4 авг, 00:45 278 1447725

>>1447722
А что тебе надо?

413 Кб, 2240x1400
279 4 авг, 00:48 279 1447726

>>1447496
Это задача на нахождение символов a, b, c в строке. Строка вида "aaaabbbbcba"
Объясните пожалуйста неофиту, что есть
>нормальный проход по коллекции
и
байтоебский [проход по коллекции(?)]
>>1447706
ДА! Моя хуйня оказывается читабильна. вкатываюсь чуть больше месяца хз где менторов искать, вот пришёл на двощ, ведь здесь все мои друзья
>>>1447613
Моя теория была такова:
- Сначала цикл бегает 2 и 4;
- Потом выполняется условие else, и начинается подцикл между 9 и 11;
- Потом работаетусловие else на строке 12, и идёт следущий подцикл

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

Ответы4773447786

280 4 авг, 01:06 280 1447731

Не разбирусь как логгировать все ошибки?

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

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

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

Ответы47733

281 4 авг, 01:08 281 1447733

>>1447731
в документации к logging есть пара статей-туториалов.

Ответы47737

282 4 авг, 01:09 282 1447734

>>1447726
Напиши условие задачи.

Ответы47743

283 4 авг, 01:13 283 1447737

>>1447733
Там написано сделать вот так и будет заебись

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

но нихуя не заебись, пустой файл имею

Ответы47738

284 4 авг, 01:14 284 1447738

>>1447737
Покажи весь код.

Ответы47740

285 4 авг, 01:15 285 1447739

Поцоны, подскажите нубу:

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, который соответствует заданным значениям. Как это правильно реализовать?

285 4 авг, 01:15 285 1447739

Поцоны, подскажите нубу:

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, который соответствует заданным значениям. Как это правильно реализовать?

Показать весь текст

286 4 авг, 01:17 286 1447740

>>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()

286 4 авг, 01:17 286 1447740

>>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()

Показать весь текст

122 Кб, 1047x439
287 4 авг, 01:29 287 1447743

>>1447734

Ответы47748

288 4 авг, 01:37 288 1447748

>>1447743
Ну вот смотри, у тебя в условии не сказано, что могут быть только символы a, b, c, сказано что надо учитывать регистр, то есть могут быть варианты AaaRtQppQbccccCcr и т.п.

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

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

Ответы47757

289 4 авг, 01:58 289 1447757

>>1447748
С регистром вроде вопросов нет.
1) Погоди, "последний символ" это литера, которую в данный момент проверяет программа? Кстати, поясни почему счетчику нужно присвоить значение 1, помню, что я до этого как-то дошёл сам, но потом забыл. Почему не 0?
2) В моём полном коде есть len(s), я ее как раз таки сделал, чтобы на последнем символе цикл прекратить.

Ответы47762

290 4 авг, 02:07 290 1447762

>>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))

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

291 4 авг, 02:46 291 1447769

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

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

Что нет готовой библиотеки/модуля, чтобы все ошибки записывать в файл? Не может же быть такого

292 4 авг, 06:17 292 1447786

>>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) это было бы проще отловить.

Ответы47787

293 4 авг, 06:19 293 1447787

>>1447786
>print(xs\[ i \])

111 Кб, 800x360
294 4 авг, 06:34 294 1447788

Требую эту картину на ОП-пик!

295 4 авг, 08:30 295 1447792

>>1447712
Нормально, но pythonic-way - это использование библиотеки pathlib при работе с путями:

from pathlib import Path

path = Path(__file__) / 'bookstoupload'
files = path.glob('*.docx')

296 4 авг, 13:21 296 1447869

скиньте чатик питонистов в тележке

297 4 авг, 13:25 297 1447872

Хелпаните плз. Не могу понять как использовать классы дада, я тупой. Например как это сделать с классами и сохранением изменённого словаря. https://pastebin.com/T7hrSdJf

Ответы47884

298 4 авг, 13:42 298 1447884

>>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'))

остальное сам сделай

298 4 авг, 13:42 298 1447884

>>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'))

остальное сам сделай

Показать весь текст
Ответы4788547916

299 4 авг, 13:43 299 1447885

>>1447884
https://pastebin.com/LLXtkRVu

Ответы47916

300 4 авг, 14:41 300 1447912

>>1443245 (OP)
Какая сейчас примерная зряплата для вкатывальщиков(в ДС)? Насколько трудно найти работку, если в приоритете не веб?
Есть примерно год опыта ковыряния по вечерам своего кривого проекта на джанге и пандасах. Олсо до этого несколько лет кодил на плюсах, но это было давно и неправда.

301 4 авг, 14:48 301 1447916

>>1447884
>>1447885
Спасибо, наконец-то разобрался.

302 4 авг, 17:13 302 1447991

https://pastebin.com/QSSd0dC2
Как сделать этот уебищный кусок кода c проверкой нескольких условий более красивым и лаконичным?
Использовать обратный слэш в питоне это вроде как зашквар и признак нуба.

Ответы480034801848040

6 Кб, 290x218
303 4 авг, 17:25 303 1447999

Нуб уже который раз в треде. Как реализовать создание нового экземпляра уже с новыми параметрами на месте старого в теле method?

>> f = Foo(1, 2, 3)
>> f
<какой-то объект Foo с атрибутами 1, 2, 3>
>> f.method(2, 2, 8)
>> f
<какой-то объект Foo с атрибутами 2, 2, 8>

Ответы48037

304 4 авг, 17:30 304 1448003

>>1447991
Первое, что пришло в голову: if last_sym not in (",", ":", "=", "--") and len(line) > min_len.

Ответы48005

305 4 авг, 17:42 305 1448005

>>1448003
Да, точно. Я осёл.

306 4 авг, 18:08 306 1448018

>>1447991
Как, блять, вообще один последний символ может быть равен двум '--'. Почему last_sym = line[-1:] А не просто last_sym = line[-1]

Ответы48022

307 4 авг, 18:14 307 1448022

>>1448018
Да никак, это я по невнимательности проебался чутка.

308 4 авг, 18:42 308 1448037

>>1447999
Ты хочешь вообще все переинициализировать? Тогда наверное лучше сделать f = Foo(2, 2, 8), так понятнее, что ты пересоздаешь объект. Если хочешь часть атрибутов поменять, то просто в методе это и делай
def method(self, a, b, c):
self.a = a
self.b = b
self.c = c

Ответы48056

309 4 авг, 18:44 309 1448040

>>1447991
>Использовать обратный слэш в питоне это вроде как зашквар и признак нуба.
Иногда без него никуда не деться, если надо - используй и никого не слушай потом может быть отрефакторишь

8 Кб, 267x225
310 4 авг, 19:22 310 1448056

>>1448037
Пожалуй, подобный способ для моих целей подходит даже больше. Спасибо.
Впрочем, и по своему вроде удалось реализовать.

Ответы48443

311 4 авг, 20:14 311 1448067

Хай питонач, есть тут кто, кто шарит за апи телеги? Вопрос какой, можно ли сделать так, чтобы добавив бота и написав ему команды, бот самостоятельно отправлял какие то новости итд итп в личку? Можно ли как-то узнать идентификатор беседы юзера и бота или самого юзера?

Ответы48068

312 4 авг, 20:16 312 1448068

>>1448067
легко

sendmessage есть метод, указываешь юзверя, бот отправляет по @id-шнику ну или по числовому, надо его отдельно узнавать

Ответы48138

313 4 авг, 20:26 313 1448073

Привет, анон-питон. Подскажи плиз фреймворк/либу для разворачивания простейшего сервака с парочкой роутов.

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

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

def my_hanler(req):
print(req)

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

Обнял того, кто наведет на путь истиный.

Ответы48078

314 4 авг, 20:36 314 1448078

>>1448073
Ответ формы можно хоть через import http.server сделать.
А так - бери Flask, ещё никто не жаловался на него.

Ответы48079

315 4 авг, 20:38 315 1448079

>>1448078
Спасибо, наверное import http.server возьму. Фласк излишен будет, мне там в прямом смысле 10 строк кода нужно - схоронять данные из формы в текстовый файл и больше ничего не делать

316 4 авг, 21:12 316 1448104

Хело, ананасы.
Я в программировании вообще абсолютный нюфаг, в свое время баловался на начальном уровне CSS+HTML, шо как бы намекает, что я далеко не программист.
Так вот, возникла внезапная необходимость собрать кое-какую хуевину...
Существует огромный, сцуко, файл *.docx на почти тысячу страниц, состоящий из множества таблиц, в каждой из которых перечисляются люди, учащиеся на одной специальности, но в разных шарагах, и небольшого описания к каждой из них. В каждой таблице пять столбцов (на деле не совсем так, но для простоты представим). Первый столбец - номер строки, второй - id-число, третий - ФИО персонажа, четвертый - численное значение балла на экзе, пятый - трехзначный номер заведения, в котором персонаж состоит.
Так вот, надо каким-то образом научить железный ящик выбирать из этого файла только персонажей из конкретной шараги и сохранять в отдельный файл, желательно - с группировкой по специальностям.
Звучит совершенно не сложно, кажется (кроме этапа с подключением .docx файла), но у меня, как у человека, который в пайтоне только задачки на питонтьюторе решал, попытка представить принцип работы целиком вызывает когнитивный диссонанс.
Так вот, товарищи, поделитесь, пожалуйста, как такую хрень можно вообще реализовать? Каким вы видите подобный скрипт? За любую информацию буду благодарен люто-неистово, только дайте направление, куда копать. Если в чем-то я проебался и это что-то нереализуемо - скажите, пожалуйста, что именно, что теперь делать-то вообще и вообще. И насчет реализуемого тоже что-нибудь скажите, пожалуйста.
Сумбурно, но, как говорится, "часики-то тикают". Заранее спасибо, пацаны.

Ответы4810748123

317 4 авг, 21:15 317 1448107

>>1448104
Нахуя тебе питон для этого? VBA для кого придумали?

Ответы48118

318 4 авг, 21:28 318 1448118

>>1448107
Вооот, уже ответы пошли. Люблю анона. Попиздил гуглить, что это такое.
Насчет пайтона - хуй знает, нравится он мне почему-то))9
Давно хотел заняться изучением, а тут вот такая необходимость возникла, я и загорелся чет. Но если на нем я слишком заебусь этим заниматься, то ладно, можно отложить, думаю.
А на этой твоей хуйне мою хуйню будет сильно геморно склепать?

Ответы48119

319 4 авг, 21:30 319 1448119

>>1448118
Вах, ебац, типа прям с вордом работать умеет. Благодать. Покурю.
А в принципе если отмести тот факт, что мне нужно работать именно с *.docx, на пайтоне это реализуемо?

Ответы4812448151

143 Кб, 360x360
320 4 авг, 21:35 320 1448123

>>1448104
мне кажется легче в sql все записать, спарсить всё и записать

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

там даже какой-то полуготовый ответ лежит, мельком глянул
парсишь таблицы и все запихиваешь в базу sql

Ответы48140

321 4 авг, 21:36 321 1448124

>>1448119
Можно и через питон, но нахуя, если микрософт тебя прямо в ворд всё запихали.

322 4 авг, 22:01 322 1448138

>>1448068
благодарю анончек, посмотрю! Счастья и здоровья тебе

323 4 авг, 22:04 323 1448140

>>1448123
Оп, охуенно. Полностью ещё не прочитал, но выглядит полезно. Насчет SQL тоже покурю утром, попытаюсь вникнуть в твою мысль, анонче. Спасибо за годную ссылочку.

324 4 авг, 22:07 324 1448143

Анон, поясни в чём разница между

class MyClass:

____test = 0

и

class MyClass:

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

Когда и что юзается и какие есть подводные?

Ответы48146

325 4 авг, 22:09 325 1448146

>>1448143
В первом случае у тебя переменная общая на весь класс, то есть глобальная, во втором у каждого объекта своя переменная.

326 4 авг, 22:14 326 1448151

>>1448119
Вся работа тут в подключении docx, парсинге данных, обработке разных исключительных ситуаций и наступании на потенциальные грабли. То есть 90% работы будет в том, чтобы загнать этот docx в какую-нибудь нормальную питон-структуру. А там уже можно легко и быстро данными манипулировать.

Тут реально от питона ничего.

327 5 авг, 01:09 327 1448235

Есть парочка вопросов по телеге.

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

Ответы4824148365

328 5 авг, 01:31 328 1448241

>>1448235
скинь код, как можно без кода понять кому бот шлет сообщение

Ответы48244

329 5 авг, 01:47 329 1448244

>>1448241
я не про свой код. Я спрашиваю реально ли сделать то, что я хочу?

330 5 авг, 01:47 330 1448245

Я правильно понимаю, что стоит делать бота для телеги без использования библиотек? Ну чтобы учиться с API работать и всё такое?

Ответы48257

331 5 авг, 02:14 331 1448257

>>1448245
Нет, делай через либы, если таковые есть, если нет, то ебаш через реквесты

332 5 авг, 04:08 332 1448271

>>1444903
Выкатывается в тред нуб. Вообще можно через in range это оформить.

333 5 авг, 12:58 333 1448365

>>1448235
так ты же шлешь ответы КОНКРЕТНОМУ челику, а не всем подряд

Ответы48369

334 5 авг, 13:07 334 1448369

>>1448365
не кричи, мать. Почитал доки и понял, что высрал хуету

Ответы48385

335 5 авг, 13:42 335 1448385

>>1448369
>Почитал доки
Ебать ты экстремал

336 5 авг, 13:47 336 1448390

>>1443442
Ты чё бля гонишь? Паразит!

def pizda(a, b, i, N):
return (((aN)+(bN)+i)*2)-a

337 5 авг, 14:11 337 1448395

Щас работаю линукс админом, думаю стать питон макакой. Какие подводные? Не поздно ли делать перекат в 24 года?

Ответы4839748439

338 5 авг, 14:16 338 1448397

>>1448395
Иди нахуй, дебил, весь раздел своей парашей засрал.
Поздно уже, ты слишком тупой.

339 5 авг, 15:21 339 1448439

>>1448395
Подводных никаких, не поздно.

340 5 авг, 15:23 340 1448443

>>1448056
Ну это почти то же самое, что и a = Foo(5), только неявно, а питонодзен говорит, что явное лучше неявного, так что смотри, не отстрели себе ничего.

341 5 авг, 17:02 341 1448487

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

Ответы48503

342 5 авг, 17:42 342 1448503

>>1448487
> А мне надо как только прилетело новое значение на сервер - оно сразу же отрисовалось у клиента
ZMQ/RabbitMQ

Ответы48507

343 5 авг, 17:48 343 1448507

>>1448503
Спасибо, буду в этом направлении рыть. Юзать это все равно с каким нибудь асинхронным фреймворком типа Celery, да?

Ответы48512

344 5 авг, 17:52 344 1448512

>>1448507
> асинхронным фреймворком типа Celery
> фреймворком
Это не совсем так.
Смотря какая у тебя архитектура там вообще, можешь с Селери, можешь отдельно.

Ответы48585

345 5 авг, 20:59 345 1448585

>>1448512
Да у меня там нет ничего толком. Все просто, уровень не выше чем бложек из мануалов.
Ладно, спасибо за наводку. Добра.

217 Кб, 412x500
346 5 авг, 21:57 346 1448609

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

347 6 авг, 11:15 347 1448805

Хайль питонисты. Язык очень люблю, мне нравится на нём писать, да и опыта уже не мало. Но я не люблю веб, не люблю датасайнс и прочие математические приблуды...
Мне нравится писать что-то, что используется повседневно, я был бы счастлив участвовать в разработке ворда, клиента стимача, Файерфокса и тому подобного.
На данный момент я использую питон для разработки игор (но мне просто повезло, что есть финансирование. Не уверен, что если его перекроют я найду аналогичную работу) и для автоматизации задач (что своих, что помогаю девопсам в крупной ИТ компании из спб).

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

Ваше мнение?

Ответы4895848961

348 6 авг, 14:33 348 1448887

Хай питонач, написал я бота и залил его на пайтонэнивер, запустил и вроде работает, но бот принимает только команду /start, ни на что другое не реагирует, хотя вебхук установлен. Пробовал вырубить /setprivacy, но ничего не помогло. хелп. Прилагаю скрины.

349 6 авг, 14:34 349 1448888

106 Кб, 1509x81130 Кб, 511x531

Ответы48911

350 6 авг, 15:20 350 1448911

>>1448888
Чо за говно?

Ответы48912

351 6 авг, 15:20 351 1448912

>>1448911
мне не твое мнение нужно, а что сделатЬ, чтобы заработала.
ебучий зуммер

Ответы48918

352 6 авг, 15:28 352 1448918

>>1448912
Попробуй сосать хуи

Ответы4892048926

353 6 авг, 15:29 353 1448920

>>1448918
порвался, либераха

Ты вместо своих высеров помог бы брату питонисту

Ответы48968

354 6 авг, 15:40 354 1448926

>>1448918
хахах, я даун. Я не тот файл редаичил, что запускался.

Ответы48968

355 6 авг, 16:22 355 1448958

>>1448805
Си-сярп хорош для геймдева, бери его !

2,2 Мб, 1508x932
356 6 авг, 16:31 356 1448961

>>1448805
Можешь попробовать какой нибудь Рygame или Pyglet. Но сишарп пока что кажется более лучшим решением.

357 6 авг, 16:39 357 1448968

>>1448920
>>1448926
Вот видишь, стоило пососать хуи - и все сразу получилось.

358 6 авг, 16:43 358 1448970

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

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)

Ответы48972489744897548977

359 6 авг, 16:48 359 1448972

>>1448970
Пробелы проебалися, извините

Ответы48974

360 6 авг, 16:54 360 1448974

>>1448970
>>1448972
Хлебушек я, совсем не так делаю. Вопрос отзывается

361 6 авг, 16:56 361 1448975

>>1448970
Могу предположить, что вместо "False" нужен "break".
В следующий раз выкладывай на pastebin. Облегчишь задачу и себе, и другим.

Ответы48976

362 6 авг, 16:57 362 1448976

>>1448975
Не помогает бреак, и вообще там я неправильно в словарь никнеймы складываю

363 6 авг, 17:02 363 1448977

>>1448970
А что ты такое хочешь сделать? По факту у тебя в функции вечный цикл, из которого нет выхода.

Ответы48979

364 6 авг, 17:05 364 1448979

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

Ответы49007

365 6 авг, 17:12 365 1448982

36 Кб, 600x41316 Кб, 562x250

Ага, вот

Ответы49043

366 6 авг, 17:25 366 1448999

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

367 6 авг, 17:31 367 1449007

>>1448979
Как же не вечный, если вечный? Твоё
if quit == 'no':
____False
не сделал для его остановки ровным счётом нихуя.

Ответы4900949011

368 6 авг, 17:33 368 1449009

>>1449007
Если написать NO, то один хуй выйдет из цикла, просто проебался со значением. Вон на картинке более менее нормально сделал, например

369 6 авг, 17:36 369 1449011

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

Ответы49027

370 6 авг, 17:57 370 1449027

>>1449011
Для этого у тебя инпуты из промта должны быть внутри цикла, иначе как ты введёшь новую информацию? Один раз ввёл и всё, функция твоя раьотает только с уже введёнными данными

Ответы49028

371 6 авг, 18:00 371 1449028

>>1449027
Ааааааа, сука, блядь. Спасибо

372 6 авг, 18:28 372 1449043

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

Ответы49044

373 6 авг, 18:32 373 1449044

>>1449043
Понял, принял. А я то думал чего это он выёбывается

Ответы49054

374 6 авг, 19:09 374 1449054

>>1449044
Загугли как делать reformat code в твоём редакторе и делай регулярно. Таким образом легко изучишь pep 8

375 6 авг, 23:25 375 1449165

PyQt5 юзал кто-нибудь?
Делаю кнопки, и у них коллбек с опциональным аргументом (какие-то кнопки передают его, какие-то нет).
Коллбек типа такого:
def onClick(self, opt_arg=None):
И в общем когда делаю проверку этого optarg внутри функции, то он внезапно возвращает False вместо None, хотя пока никто и не передает туда ничего.
В чем косяк? Нормальных доков по кути на питоне не нашел, поэтому хз какая там сигнатура.

Ответы49168

376 6 авг, 23:32 376 1449168

>>1449165
Бля, там в кликед еще передается чекед зачем-то.
https://doc.qt.io/qt-5/qabstractbutton.html#clicked
Хотя во всех примерах пишут button.clicked.connect(partial(calluser,name)) и в коллбеке не смотрят никакой чекед, хуйня какая-то.

Ответы49185

377 7 авг, 00:31 377 1449185

>>1449168
Питонач на помощь.

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

Ответы4918849228

378 7 авг, 00:45 378 1449188

>>1449185
Сделай циклом.
Что-то возможно стоит отдельными тредами сделать.
По времени надо таймеры смотреть или системную дату.
Задача не понятна нихуя.

Ответы4919249237

379 7 авг, 01:02 379 1449192

>>1449188
крч, поступает запрос от пользователя, тип пропарси сайт и таких пользователей много, у каждого свои хотелки. Но смысл один, прога парсит сайт и повторяет это каждый час, например. Вот первый юзер пишет пропарси хх.ру и это в 14:00, получает результаты и через час бот снова их отправляет.
второй пользователь пишет в 16 часов и бот должен в 17 ему снова отправить результат.

Ответы491954922849237

380 7 авг, 01:17 380 1449195

>>1449192
Ну хз, храни пул ивентов, которые надо обработать. При запросе добавляй в пул инфу. В каком-то треде крути проверку ивентов.
Или при запросе тупо на таймер вешай событие, а при отправке снова его засекай.
Если это веб-сервис или тг-бот, там мб какие-то свои еще приколы есть.

Ответы49198

381 7 авг, 01:20 381 1449198

>>1449195
где хранить, в бд?

Ответы49201

382 7 авг, 01:27 382 1449201

>>1449198
Если надо долгосрочно, то скорее всего да.

383 7 авг, 05:46 383 1449228

>>1449185
>>1449192
Тебе нужны менеджеры задач, типа Celery и проще.

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

Обмен заданиями/сообщениями можно делать через БД, это самое простое. Или использовать специальные брокеры обмена сообщений и/или менеджеры задач, от простых вариантов до энтерпрайз решений. Я бы рекомендовал начать или с обмена через БД, или с максимально простых брокеров, навроде такого: https://huey.readthedocs.io/en/latest/ потом поймёшь, что тебе надо и на каком уровне, нужен ли серьёзный инструмент и какой.

Ответы49354

384 7 авг, 07:19 384 1449237

>>1449192
>>1449188

celery + celerybeat

Ответы49354

10 Кб, 466x218
385 7 авг, 07:47 385 1449242

????????????????????????????????????????
Почему цифры работают а буквы нет!?!??!?!!?!?

Ответы492444927949305

386 7 авг, 07:50 386 1449244

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

Ответы49245

387 7 авг, 07:52 387 1449245

>>1449244
Не останавливай меня на пол пути! Я такой же сыч как вы!!! Я хочу научиться прогромировать! Так почему не работает?

388 7 авг, 07:56 388 1449247

Ну всё я понял, оказывается нужно было сделать ""

389 7 авг, 10:05 389 1449279

>>1449242
В кавычки возьми и пиши на третьем питоне.

Ответы49317

390 7 авг, 10:57 390 1449305

>>1449242
print (pidor % ('pidor', 'huila'))
А вообще советую третий питон: 'you are {0} or {1} ? '.format('pidor', 'huila') или ещё проще f'{переменная со строкой №1} or {переменная со строкой №2}'

Ответы49317

391 7 авг, 11:02 391 1449306

Анон, я знаю что нужное мне решение существует, но не знаю как его гуглить.
Есть пользовательский ввод команды по типу
command [-flag] [-flag ("attribute")]
Как сделать обработку команд красиво? А то единственное что в голову приходит -- разбить в массив строку по пробелам, собрать те части, что с кавычками используя остаток от деления надвое, потом искать все, что начинается с - и проверять на наличие атрибутов (кавычек)

Ответы49310

392 7 авг, 11:14 392 1449310

>>1449306
В стандартной библиотеке питона есть модуль argparse

393 7 авг, 11:32 393 1449317

>>1449279
>>1449305
В смысле "третий питон"? Где его скачать? Я вроде последнюю версию качал, если что.

Ответы49635

394 7 авг, 13:05 394 1449354

>>1449237
>>1449228

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

Ответы4937749470

395 7 авг, 13:54 395 1449370

173 Кб, 908x287148 Кб, 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)

Ответы4941249637

396 7 авг, 14:06 396 1449377

>>1449354
Разрешаю.

397 7 авг, 16:15 397 1449412

>>1449370
Не углублялся в задание, но твоя программа ничего не выдаёт, потому что ты результат работы функции ни сохраняешь, ни вводишь через print.

Ответы4941449449

398 7 авг, 16:16 398 1449414

>>1449412
выводишь*

быстрофикс

399 7 авг, 16:42 399 1449433

Сап 2ch, подскажи годных видео-уроков по Kivy.

Ответы4945049472

400 7 авг, 17:43 400 1449449

>>1449412
Да, я даун, вроде вторую неделю уже учусь и почему-то подумал, что он щас без принта выведет всё.

Ответы49638

401 7 авг, 17:44 401 1449450

>>1449433
>Kiv
https://pythonprogramming.net/introduction-kivy-application-python-tutorial/

Ответы4947249687

402 7 авг, 18:40 402 1449470

>>1449354
С помощью celery они как раз и будут выполняться в фоне

Ответы49475

403 7 авг, 18:42 403 1449472

>>1449450

Вот этот чувак топовый
https://www.youtube.com/playlist?list=PLlWXhlUMyoobAlP3mZ0_uuJagsDSg_5YT>>1449433

Ответы49687

404 7 авг, 18:47 404 1449475

>>1449470
Сначала попробую на RabbitMQ сделатЬ, вроде полегче. Посмотрим. буду обращаться ,если словлю тупняк

405 7 авг, 21:48 405 1449556

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

Ответы4956949639

406 7 авг, 22:27 406 1449569

>>1449556
Кидай. Оценят адекватно, а остальных шли нахуй

Ответы49681

407 8 авг, 04:36 407 1449629

https://repl.it/@RaspberryPie/FortunateNegligibleQueryplan

TypeError: put() takes 2 positional arguments but 3 were given
Разве там не 2 аргумента передается?

Ответы49631

408 8 авг, 05:00 408 1449631

>>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 нет. Где прочитать почему?

Ответы49668

409 8 авг, 06:03 409 1449635

>>1449317
Правильное форматирование строк в третьем питоне такое:
https://docs.python.org/3/library/string.html#format-string-syntax

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

Ответы49636

410 8 авг, 06:07 410 1449636

>>1449635
Бля, ну я хз, я вроде качал самую последнюю версию с сайта.
>Ну и вообще, конечно, лучше сразу учиться делать по документации а не по старым туториалам от васяна.
По документации я нихуя не понимаю. И учу по книге "питун для дытей", а это книга 2017 года, вроде не такая и старая.

Ответы4964049643

411 8 авг, 06:14 411 1449637

>>1449370
. Внутри пандас уже np.ndarray, зачем тебе в него явно переводить я не понимаю

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

. Не итерируйся без необходимости по нампайным структурам - лучше найди функцию которая сделает это за тебя на си, будет драматически быстрее. Когда работаешь с numpy + scipy + pandas, полезно мыслить вообще не циклами, а потоками данных и редьюсами.

Ответы49729

412 8 авг, 06:15 412 1449638

>>1449449
Попробуй прототипировать в jupytert notebook, там без принтов выдает.

413 8 авг, 06:16 413 1449639

>>1449556
Выкладывать лучше на гитхаб, конечно.

Ответы49681

414 8 авг, 06:28 414 1449640

>>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}кк/нс")

Ответы49641

415 8 авг, 06:33 415 1449641

>>1449640
Спасибо, но я к сожалению ничего не понял.
В общем-то та версия интерпретатора на которой я сижу не актуальна? Нужно качать формат стринг?

Ответы49645

416 8 авг, 06:40 416 1449643

>>1449636
>"питун для дытей", а это книга 2017
Первое издание в 2012.

Ответы49647

417 8 авг, 06:46 417 1449645

>>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

418 8 авг, 06:59 418 1449647

>>1449643
Тут в скобочках написано 2017.

Ответы49648

419 8 авг, 07:11 419 1449648

>>1449647
Имею в виду, что некоторые вещи из этой книги могли устареть, даже с учетом того, что ее переиздавали.

420 8 авг, 08:36 420 1449657

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

421 8 авг, 09:06 421 1449668

>>1449631
В документации всё есть
https://docs.aiohttp.org/en/stable/client_reference.html

coroutine async-with get(url,...

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

status - это просто свойство.

422 8 авг, 09:45 422 1449681

>>1449569
>>1449639
https://github.com/bernd32/vk-autoposter/
Извините за кривой английский.

Ответы4987249893

423 8 авг, 10:09 423 1449687

>>1449450
>>1449472
Thanks!

424 8 авг, 12:03 424 1449729

>>1449637
Благодарю

425 8 авг, 16:28 425 1449872

>>1449681
Хм. А если у меня такого с десяток: скраперы там всякие, утилиты, главное, что с ирл применением, плюс беки для петшопов и имиджборд с хуевым вырвиглазным фронтом, на собеседования есть смысл ходить?
алсо я начал вкат в прогу через кресты, и без задней мысли могу хуячить указатели на указатели на указатели

426 8 авг, 17:00 426 1449893

>>1449681
Хунта
Пишешь складно, но как пэт проект супер ущербно

Ответы49928

427 8 авг, 18:01 427 1449928

>>1449893
В смысле слишком простенько?

Ответы4995349980

428 8 авг, 19:11 428 1449953

>>1449928
Да
И это не нужно, что нового ты сделал? Ничего! Это можно найти за 2 мин гугления
Не показывай это работодателю

Ответы499744998049999

429 8 авг, 19:33 429 1449974

>>1449953
>И это не нужно, что нового ты сделал? Ничего! Это можно найти за 2 мин гугления
>Не показывай это работодателю
Большую часть говна, которое пишут программистишки можно найти за пару минут гугления. Так что пусть показывает, хоть какой-то код лучше, чем ничего.

430 8 авг, 19:39 430 1449980

>>1449953
>>1449928

Pet-project и не обязан являться чем-то новым, с помощью него ты показываешь потенциальному работодателю свои скилли, сама идея не оценивается (по крайней мере в программировании так).
Но показывать данный проект работодателю не стоит, тут я согласен. Во-первых слишком мало кода и проект слишком простой, во-вторых качество кода оставляет желать лучшего, видно что до джуна не дотягиваешь, причём довольно сильно. Есть, конечно, и положительные моменты: наличие readme, requirements и config-файла (правда ini не самый удачный формат), также хорошо, что есть логгирование и комментарии к коду. Судя по гитхабу это твой первый проект, так что вполне нормальный результат.

Ответы49999

431 8 авг, 19:57 431 1449999

>>1449953>>1449980
В качестве пет-проджекта не годится, понял.
Это моя первая программа на питоне, решил для начала запилить что-то более-менее простое, так как еще не уверен в своих силах.

Ответы50006

432 8 авг, 20:01 432 1450006

>>1449999

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

Ответы50017

433 8 авг, 20:06 433 1450017

>>1450006
>Но косяки и недочёты, конечно, присутствуют
Что больше всего смущает?

Ответы50063

434 8 авг, 20:42 434 1450063

>>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 например заюзать), плюс ещё по мелочи есть, прогони через линтер какой-нибудь.

Ответы5007350323

435 8 авг, 20:54 435 1450073

>>1450063
Ого, благодарю за подробную конструктивную критику.
Взял всё на заметку.

436 8 авг, 21:20 436 1450096

Суп питонач. Изучаю celery. Не могу понять из контекста, что такое feed task. Это какой-то тип больших жирных задач или чего?

sage 437 9 авг, 11:15 437 1450323

>>1450063
> Решение элегантное
Говно решение. Что так, что эдак, файл все равно прочитается целиком, все строки. Поэтому лучше прочитать строки и явно сделать len(), а не городить неведомо что.

Ответы50351

438 9 авг, 11:18 438 1450324

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

Как какие ограничения снимает мультипроц относительно трединга?

Ответы50356

439 9 авг, 11:56 439 1450351

>>1450323
Ты тормозишь.
Если сделать
with open('file.ext') as f:
for line in f:
do_something

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

440 9 авг, 12:02 440 1450356

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

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

Короче, читай теорию, это большая и сложная тема.

Ответы50399

441 9 авг, 12:45 441 1450399

>>1450356
Проблему я свою решил) В процессе решия оказалось что signal может быть только в мейн треде, если мультипроцессами это делать, то можно?
Понял что нельзя в мультипроце жонглировать данными, гораздо сложнее общение одного с другим и вывод общего. Можно ли там же использовать global или все через сторонние места храниэений, бд или файл?
Да надо будет почитать, но так сложно себя заставить.

Спасибо за ответ.

Ответы50415

442 9 авг, 13:02 442 1450415

>>1450399
Это сложная область, лучше потратить время и полноценно с ней разобраться, поработать на тестовых примерах, чтобы треш не лепить.

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

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

Ответы50456

443 9 авг, 13:30 443 1450456

>>1450415
Хорошо, у лутца нормально объяснено это? Гуглинг выдаёт куару, по ней и разрешил свою проблему, но вопросов возникает много мелких. Примеры и задачи на эту тему тоже в шапке есть?

Ответы50631

444 9 авг, 20:45 444 1450631

>>1450456
Почитай в какой-нибудь книге по операционным системам (например в Таненбауме) главу про процессы и потоки для начала

2 Кб, 358x52
445 9 авг, 23:15 445 1450685

Анон, нужна помощь ньюфагу. Есть часть кода пикрелейтед. Нужно, чтобы "yes" выполнялось и когда юзер вписывает Yes, и yES, и YES - словом, чтобы регистр не учитывался. Головой понимаю, что нужно использовать вот метод string.lower() - его нужно применить к answer, но пока не совсем понимаю синтаксис и не знаю, как его пристроить в этот код. Помоги, пожалуйста.

Ответы50688

446 9 авг, 23:17 446 1450687

https://www.last.fm/api/show/user.getFriends

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

Ответы50689

447 9 авг, 23:18 447 1450688

>>1450685
if answer.lower() == "yes": ?

Ответы50691

448 9 авг, 23:22 448 1450689

>>1450687
Гуглом
https://github.com/pylast/pylast

Ответы50700

449 9 авг, 23:24 449 1450691

>>1450688
Блин. Я был уверен, что метод надо было применить именно к answer. Но спасибо! А вообще, именно к введенной строке его можно применить?

Ответы50696

450 9 авг, 23:35 450 1450696

>>1450691
Да, конечно. Не вижу для этого препятствий.

Ответы50704

451 9 авг, 23:40 451 1450700

>>1450689
Выглядит круто. Спасибо.

452 9 авг, 23:44 452 1450704

>>1450696
А как? Я не понимаю, как синтаксически составить такую конструкцию.
answer = answer.lower(str(input('Another question? ')))
возвращает ошибку, что answer не определен (кстати почему?)

Ответы50712

453 9 авг, 23:58 453 1450712

>>1450704
Потому что ты вызываешь метод .lower() для ещё не определённой строки answer, а не для твоего инпута. Правильным вариантом будет
answer = str(input('Another question? ')).lower()

Ответы50713

7,9 Мб, webm,
426x240, 2:31
454 10 авг, 00:03 454 1450713

>>1450712
Вот оно что. Спасибо огромное!

Ответы51125

455 10 авг, 17:48 455 1450957

Вкатываюсь в питон.
Обьясните почему в шапке настолько старые ссылки? Хабр 2012 года! Гитхаб 15 года!
>полезные материалы для начального уровня.
2013 год.
За это время питон вообще никак не развивался?

Ответы5097050973

456 10 авг, 18:05 456 1450970

>>1450957
>Вкатываюсь в питон.
А другие вкатывались 5-10 лет назад и просто не следят, что там вышло нового для вкатывальщиков.

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

>>1450957
>За это время питон вообще никак не развивался?
Сама основа языка почти не изменилась, для начинающих. Да и так почти во всех языках, кроме разных JS и совсем новых, которые только появились. База старая. Из нового только asyncio. Но это сложновато для вкатывальщиков.

Ответы50985

457 10 авг, 18:06 457 1450973

>>1450957
В шапке прошлого треда был коммент, что ФАК устарел.

458 10 авг, 18:30 458 1450985

>>1450970
Поэтому питон 3 выкатили уже 10 лет как, а бомбит у всех по сей день.

7 Кб, 332x271
459 10 авг, 20:56 459 1451058

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

нуб пытается в ооп

Ответы5107351126

460 10 авг, 21:35 460 1451071

Из A Byte of Python:
https://pastebin.com/nrgwUu1W

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

1 строка - создается объект
2 строка - видно, что вызывается метод __del__ - не известно, по какой причине. В коде объект не удалялся.
4 строка - вызывается метод sayHi(), который возвращает поле объекта. Но при этом ранее сработал метод __del__. WTF?

461 10 авг, 21:40 461 1451073

>>1451058
Почитай про сеттеры-геттеры:
https://pythonz.net/references/named/property/

С помощью этих механизмов можно реализовать то, что тебе надо.

Ответы51110

462 10 авг, 22:58 462 1451100

Поясните зачем в имиджборде использовать Celery? Не могу сам дойти что то.

463 10 авг, 23:17 463 1451103

Анон, помоги со словарями.
У меня есть словарь, который будет изменять сообщение, введенное пользователем:
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

Почему так? Не пойму, откуда берется задвоение.

Ответы51190

464 10 авг, 23:35 464 1451107

Пацаны, помогите, а не обосыте!

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

Я опенвпн запускать научился, но вот как дальше быть, если он не завершается же, а работает. Пробую через 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)

Тут код запуска селениума

Ответы51108

465 10 авг, 23:39 465 1451108

>>1451107
не ебу про питон, но у процесса там, что ли, нет стандартных потоков ввода/вывода?

466 10 авг, 23:41 466 1451110

>>1451073
Большое спасибо, анон. Всё получилось так, как я хотел.

Ответы51126

467 11 авг, 00:24 467 1451125

>>1450713
Не думал что найду эту вэбм здесь. Большое спасибо, долго искал !

468 11 авг, 00:24 468 1451126

>>1451110
>>1451058
>чтобы при изменении значения одного менялось значение другого

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

Всё должно быть явно.
А в питоне - особенно, ибо сказано - explicit is better than implicit.

Ответы51446

111 Кб, 600x600
Хранение функции в переменной? 469 11 авг, 00:36 469 1451131

Я у мамы дурачок, можно мне как в JS?

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

Или как реализовать обратный вызо

Ответы5113951144

470 11 авг, 01:10 470 1451139

>>1451131
В этом вашем питоне нет нормальных анонимных функций.
(мне, как закоренелому анониму, это особенно неприятно, лол)

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

Вот так это делается, примерно:
https://repl.it/repls/StarkFlatPrinter

471 11 авг, 01:30 471 1451144

>>1451131
Конечно можно, ровно так же, как и у твоём примере.

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

или ты что имел в виду?

Ответы51553

131 Кб, 845x445
472 11 авг, 01:31 472 1451145

Привет. Читаю изучаю питон и вот в книге наткнулся на такое задание.

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

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

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

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

Спасибо :3

Ответы5114851157

473 11 авг, 01:37 473 1451148

>>1451145
Попробовал вместо четвертой строки поставить это:

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

Получилось, практически, тоже самое, но более ебланово.

Ответы51150

474 11 авг, 01:44 474 1451150

>>1451148
Так они сами просят такое кривое решение, что тут сделаешь.

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

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

Но это не про ТЗ.

Ответы5115151157

475 11 авг, 01:53 475 1451151

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

476 11 авг, 02:33 476 1451157

>>1451145
Не надо копировать массив.
Приводить к нижнему регистру надо непосредственно при проверке.

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

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

Ответы51197

477 11 авг, 10:17 477 1451190

>>1451103
У тебя в словаре две пары ключ-значение. Для каждой пары происходит итерация цикла с принтом в конце. Первая итерация меняет твою строку на "1" и выводит, но другая не делает ничего, потому что в твоей строке нет "two", и выводит тот же самый input. Надеюсь, понятно выразился.

Ответы51278

478 11 авг, 10:36 478 1451197

>>1451157
Ну так когда я в седьмой строке проверку делаю, как мне currentUsersCopy завернуть в lower? Нельзя ведь метод ко всему массиву применить.

Ответы5120651285

479 11 авг, 10:49 479 1451206

>>1451197
Так господи, пройди ручками по всему массиву и проверь, ты вместо того, чтобы написать функцию на три строчки кода теперь всегда будешь искать вариант с сахаром?

Ответы51209

480 11 авг, 10:57 480 1451209

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

Ответы51221

44 Кб, 967x365
481 11 авг, 11:49 481 1451221

>>1451209
Что у тебя не получилось с вложенными циклами?
Знаешь, с твоими проблемами тебе бы какой-нибудь курс по алгоритмам пройти. В котором тебе вообще не будут разрешать пользоваться никаким сахаром, чтобы с массивами работать по индексам и всё такое.

Ответы51493

482 11 авг, 12:34 482 1451278

>>1451190
Хм. Выразился-то понятно, но что мне с этим делать? Я думал, что основная фича for loops - это как раз проход по всему массиве информации.

Ответы51291

483 11 авг, 12:39 483 1451285

>>1451197
>как мне currentUsersCopy завернуть в lower?

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

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

484 11 авг, 12:45 484 1451291

>>1451278
Переменная output не нужна.
Или копируй сразу туда введёную строку, если не хочешь её портить, почему-то.

В цикле надо делать encoded_message = encoded_message.replace(...)
Выводить результат надо после цикла, а не в цикле.

Ответы5130651365

485 11 авг, 13:12 485 1451306

>>1451291
>Или копируй сразу туда введёную строку, если не хочешь её портить, почему-то.

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

18 Кб, 874x216
486 11 авг, 14:52 486 1451365

>>1451291
Спасибо за помощь, анон, с этим получилось, но у меня появился какой-то баг в коде, никак не могу понять, в чем дело.
Моя программа сейчас переводит английские слова на фонетический алфавит нато (альфа, браво, чарли и т.д.), код на пикрелейтед, при вводе "test" возвращает вот такое:

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

Хотя должно возвращать Tango Echo Sierra Tango.

Ответы51380

487 11 авг, 15:16 487 1451380

>>1451365
Включи мозг.
В словах, на которые ты меняешь буквы, есть те же самые буквы.

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

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

Алсо - более кошерно будет использовать map вместо цикла:
https://repl.it/repls/FriendlyEvergreenFormulas

Ответы51385

36 Кб, 590x775
488 11 авг, 15:23 488 1451385

>>1451380
Вот именно поэтому программирование кажется мне таким трудным. Я еще не вкатывался в функции, поэтому особо их не понимаю. Можешь, пожалуйста, объяснить свой код?

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

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

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

print(res)
И выводишь результат объединения

Ответы51395

489 11 авг, 15:38 489 1451395

>>1451385
s - это _параметр_ функции.
Функция должна вернуть значение, используя этот параметр.

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

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

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

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

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

Ответы51406

490 11 авг, 15:58 490 1451406

>>1451395
Спасибо большое за подробные ответы, анон, буду изучать. Исходя из нашего диалога, скажи, пожалуйста, в чем у меня основная проблема этого непонимания? Может, порекомендуешь что-нибудь конкретное почитать?

Ответы51426

491 11 авг, 16:29 491 1451426

>>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/

491 11 авг, 16:29 491 1451426

>>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/

Показать весь текст
Ответы51479

492 11 авг, 16:57 492 1451446

>>1451126
Ну а как здесь иначе? Я без претензии спрашиваю, мне правда интересно. Не создавать же каждый раз новый объект Foo, если хочется изменить нужное мне значение.

Ответы51451

493 11 авг, 17:10 493 1451451

>>1451446
Новый объект тут ни при чём.
И, конечно же, такие вещи можно делать, но, надо чётко понимать, зачем.
И стараться избегать этого.

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

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

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

См. например, книгу "Object Design Style Guide" (она, правда, ещё не вышла, хз есть уже пиратка или нет). Там примеры на псевдокоде.
Ну и гуглить такое можно, например.

Ответы51482

494 11 авг, 17:46 494 1451479

>>1451426
Добра тебе.

495 11 авг, 17:49 495 1451482

>>1451451
"Явность" и "очевидность" пока для меня выглядят как какие-то крайне субъективные категории, и я не очень понимаю, почему тот способ с сеттерами-геттерами в них не вписывается.

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

Так или иначе, спасибо. Буду думать и изучать дальше.

Ответы51584

496 11 авг, 18:03 496 1451493

>>1451221
Ну, тут ты флаг используешь. А я до этого не додумался, хоть и по книге я этого не проходил. Спасибо, интересное решение.

А почему у тебя флаг равен флаг ор тру?

Ответы51571

497 11 авг, 18:46 497 1451525

Шалом. Посоветуйте поездатый GUI-фреймворк.

498 11 авг, 18:49 498 1451529

Может кто ссылку на Грокаем алгоритмы дать? Или что лучше почитать после A Byte of Python?

Ответы5157151587

125 Кб, 1200x697
499 11 авг, 19:08 499 1451553

>>1451144
Ой, действительно. Спасибки, анончик

500 11 авг, 19:25 500 1451571

41 Кб, 1006x30843 Кб, 1007x33037 Кб, 1010x273

>>1451493
Ну смотри, на самом деле элегантное решение с флагом это как на пике(1). Я тебе написал с ветвлением, чтобы было нагляднее, но по сути это одно и то же. Что мы тут делаем? мы делаем проверку для каждой пары элементов из двух списков и логически прибавляем к boolean переменной. Таблицу истинности дизъюнкции помнишь? В нашем случае, если хоть один раз условие равно единице, то флаг тоже становится 1. Иначе флаг остается 0.
Полезность такого флага в том, что мы можем его влепить в любой уже написанный алгоритм, работающий с какими-то данными и проверить, есть ли в этих данных элемент, удовлетворяющий нашему условию.
Вообще, следующим шагом оптимизации будет прекратить проверять условия, если одно уже истинно, в этом нет смысла, потому что так и так нужно выводить, что имя занято.
Вот тебе пик2 с применением break(ты же его прошёл?). Как ты можешь видеть, тут мы используем то, что у цикла for есть else-block, он сработает, если цикл прошёл все итерации. Если мы закончили цикл досрочно оператором break, то else не сработает.
Дальше мы видим, что флаг, ищущий определённый элемент в списке нам уже не нужен, если мы этот список полностью не проходим, поэтому мы лишнее убираем. Вот тебе пик 3.
Хз зачем я это всё расписал так, ну надеюсь, что тебе немного поможет.
>>1451529
Хз, насколько это правильный выбор, но я после укуса питона начал вот этот курс http://judge.mipt.ru/mipt_cs_on_python3/
Там и лекции и практики интересные, вообще годнота, короче. Но я его ещё не закончил, и вообще новичок сам.
Кстати, где-то в нюфаг треде есть ещё один анон, который этот курс проходит.

Ответы515795161251655

501 11 авг, 19:34 501 1451579

>>1451571
>Питон + камелкейз
>Код картинками

Ответы51580

502 11 авг, 19:35 502 1451580

>>1451579
В камелкейзе у него было изначально.
Код на три строчки нужно заливать на пастебин каждый раз?

503 11 авг, 19:46 503 1451584

>>1451482
Если ты только изучаешь всё это - то не обращай внимания.
Для поиграться - это нормально.
Хороший дизайн - это уже следующий этап.

504 11 авг, 19:58 504 1451587

>>1451529
На scanlibs dot com есть.
И много чего ещё.

Ответы51612

505 11 авг, 20:29 505 1451606

>>1443245 (OP), пили перекат!

Ответы51614

506 11 авг, 20:50 506 1451612

>>1451571
>>1451587
Спасибо анончики! добра

507 11 авг, 21:00 507 1451614

>>1451606
сейчас будет

508 11 авг, 21:15 508 1451620

Перекат

>>1451619 (OP)
>>1451619 (OP)
>>1451619 (OP)
>>1451619 (OP)

509 11 авг, 22:39 509 1451655

>>1451571
Спасибо, до брейк ещё не дошел, но там нет ничего сложного. Объяснение твое помогло. Ещё раз спасибо, успехов и тебе в обучении :3.

510 13 авг, 22:45 510 1452776

Подскажите книжку для новенького, попробовал "Charles Severance" показалась слишком трудной..и нудной

Ответы53787

511 15 авг, 14:26 511 1453787

>>1452776
A byte of pyrhon - Укус питона, 130 стр.

Тред утонул или удален.
Это копия, сохраненная 13 сентября 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion