Двач.hk не отвечает.
Вы видите копию треда, сохраненную 1 октября 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Python /python/ 1459370 В конец треда | Веб
Питон тред, номер как у предыдущего >>1451619 (OP) , но на единицу больше

ЧАВО: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat актуальность примерно 2015 года

Книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem
Очень много книжек: https://drive.google.com/drive/folders/13YaFijvuH4dtv-PjUKVWLQ7ZIqXIfCLK

Анон, вместо того, чтобы без разметки постить код, лучше шарь код через специальные ресурсы:
https://ideone.com/
https://pastebin.com/
https://pyfiddle.io/
https://www.codepile.net/

#######################################
Вопросы-ответы:
А стоит ли читать Лутца, том номер N? - Мнения в треде разделены. Кто-то за(очень неплохая база даётся), кто-то против(слишком много воды и объём книг убивает всё рвение). В общем - решать тебе, книга вредна не будет, то ты можешь её просто не дочитать и забросить.

А стоит ли читать %книга_нейм%, если там питон версии 2.х? - Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х

А что ещё можно читать? - Питон сам по себе очень хорошо задокументирован, и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html

А как учить джангу? Нахожу только книги по джанге 1.х - У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой, из официальной документации.
2 1459372
print("Hello, Dvach!")
3 1459382
Традиционно посрал в говно тред жидкой лямбдой и задебажил через самую обосранную иде - Вижуал Студио Код
4 1459387
>>59382
В следующий раз сними штаны перед тем, как посрать.
5 1459388
Кто-нить может пояснить в чём смысл питона 3.8?
6 1459390
>>59388
В том, что бы делать так
if a := my_dict.get('value'):
____return a + 1
7 1459393
Есть адреса почты вида hKrCuesos+3232abyANUSgh='mailPUNCTUMcom

как мне regex вырезать всё что между + и @ и сам плюс тоже вырезать, чтобы оставались адреса huesyS;osANUSgmailPUNCTUMc!e_om
8 1459395
Я вот так нахожу что между + и @, но как мне плюс сам тоже захватить?

(?<=\+)(.*)(?=@)
9 1459398
>>59393
re.sub(r'\+', '', s2)
10 1459399
>>59390
Есть вообще шансы что они сделают конструкторы классов как в нормальных языках ?
11 1459402
>>59399
А что тебе в __init__ и __new__ не нравится?
12 1459406
>>59402
Это полный пиздец, я конечно понимаю что питон это динамический язык и перегрузку функций в питоне сделать нельзя, но дрочево с __init__ и __new__ это пиздец.
13 1459418
>>59406
В чем дрочево? Дай пример, где сделано хорошо?
14 1459431
Долбаёб в треде, можете оценить мою пасфайндинговую хуебень?

https://github.com/criminalscum/psimplepathfind
15 1459455
>>59406
А что не так с __init__ и __new__?
В большинстве случаев тебе достаточно __init__, чем он отличается от конструкторов в других языках?

С помощью __new__ ты можешь какие-то дополнительные возможности реализовать, обычно не нужные.
16 1459575
В чем отличие Анаконды от обычного скаченного с офф сайта Питона??
17 1459587
>>59575
С сайта ты скачиваешь просто питон. Анаконда это целая платформа, которая содержит в себе питон, то есть, устанавливая анаконду, ты получаешь не просто интерпретатор питона и стандартную библиотеку питона, но и еще 100500 пакетов, плюс свой пакетный менеджер conda, а не только стандартный питонвский pip, плюс gui для управления всем этим anaconda-navigator, хотя, конечно все можно делать только с помощью conda через консоль, даже виртуальные окружения создавать, да conda еще и виртуальные окружения создает, да и вообще широкого профиля штука, работает не только с питоновским кодом, для любой программы можно создать conda пакет. А сам пайтон он и есть пайтон, ничем не отличается
19 1459662
Винда или линуха - вопрос века. Почти все кого спрашивал выбирали линуху, лишь некоторые не воздерживались от принятия сторон, за винду никто не говорил. Большинство живёт стереотипами или я что-то упускаю?
20 1459664
>>59662

> Винда или линуха - вопрос века


Абсолютно похуй, используй то, что тебе удобно, хоть макось. Весь софт, которым ты будешь пользоваться - более-менее кроссплатформенный. Всю жизнь кодил на винде, брат жив, зависимость есть, но в линуксы/под линуксы тоже могу.
21 1459665
>>59662
Хакинтош собери себе.
22 1459668
>>59662
Я, к примеру, бэкэндер, мне винда не всралась.
Хотя недавно звали на проект, которому лет так 20, там всё на винде и пистоне 2.
23 1459675
>>59665
Если я правильно понял, то это пиратская мак ось (поправь если не прав). Вопрос остаётся тот же: зачем менять привычную среду, + на хакинтоше могут появиться проблемы с драйверами, а конкретно - с их отсутствием
24 1459676
>>59668
Понятно, что всё в основном зависит от проекта, но по сути питон и там и там одинаковый. В плане процесса разработки какие ты видешь плюсы относительно винды, или ты сразу с линухи начинал?
25 1459678
>>59664
Так и делаю, но ведь если многие топят за линуху может там действительно есть что-то, тем более спрашивал не отбитых кодерков
26 1459679
>>59676
Начинал с винды, но затем пересел на линупс. Т.к. не всегда и есть нужные программы под винду, а если есть, то не всегда корректно и без пердолинга работают.
Так же, когда пишешь ПО которое затем будет запускаться на линупсах, то тут как бы логично писать сразу на них.
27 1459680
>>59675
В 2019 хакинтош делается легко и просто.
Будет несколько дороже, чем рандомный пк.
Читай http://www.osx86project.org/
Если возьмёшь правильное железо - проблем с драйверами не будет.
28 1459681
>>59675

>Винда или линуха - вопрос века


>зачем менять привычную среду


А зачем ты тогда задаёшь тут такие вопросы?
Работай в привычной среде, не еби мозг ни себе, ни людям.
29 1459683
>>59679

> не всегда и есть нужные программы под винду


Тут можешь поподробней?

> когда пишешь ПО которое затем будет запускаться на линупсах


Я на вэб дэве, сервера крутятся на различных осях.
30 1459684
>>59681

> А зачем ты тогда задаёшь тут такие вопросы?


Чтобы понять?
31 1459685
>>59683

> Тут можешь поподробней?


> Я на вэб дэве


Очень скоро столкнёшься, значит.
Просто иногда читаешь доки и обращаешь внимание на сноски уровня "протестировано на линупсе/не совместимо с виндой/под винду билдите сами" и т.п.

> сервера крутятся на различных осях.


Большинство на линупсе. На винде довольно специфические области сидят.
32 1459687
>>59685

> Очень скоро столкнёшься, значит.


Опять пошли абстрактные ответы

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


Никто не отменяет тесты на других системах, тут я опять же вижу плюс использования мной винды, т.к. в тиме всегда есть чувак, а то и несколько, с линуксом.
33 1459693
>>59685
>>59687
Это не аргументы.
Для серверов есть виртуальные машины.
Ещё есть докер.

Разработка - это инструментарий - иде и прочее.
Дескотоп на винде лучше, чем на линуксе.
Десктоп на маке - ещё лучше.
34 1459694
>>59687

> Опять пошли абстрактные ответы


Ок. Я тебе приведу в качестве примера gunicorn, дальше что?

> Никто не отменяет тесты на других системах


Что? Ты понимаешь, что ты несёшь?
1. Если в ТЗ есть пункт про кросс-платформенность то на твоей винде никто ничего тестить не будет, для этого есть тестовые стенды.
2. Я ни разу не видел что бы при написании серверного ПО был пункт про совместимость сразу с виндой и линупсом.
Ты можешь видеть и фантазировать себе всё что угодно, реальная практика и задачи всё расставят по местам.
>>59693

> Это не аргументы.


Что именно?

> Для серверов есть виртуальные машины.


Причём тут это?

> Разработка - это инструментарий - иде и прочее.


Кроме IDE есть ещё ОС, от которой так же много зависит.

Мне похуй на чём автор поста будет сидеть/писать, и лишь говорю очевидные вещи, что под винду пишут на винде, под линуксы на линуксе, и такая формула работает в 90% случаев, остальные 10 это исключения и узконаправленная специфика.
35 1459695
>>59370 (OP)
Ля, сделайте вы уже номер треду чего выебываетесь . Хоть с 1 считать начните, уже что-то
36 1459696
>>59694
А почему же тогда все, кто может себе позволить, сидят на маках?
И крутят линуксы в докере или на вм, когдаа нужно?
Не задумывался над этим?

Да, для системного программирования - такой подход вполне оправдан.
Но, опять же - есть виртуализация и докер.
И опять приходим к тому же - делай, как удобно.
37 1459697
>>59694

> gunicorn


Ты еще скажи, что wsgi для винды не существует.

> очевидные вещи, что под винду пишут на винде


А под андроид на андроиде, да. На самом деле абсолютно похуй, под какой ОС запущен текстовый редактор, где ты нажимаешь кнопочки. Похуй, на какой ОС ты запустишь HTTP/wsgi. До тех пор, пока ты не начнешь парсить какой-нибудь procfs, скрипту будет абсолютно похуй, откуда ты его запустил.
38 1459699
>>59696

>А почему же тогда все, кто может себе позволить, сидят на маках?


>И крутят линуксы в докере или на вм, когдаа нужно?


>Не задумывался над этим?


Статистику сюда
39 1459701
>>59694

> Я ни разу не видел что бы при написании серверного ПО был пункт про совместимость сразу с виндой и линупсом.


Про джаву слышал когда-нибудь?

Да и питон тоже вполне себе кроссплатформенный, хотя и не в такой степени, конечно.
Джанга и прочее - работает на всех трёх платформах.
40 1459703
>>59699
Скриншоты в интернетах посмотри.
Видео и фото рабочих мест.
Всё сразу поймёшь.
41 1459704
>>59703
Значит, статистики нет. Ясно.
42 1459706
>>59704

>Иномарки популярнее жигулей, хотя и дороже.


>Статистику сюда.


>Выгляни в окно, лол.


>Значит, статистики нет. Ясно.

43 1459708
>>59662
На линуксе питон и куча полезных штук стоят из коробки. На линуксе есть культура использования пакетных менеджеров, что радует.
44 1459709
>>59706
У меня за окном жигули и лады стоят. Где твой бог теперь?
45 1459710
>>59696
Докер как следует только под линуксами и работает, потому что основан на фичах ядра линукс
46 1459711
>>59710
Это касается только быстродействия.
Т.к. на винде и на маке добавляется (тонкий) слой виртуализации.

>>59709
Тут надо понимать ещё одну вещь.
Когда человек в состоянии воспользоваться преимуществами линукса (или юникса - мака) в качестве девелоперской машины, он обычно не задаёт таких вопросов, как >>59662
47 1459715
>>59697

> Ты еще скажи, что wsgi для винды не существует.


Сравни процесс пердолинга по установке wsgi на винде и установку его на линупсе.

> А почему же тогда все, кто может себе позволить, сидят на маках?


Тот же линупс. Да и кто все то? Я видел очень мало бэкэндеров на маках, зато куча их на линупсах.

> А под андроид на андроиде


Маняврировать не надо.
>>59701

> Про джаву слышал когда-нибудь?


> питонотред


Уёбывай.
48 1459737
>>59662
Понтуются
.png51 Кб, 1162x384
49 1459748
Не могу понять где я ошибся. Подскажите нубу!
50 1459749
>>59748
Типа яблоко надо в кавычки взять, он его как команду воспринимает?
.png55 Кб, 1162x384
51 1459750
О, заработало! Спасибо, аноны!
53 1459765
>>59693
Удачи с докером на винде, кста. Помимо оверхеда, нужно будет ещё прилично поебаться с его установкой и настройкой.

Кроме того, одно из основных преимуществ линукса - это его терминал и bash-lang.

Да и вообще 99% серваков, на которые ты будешь деплоить свой сайт будут работать именно из под линукса, поэтому нужно уметь с ним работать
54 1459812
>>59678
Потому что линух это удобно и я не шучу
55 1459820
>>59812

>нужен вменяемый звук как в винде


>пук срень


>УДОБНА Я СКОЗАЛ

56 1459822
>>59820
Удобно тебе говорят
57 1459828
>>59750
А зачем инпут приводить к строке явно, там же по дефолту строка получается.
58 1459835
>>59820

>вменяемый звук


>как в винде


Выбери что-то одно.
59 1459836
>>59835
Выбираю вменяемый звук на винде, ведь на линуксе такого не бывает, порватка.
60 1459837
>>59836
Только в твоих манямечтах.
123.jpg418 Кб, 3200x1080
61 1460058
Подключился к малинке по SSH. Написал код. gtts в списке модулей интерпретатора имеется, на стороне малинки код работает, в редакторе модуль gtts видит - а в удалённом интерпретаторе пишет что модуль gtts не найден. Почему?
62 1460064
>>60058
О бля, всё нахоой, убрал галку 'execute via sudo' и всё заработало. Чёто суда мешала как то
63 1460081
>>59370 (OP)
В сраном вузике сраный питон будет.
А я писал только немного на Scheme в школе.

Подскажите книжки по функциональному программированию на питоне, я знаю, что там есть лямбды и замыкания, не хочу задравчиать ООП по методичке.
64 1460089
>>59662
Сижу на шинде, в консоли wsl, полет нормальный
65 1460095
>>59662
С линуксом вечный пердолинг, просто извечный пердолинг, потому если хочешь просто прогать - винда. На ней всё работает почти сразу, а если что-то и требует допилов - всё просто и понятно.
А с линуксом - вот я с малинкой ебусь последнюю неделю - мне всего-то надо было говорилку запилить. Виндовых tts там естественно нет, есть свои - еспик например, который в распбиане отвалился после обновления ядра - в итоге я день ебался чтобы частично поднять его функционал, и он оказался говном. RHVoice - готовых дистрибутивов нет - надо собирать из исходников - ещё пол дня с этим ебался, получил половину функционала, потмоу что для полного функционирования под расбиан не хватает готовых дистрибутивов, которые тоже надо бы собрать из исходников. Линукс - это всегда ебля через ебля, и если нет конкретной задачи запустить что-то на линуксе - нахуй, не связывайся, базарю

>>59665
С этим говном тоже не связывайся нахуй. Я конечно макось полноценную непользовал, но пообщался с мобильной на айпхоне - так там костыль через костыль костылём погоняет, я того маму рот ебал. Спасибо бил гейтс за твой мастдай, очень рад что приходится с опенсорс и прочей проприетарной парашей связываться крайне редко.
66 1460102
>>59812
>>60095

>МАМ НУ СКАЖИ ИМ ЧТО ЛИНЯПС УДОБНО МАААМ

67 1460113
>>59662
Если ты разрабатываешь какие-то сервисы, сетевой софт и т.п., то тут линукс без вариантов лучше. Он лучше как ОС, там на больше инструментов, возможностей по настройке, мониторингу и т.п. Весь такой софт делается под никсы, что-то криво переносится под винду. Под виндой всегда будет ограничено и через жопу.

Если делать медийку, что-то, что работает с видео, звуком и т.п., то тут уже винда впереди, под линукс всё ограничено и через жопу.

Маки вроде как совмещают плюсы никсов и винды. Внутри это кодновые никсы, вроде БСД, но графику делали люди, которые в этом что-то понимают и это любят, много софта. Хотя я сам на маках не работал, но их любят.

Я работаю на линуксах, но постоянно плююсь от убогости интерфейсов линуксового софта, работающего с графикой и видео. Нихрена не потрировано, портируют на винду и мак, даже то, что бесплатное. Линуксовое обычно всё вырви глаз. С библиотеками тоже засада.
68 1460116
Выучил синтаксис питона более-менее (на уровне лоха). Дальше планирую решать дохуя задачек, как только заебет сразу начать учить алгоритмы. А потом уже лезть в джангу, обмазываться фронтом и т.д.
Годный план или я где-то проебался при его составлении?
69 1460118
>>60116
по заветам хауди?
70 1460121
>>60118
Это кто?
71 1460122
>>60121
Ну не прикидывайся, на ютубе такую последовательность подглядел?
72 1460123
>>60113

>Если ты разрабатываешь какие-то сервисы, сетевой софт и т.п., то тут линукс без вариантов лучше. Он лучше как ОС, там на больше инструментов, возможностей по настройке, мониторингу и т.п. Весь такой софт делается под никсы, что-то криво переносится под винду. Под виндой всегда будет ограничено и через жопу.



WSL
73 1460125
>>60122
Не, серьезно сам придумал. Подумал, что так лучше всего закреплю теорию программирования в вакууме, а дальше уже на продакшен усы точить буду.
74 1460137
Нужно получить все возможные комбинации элементов двух массивов, что то вроде
c = []
for i in {'a', 'b'}:
____for j in {'1', '2'}:
________c.extend([[i,j],[j,i]])

Но более изящно
75 1460138
>>60125
Врёшь, жопой чую. Ну пройдись по пайтону, порешай задачки, а потом лучше сразу в хтмл/css и жангу. А потом уже и алгоритмами можно шлейфануть, т.к. после пайтона алгоритмы ничего толком не дают - непонятно как и где применять, а без применения всё забывается. Ну моё ИМХО такое
76 1460150
>>60138
Какое тут враньё, лол? Подобная последовательность каждому второму начинающему питонисту наверняка в голову приходит.

мимо
77 1460151
>>60150

>мимо


Семен, ну хватит оправдываться )
78 1460185
>>60137
import itertools
itertools.product({'a', 'b'}, {'1', '2'})
или в этом случае тоже самое
itertools.product('ab', '12')

это чтобы получить комбинации вида a1, a2, b1, b2
чтобы ещё и 1a, 2a и т.п.
вот совсем красиво слёту не предложу, надо думать. Как вариант, две такие строчки, но вторая product('12', 'ab')

Надо подумать, можно можно в одну записать.
1566723262247.jpeg280 Кб, 679x963
79 1460440
Объясните, пожалуйста. Понятно, что имена должны быть со смыслом, но что насчёт нижнего регистра и подчеркивания? Это какое-то общепринятое правило или что? Я вот, люблю называть все в таком стиле makePizza, теперь мне придется функции называть так make_pizza?
80 1460459
>>60440
Жаваскрипт макака не палится
81 1460464
82 1460492
Я сделол! нахуя? кто просил? кому это надо? :3
83 1460497
>>60440

>make_pizza?


У нас в пхп за такое убивают нахуй!
84 1460511
>>60459
Я никогда не писал на яваскрипте. Максимум в универе на плюсах, и то лабы. Просто показалось необычным и стильным, поэтому решил таким образом задавать имена.
>>60464
Спасибо, но можно конкретней. В моей пикче говорят про обязательный общепринятый стандарт определения функций, или просто рекомендация.
>>60497
А как не убивают?

Спасибо за ответы, друзья, но пока не разобрался.
85 1460517
Аноны, очень хочу на питоне писать, и возможность есть, но есть один неприятный момент. Я до этого долго писал на Java и NodeJS, и вот после них просто не могу никак перейти на питон, все не так, все неудобно, уже месяц пытаюсь.

Может быть мне не суждено?
86 1460524
>>60511

>А как не убивают?


Вот так не убивают:

>makePizza

87 1460538
>>60464
Ага, это на бумаге все красиво, а потом мы идем смотреть на либы вроде BeautifulSoup, и оказывается, что на практике всем похуй, какие у тебя там буковки. У некоторых вон даже оба стиля сразу.
88 1460560
>>60517

>Может быть мне не суждено?


exactly
90 1460565
>>60440
Это просто стандарт оформления для питона, но ты не обязан ему следовать и не все следуют.

В PEP8 много анахронизма, этому стантарту 20 лет.

Переучиться с одного на другой не проблема, к этому быстро привыкаешь. В целом вариант с подчёркиваниями более читаем, может быть он разумнее, чем альтернативные варианты.
91 1460603
>>60560
Эх, печально, конечно. Имхо, питон более зрелый, чем другие интерпретируемые языки
92 1460695
>>59654
Ок я вроде корутины и ассинхронщину понял.
Или - нет. Но как их приделать к джанге в контексте нескольких пользователей я все еще не представляю.
Вот у меня логика для одного пользователя дохуя затратная по времени. Я сэкономлю время для одного пользователя, того которым сейчас занят веб-сервер, допустим с помощью ассинхронщины или даже потоков, но он же все-равно блочит сервер? Это моя изначальная проблема и криво поставленный вопрос.
Мне маня-сервер с уберхайлоадом представляется в следующем виде: на каждого клиента свой поток/ассинхронное выполнение. Тут да, тонкости: потоки ОСь выпилить может, их нужно разумное количество и т.д.
Попробую сформулировать новый вопрос. Правильно ли я понял, что мне в качестве профессиональной бекэнд-макаки нужно оптимизировать код на параллельное выполнение для одного пользователя (типа тут await для бд, тут для другого сервера и т.д.), а число коннектов это - к Apache или на чем там сервер?
93 1460715
>>60695
Неправильно
Ты даун
94 1460720
Стажируюсь в Яндексе, пишу асинхронный питон бэк, как прокачаться до уровня джуна-мидла? Стоит ли учить машинку и матстат если не очень вкатывает?
95 1460734
>>60720
Держи
http://onreader.mdl.ru/UsingAsyncioPython3/content/index.html#ToC
После прочтения можешь глянуть доку aiohttp и заставить лида яндекса сосать твой болт как писатель Лимонов
96 1460768
>>60081
>>59370 (OP)
В ПРОШЛОМ ТРЕДЕ ВСЕ РАСПИСАЛ, ЕБАНЫЕ ПЕРЕКАТЕРЫ, ДОБАВЛЯЙТЕ FAQ ИЗ ПРОШЛЫХ ТРЕДОВ В ШАПКУ, МЫ ДЛЯ КОГО СУКА ПИШЕМ?
Тут адаптация SICP под Python на ангельском, если чуть-чуть запаришься, то найдешь все, что тебе нужно http://composingprograms.com/
ОП-пидарас
97 1460797
Анон, я понял, что я нихуя не понял темы про стандартные объекты питона - списки, сеты, кортежи. Хуй знает, когда они используются и почему именно они, какие методы к ним применяются. Что можно почитать/посмотреть/послушать на эту тему?
Английским владею.
98 1460877
>>60797
это понимание приходит с практикой. листы - универсальный инструмент, в них что-то накапливать, изменяя количество. тупли - легковесный контейнер с данными, этакий мини-дата-класс, сеты содержат только уникальные элменты, легко узнавать содержится ли всё что есть в сете А в сете Б и наоборот, убирать дубликаты (или автоматически их обрабатывать), находить пересечения. есть ещё дикты. дикты в сочетании с листами это мощный инструмент организации и хранения данных, см json

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

https://docs.python.org/3/tutorial/datastructures.html
https://docs.python.org/3/library/stdtypes.html#typesseq

мимо говнокодер
99 1460878
Ебать джангисты хэлп ! Короче такая хуйня, когда я отправляю форму сохранения пользователя, сохраняет все поля (пароль, почта, юзернейм). НО эта хуйня не сохраняет картинки, в media нихуя нет просто. Можно изменить только через админ-панель. В pycharm ещё такая хуйня (пик-1) может с этим связано.
100 1460887
>>60797
Списки, по смыслу, это массивы в других языках. Задача в том, чтобы хранить данные, иметь возможность адресации по индексу, плюс куча операций по обработке таких массивов. Сам термин "список"/list немного вводит в заблуждение, а теории алгоритмов за другими структурами это понятие обычно используется.

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

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

Советую в первую очередь разобраться со списками, слайсами (срезами) списков
m2 = m1[2:5]
m2 = m1[::-1]
вот с такими вот штуками

Потом со словарями. Это самые базовые структуры, всегда нужные.

Потом уже с кортеражами и словарями.

Литературу не подскажу, на самом деле в доках всё расписано прилично.
101 1460900
>>60877
>>60887
Спасибо за пояснения, анончики. Я, видимо, какой-то специальный в том плане, что теорию я понимаю, а вот с тем, как применить ее на практике - беда, еще с универа так. Учусь по лекциям Хосе Портилла на юдеми (до этого закончил Automate the boring stuff там же). После лекций у него обычно бывают контроши. Не знаю, рассчитывает ли он, что я должен решить все сам, или можно погуглить, но некоторые решения я нахожу только с гуглом, некоторые - вообще приходится смотреть ответы. Аналогично с задачками на codingbat.com - warm-up 1 и все первые части я более-менее делаю при помощи гугла, а вот со вторыми частями каждого топика - просто караул.
Я понимаю, как работает срез в стрингах или списках, для чего нужна len(), но руки моментально заворачиваются в жопу, как только я пытаюсь применить это знание на практике.
Итерации над списками - совсем пиздец. Порой не понимаю, как подступиться к заданию. Когда надо использовать for i in list, for i in range, for i in range(0,pen(list)-1) - я не понимаю различия этих действий. Вот что мне с этим делать?
При этом дальше там в курсе пошло ООП. Я понимаю, что там самые азы, но зашло оно гораздо проще, чем вся вот эта функциональщина.
Я тупой, или просто нужно больше практики?
Если можно, порекомендуйте какие-нибудь ресурсы, где как в школе - прошёл урок с подробным изучением топика, потом делаешь домашку.
102 1460902
>>60887

> Но кортежи при этом очень активно используются.


Тоже использовал, пока не посмотрел байткод. Накладные расходы на namedtuple съедают все преимущества tuple, без namedtuple пердолиться в индексы неудобно, а во всяких там for i in [3, 15, 10] вообще разницы нет. Фактически там, где tuple по-настоящему нужны, они и так используются всегда и неявно.
103 1460903
>>60900
Когда надо использовать for i in list, for i in range, for i in range(0,pen(list)-1) - я не понимаю различия этих действий.

Посмотри видио на ютубе по генераторам списков. Или просто по циклам и как они работают.
Я вообще хуй знает нахуя идти учить питон, если до него ты не имел дело с более низкоуровневыми языками
104 1460904
>>60903

>видио


Я блять безграмотное чмо.
105 1460906
>>60903
Краем уха слышал про генераторы в питоне - это они и есть?
Насчет спойлера - ну хз, я общался с разработчиками на работе, в принципе они говорят, что идти сверху вниз проще, чем снизу вверх. Чем выше уровень абстракции, тем проще.
106 1460908
>>60906
В общем это просто циклы, и использовать их можно как угодно, например как генераторы последовательностей.
[x for x in range(10)] - вот тебе и сгенерированный список

>Чем выше уровень абстракции, тем проще.


Согласен. Но имел ввиду не сложность, а про само понимание процессов. Например Си и плюсы дали мне большой буст в начале.
107 1460909
>>60908

>[x for x]


Хм, в моем курсе это было, называлось list comprehensions.
А насчет буста - какая, по большому счету, разница, где я изучаю логику и алгоритмизацию действий? На этом уровне, по сути, различается только синтаксис ведь?
108 1460913
>>60909
Так то для изучения логики и алгоритмизации можно вообще не использовать ЯП. Я говорил про то, что например Си, научит пониманию и управлению памятью, указателей и тд. Тем более ты должен понимать разницу между низким уровнем и высоким, понимать как работает питон и чем он отличается от компилируемых языков.
109 1460919
>>60902
Кортеж это обычный tuple, так переводят.

tuple несколько быстрее, чем списки, и чуть меньше ресурсов жрут.

Основная область применения для упаковки небольших данных, когда две-три-пять переменных надо в одно передаваемое или возвращаемое значение упаковать. С этим начинающему надо сразу разобраться, используется постоянно.
(x, y) = get_position()
print(x)
print(y)

Для больших данных смысла, наверное, не имеют, разве что если использовать их как константный список, то есть когда надо гарантировать, что список не будет испорчен. Но как-то я не очень видел, чтобы ими так пользовались.
110 1460924
>>60913
У питона сильно выше уровень и ты как раз можешь думать о логике и алгоритмах, не отвлекаясь на технические детали.

Я сам начинал с C и это было очень-очень давно. Слишком много магии, совершенно непонятной, пока ты толком не умеешь программировать. Мне кажется, и без C можно понимания достичь, как всё работает на низком уровне, скорее надо читать что-то про устройство компьютеров, операционных систем, ассемблер и т.п.
111 1460942
В шкалке я писал всякие нубские программы в консоли, а теперь мне нужна простая гуи прога, по сути калькулятор, чтобы не занимала много места и не требовала прав администратора (поставить на работе от пользователя). Что посоветуете, что покурить, чтобы написать такую? Tkinter или че там?
112 1460986
Хочу вкатиться в питон. В питоне есть аналог my пёрла? Чтобы, например не было ситуатций когда объявляешь перед циклом переменную tvoyu_mamku_ebal, в цикле собираешь данные в tvoyu_mamku_ibal и потом полчаса думаешь, какого хуя.
113 1460989
Эй, вкатывальщик 29 лвла, пали свой прогресс
114 1460991
Прошу помощи нюфагу у здешних ананасов. Начал вкатываться через курсы на степик . орг и вот там задание есть простецкое на написание своего калькулятора. Все вроде спокойно и нормально работает, но когда я его там тупо отсылаю то прилетает Failed test #14. Wrong answer. Что означает о том, что на 14 попытке мой калькулятор где то проебался. Сам я вручную штук 20 перелопатил всякой хуйни и все работает как часы. В чем загвоздка?
https://www.codepile.net/pile/j0K9Xa6L
115 1460992
>>60991
Потому что книжки читать надо, а не тестики решать!
116 1460996
>>60986
У всех объекстов в питоне по дефолту локальная облась видимости.
117 1460999
>>60992
и до этого со временем дойдет, не переживай, анон. на одних тестиках я дальше таких простецких программ не уеду
Антон 118 1461011
Привет!
>>1461003
Пришел к вам из бэ, надеюсь на вашу помощь, 300кк/нсек боги
Я пытаюсь создать уведомление в Windows, используя библиотеку Plyer. Все отлично работает, когда запущен скрипт Python (.py). Но когда я пытаюсь создать исполняемый файл с помощью pyinstallerpyinstaller -F -i C:\<путь>\ico.ico C:\<путь>\name.py и запускаю исполняемый файл, я получаю эту ошибку: https://pastebin.com/taJaZVey

фрагмент кода: https://pastebin.com/zvMGughh

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

>>1461003

>Модуль не найден, спрашивай в Питухонском треде где должны раз ещаться



Спрашиваю
Антон 119 1461013
>>60996

>global tvoyu_mamku_ebal


не?
Антон 120 1461015
>>61013
вопрос вообще не о том, я еблан
121 1461034
>>60511
настоятельно рекомендуется, но на него многие забивают
15545301291410.png955 Кб, 731x622
122 1461037
Здравствуйте. Поступил на Математику в этом году, будем учить ваш Python на первом курсе. Какую IDE лучше взять? Боюсь взять не ту, что будет на компах в универе. Вдруг появятся какие-то проблемы при открытии кода в другой IDE. Я просто не особо в этом понимаю, если написал хуйню - не бейте. Мне бы лёгкую IDE-шечку, а не pycharm (который, я слышал, грузит комп).
123 1461041
>>61037
sublime text
124 1461050
>>61037
sublime хороший, в универе скорее всего будет пучарм, никаких технических проблем в теории[/быть не должно, единственное, мне например, было бы сложно днем работать в одной иде, вечером в другой
125 1461065
>>61037
Сублиме текст заебись, но с ним попердолиться надо - ставь пучарм или IDLE в у нивере будет IDLE, скринь
126 1461079
>>61037
IDLE

>>61041
>>61050

>IDE


Ему же нужна IDE, а не редактор кода
127 1461080
>>61041
>>61050
>>61065
Спасибо за ответы. А в spyder кто-то пробовал? Я там смотрю, пишут про визуализации в виде функций, всякие математические библиотеки.
128 1461083
>>61079
Он просил легкую ИДЕ, сублиме можно напердолить так, чтоб он стал ИДЕ
129 1461084
>>61011
помогите пожалуйста..
130 1461086
>>61084
Тыж программист! Решай задачу.
131 1461088
>>61086
дак я решил, только уведомления эти сраные и не работают, как фиксить то?
132 1461089
>>61037
Vim конечно же
133 1461090
>>61088
Здесь в основном вкатывальщики разного уровня уёбищности сидят.
Попробуй переустановить винамп использовать гугл.
134 1461091
>>61090
гуглил что это?сейчас переустановлю, спасибо
135 1461092
>>61091
прикол с винапмом понял, спасибо
136 1461093
>>61011

>pyinstallerpyinstaller


https://stackoverflow.com/questions/48875894/pipenv-and-pyinstaller-not-packaging-dependencies
Конечно немного не то, но что-то мне кажется что зависимости не видит при упаковке, возможно ты юзаешь virtualenv?
138 1461096
>>61080
Хорошая ИДЕ, но для тебя ее функционал будет излишним. (скорее всего)
139 1461098
>>61011
Чет не могу загуглить такую библиотеку
141 1461101
>>61098
А нет, могу
142 1461103
>>61095
>>61093
Спасибо. Пробую, пока безуспешно

virtualenv? не знаю что это
143 1461109
>>61103
Ну обычно хорошая практика в пайтоне для каждого "проекта" создать своё виртуальное окружение и все зависимости ставить в него
15667284451280.jpg8 Кб, 238x192
144 1461111
>>61011
import plyer.platforms
145 1461112
>>61109
не делал так, почитаю позже
146 1461115
>>61111
File "site-packages\plyer\utils.py", line 96, in _ensure_obj
ModuleNotFoundError: No module named 'plyer.platforms.win'
No usable implementation found! =)
147 1461118
>>61115
Кинь кусок с plyer.platforms
image.png2,3 Мб, 1920x1080
148 1461119
>>61111
>>61111
!!!!ЗАРАБОТАЛО!!!!

спасибо===)))
литр нефти и чая тебе, Антон!
149 1461121
>>61119
Ты должен был делать import plyer.platforms.win.name
Учись импортить
150 1461123
>>61121
недавно в питоне

по моей логике import plyer должен импортить всю библитеку, со всеми вложенными, в том числе platforms>win>.., разве нет?
151 1461124
>>61123
нет
152 1461125
>>61123

>Все отлично работает, когда запущен скрипт Python (.py)


Всё таки я тогда не понимать
153 1461126
>>61124
>>61125
plyer это единственна библиотека(из тех что я применял) которая не импортнулась(?), я не понимаю почему, может слишком большая, если импортировать только ту функцию которая мне нужна, то все работает. Спасибо всем анонам в треде
15656946913240.png1,1 Мб, 1280x720
154 1461128
Все-таки питон удивительный язык!
155 1461130
>>61126
Всегда импортируй только тот модуль, который тебе нужен. Меньше ошибок + легче читать код.
156 1461131
>>61130
Да, уже сам для себя подметил это, спасибо
157 1461207
Нужно ли обязательно писать

while answer != 'q'
или можно while answer != "q"
?
158 1461216
>>61207
Юзай любой из вариантов, это не принципиально. Если в строке есть ' юзаешь " " (" ' "), если " соответственно юзаешь ' ' (' " '). В остальных случаях юзай что хочешь.
159 1461221
>>61207
>>61216
Но лучше использовать ", чтоб потом не переучиваться
160 1461231
>>61091
>>61088
Ну попробуй другой конвертор в ехе, нютку попробуй
nuitka --standalone --windows-disable-console --plugin-enable=qt-plugins --windows-icon="c:\convertor\icon.ico" --remove-output "c:\convertor\convertor.py"
161 1461247
Скиньте, пожалуйста, статью как развернуть Django. Пытался развернуть на heroku, упёрся в ошибку с модулями, неделю искал решение. Помогите
162 1461252
>>60768
Спасибо большое!
164 1461290
>>61280
Ок. Спасибо. Начинаю делать. Надеюсь всё получиться
165 1461372
>>60991
Проверка на деление на ноль при mod и div есть, а самих mod и div нет
166 1461390
>>60887

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



Кортежи обрабатываются эффектней списков.
Если нужно последовательности поместить в множество или сделать ключом словаря, то нужно чтобы последовательность была неизменяемой, чтобы у нее был один и тот же хэш. Тут помогают кортежи.
Кроме того бывает, что хочется, чтобы последовательность была неизменяемая, хотя бы для логической выразительности, например, бывают последовательности-константы.
А еще надо учитывать разные подводные камни питона, например, если в качестве инициализатора для параметра по умолчанию указать конструктор объекта, это приведёт к созданию статического объекта, ссылка на который и будет передаваться по умолчанию в каждый вызов. Это может повлечь трудно уловимые ошибки, поэтому лучше для значений аргумента по умолчанию использовать неизменяемые типы.
Вообще полезная штука.
Salat 167 1461443
Пишу (1 картинка), pytchrm ругается и предлагает вот такой вот вариант(2 картинка), въехать не могу чём прикол. Антон, помоги
168 1461447
>>61089
emacs
169 1461448
>>61443
Оба варианта не cоответствуют pep8
Сделай так

inf = {
'author': None,
...
}
170 1461450
>>61448

А потом уже писать тип
171 1461451
>>61450
inf['author'] = Foo()
изображение.png21 Кб, 623x162
172 1461454
>>61443
Тебя аннотация типов смущает?
173 1461455
>>61454
Да, я с таким не встречался, что это вообще значит... optional[Any]
174 1461456
Сап двач, какую книгу читать по структурам данных на питухоне?
А то мне не вставляет смотреть 20 часов видео от хирьяноваЕБАЛ В РОТ ВИДЕВА БЛЯ
175 1461458
>>61455

>optional[Any]


В кратце, это значит что это может быть любой тип или None.
Dict[str, Optional[Any]] значит, что это словарь, с ключом типа строка и значением любого типа, при этом допускается, что значение будет просто None.
Аннотация типов - это указание типа для переменных и функций. Это относительно недавняя и совершенно не обязательная для работоспособности фишка питона, более того, интерпретатор не следит, что там действительно именно те типы, что ты написал, но это могут делать специальные программы и среды разработки, это помогает находить ошибки делать программы более качественными и читаемыми для людей. В целом, полезно, рекомендую использовать.

https://docs.python.org/3/library/typing.html#typing.Optional
https://www.python.org/dev/peps/pep-0483/
https://www.python.org/dev/peps/pep-0484/
https://www.python.org/dev/peps/pep-0526/
176 1461462
>>61390

> Если нужно последовательности поместить в множество


> Тут помогают кортежи.


from collections import namedtuple
s = set()
Eek = namedtuple('Eek', '')
Ook = namedtuple('Ook', '')
s.add(Eek())
s.add(Ook())
# счастливой отладки
177 1461472
>>61462
А зачем мне namedtuple, когда мне нужны кортежи? Просто
In [17]: s = {(1,2), (3,4)}
In [18]: s
Out[18]: {(1, 2), (3, 4)}

И нет проблем
178 1461485
>>61462
Если надо засовывать туплы во множество, наверно, ожидается что у них будет разное содержимое, если хочется разные классы с одинаковыми полями засовывать в сет, так чтобы они там оба остались, надо просто создать нормальные классы и определить для них методы __hash__ и __eq__

В данный момент более православно определять namedtuple примерно так:
from typing import NamedTuple
class Employee(NamedTuple):
    name: str
    id: int

Вообще, можно побаловаться

In [46]: class Eek(NamedTuple):
...: def __hash__(self): return hash("Eek")
...:
...: class Ook(NamedTuple):
...: def __hash__(self): return hash("Ook")
...:
...: {Eek(), Ook(), "Eek", "Ook"}
Out[46]: {'Eek', Eek(), 'Ook', Ook()}
179 1461505
>>61443
Поясните за

>inf:


>class_


даже не сразу понял что это словарь
180 1461514
>>61458
Честно? Не нравится немного. Слишком громоздко, попытка превратить лаконочный питон в энтерпрайз джаву или в плюсы, причём с тяжёлым синтаксисом и при этом плохой производительностью и надёжностью в плане реальной защиты от ошибок.
181 1461531
>>61514
Ну, смотри, бывает, видишь в новой незнакомой библиотеке функцию с кучей аргументов, и, даже после ознакомления с доками, не всегда сразу удается сообразить, а чем эти аргументы могут быть, а чем не могут, и какой должен быть результат выполнения функции, а аннотации реально ускоряет освоение нового материала, кроме того IDE может оперативно подсказать, если, вдруг, начинаешь случайно творить хуйню, это всплывает сразу и без падений при запуске и без отладки с дебегером. Уверен, со временем и интерпретатор научиться использовать эту информацию для генерации более оптимизированного кода, как и проекты вроде Nuitka, Cython, Numba, PyOxidizer и прочих, которые позволяют генерировать из питона исполняемые файлы, для ускорения и возможности удобного распространения
182 1461540
>>61456
Видео херня, основное время у хирьянова займёт пройти всю практику.
183 1461551
>>61531

> функцию с кучей аргументов


Лучше бы документацию писали нормально.

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


Ни разу не пригодилось.

> IDE может оперативно подсказать


Тормозящее говно не нужно.
184 1461557
>>61551

>Тормозящее говно не нужно.


Можешь на свой вим установить плагин нужный. Или тоже НИНУЖНА?
185 1461574

> В некоторых областях (например, обработке строк с использованием регулярных выражений) у Python существуют эффективные реализации, не уступающие по скорости любым программам C, а то и превосходящие их.



Почему так (как это работает? регулярки вынесены в отдельный модуль и работают нативно на С или еще как?) и в каких еще областях?
186 1461625
>>61540
Книгу мне давай блядь по структурам данных, сука
imgonline-com-ua-Resize-nxGGBb1xfPEvp3lP.png202 Кб, 512x384
187 1461629
Аноны, есть какие то гайды по Django AJAX? Сколько уже не смотрел юутуб, ни как не пойму эту джаваскриптовую парашу.
188 1461637
189 1461642
>>61629
при чем тут джанго и аджакс
джаваскрипт отдельно бэкэнд отдельно
190 1461656
>>61637
Ты ебанутый сука, давай что-то полегче.
191 1461659
>>61637
Cпасибо.
192 1461662
>>61642
Ну там же нужно делать специальные вьюхи, которые будут возвращать json. И уже ajax с этим работает. Или как там ? Я так и не понял. Просто я делаю сайт магазин, и меня жутко бесит, что нужно каждый раз обновлять страницу чтобы например добавить предмет в корзину.
pycharm.png16 Кб, 823x228
193 1461719
Скачал pycharm, везде эти подчеркивания, как я понял проблема в пробелах

Вообще это первый мой проект и я в notepad++ делал отступы через tab, а оно похоже на это жалуется? Что с этим делать?
194 1461721
>>61662
from django.http import JsonResponse
все
195 1461722
В путоне оператор присваивания переопредилить нельзя?
196 1461726
Анон, помогите плес распарсить жсон. Нагуглил простейший метод решения:
import json

# some JSON:
x = '{ "name":"John", "age":30, "city":"New York"}'

# parse x:
y = json.loads(x)

# the result is a Python dictionary:
print(y["age"])

Но проблема в том, что у меня жсон несколько сложнее и выглядит вот так:
https://pastebin.com/e9TKhRq0

Мне нужно запулить переводчик, чтобы odno_naimenovanie, odin tip: 1 парсилось в "наименование такое-то, тип такой-то, кол-во 1".
Как это сделать?
197 1461740
>>61719
Код отформатировать тебе же предлагает
198 1461741
>>61719
на лампочку жми - там будет предложение исправить.
Или есть какая-то комбинация, если не ошибаюсь - ctrl+alt+L - жмёшь - и она тебе весь код к ПЕП8 подтянет.
76bd5c9343f99d3c56c9776622405e1d.jpg96 Кб, 700x662
199 1461745
>>61458
Огромное спасибо, Антон
200 1461747
Анон, привет. Не знаю, принято или нет тут подобные вопросы задавать, но мне интересно. Вот если с полного нуля начать сейчас учить питон, через сколько время я смогу куда-нибудь джуниором устроиться, ну либо первые заказы на фрилансе брать? Программировать хочу и для души, ну и чтобы профит тоже был, потому что денег сейчас вообще нет. Недавно уволили с работы, поэтому ещё немного, и жрать нечего будет. Заранее спасибо за ответ.
201 1461749
>>61747

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


Зависит от тебя, кто-то за пол года вкатывается, кто-то за несколько лет осовить не может

>ну либо первые заказы на фрилансе брать


Когда настакаешь 2-3 года опыта
202 1461753
>>61749

> Зависит от тебя, кто-то за пол года вкатывается, кто-то за несколько лет осовить не может


Хорошо, спасибо. Мотивация, в принципе, есть. Голодным сидеть не хочется. Да и живу в миллионнике, может и повезёт.

> Когда настакаешь 2-3 года опыта


Нихера себе. Да ну нахуй, лучше джуниором куда-нибудь, чем жопу себе за каждого заказчика рвать.
203 1461827
Пытаюсь написать волшебный [/sговно-]ОРМ, но волшебство обламывается на запросе в БД: хочу, чтобы запрос был один, при этом хочу цепочкой методов навешивать условия типа
query = User.select('user', 'id', 'password').order('id').limit(100)
Там со вложенными where и всей красотой.
Надо как-бы научить цепочку методов понимать, что за ней ничего дальше нет, но она-то выполняется слева-направо. Че посоветуете, кроме как сделать бочку?
204 1461843
>>61827
Ты не поверишь, но, это называется "билдер".
И в конце должен быть специальный метод, типа .build() или .end() или .exec() и т.п., в зависимости от того, что именно ты делаешь.

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

В твоём случае, это может выглядеть так:
query = Query(User).select('user', 'id', 'password').order('id').limit(100).end()

Query - это билдер.
205 1461846
>>61843
Можно и прямо в User встроить билдер, это зависит от того, что там у тебя внутри.
206 1461854
>>61726
print(y["odno_naimenovanie"]["1"])
Тебе не это нужно?
207 1461858
>>61843
Блин, а правда тупо билдер-паттерн. Я о финальном методе тоже думал, но хотел без него обойтись.
Спасибо
208 1461916
Статические переменные - полиморфные?
209 1461926
А как сразу несколько методов применить к одной переменной?

Например вместо
str0=l[0].strip()
l0=str0.split(' ')
писать что-нибудь вроде
str0=l[0].strip().split(' ')
210 1461953
>>61926
Это не "несколько методов к одной переменной", это цепочка преобразований значения.
Вот так, в цепочку и пиши, если можно, для данных методов.

И погугли композицию функций.
211 1461968
>>61721

Меня просят ещё и скрипт писать. Слать нахуй дизйнерскую макаку ?
212 1462004
>>61926
Ты каждый последующий метод применяешь к разным переменным.
213 1462069
>>61629

>Сколько уже не смотрел юутуб


>смотрел юутуб


Ну че это такое ну
214 1462071
>>61753
Зато на собеседованиях в пятерочку можешь говорить что ты программист!
215 1462086
Аноны, меня аш трисёт, почему в литературе пишут, что множество, set - неупорядоченный тип данных, а кортежи и списки - упорядоченный, а по факту - наоборот, только в set данные автоматически упорядочиваются?
216 1462091
>>62086
Потому что в каком порядке ты положил в list или tuple в том оно и будет храниться, set же хранит со своей расстановкой и т.д.
217 1462104
>>62086

> данные автоматически упорядочиваются


>>> set(['a', 'c', 'b'])


{'b', 'a', 'c'}
И каким же образом они упорядочиваются?
изображение.png5 Кб, 424x384
218 1462106
>>62104
По возрастанию
219 1462125
>>62106
А теперь повтори с {3, 2, 10}. А еще оно вообще может при каждом запуске в новом порядке хранить (раньше точно могло, деталей не помню).
220 1462127
>>62086
Пушто ты по индексу не можешь к ним обращаться. Пушто порядок их хранения в этом типе вообще не важен. Важен факт принадлежности к конкретному множеству
221 1462128
Анончики, решил немного ускорить асинхронный for с помощью создания таска на загрузку следующего значения итератора.
Есть у такого способа какие-то подводные камни?
https://repl.it/repls/DualMustySpreadsheet
222 1462131
>>62125
>>62127
Ну всё, всё, понял, спасибо.
223 1462146
>>61854
Да, разобрался со вложенностью, спасибо!

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

Грубо говоря, жсон отдает
{
"instrument": {
"drel": "10"
}
}

А мне нужно, чтобы питон это распаршивал как "Инструмент дрель: 10".
Я так понимаю, надо воспользоваться словарем? Ключ - закодированное имя в жсоне, значение - декодированное имя на человеческом языке. Но как это изложить в виде кода - вообще хуй знает.
Не программист, не унижайте
224 1462148
>>62146
Хотя даже нет, тут сложнее выходит. Дело в том, что в приведенном ниже примере 'drel' может быть вложена в разные "ключи", и от этого парсинг будет отличаться. Грубо говоря:

"instrument": {
"drel": "10"
} ---- инструмент дрель: 10

"parts": {
"drel": "12"
} ---- запчасти: 12
225 1462181
>>62148

>drel


Ну ёбаный стыд же.

Эта задача не столько про питон, сколько про данные.
Решение зависит от твоей конкретной модели данных.
Нужно переводить с учётом иерархии (контекста).
Строй пути через точку - "instrument.drel", и используй, как ключи.
Как-то так.

Но, для данного примера было бы естественнее так:
Инструменты:
-- Дрель: 10
-- Лобзик: 50

Т.е. для каждого уровня иерархии - свой словарь.
226 1462191
>>62128
В чём твоё ускорение заключается? Я пока не очень понимаю логику написанного, но фактически суть в том, что в одном случае ты выполняешь цикл вида
for i in range(20):
await asyncio.sleep(0.1)
await asyncio.sleep(0.1)

Во втором случае ты одну из этих операций оформляешь в задачу, то есть фактически запускаешь параллельно внутри тела цикла
Соответственно, в одном случае у тебя 4 секунды ((0.1+0.1)20), в другом 2 секунды(max(0.1, 0.1)20)

Но мне скорее не понятно что ты делаешь и зачем.
изображение.png78 Кб, 1213x969
227 1462192
>>59370 (OP)
Почему у tkinter на убунте так хреново отображается кириллица, причем шрифт мало влияет на это? Можно ли что-то с этим сделать, может шрифты какие специальные установить или что? У меня Ubuntu 18.04, python 3, у Tcl в tkinter версия 8.6
228 1462195
>>62191
Дефолтный async for начинает запрашивать следующие значение только после завершения блока кода в теле цикла, если в цикле происходит другой await, то по идее можно начать запрашивать следующее значение заранее, если оформить его в виде таска.
229 1462196
>>62192
Прямо пахнуло 90-ми, лол.
Тут недавно было про выбор ос для разработки (>>59662 etc)
Эта картинка - отличный аргумент в пользу винды/мака.

По теме:
https://python-scripts.com/question/16952

Вообще, думаю, дело в том, что эта часть в tcl как раз с 90-х и не менялась.
tkinter.png27 Кб, 198x176
230 1462198
>>62196
Только что запустил пример (по ссылке) на маке.
Пикрелейтед.
231 1462206
>>62195
Это очень разумное поведение. Ты сначала обрабатываешь один запрос, потом следующий. Вот представь, что ты читаешь что-то из сокета и туда же ответ высылаешь.

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

Мне вообще не понятно, зачем тебе асинхронные циклы. Всё как-то тяжеловесно. Используй, например, очереди задач. Ты можешь сделать очередь из 1-2-много элементов. Эту очередь заполнять одной асинхронной задачей по мере того, как она освобождается.
Смотри asyncio.Queue
в другой задаче ты вытягиваешь элементы из этой очереди и их обрабатываешь.

Это совершенно типовой подход, он намного более гибкий и понятный.
232 1462209
>>62195
>>62206
Ещё дополню.
Цикл по своей природе синхронная конструкция, их вообще дурной тон использовать. Но иногда надо, когда надо именно последовательно в один поток что-то обрабатывать.

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

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

Цикл это частный случай очереди упрощённого вида:
for x in my_gen():
queue.put(x)
z = queue.get(x)
process(z)
233 1462214
>>62181
Анон, спасибо большое за идею. Все получилось сделать через итерацию через for, вложенный в for.
234 1462393
>>61472
Что за [In] в каждой строке?
235 1462464
>>62393
line
Просто вывод такой. Юпитером пользуется наверное.
236 1462525
А схерали ошибка-то?

Я разделил сплитом каждую строку на два куска, разделителем служит ' - '
Значит у меня должно получиться два элемента списка - 0 и 1.
Вывожу 0 и 1, оба элемента выводятся, но вываливается ошибка.
237 1462527
>>61953

>Это не "несколько методов к одной переменной", это цепочка преобразований значения.


Вообще-то strip и split это именно методы.
"Цепочка преобразований значения" - неведомая хуйня, которую ты только что выдумал, такого термина в python нет.
238 1462543
>>62525
Засплить и запиши в отдельную переменную, а потом уже используй обращение к массиву по индексу. Мозга не еби уж.
239 1462545
>>62525
Написано же, что list out of range. Ты пытаешься вызвать элемент, находящийся вне словаря.
240 1462547
>>62525
Для отладки сделай или печать строки перед этим, или в tray-catch посмотри.

Мне кажется, что у тебя или пустая строка попадает в обработчик, или строка вне этого шаблона. Вот на этой строке у тебя программа и валится, поскольку после split там список только из одного элемента.
241 1462548
>>62547

> try-catch


самофикс try-except
.png41 Кб, 794x529
242 1462561
Почему картинка превращается в говно? Как победить? Как клеить полупрозрачные картинки на прозрачные? alpha_composite() работает нормально, но у неё нет смещения. А надо клеить со смещением.
243 1462564
Штош, сегодня будет собес на мидла, на ЛЕГАСИ прожект.
Запилить анонам отчёт небольшой?
Да, на питоне уже есть легаси, даже не на джанге/odoo. Со слов собеседующего, прожекту 20лет, сейчас только планируют переезжать на пистон3. Проект занимается обработкой и вытягиванием данных из всяких документов(чеки и т.п.).
244 1462568
>>62564
Пили. Всегда интересно, как у всех проходят собеседования, потому что у меня одно и то же и всегда нахуй.
245 1462574
>>62568

> всегда нахуй.


Зачастую так же.
Раньше перед собесами повторял что-то, сейчас же иду как есть и похуй.
246 1462581
>>62574
Много уже куда ходил? Я вот всего-ничего, но видя как мои знакомые, которые со мной на одном уровне знания находятся, проходят с первого раза, совсем теряю мотивацию чо-т.
В общем, пили прохладную потом. Если что, порадуюсь вместе с тобой; а нет, так поддержу.
247 1462593
>>62581
Че знаешь? Че умеешь?
248 1462604
>>62581
Да я уже третий год работаю, за это время много куда походил, много собесов прошёл, пару тестовых на хуйю повертел.
В прошлых тредах от меня был большой пост со списком вопросов с ласт успешного собеса.
249 1462626
Анончики, а может кто давать реальные задачи несложного уровня? Прочитал с выполнением книгу из шапки Head First, понравилась подача, но там как-то всё через веб показано. Ещё четверть лутца прошел, дальше не осилил.
Зарегился на codewars, но там тоже через чур все задания абстрактные. Вроде несложно, но подумать приходится.
Почта l7SQethANUSyandM@2exPUNCTUMroKGu
250 1462646
>>62626
Да можно было бы просто в тред
мимо
251 1462655
Подскажите, где можно задачки найти? Я вот прошел темы операторов if, while, for, break и continue
Для закрепления хотелось бы задачи с ответами
252 1462656
Подскажите, почему string является неизменяемым типом данных, но при этом допускает метод .replace?

>>62655
проект эйлера, ответы в интернетах.
253 1462658
>>62656

>Подскажите, почему string является неизменяемым типом данных, но при этом допускает метод .replace?


Потому что тебе возвращается новый объект строки
254 1462662
>>62656

> Подскажите, почему string является неизменяемым типом данных, но при этом допускает метод .replace?


ответы в интернетах.
255 1462723
>>62564
Ну что ж, собес всьо.
Т.к. прожект написан на чистом питоне, соответственно и вопросы были по чистому питону:
Генераторы и примеры юзания. Контекстный менеджер и примеры + как в классе/функции. Инкапсуляция в питоне, как работает _ и __. Property. Мета-классы(соснул хуйца без вариантов, никогда не читал даже про них, идиот). Множественное наследование в питоне2/3.
Как вызвать метод конкретного родителя. Как идёт поиск метода в родителях. Super. Init/new/call. Slots/dict. Правила импорта, что делает __all__=[]. Как запилить синглтон(не знал что это, а тут узнал и охуел). Вроде по питону всё.
Вопросы по докеру были, но банально "как юзал, почему, какие проблемы были". И по линупсу, так же "юзал или нет", но они на винде сидят.
Собес был коротким, минут 40 по факту, именно технической части, ещё 15 беседы до и после с hr.
Возможно ещё что-то вспомню.
Screenshot from 2019-08-28 18-00-44.png31 Кб, 417x316
256 1462724
mpv-shot0019.jpg122 Кб, 1280x720
257 1462732
258 1462733
Как разобраться в асимптотике?
Может есть какая-нибудь хуета в стиле codewars где я бы такой смарел на код и в ответ мне надо было бы определить всю эту О(1) хуйню, а если бы я ошибся меня разобрали по частям так сказать.
259 1462734
>>62626
Напиши мне скрепт, который на вход принимает ник твитч-стримера и ищёт трансляцию, на которой данный стример присутствует в чате. Ну то есть на выходе тоже должен быть ник стримера, либо сообщение, о том что в данный момент стример не смотрит никакой трансляции
260 1462735
>>59662
Мне например недавно чле который написал и поддерживает софт на с# в госшаражке сказал что ему больше нравится виндовс потому что она более гибкая. там в кроне 8 параметров заместо 6 в линюхе.
261 1462765
В чем суть этой хуйни: https://leetcode.com/ ? Есть же бесплатный codewars
нюфы.PNG6 Кб, 226x221
262 1462775
аноны поясните нюфане почему в таблицу в отдельную не выводит? во внешнем цикле хочу вывести первый столбец с переменными, во второй хочу вывести второй столбец с переменными, но он выводит тупа подряд все в один столбец
263 1462778
>>62775
потому что ты сделал какую-то неведомую хуиту. Зачем цикл на один оборот? Зачем цикл в цикле? Что тебе надо, я не понел?
Сделай просто принт с пробелом:
print('a'+' '+'b')
264 1462779
>>62775
Смотри доки по функции print
https://docs.python.org/3/library/functions.html#print
посмотри на параметры sep и end
по-умолчанию end это перевод строки

Вообще надо это несколько иначе реализовывать.
265 1462781
>>62775
В каждой твоей строке написано тупое говно тупого говна
266 1462783
>>62775
дополню
можно писать так:
print(a, b, c, d, sep='\t', end='\n'), хотя end тогда не нужен
если у тебя переменные в массиве
m = [a, b, c, d],
то можно
print(*m, sep='\t')
267 1462787
>>59748
У тебя там написано в чем трабл.
Напиши:
word = ' яблоко '
Должно быть счастье тебе.
268 1462794
>>62778
надо сделать простую таблицу умножения типа с чисел которые я подаю на ввод. от сижу думаю как это реализовывать
>>62779
>>62783
спасибо анон, надеюсь поможет
photo2019-08-1616-04-29.jpg73 Кб, 960x458
269 1462891
Пилю прохладную ночную твою, может что посоветуете.
Две недели назад, психанул и уволился, как говорят, в никуда, с должности дата онолитека в геймдеве. Уволился отчасти потому-что рутина задавила, все вопросы которые решаются "на характере", я тупо игнорил. Да и менеджерить у меня никогда не получалось, а обязанности всё больше уходили в сторону от технических. По-этому решил отдохнуть и перейти куда-то в более техническое направление. Друг посоветовал вакансию того-же аналитика но по описанию и требованиям всё больше походило на какого-то инженера (знание и умение пайтон, API, SOAP, архитектура БД немного, сетевые протоколы немного, процедуры и пользовательские функции в БД), от аналитики только требовали АБ тесты. Обязанности - пилить аутсорс аналитическую\CRM платформу и в дальнейшем ее же обслуживать иногда внедряя фантазии клиента. Ну я прям загорелся, даже сделал тестовое на питоне (реализация сортировочной функции). Тестовое по аналитике сделал - не заметил (подключения в табло, настройка дешборда и пара скриптов запросов в БД, немного расчётов). Когда была встреча с технарём и аналитиками - меня тупо размазали как суку. Нихуя не знал я о PEP8, о наследовании, о __init__. Кароч завалился по полной по части теории Пайтона. После встречи сидел дома и учил то что вспомнил из вопросов, но это уже лирика.
Кароч, у кого был опыт вкатывания перекатывания в похожую область и как искать похожие вакансии конторы, т.к. должность и не аналитик полноценный и не дев и не инженер.Только, блять, не спрашивайте почему я в ебучий МЛ за 300к\сек. не укатился
270 1462900
>>62891
Чем занимаются аналитики?
271 1462905
>>62900
он же написал

>подключения в табло, настройка дешборда и пара скриптов запросов в БД, немного расчётов

272 1462906
>>62905
Нихуя не понятно, вот честно.
Недоманагер-девопс-прогер?
273 1462907
>>62900
Звучит как какой-то мемный вопрос на который не стоит отвечать.
274 1462908
>>62906
ну я так понимаю это то что раньше называли программист эксель лол
275 1462909
>>62907
>>62900
Любят родину и радуются солнцу. В зависимости от проекта.
Лично я и похожие мне искали проебы гейм девов в создании фич(аб тесты) оценивали их в далларах, с умным лицом сидел на встречах присекая попытки запилить что-то, что в теории может вытянуть проект из жопына самом деле - нет, вспоминая оторванные от реальности показатели прошлых реализаций таких фантазий. Ну и конечно рисовал забавные графики с натянутыми эстимейтами.
276 1462922
>>62909
Ну манагер короче, теперь понятно.
Какая у тебя зп была? И что по опыту?
277 1462927
>>62922
Зоебал, не манагер, но похуй. 1.5k у моих-же коллег - 2.5 из-за того что манагеры они. Где надо там попиздят, где не надо - на меня скинут. По тех. части они были 0, ели могли запустить запустить выгрузку с БД или рассчитать что либо не в экселе. Опыт 1.5 года в гейдеве, 2 года в айти маркетинге (гейм траффик) ну и куча мелких подработок ранее. Со всем стаком скиллов синьора. Умею немного в администрирование БД.
278 1462929
>>62927

> Зоебал


Извени

> 1.5k


Да ну ебана в рот блять. Я хуею.
Может тоже в аналитики пойти, всё равно на встречах с заказчиками сижу и поясняю за техническую часть. Недавно суперсет освоил для своих целей.

Ладно, хуй с тобой, блять.
Как по мне - ебош через линкедин, там хрюши пасутся, найдётся и для тебя вакансия. Пиши что аналитик, что опыт есть, сеть расширяй и найдёшь себе лакомый кусочек.
279 1462932
>>62929

>1.5к


>Да ну ебана в рот блять. Я хуею.


>Может тоже в аналитики пойти,


Ты совсем э-бо-бо или тролишь тупостью?

>ебош через линкедин, там хрюши пасутся,


Спасибо, Кеп. Я уже депресуху ловлю от того что не попал куда хотел. А отступать назад в гейдейв - унизительно. Получается я сорвался в никуда, походил поунижался по собеседованиям и вернулся туда-же.
280 1462937
>>62604
Не нароешь список? А то я чо-т не видел нигде, но и сижу там буквально 5-6 тредов только.
281 1462944
>>62937
Держи
https://pastebin.com/sTeKcWU1
>>62932
Я шучу конечно, работа звучит адско, но 1,5к по меркам неДС - охуенно, не так ли?
Я получаю сейчас 1,4к, а ебут на собесах не слабо, да и во время работы иногда пригорает.

> Спасибо, Кеп


Зря ты так, для многих это новость, даже +/- опытных, что линкедин решает.

> не попал куда хотел


Всякое бывает, не ссы.

> Получается я сорвался в никуда


This. Хуйово, надо иметь запасной план всегда.

Тогда я не понял кем конкретно ты хочешь быть.
Как искать - я тебе КЭПанул, а что искать - думаю сам для себя знаешь.
Литература для изучения есть в шапке.
Задавай конкретные вопросы и анон поможет.
282 1462945
Аноны, подскажите по архитектуре приложения и либам.

Есть задача запускать на 40 linux клиентах параллельно одно и то же приложение suricata.

Нужно следить и за статусом этой хрени онлайн и централизованно собирать логи и объединять их.

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

Не могу понять на чем и как это лучше реализовать. Пока смотрю в сторону Netmiko\Paramiko\TextFSM или Ansimble.
283 1462952
>>62944

>но 1,5к по меркам неДС - охуенно, не так ли?


Если сравнивать с зарплатой кассира супермаркета - то охуенно. Но есть реалии, где эта сумма, если отбросить софт скиллы и няшность - немного маловата. Даже не в ДСах.
>Задавай конкретные вопросы и анон поможет.
И так, снова вопрос: как называется та должность на которую я пробовал устроится? Потому-что у нее был заголовок - Дата аналитик, но это, как вы поняли по описанию - нихуя не он. Какой-то недоинженер-прогер. Стак скиллов который требовался и задачи - очень понравились и я даже бы хотел целенаправленно развиваться так.
284 1462958
>>62952

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


Страшно далек ты от народа.
Ну да ладно.

> И так, снова вопрос


Возможно, это всё тот же дата аналитик, с бэком питона. Соответственно это их локальные заморочки и ничего схожего ты не найдёшь. Ради интереса можно ещё раз попытаться на ту же вакансию, хуле нет?
P.s. Если ничего тут не подскажут дельного - сходи в "мы вам перезвоним" тред и там поинтересуйся, всё-таки круг там пошире будет.
285 1462965
>>62958

>Страшно далек ты от народа.


Страшно далёк ты от жизни.

> Ради интереса можно ещё раз попытаться на ту же вакансию, хуле нет?


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

> "мы вам перезвоним"


Даже забыл о нём, уношу туда.
286 1462969
>>62965
Бля, мнение какой-то овчарки воспринимать как экспертное. Большинство носится с своими каким-то шизофреническими методиками, у каждой своя. Единственное что их объединяет - чувство собственной невъебенности, правоты и глубокого понимания вот этих вот забитых кодеров.

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

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

ИБ иногда совмещающий с PM мимопробегал
287 1463127
>>62969
Пиздец, что за спец-операция, что б попасть на галеру...
Мимоанон
288 1463149
>>63127

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

А в целом, чел все правильно говорит. Если ты идёшь в контору хотя бы лидом, то все надо пробить.
289 1463157
>>63149
Семён не семёнь. Таким говном занимаются или секретарши или президенты корпораций. А другие когда такое проворачивают - со стороны как шизоиды.
290 1463166
>>63157

Это абсолютно нормально.
Компании пробивают специалиста, специалист пробивает компанию.
Особенно когда у тебя есть выбор куда идти
291 1463167
>>63157
Ну вот, потому что среднему кодеру неловко быть шизоидом и поболтать за чашкой кофе лишний раз, на таких даже сраные овчарки с интеллектом и подготовкой как у табуретки ездят.

Все сходится.

И вот это >>63149 не я написал. Хотя удивлен, что в этом треде явных джунов и студентов кто-то одобрит.

тот же ИБ мимопробегал
292 1463168
>>63166
Контур.Фокус вам в руки например. А то некоторые любят устроиться в контору которой история мойки-помойки и дебиторка в внешний долг США. А потом ебушки-воробушки, зряплату не платят 2 месяца, чтож это такое творится.
293 1463173
>>62944

>Держи


Спасибо, анончик. Добра.
294 1463199
>>63168
Видать ты вообще не понимаешь ничего в рынке и продуктовой разработке. Ты когда видишь вакансию от компании и читаешь ее название - у тебя должен выстраиваться ассоциативный ряд о продукте, сегменте, последних новостях. И тебе не нужно ходить где-то подлизывать чтобы узнать очевидные вещи. Ты же не пойдешь в трезвом уме устраиваться например ПМ в крипто контору, понимая что на тебя все висяки лягут.
Никто никого не пробивает, сука, такое чувство будто ты какой-то сбшник или менеджер по логистике нахуй.
>>63167
Я уже пригораю от тебя, как могут овчарки на ком-то ездить кроме самих же овчарок. Она тебя заставит ее сраный ексель заполнять или коробки офисным говном таскать. Как показывает опыт, если у тебя нет скиллов и мозгов, то ты пробуешь устроится через знакомых и подлизывая ейчарам. Таких сразу нахуй обычно посылают.
295 1463205
Анон, подскажи, с какими задачами вообще сталкивается работник (желательно, конкретные примеры)? Учу понемногу питон, но не очень понимаю, что вообще меня может ожидать при вкате на работу.
Прошёл базовый курс в яндекс.практикум, но всё равно не очень понимаю реальные задачи, которые могут встретиться
Понимаю, что всё сильно зависит от сферы деятельности компании и от проекта, но тем не менее, наверняка у начинающих задачи плюс-минус схожие
296 1463208
>>63199

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



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

Для вменяемого человека больше о реальном финсостоянии фирмы скажет, куда с любовницей нач отдела летал последний раз. Но ты ведь у нас наверняка самый-умный-у-мамки-погромист и ЧСВ с отсутствием соц навыков тебе не позволит это узнать.
297 1463210
>>63208
Троллинг_тупостью.жпг
298 1463213
>>59370 (OP)

Сап, двощ, вообще не могу въехать в концепцию итерируемый объект-итератор-генератор.

Прохожу курс на степике, и вообще не понимаю тамошнюю задачку.

Может подскажешь чего про это почитать-порешать
299 1463233
>>62944

>https://pastebin.com/sTeKcWU1



Анон, это на какую должность, вилку и локацию требования?
300 1463234
>>63213
Ну ты такой подходишь к объекту и говоришь, ща тебя итерировать будем, маня, готовь итератор и вызываешь у него __iter__, который возвращает тебе итерируемый объект.
Гришь ему, показывай, что в карманах, сука, вызывая __next__, смотришь чо там у него лежит. Делаешь так пока все не заберешь, а когда завизжит StopIteration, можешь не ссать, он не наебывает и правда все отдал.
301 1463235
>>63213
Ну ты уточни сначала, ты про генераторы списков или генераторы объектов и прочие yield?
302 1463238
>>63233
Выглядит как уверенный джун.
Про вилку не скажу, но 50+ наверно.
303 1463241
>>63238

На сеньер+ все тоже самое спрашивают.
304 1463242
>>63233
1,4к$ вилка
На бэкэндера, в команду к 2 МЛ-товарищам.
Локация - Минск.
>>63238
Скорее ближе к мидлу, как по мне. Но лычек мне никаких не давали.
>>63241
Yep.
305 1463243
>>63242
На 100 рублей потоки, процессы, архитектурные особенности Redis с намеком на HighLoad, паттерны. Хорошо еще лучшие практики рефакторинга не спрашивают. Они у вас там совсем охуели в край?
306 1463244
>>63242

>вилка


Что тут значит вилка? Сори за тупой вопрос, я новичок

>>62604

>Да я уже третий год работаю


И это ты получается писал, что у тебя 3 года опыта? А сколько до первой работы учил язык?
307 1463245
>>63238

> джун


> собственное API


> многопоточность


> асинхронная обработка



Хуюн. Еще одна ебанутая жертва совкового стиля собеседования.
308 1463246
>>63243
Ну вот так.
Да и нужен им был человек-оркестр, они его получили.
>>63244

> И это ты получается писал, что у тебя 3 года опыта?


Да, ну у меня только месяц как третий год начался. Когда устраивался к ним, было ещё 2,5.

> А сколько до первой работы учил язык?


Пол года примерно, но не очень активно, т.к. работал на днище-работе параллельно.
309 1463247
>>63246
А что из этого нормально ответил?
310 1463248
>>63247
Я там вроде писал что не ответил, всё остальное ответил, хоть как-то.
311 1463249
>>63246

>Пол года примерно, но не очень активно, т.к. работал на днище-работе параллельно.



Я просто планирую полгода активно учить пайтон + английский дотянуть до B2, сейчас у меня +-B1 и потом поехать куда-нибудь работать, например в Минск, Мск, или даже Питер. В общем без разницы особо, главное что бы норм джуном взяли и развиваться дальше.

Получается у меня может получиться? А то в гугле прочитал, что устроиться без опыта работы на самую первую довольно сложно
312 1463251
>>63233
Это паста от того самого легендарного армянина, которую от по 90 долларов всем продаёт?

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

Джун vs сеньёр больше про опыт работы, понимание, как решать реальные проблемы, опыт решения больших задач и т.п.
313 1463256
>>63249

> Я просто планирую полгода активно учить пайтон + английский


Норм план. В Минске роаботы для ждунов не очень много(ищут ждунов с опытом, дегенераты блять). В ДСах думаю Ок всё будет.

> устроиться без опыта работы на самую первую довольно сложно


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

> Это паста от того самого легендарного армянина, которую от по 90 долларов всем продаёт?


Чтоблять?

> от простых вещей до сложных технологий


Всё так. Но никто не говорит тебе идеально знать принцип работы и подкапотность Redisa, к примеру, достаточно работать с ним немного и знать что и как в нём сделать.
314 1463273
>>63256

>В ДСах думаю Ок всё будет.


>искал новую и взяли в рога и копыта



А ты в каком городе это делал? Если в дс, то сколько платили на первой работе?
Просто даже если джуном устроиться там < чем за 50к, то просто по деньгам сложно выжить будет, если конечно не жить в хостеле или комнате
315 1463282
>>63273

> А ты в каком городе это делал?


Минск жи, но я сам отсюда, так что с жильём проблем не было.
Первая зп была - 400$, но я ещё фрилансил.
Были коллеги из других городов, они снимали или квартиру со знакомыми, или комнату.
Я про ДС-цены мало что знаю так что ничего не смогу подсказать.
316 1463293
>>63273
А до того, как устроился работать, как выживал? Почему ты думаешь, что вот столько времени жил, ничего толком не зарабатывая, а потом бац, и сразу средний класс?

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

Всё-таки нельзя сразу рассчитывать на крутой уровень. Только при торговле своими отверстиями малый опыт в плюс. Объективно, ты просто ещё мало чего можешь и умеешь.
317 1463295
>>63245
Это\ что за стиль такой?
318 1463346
>>63293

>бац, и сразу средний класс?


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



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

Просто например:
30к снять квартиру, далеко от центра, 5к на проезды и мелочи, 10к хотя бы на еду. Остается 5к всего от 50.

>>63293

>Всё-таки нельзя сразу рассчитывать на крутой уровень.


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

Для многих зарплата в 50 это то, к чему надо долго стремиться. И они при этом тоже как-то живут. С тем же жильём, есть опции съёма комнаты, съёма квартиры на пару и т.п., помимо жития у родных/родственников.

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

Это сейчас ещё хорошо, сейчас тот же съём куда доступнее, чем 10 лет назад.
320 1463355
>>63245
Совершенно нормальный набор знаний для выпускника. Конечно, без реального коммерческого опыта, но всё-таки с пониманием, как это работает и с опытом "немного потрогать".
321 1463374
Схуяли у меня тест валится?
self.assertRaises(AttributeError, self.model(not_existing_field=True))

if field not in cls._FIELDS:
raise AttributeError
В трейсбеке теста вылетает AttributeError. Собственно он и должен вылетать.
Мне его перехватит надо или что?
322 1463378
>>62196

>Эта картинка - отличный аргумент в пользу винды/мака.


>


Так-то в убунте все хорошо с кириллицей, это у tkl какие-то трудности.

>По теме:


>https://python-scripts.com/question/16952


Но там только вопрос с такой же проблемой, а решений нет. Это шутка юмора такая?
323 1463381
>>62464
>>62393

>Юпитером


Ну, почти, Ipython в консоли. Чудесная штука.
324 1463382
>>63381
Обьясни пожалуйста в двух словах, зачем оно нужно? Я прохожу на курсере курс про питон и математику в нём, там всё делается в айпайтон. До этого я всё делал просто в файле и запускал в ide, пока не могу понять, зачем айпайтон вообще понадобился, это типо просто попытка сделать консоль удобнее?
325 1463383
>>62655
checkio.org
326 1463385
>>63355
Дай угадаю, ты дурачок-аспирант, который тоже дрочит на собесах джунов такой кашей?

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

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

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

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

37 лвл PM
327 1463389
>>63382

>это типо просто попытка сделать консоль удобнее?


Не просто попытка, они этого уже добились. Понимаешь, иногда практически всегда хочется поиграться с кодом в интерактивном режиме, а в Ipython это намного удобнее, чем в стандартном консольном интерфейсе питона, потому что там есть качественное автодополнение, есть подсветка синтаксиса, есть мэйджики, это такие специальные команды, с помощью которых можно делать много полезных вещей, например, измерить время выполнения кода или открыть исходный код функции, вообще много удобных мелочей, можно просто вопрос ставить в конце строки, чтобы получить справку по объекту, вместо "help(object)" просто "object?", история ввода сохраняется между сессиями и по ней удобно искать. Не обязательно использовать Ipython через консоль, многие IDE могут с ним взаимодействовать. Хорошая в общем штука.
328 1463391
>>63382
Удобно, что можно команды выполнять поблочно. В дата саенсе это гигантский плюс, т.к. приходиться работать с достаточно большим количеством данных, и если ты каждый раз будешь писать код в файле, а потом запускать в IDE, то при каждом запуске будут выполняться чтение и предобработка данных, а эти процессы занимают достаточно времени. В IPython или Jupyter ты можешь в одном блоке считать данные (один раз), и дальше уже работать с ними в других блоках, плюс в Jupyer можно помимо кода выводить различные медиаданные.

Да и в обычной разработке IPython тоже часто пригождается: для отладки (выполнение построчно) и для пробы новых инструментов и фич языка. Так как код выполняется поблочно, то ты в любой момент можешь посмотреть состояние всех переменных, заглянуть внутрь объекта (благо Python позволяет).
329 1463392
>>63385
Нет, ты не угадал. У выпускника есть знания, у него или должны были быть какие-то курсы, и/или он сам должен быть как-то разбираться с технологиями.

Я уже очень давно закончил. Но курсы по алгоритмам, по параллельному программированию (треды, процессы, кеши, конвееры, MPI), по базам данным (SQL), и ещё разная хрень, в основном это по выбору курсы.

Это НОРМА. Реально это знания "на потрогать". Если ты интересуешься технологиями, то тоже с чем-нибудь будешь играться.

>>63385

>он сможет самостоятельно не через год или два даже


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

>>63385

>А заявки на знание внутренней архитектуры NoSQL баз вообще наглость в том плане


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

Если ты разобрался с какими-то одними технологиями, то скорее всего разберёшься и с другими. Если ни с чем не разобрался, то велик шанс, что ты просто макака, которой это и не интересно.
330 1463398
>>63392
Все таки чувствую в тебе я тон заносчивый вчерашнего выпускника задрота с опытом года в 3-4, юный падаван.
Вот эти вот должен-должен-должен. Ты явно даже близко до лида не доработал, когда становится уже поебать на то кому кто и что должен и просто сдаешь очередной проект.
331 1463484
>>63238
Начало и середина джунские, конец мидловский, будь я ждуном я бы охуел, будь я мидлом, то обиделся бы из-за первых вопросов, хуйня вообщем
332 1463509
>>63484
Джун vs серьёр не о наборе слов, а о реально опыте.

Можно пилить какие-нибудь сложные проекты на питоне, но никогда не иметь дела с потоками и асинхронностью, с брокерами сообщений и т.п. Твоя компетенция будет в другом.

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

Паста просто о специфичном направлении, по разработке сервисов и работе с сетями.

Но полноценная работа с MQ, (No)SQL обычно уже предусматривает коммерческий опыт в области, где требования выше среднего, всё-таки не совсем джун это.
333 1463513
>>63509
И ты будешь у не совсем джуна спрашивать про создание собственного итератора, list comprehension, декораторы и т.д.? Он бы подумал, что его за дурака держат или собеседующий не понимает на какую вакансию ты пришел.
334 1463538
Что я не так делаю?

Не хочет выдавать теги
Безымянный.png6 Кб, 583x167
335 1463541
>>59370 (OP)
На первых шагах в Байте питона, обосрался на этапе запуска в терминале.
Всё делаю по инструкции, может быть проблема в том, что всё расписано только по XP, висте и 7, а у меня 10?
336 1463543
>>63541
ну так прямой запуск py файла работает же? А так забей хуй - накати сразу pycharm, там пилишь проект, в папке проекта создаёшь py файл, и потом ctrl+shift+f10 первый запуск файла с которым работаешь,shift+f10 последующие
337 1463545
>>63541
Привыкай читать ошибки. No such file or directory, говорит о том, что файла 111.py нет в директории c:\py. Значит у тебя есть следующие варианты решения этой проблемы:
1. переместиться в директорию с файлом 111.py и запустить его оттуда
2. прописать полный путь до файла (например: python c:\<путь>\11.py
3. скопировать файл в папку c:\py (наимеенее предпочтитеьный, т.к. не следует замусоривать папку интерпретатора)
338 1463560
>>61037
та любой кондовский бля гыыыы
спайдер или эта конда которая в браузере
339 1463627
Посоветуйте, как ещё можно закастомить редактор, подсветку синтаксиса. Чёт на картинках все так приятно, а как поставишь, то не особо цепляет глаз.
340 1463661
>>60878
https://docs.djangoproject.com/en/2.2/topics/http/file-uploads/
Подозреваю что у тебя:
А) пропущен аргумент request.FILES при создании экземпляра формы
Б) отсутствует атрибут enctype (<form method="POST" enctype="multipart/form-data">)
341 1463687
Бля, так лениво джангу начинать осваивать - хочется уже наговнокодить то, что можно пощупать, потыкать, кнопочки порисовать.
Стоит ли перед тем как приступать к изучению фреймворков говнячкать свои сайтики, это хоть как то поможет в изучеии погромирования, или такой путь ялвляется пустой тратой времени?
Снимок экрана2019-08-3010-39-47.png40 Кб, 656x438
342 1463695
>>63627
Темы, цветовые схемы. Тысячи их. Выбирай
343 1463756
def fact(x):
x = int(x)
operands=[]
for i in range(1,x+1):
operands.append(i)
result = 1
for z in operands:
result = result * z
return result
wtf.png48 Кб, 853x286
344 1463757
1. Как работает этот ваш импорт в данном случае
2. Что за хуйня с наследованием?
345 1463758
>>63627
Шрифт говно ссаное. Да и подчеркивание как в 2003 ворде
1.png16 Кб, 655x304
346 1463761
>>63545

>прописать полный путь до файла


Так это и есть полный путь, я специально создал пустую папку /py на диске С, там всего один файл 111.py, всё по учебнику.
Сам Питон у меня в другой папке.
347 1463768
>>63757
https://pep8.ru/doc/dive-into-python-3/3.html
Здесь в разделе "путь поиска оператора import" все доступно объясняют, но если кратко, то есть специальные каталоги в которых питон ищет имена (например, django.db в твоем случае - это каталог db в каталоге django, в самом каталоге db ты запрашиваешь каталог models в котором есть файл __init__.py в котором прописанно что тебе нужно передать, чтобы ты мог наклепать свою ебанную очередную говноформу на джанге)

Про наследование по аналогии, в файле который тебе подключит пистон, есть класс, который ты в итоге и наследуешь
348 1463772
>>63768
Плохо понял, но схоронил твой пост. Потом вникну, а пока буду довольствоваться магией.
пасиб
image.png83 Кб, 1033x488
349 1463774
Что почитать по Питону, если я сначала начал писать код, а теперь решил его изучить и научиться нормально кодить?

А то я думаю что от моего кода у любого питониста кровь из глаз потечет.
350 1463777
>>63774
У меня то глаза уже давно вытекли, а вот как ты с тремя цветами: белым, серым и говнооранжевым сидишь, я не понимаю.
351 1463779
>>63761
Может кириллица в команде? Перепиши все заново.
352 1463789
>>63779
Я уже загрустил, пока всё переписывал/переустанавливал. не работает.
Интересная штука этот питон, но такой тупняк на ровном месте сильно дизморалит.
Может это какой-то троллинг ньюфагов или я староват?
изображение.png10 Кб, 979x512
353 1463802
>>63789
Ты какой-то еблан.
354 1463810
>>63789
Расширение где? 111 и 111.py - это разные файлы.
355 1463811
>>63810
123 вернее.
356 1463834
>>63789
>>63802
Фу блядь, блюю с вашего шиндоуса.
357 1463847
>>63834
Так а чё ты блюешь то?
4.png7 Кб, 713x151
358 1463894
>>63802
Не отрицаю.
>>63810
Вот же мои скрины тоже >>63761 >>63541
В общем, всё заработало. Возможно, из-за переустановки питона на 64 вместо 32, которые офф сайт мне дефолтно выдавал.
Всем спасибо.
359 1463917
>>63391
>>63389
Понял, спасибо
360 1463921
>>63847
"Терминал" уродский пиздец. Неприятно смотреть.
изображение.png527 Кб, 1104x586
361 1463925
>>63921
А смысл в винде вабще терминалом пользоваться? Это же не линукс, чтоб пердолиться и 24/7 в терминал глядеть. я терминал запускаю в лучшем случае раз в месяц. А для желающих попердолиться - есть как бы и альтернативы, только нахуя?
362 1463928
>>63925
В терминале быстрее, чем мышкой кликать.
363 1463931
>>63928

>чем мышкой кликать.


Это только в том случае, если интерфейс пилили из говна через жопу, или если интерфейса для нужных вещей как в линупсе просто нету а его там нету, т.к. пердолить в линупсе надо абсолютно всё. В целом конечно глупо отрицать, что интерфейсом работать в 10 раз быстрее. Например нажать shift+f10 в окне pycharm - в разы быстрее чем корябать в терминале 'python c:\py\123.py'.
364 1463944
Вопрос по многопроцессорности.

Сдедал функцию, которая считает от 0 до N.
Засек время необходимо для ее работы.
И засек сколько времени уходит при использовании M процессов, запускаемых через фор, при подсчете от 0 до N/M. В противоречие ожиданиям времени ушло чуть больше чем при варианте без использования процессов.
Так же, использовал Pool, результат примерно такой же.
Вроде бы, при увеличении N, в какой-то момент процессы немного обгоняют линейный подсчет. Наверное, при гигантских N разница будет ощутима. Однако, результат при необходимом мне N печалит.
Что я делаю не так? Или это норма?
365 1463952
>>63925
Я на линуксе сижу и редко пользуюсь терминалом.
Ну как редко, есть куча самописных скриптов, которые предствлены для линукса, венды и мака. Запускаю их соответственно через терминал и когда это делаю, получаю эстетическое удовольствие. Можно и вкладки открыть в терминале и много чего.
Твои оправдания, виндовс-девочка?
366 1463953
>>63944
Графики нарисуй, тогда поговорим.
изображение.png40 Кб, 1360x230
367 1463957
>>63952
ну тут персонаж из лайнус-треда пожаловал видимо, который без терминала жить не может. Спорить не буду, и на линупсе можно без этого обойтись но таки сложно
369 1463966
>>63962
Сам код(в комментариях вариант запуска процессов через for, а не Pool):

import time
import os
from multiprocessing import Process, Pool

def t(nmax=25):
t1 = time.time()
n_end = 0
for n in range(nmax+1):
print(n)
n_end = n

t2 = time.time()
print('time', (t2-t1), 'id_proc', os.getpid(), 'n_end', n_end, '\n')

if __name__ == '__main__':
procs = []
numbers = []

for i in range(5):
numbers.append(10000)

t1 = time.time()

pool = Pool(processes=5)
print(pool.map(t, numbers))
"""
for i in range(5):
# proc = Process(target=t, args=(4000,))
proc = Process(target=t, args=(10000,))
procs.append(proc)
proc.start()

for proc in procs:
proc.join()
"""

t2 = time.time()
print('end_time', t2-t1)
369 1463966
>>63962
Сам код(в комментариях вариант запуска процессов через for, а не Pool):

import time
import os
from multiprocessing import Process, Pool

def t(nmax=25):
t1 = time.time()
n_end = 0
for n in range(nmax+1):
print(n)
n_end = n

t2 = time.time()
print('time', (t2-t1), 'id_proc', os.getpid(), 'n_end', n_end, '\n')

if __name__ == '__main__':
procs = []
numbers = []

for i in range(5):
numbers.append(10000)

t1 = time.time()

pool = Pool(processes=5)
print(pool.map(t, numbers))
"""
for i in range(5):
# proc = Process(target=t, args=(4000,))
proc = Process(target=t, args=(10000,))
procs.append(proc)
proc.start()

for proc in procs:
proc.join()
"""

t2 = time.time()
print('end_time', t2-t1)
15278587615460.png267 Кб, 637x360
370 1464016
>>63538
Помогите
371 1464026
>>63774
Да все не так плохо, хватит PEP'а стандарт оформления кода
372 1464035
Хей, ктонить шарит в киви? Такая проблема: dragLabel работает в такой конструкции: FloatLayout: DragLabel, но если layout поместить на что-нить, например так: Screen: FloatLayout: DragLabel то уже драгать нельзя. Чем решать? Спрашиваю тут потому как ленюсь регаться на stackexchange
373 1464037
>>64016
Ну в том, что ты выводишь храниться не HTML код страницы, а ответ с кодом 200 ОК
Это как минимум говорит о том, что ты запрашиваешь неверный метод
Разбираться лень, на секунду глянул в доку по либе, попробуй .data()
374 1464046
Вывести на экран все элементы множества A, которых нет в множестве B.

A = set('bqlpzlkwehrlulsdhfliuywemrlkjhsdlfjhlzxcovt')
B = set('zmxcvnboaiyerjhbziuxdytvasenbriutsdvinjhgik')
for x in A:
__if x not in B:
____print(x)

Сделал так, вроде верно все выводит, но меня почему-то не покидает ощущение, что я сделал что-то не так.
Правильно решил задачу или нет, пацаны?
375 1464048
>>64016
если тебе нужно стянуть HTML со страницы, то могу подсказать решение через bs4
376 1464050
>>64046
A.difference(B)
377 1464051
>>64046

> set.difference(other, ...) или set - other - ... - множество из всех элементов set, не принадлежащие ни одному из other.



А тебе только через цикл допускается или методы множеств тоже можно юзать?
А так вроде правильно.
123.PNG7 Кб, 583x174
378 1464056
>>64050
Задача так выглядит пикрелейтед

Мне твою функцию в цикл пихать? Походу я все правильно сделал, шиза накрывает бля
379 1464058
>>64056
если обязательно использовать итератор, то все верно, если можно без него, то встроенный метод
380 1464059
>>64058
Спасибо.
381 1464069
>>64048

>если тебе нужно стянуть HTML со страницы, то могу подсказать решение через bs4



Я разные методы изучаю, и просто так и не могу понять почему он не хочет выдавать теги. Уже крутился с методами и так и сяк
382 1464072
>>64069
здесь >>64037 объяснил, ты этим методом получаешь код ответа, а не сами данные
383 1464147
>>63931
Shift + f10 может и быстрее, но если ты захочешь прописать какие-то дополнительные параметры к запуску, добавить переменные окружения, перенаправить вывод скрипта на вход другой утилите (грепнуть например), то в графическом интерфейсе это займет гораздо больше времени. Более того, часто графический интерфейс не предоставляет всех возможностей, (подумай, например, почему люди пользуются консольным клиентом гита, а не графическим, который используется только для визуализации).

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

Да и вообще, если ты изучаешь питон для бэкенд-разработки, то пора начинать учиться пользоваться терминалом, т.к. 99% процентов машин, на которых будут вертеться твои сайты, будут работать именно на линуксе, а единственным способом взаимодействия с ними будет ssh
384 1464154
>>63944
Скинь код там ясно будет. Но вообще результат довольно ожидаемый: на создание процесса тратится довольно много времени (в питоне 3.8 обещают сделать быстрее), т.к. процесс - это запущенная программа, со своим адрессным пространством, стеком, набором файловых дескрипторов, со своими регистрами и т.д. То есть при создании нового процесса создается полная копия процесса родителя (там, конечно, всё немного хитрее, но суть от этого не меняется). Плюс есть ещё большие накладные расходы из-за того, что приходится делать системный вызов. Поэтому процессы будут выигрывать только на долгих дистанциях (то есть, когда выполнение задачи занимает много времени). Также бесполезно создавать процессов больше, чем число потоков твоего процессора (по крайней мере для cpu-bound задач, а для других процессы и не используют обычно)
385 1464159
>>64147
Я умею и не брезгую пользоваться терминалом, но я же не дурак лишний раз использовать текстовое говно вместо няшного гуи-интерфейса, и кукарекать о том что окно терминала слишком чёрное.
386 1464166
>>63966
Ну да у тебя функция слишком быстро выполняется, создание процесса займет больше времени. Во-первых убери вывод в консоль из функции t, во-вторых увеличь аргумент раз в 10 и тогда уже прирост производительности будет очевиден
387 1464167
Пацаны, в чём суть декораторов, нахуй они нужны? Никак не врублюсь в какой ситуации это можно применить в коде и нахуя
388 1464171
>>64167
Я просто чёто не могу понять - нахуя мне городить конструкцию на пик.1, вместо конструкции на пик.2? Чтобы применить декоратор - его надо в виде '@декоратор' перед объявлением функции заюзать? Тоесть в коде динамически это селать невозможно?
изображение.png10 Кб, 424x334
389 1464173
>>64167
>>64171
О бля, понял что можно использовать так, что бы целиком не модифицировать функцию, но всё-равно выглядит как юзелес хуета - проще и красивее имхо условия внутри функции прописать, если что-то поменять надо. А конструкция с @декоратор перед объявлением функции - мне до сих пор непонятна и кажется максимум юзелесс хуетой. Поправьте, если не прав.
390 1464179
>>64173
ты не прав
391 1464180
>>64179
ну поясни, если можно с примером
392 1464183
>>64173
Свой декоратор полезен, когда появляется много функций, одинаковых в начале и/или в конце (с одинаковым инфраструктурным кодом).
Например, как-то вынес в декоратор логику, чтобы функция запускалась не в основном потоке.
393 1464184
>>64183
ну я правильно понял, что юзабельная для использования конструкция: декоратор(функция)(значения), а не @декоратор \ def функция?
394 1464186
>>64184
Нет, не правильно.
395 1464187
>>64173
И ты будешь каждый раз при вызове функции юзать функцию обертку вместо того, что бы один указать ее в объявлении
396 1464190
>>64184
Когда у тебя будет 20 функций, одинаковым кодом вначале строк на 20. Юзабельнее проще и красивее будет вынести этот код в декоратор. А отдекорированные им функции использовать по просто их именам.

В простых скриптах свои декораторы не нужны, конечно.
397 1464194
>>64190
Вот это нормально объяснил. Хотя даже тут не совсем понятно, что мешает просто из самой функции вызвать другую функцию с нужным кодом, получить от неё вводные данные и работать дальше, зачем именно декорировать
398 1464198
>>64194
Код получается лаконичнее и читабельнее.
И да, понимание этого приходит с опытом.
399 1464201
>>64198
Накидай пожалуйста простенький пример, чтобы две функции например использовали один и тот же декоратор для замены одинакового куска кода
400 1464202
>>64201
Но в простых скриптах свои декораторы и не нужны.
401 1464203
>>64202
да я понял, мне интересно эта конструкция должна выглядеть в сложном скрипте - а то в учебниках объясняется для простых скриптов.
wallhaven-zmm72y.jpg478 Кб, 1037x1021
402 1464204
Столкнулся с проблемой, пишу консольную утилиту и дошел до написания документации.
На данный момент это 3 вызова print() в самом коде, при вызове утилиты с опцией --help
Как грамотнее реализовать доку? Вынести текст в отдельный файл и вызывать его засовывая в print построчно? Или есть какие-то техники, о которых я не знаю?
Не столь важно, но есть примеры хорошего стиле обработки опций? У меня это сравнение входных данных с определенной строкой, что мне кажется довольно уебанским
403 1464205
>>64167
Чтобы модифицировать поведение функций, не изменяя саму эту функцию. Может, эту функцию даже и не ты писал.
В модуле functools есть декаратор с lru_cache, он позволяет кешировать результаты выполнения функций, то есть, если будешь вызывать декорированную функцию несколько раз с одними и теми же параметрами, то вычисляться функция будет только в первый раз, а все остальное время будет извлекаться кэшированное значение, это повышает производительность.
Для классов есть декораторы property, staticmethod, classmethod которые позволяют создавать свойства, статические методы.
В библиотеках и фреймворках любят декораторы, вот, например, во Flask декораторами связывают url адреса страниц и функции, которые эти страницы генерируют, или в Numba декораторами помечают функции, которые надо ускорить.
Декораторы - это здорово, потому что ты одной строчкой добавляешь полезную функциональность.
404 1464213
>>64203
Если ты только читаешь учебник, то декораторы тебе ещё не скоро понадобятся. Просто знай, что они есть. Это способ делать сложный код проще. В чем-то аналог макросов в C/C++.
Потом ты столкнёшься с декораторами при использовании сторонних либ (тот же фласк, например).
Потом ты будешь читать исходники этих либ, чтоб понять, как же работают.
Потом ты будешь рефакторить свой разросшийся код, и поймёшь, что тебе тут нужны свои декораторы.
405 1464218
>>64204
Для консольных утилиток почти всегда лучше держать доки в коде.
Для обработки опций есть либы, начни например со штатной optparse.
406 1464223
>>64213
А можно по подробнее про аналогию с макросами?
В питоне же есть as.
407 1464225
>>64223
as не позволяет заменять кусок кода одним словом.
подробнее — гугли.
408 1464255
>>64173
Конструкция с декоратором
@deco
def func(par):
pass

полностью эквивалентна
def func(par):
pass
func = deco(func)

Просто чуть более и компактная запись. С декораторами просто немного нагляднее.
409 1464257
>>64255
но ведь вторую конструкцию можно использовать в любой момент - тоесть с ней можно пользовать как оригинальную функцию, так и отдекорированую. А если использовать конструкцию с @deco - то функция будет отдекарирована безвозвратно, не?
410 1464262
>>64167
Декораторы - это в первую очередь принцип оборачивания исходной функции в обёртку

func = deco(func)

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

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

Но в каких-то случаях могут быть очень полезны. Кеши, логгеры, контроль возвращаемых и передаваемых значений, вынос какого-то общъего обёрточного функционала в декоратор. Причём в таких случаях именно в таком синтаксисе обычно очень наглядно становится.
411 1464267
>>64257
Да, всё верно. Поэтому декораторы не нужно использовать для всего подряд. Но где-то они реально удобны.
412 1464291
>>63758
А как лучше сделать? Чего добавить, чего убрать. Покажи как у тебя, пожалуйста.
413 1464308
>>64180
Декораторы позволяют следующее:
1. добавить к функции свою логику, которая будет выполняться при импорте этой функции (импорте модуля с функцией) - полезно для добавления функции в какой-нибудь реестр, например декоратор app.route во фласке
2. добавить к функции свою логику, которая будет выполняться перед исполнением самой функции (при этом в этой логике будут доступны аргументы, переданные на вход функции)
3. добавить к функции свою логику, которая будет выполняться после исполнения самой функции (при этом в этой логике будут достпны и аргументы функции и её возвращаемое значение)
4. можно вообще подменить функцию с помощью декоратора

Как видишь, область применения декораторов безграничная. Например, ты можешь написать декоратор, который будет засекать время выполнения самой функции или декоратор, который будет логировать входные и выходные значения или даже кэшировать (такой декоратор уже есть - functools.lru_cache).
Можно написать декоратор, который будет перед выполнением функции объявлять транзакцию, а в конце коммитить её (такой декоратор есть в джанго)
При этом декоратор может быть как универсальным, подходящим любой функции (с помощью args и *kwargs), так и специализированным, который учитывает входные данные.
Можешь ещё глянуть декоратор functools.singledispatch, благодоря которому можно заставить питон изображать перегрузку функции по типу входного аргумента.

Более того, декорировать можно не только функции, но и классы. При сам декоратор также может являться классом. Благодоря этому открываются ещё более широкие возможности.
414 1464330
>>64180
Да, кстати, вот очень годная лекция про метапрограммирование
Я скинул с тайм-кодом на начало объяснения декораторов, но советую посмотреть полностью очень хорошие подача и материал.
https://youtu.be/bt6kU1kuHWA?t=2340
415 1464333
>>64308
>>64330
Спасибо за информацию
416 1464334
>>64308

>Благодоря этому открываются ещё более широкие возможности.


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

Реально же смысл такой.
Пусть есть функции вида
def g1()
.... some code 1
f1()
some code 2

def g2():
.... some code 1
f2()
some code 2

при этом код some code 1 и some code 2 дублируются. Можно просто вынести этот дублирующийся код в deco, и реализовывать только уникальный функционал в функциях f1, f2
и в итоге год будет
g1 = deco(f1)
g2 = deco(f2)

таким образом мы уходим от дублирующегося кода и получаем большую гибкость.

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

Подчёркиваю, что это идея функции-оболочки, сами декораторы лишь синтаксический сахар.
417 1464389
>>64204
а что мешает циклом сделать?
for i in range(3): print("")
print("help")
а case самое простое опять же через импут и циклы
418 1464390
>>64389
аа вьебал че ты хочешь - чтобы с новой строки писать просто в строку добавляешь \n, так одним принтом все будет
419 1464402
Кто что скажет на счет платных онлайн курсов, есть ли смысл или тоже самое из книг можно узнать и в интернете найти?
Аноним 420 1464408
421 1464451
Кто в tkinter шарит? Мне надо разместить в сетке 5х14 70 виджетов Entry, чтобы по событию выхода курсора из текстового поля все эти Entry разом посылали свое содержимое в двумерный список типа
list [
[ent01, ent02, ent03, ent04, ent05],
[ent11, ent12, ent13, ent14, ent15], ...
]
Причем пустые поля должны посылать нули. Подскажите плз, как это реализовать.
422 1464518
Когда пользователь наследуется от класса надо звать метод класса-потомка (очевидно полиморфная логика - в родителе). Как это сделать? С декоратором класса? Но декоратор класса жи нихуя не вызовет тупо при наследовании.
423 1464553
>>64518
У классов есть __new__, который вызывается перед __init__ и ответственен за создание объекта, есть __init_subclass__, который вызывается всякий раз при создании класса-наследника, а еще для сложных и необычных случаев есть темная магия метаклассов. Честно говоря, я нихера не понял, что тебе нужно, но, похоже, ты хочешь вмешаться в стандартные механизмы создания и наследования классов.
424 1464644
>>59370 (OP)
Как в одну строку реализовать такое: возвращаем значение по ключу в словаре если такой ключ есть в словаре иначе возвращаем сам ключ.
425 1464646
>>64644

>иначе возвращаем сам ключ.


Так ключа нет в словаре, что возвращать?
426 1464647
>>64646
Сам ключ
sage 427 1464649
>>64644
dictionary = {}
dictioinary.get('zalupa', 'zalupa') # == 'zalupa'
428 1464650
>>64644
dict[key] ? dict[key] : key

это правда джс но в питоне это примерно так же
429 1464651
>>64650
спс что надо
dict.get(i,i)
430 1464655
>>64651
var = 'c'
x = {'a':1, 'b':2}
print(x['b']) if var in x else print(var)
431 1464690
>>64553
Merci.
__init_subclass__ - то что надо
изображение.png9 Кб, 368x374
432 1464709
>>64334

> Можно просто вынести этот дублирующийся код в deco, и реализовывать только уникальный функционал в функциях f1, f2


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

>>64330
Видео сейчас глянул, поясняет всё хорошо, стало понятнее как всё работает. Но область применения по-прежнему под вопросом - из адекватного для меня сейчас видится декорирование чужих функций из модулей например...
433 1464710
Всем привет!
Есть пару вопросов по telegram bot api.
1) Как грамотно обойти блокировку? Тк у меня на компе стоит vpn, то проблем как таковых не возникает.
До тех пор пока я не захочу запустить его бота без vpn.
Документацию чекал - не вышло. Мб что не так делал?
2) Я реально не понимаю заморочек с chat_id и message_id!!
Когда нужно отправить сообщение пользователю бота, или в канал, где бот участник - окей.
Но что если я хочу, допустим, сделать бота-поисковика по рэндомному каналу??
Как я могу получить id этого канала или id сообщений? Есть что почитать по этому поводу?

Заранее спасибо за адекватные ответы!
Снимок.PNG11 Кб, 286x507
434 1464719
аноны поясните почему он блять выводит числа с 0 а не с 7 блять че за хуйня нюфаня не понимает.
>>62775 - кун
изображение.png12 Кб, 285x507
435 1464723
>>64719
Потому что ты его просишь распечатать числа от 0 до 10.
Ты какой-то неадекватный, сколько тебе лет?
436 1464730
>>64723
25 вот вчера настало...
спасибо анон разобрался
437 1464731
>>64730
end = '\n' - идёт по дефолту, и указывать врчную не надо!
438 1464737
>>64723
А как-нибудь сделать, чтобы а было не 0, а числом которое пришло с инпута можно?

Мимо ньуб
439 1464738
>>64737
Мне кажется пограмирование - не твоё
a = input('введите А')
b = input('введите Б')
for i in range(a, b+1): #для i в диапазоне(от a до b+1)
print(i)
440 1464748
>>64709

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


А, ну да, кеширование забыл - тут вабще без вопросов - тоесть если надо иметь доступ и к вводу и к выводу функции - декоратор незаменим
441 1464750
>>64738

>программирование не твое


с паскалем у меня в for никаких траблов не было
>>64737 - этот анон не я
>>62775 - кун
442 1464753
>>64748
Отчего ж незаменим?
Кешируй внутри функции, у тебя там есть и ввод и вывод.
сложно.webm1 Мб, webm,
640x360, 0:12
443 1464758
>>64753
Ну получается что с декоратором можно присрать кеширование в одну строку, а без него придётся расписывать if else конструкцию внутри функции, и если функций много - придётся делать это много раз... С другой стороны для разных функций должен быть разный кеш, т.к. операции разные, и одним декоратором обойтись сложна... В общем хз, сложна, нипанятна
444 1464761
>>64758

> одним декоратором обойтись сложна


Значит тебе рано еще об этом думать. Поиграй в замыкания, во вложенные функции, тогда все поймешь.
445 1464764
>>64761
Не, ну если одна функция делает умножение, а вторая функция делает деления - один декоратор-кеш к ним не присрёшь. Тоесть тут должны быть разные функции делающие одно и то же просто под разным углом, чтобы их можно было отдекорировать одним хеширующим декоратором, или расписывать кучу условий в декораторе - что так же не айс. Ну мне пока так понимается
446 1464770
>>64758
Карина пися богиня жамкать чепубель! Андрюха это ее дядя они не ебутся
Секретчики долбоебы, особенно эмпати и черкаш
меня из конфы кикнули, суки, но я молчуном был
447 1464774
>>64750
Да у тебя и не должно быть проблем, просто запомни, как работает range
range(начальный элемент(по дефолту 0), конечный элемент(не включительно), шаг(по дефолту 1)
448 1464779
>>59748
Яблоко это строковая переменная, следовательно должна быть помещена в кавычки. В противном случае python воспринимает это как переменную и сообщает тебе что переменная not defined.
449 1464782
>>64764

> один декоратор-кеш к ним не присрёшь


> или расписывать кучу условий в декораторе


Какие условия? Где? http://ideone.com/q6rhHN
снимок 228.PNG5 Кб, 471x112
450 1464790
аноны почему блять не переходит на другой столбец нахуй
>>64750 - кун
451 1464801
>>64790
Потому что нет никаких столбцов блять, построчный вывод ёбаныйрот
452 1464809

> Мне кажется пограмирование - не твоё


Рейндж понятно, будет равен б, пусть б равно 100. Теперь я пишу
а = 50
б = 101
for a in range(б):
print(a)

Бля, сейчас проверил, действительно начинается с нуля. А если я с 50 хочу, как сделать? В паскале и плюсах работало иначе.
453 1464810
>>64790
Слушай, давай так, расскажи мне в ответ на этот пост, что делают параметры sep и end, и какие у них значения по умолчанию. Только погугли немного, чтобы никакую хуйню не написать.
изображение.png17 Кб, 570x760
454 1464813
>>64790
Как то так ты можешь запилить столбцы сам. Скачай книжку AByteofPython 2.0 на русском и сиди читай, выполняй все задания. Она тебе даст базу по пайтону. Ты сейчас занимаешься какой-то хуитой непонятно откуда высратой, да ещё и не слушаешь никого. Тебе уже говорили что конструкция хуйня, тебе уже говорили что 'end' по дефолту равен '\n' и указывать этого вручную не надо, зачем ты это делаешь?
455 1464822
>>64813
Пиздос ты жёсткий конечно, а если три столбца то три списка лишних надо? Сейчас он погуглит и изменит аргументы print'ов так, что всё будет работать
456 1464834
>>64710
Отвечу по первой части. Вариант хостить вне РФ, как поступил я. Другой вариант использовать зарубежные прокси.
По второму вопросу могу ошибаться, но вроде как он (бот и апи) не умеет в принципе.
457 1464850
Пиздец. Глядя на таких вкатывальщиков, за своё будущее можно быть спокойным. Без работы не останусь.
458 1464873
Так. У меня ОГРОМНАЯ проблема с пониманием ООП. Делаю задачи, но не вкуриваю, как обращаться к методам класса. Да и как их вообще писать. В книгах сложно написано. Можете погуглить за меня дать како-нибудь внятной инфы?
459 1464900
Прохожу курс pyneng (python для сетевых инженеров) и чёт не могу вкурить задание 4.4.

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

command1 = 'switchport trunk allowed vlan 1,3,10,20,30,100'
command2 = 'switchport trunk allowed vlan 1,3,100,200,300'

Засплитил я строки, в отдельном индексе у меня строка с вланами. Далее я опять засплитил эту строку и теперь у меня список с вланами в виде строки.

В условии говорится, что нужно вывести в виде [1,3,100], т.е. чтобы элементы были не строкой, а числом.

Проблема в том, что нужно использовать минимальное количество средств, а точнее те, что были в курсе (строковые методы, .join, .append, .extend, .pop, . remove, .index, .insert, .sort, .add, .discard, .clear, .union)

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

https://pastebin.com/aCQ4cPVm

Спасибо.
460 1464909
>>64900
Нужно целое число, сделай его целым числом. Есть функция int, она пытается превратить свой аргумент в целое число, есть map, она применяет функцию к каждому элементу коллекции, есть функция sorted, она принимает коллекцию и возвращает отсортированный список.
просто используй
vlans = sorted(map(int, set(vlan1) & set(vlan2)))
вместо
vlans = list(set(vlan1) & set(vlan2))
изображение.png26 Кб, 694x800
461 1464911
>>64822
Не, ну я косякнул конечно запилив списки слишком громоздким циклом, можно более просто - перегнав range в list или запилить генератором списка.
Но в остальном, поясни, что ты имеешь ввиду? Как тут можно это сделать обыграв только аргументы принтов? Мне на ум приходит только способ с итератором range, чтобы потом можно было элементы одного диапазона перебирать поочерёдно в цикле перебирающим элементы другого диапазона - вариант 3 на пикрил - но это сложновато для ньюфага его уровня - на его уровне он сможет понять максимум варианты с перебором элементов двух других списков в цикле for или while, и тут уже аргументы принта мало роляют, только формат строки вывода.
В общем если есть более простой вариант - предложи
Мимо-так-же-ньюфаг
462 1464933
>>64909
Спасибо большое за ответ, map действительно выручает. Дело в том, что в условиях задачи указано использовать только пройденные в курсе инструменты. Можно было бы map заменить на цикл for, но даже его ещё не прошли.

Есть ещё способ как это реализовать? Или это опечатка в задаче?
463 1464937
>>64933
Нужен подробный список изученного.
464 1464939
>>64911
ideone.com/jdxO1A
465 1464941
>>64937
https://pyneng.readthedocs.io/ru/latest/book/04_data_structures/index.html

Все, начиная от чисел и кончая множествами. Там ещё в каждом пункте есть подпункт, например, методы.

Почти завершил смотреть лекцию по множествам, но тут загвоздка не в них скорее всего...
466 1464943
>>64939
Но у тебя вышла полная хуита, посмотри на вывод результата - это не два диапазона в две колонки нихуя
467 1464947
>>64943
Я его >>64790 код исправил, какие тебе два диапазона нужны? Ты можешь что угодно так вывести, не заделывая это в два списка. Хотя и списки можно, корочк, объясни, чего тебе надо,
468 1464953
>>64947
Я так понял, что ему надо числа с а по б и числа с ц по д вывести в два столбца.
469 1464954
>>64710
БампВопросу.
470 1464955
>>64953
ideone.com/Xm9YLo
Некрасиво, зато без всякой памяти лишней и очень по простому

ideone.com/f0qblj
С памятью, но красивее.

Оба варианта, в отличие от твоих, не зависят от длины последовательностей. Мб какой-то библиотекой делается в одну строчку, хз.
471 1464961
>>64955
Хотя я вот сейчас отредачил и убрал флаги из первого, которые там лишние были и получилось красиво
472 1464967
>>64955
А чем тебе мои конструкции не нравятся?
>>64911
range занимает минимум памяти (вариант 3, без списков), и код супер-простой. Можно добавить небольшое условие уравнивающее длину списков пробелами, просто цели такой не стояло
473 1464974
>>64941
Ну так там в дополнительных материалах циклами пользуются, лол. В любом случае без цикла не выйдет перебрать элементы ИМХО.
Тоесть можно так:

vlans = set(vlan1) & set(vlan2)
vlansint = []
for i in vlans:
vlansint.append(int(i))
print(vlansint)

или так:

vlans = set(vlan1) & set(vlan2)
vlansint = [int(i) for i in vlans]
print(vlansint)
474 1464976
>>64967
Ну там из-за for не уравнишь, а так способ нормальный, нужно просто два итера вести в while. Это по сути там внутри мой первый вариант, только не велосипедный.
изображение.png20 Кб, 644x892
475 1464981
>>64976
Да не, там можно всего пару условий добавить, и скомпенсировать уменьшение ширины столбца при переходе от однозначных чисел к двухзначным, и разную длинну списков, лол
476 1464986
>>64981
1. Оно не будет, как я вижу, работать, если второй промежуток намного больше первого, там цикл нужен, а не условие, во втором цикле тоже будет трай экцепт, иначе словишь ошибку пиздец ты даже не можешь разные диапазоны погонять, прежде чем постить
2. Подравниваешь ты хуево, только на один знак, дай питону табуляцию и он сам подравняет знака на три
3. Выглядит у тебя как-то хуево.
Вот как можно ideone.com/7APYXI
Но просто с циферками тут, конечно, немного проще и удобнее
101.png39 Кб, 622x781
477 1464993
>>64981
Ребят, пользуйтесь стандартными инструментами из itertools и форматированием.
https://ideone.com/ymSo38
478 1465017
>>64974
Дай линк, пожалуйста. Я чёт не нашел в четвертой главе это, мб плохо искал.
479 1465039
>>64993
Да с итертулс всё понятно - это был своеобразный трайхард на тему вывести в 2 столбца без списков, лол.

>>65017
В дополнительные материалы перейди - more on sets, more on dicts - везде используют циклы
480 1465041
>>64900
Ты невнимательно прочитал условие. Точнее, ты смешал задачу 4.3 и 4.4.

В задаче 4.4 не требуется получать список vlan из строки, там тебе уже дан список, и подразумевается, что это числа, а не строки.

Всё проще, не придумывай себе задачи, которые нельзя решить.
481 1465159
>>64993
А без затрат по памяти итертулс может это сделать
482 1465160
483 1465331
>>65159
Модуль itertools реализован на C и продумано.

zip_longest работает с итератерами и не создаёт в памяти лишних промежуточных массивов, перерасхода памяти нет.
484 1465344
>>65331
Он хотел сказать - что сами списки, с которыми работает инетртулс - занимают место в памяти.
485 1465358
>>65344
А зачем там вообще преобразование в списки, если itertools нормально с итераторами работает?
486 1465383
>>65358
Для наглядности. Можно подставить просто итераторы, но это смотрится чаще как непонятный синтетический пример. Обычно такие вещи нужны, когда ты работаешь с готовыми списками.
487 1465440
Постов сегодня совсем мало, питонисты решили устроить выходной сегодня? Я вот посмотрел "Красное солнце" и очень доволен.
488 1465458
>>65440
Я сегодня ходил дневник выбирать
489 1465464
>>65458
Ты вроде бы взрослый мужик, детей в школу отправляешь, а всё равно распиздяй. Это ответственный софт можно кодить в ночь перед дедлайном, а вот тетрадки детям надо заранее покупать. А не в воскресенье 1 сентября. Тьфу на тебя. Уходи в тред к жавасктиптерам.
490 1465466
>>65440
Отмечали сегодня с семьёй поступление младшего брата, мне стало грустно и я занимался весь вечер тем, чем и вместо учёбы в его возрасте играл в линейку на первом попавшемся серваке с интерлюдом
491 1465487
>>64710
ЛастБамп!
492 1465499
>>65440
Посмотрел Джона Уика третьего. Всё такой же бред, но смотрится хорошо.
493 1465500
>>65499
Анон, ну это классический боевичёк, без навязанных штампов, тупорылых шуток, сложного сюжета. Киану просто берёт и делает - в этом прикол этого фильма.
494 1465626
>>65500
Да я без претензий, просто убил два часа. а мог бы код писать
495 1465640
Хай, подскажите ньюфагу как поменять в джанге отдаваемый статус с 500 на кастомный, прописанный в экспешенах. https://repl.it/repls/PutridDarkblueVolume
496 1465641
>>63234
Отличное описание, все понятно и хорошо запоминается, вот бы официальная дока была такой же.
497 1465700
Почему? почему он не может импортировать?
498 1465705
Есть серьезный вопрос, очень люблю математику, а именно дифференциальное и интегральное исчисления. Есть ли какие то углубленные применение этих мат знаний в python, а именно тесное взаимодействие. Просто часто слышу что типа в программировании математику нужно знать на минималках
499 1465711
>>65705
Я ньюфаг, но слышал, что именно пайтон использют в математических целях. И слышал, что анаконда для этого подходит
500 1465720
>>65700
Так зайди в файл, может там нет url?
502 1465732
>>65720
>>65729
И почему оно пишет ошибку на второй линии, в то время как во второй линии никакого url не было импортировано - оно в третьей, и по факту выводит ошибку на третьей же
503 1465758
Ну что же вы, джангисты
504 1465841
>>65700
>>65729
>>65732
>>65758
А забейте, я походу по мурзилке которая строится на версии до 1.9 пытаюсь вкатиться.
zarabotalo.jpg44 Кб, 581x466
505 1465883
Всего то 2 часа пердолинья по могаческим рунам джанги, блядь, и готово, нахуй. Три туплес ис нот суппортед используй джва туплес, блядь, охуеть нахуй.
Используйте гугл, не пытайтесь разбираться в джанге на начальной стадии изучения, особенно если учите эту поебень по устаревшим мурзилкам.

>Начиная с Django 1.9, старый способ включения URL-адресов администратора устарел. Вы должны передать admin.site.urls непосредственно в url(), без вызова include():

506 1465892
>>65883
Никогда не понимал людей, которые учат что-то по несоответствующей документации, тратят на попытки понять, что не работает огромные количество нервов, причем винят не себя, а сложнойсть фреймворка. Пиздец. Хорошо, что таких долбоебов максимум на стажера возьмут, а потом нахуй выкинут.
507 1465903
>>65892
Ну что непонятного? Кто не может в англ мануалы, тот обречен подъедать объедки из мусорки переводчиков
508 1465920
>>65729
еще и Slime пидорский. хуже слайма только Microsoft Studio
509 1465922
>>65920
сублим тоже, ну пидоское иде
511 1466704
>>63802
Друг, а ты питон учишь что ли?
512 1466705
513 1466792
>>66704
>>66705
Нет, чекаю нравится - не нравится эта ваше погромирование.
514 1467698
Hi 2ch, такой трабл, я когда сохраняю в Atom (ctrl+S) выскакивает окно консоли, и когда запускаю (f6) тоже выскакивает пустое окно консоли, а потом консоль с выполняемой программой. Что за дичь пацаны?
515 1481644
Анончики, это правда, что в пайтоне для передачи аргумента по ссылке надо заворачивать переменную в мьютабл тип вроде списка? Что за костыль обоссаный, есть более вменяемый способ?
516 1481865
>>81644
Во-первых, в питоне все - ссылки, в том числе и аргументы, но сама ссылка передается по значению. Во-вторых, глупо хотеть передавать по ссылке что-то иммутабельное, когда ты можешь просто вернуть новое значение. Т.е. вместо res = do_smth(var) ты можешь res, var = do_smth(var).
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 1 октября 2019 года.

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

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