Вы видите копию треда, сохраненную 14 апреля 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Коммуна: https://sites.google.com/view/pypry/
Основные книги: https://yadi.sk/d/HQhhsBsq3TVRUq
F.A.Q: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Интерактив шел: https://repl.it/languages/python3
Книги которые ты никогда не прочтёшь: https://yadi.sk/d/tArKKuQu3Kejuq
Еще больше книг от уважаемого олда питон-треда:https://yadi.sk/d/H-00n-UG3RSQem всегда доступно по шортлинку йей.рф/книги
#python #питон #пайтон
прошлый тред: >>1321508 (OP) (OP)
https://pastebin.com/2EPC0RYk
Это малюсенький кусок кода, который сам по себе работает и с ним все в порядке, но я пытаюсь добавить к нему маленькое дополнение, а именно: если внутри словаря у кого-то в списке значений только одно значение (как у Сары), выдать сообщение не "favorite languages are:" и дальше в столбик, а " favorite language is" и одно слово. Короче хочу чтоб в случае с Сарой было "Sarah's favorite languages is C." Как этого добиться?
print(f"\n{name.title()}'s favorite languages are:" if len(languages) > 1 else f"\n{name.title()}'s favorite language is:")
Эту строчку вместо девятой.
>>32788 (OP)
>Не изучай синтаксис, изучай псевдокод и программирование!
Тупой совет.
for name, languages in favorite_languages.items():
- - if len(languages) == 1:
- - - - favorite_langs_str = languages[0]
- - - - verb = 'is'
- - elif len(languages) > 1:
- - - - favorite_langs_str = ', '.join(languages)
- - - - verb = 'are'
- -
- - print(f'\n{name.title()}'s favorite language {verb}: {favorite_langs_str}')
Имею django-сайтец с бд пока что sqlite, но в планах перекатиться на postgresql. Фигачу его в docker compose build, оно устанавливает чет, все ок, это понятно.
Хочу растиражировать его в трех экземплярах (по одному на 3 разных региона), те отличия в плане ПО будут несущественны, отличаться будет в основном инфа в БД, и разместить все это безобразие на одном vps-серваке Digital Ocean'а.
Теперь вопрос: куда тут наворачивать nginx + gunicorn || uwsgi? В каждый докер-контейнер пихать? А не шибко ли жирно? Поверху и как-то маршрутизировать? Но как?
Вопрос судя по всему тупой до предела, но я видать еще тупее. Как хоть загуглить подскажите.
Бампецкий вопросу
Буду премного благодарен, если как таковой имеется
Гугл меня кучу раз наебывал, таки хочется узнать у кого-то, кто этим занимается всерьез, а не копипастит статейки
>Какие области питонирования, надо изучать, чтобы познать сие чудо?
Либы типа keras, pytorch, для начала будет достаточно. Можешь загуглить курс Practical Deep Learning for Coders от fast.ai. Там и необходимую теорию дадут. Вообще в нейронках самого программирования не очень много, если ты конечно не реализуешь модель с нуля на tensorflow. В основном много времени уходит на сбор данных и их предобработку, а поставить на обучение нейронку с помощью либ - дело 5 минут
Нет, она невозможна. Питон интерпретируемый язык, а нейронные сети должны компилироваться с указанием оптимизатора, лосс-функции и метрики. Следовательно нужны компилируемые языки - интерпретируемые не могут компилироваться.
Мне. Видишь? Компилируется.
# For a multi-class classification problem
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics=['accuracy'])
# For a binary classification problem
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
# For a mean squared error regression problem
model.compile(optimizer='rmsprop',
loss='mse')
Пара вопросов по ООП с учетом реалий питончика:
1.
Допустим, у меня есть класс автомобили, у которого есть переменная скорость и метод движение. Есть два дочерних класса, допустим Феррари и Веста. У первого из них переменная скорость увеличена, у второго уменьшена относительно той, что была в родительском классе.
Я хочу устроить их гонку, для чего создаю объекты этих классов, и в цикле, вызываю их метод двигаться, пока один из них не доедет до какой-то конечной точки (очень условно). Вопрос:
Взаимодействие объектов внутри программы происходит процедурно? Я просто задаю набор действий, которые следует сделать с объектами и эти действия выполняются? Это правильный подход? Где вообще можно почитать-посмотреть, как правильно использовать ООП, как должны взаимодействовать объекты (в книжках-курсах больше внимания уделяется синтаксису, а мне бы образ мышления, что-ли)?
2. У меня есть класс Телевизор. У этого класса есть две переменные (громкость и канал) и три метода: переключить канал, увеличить громкость и уменьшить громкость). Правильно ли я понимаю, что суть инкапсуляции заключается в том, что пользователь должен обращаться к объекту класса телевизор только используя методы, которые ему предназначены (все три в моем примере)?
Если пользователь попытается не увеличить громкость с помощью метода, а изменить значение переменной "Громкость" - это нарушение принципа инкапсуляции, потому, что пользователь не должен менять что-то внутри моего объекта сам, по своему усмотрению, грубо говоря, в обход тех инструментов, того интерфейса, который я ему предложил?
А я, соответственно, должен защитить свой класс от всякого вмешательства, за исключением того, что прямо предусмотрено мной?
Еще один вопрос, уже не связанный с ООП:
Я хочу замутить проект на Tkinter - небольшую декстопную прогу, которая облегчит составление говнодокументов.
Но не могу придумать дизайн, где какую кнопочку поставить, в каком виде сделать. Нет ли у дорогого Анона в запасе каких-нибудь годных туторилов по теме основ дизайна приложений (кажется это называется UI/UX но я не уверен)?
>>42607
Сап, анончик, а что ты имеешь ввиду под совместным изучением? Я вот думал предложить анонасам сделать на Pygame модель солнечной системы с движущимися планетами, а в перспективе, и с возможностью расчета гравитационных маневров для полета от одной планеты к другой (правда это все заморочно, понятное дело). Но это скорее совместным проект, что бы скучно не было в одного ночами писать (ну и научиться с Гит работать не в одну каску, да и в резюме написать строчку об опыте совместного проекта, ога).
Пирог и спасибо Анонам, которые ответили мне в прошлом треде
Пара вопросов по ООП с учетом реалий питончика:
1.
Допустим, у меня есть класс автомобили, у которого есть переменная скорость и метод движение. Есть два дочерних класса, допустим Феррари и Веста. У первого из них переменная скорость увеличена, у второго уменьшена относительно той, что была в родительском классе.
Я хочу устроить их гонку, для чего создаю объекты этих классов, и в цикле, вызываю их метод двигаться, пока один из них не доедет до какой-то конечной точки (очень условно). Вопрос:
Взаимодействие объектов внутри программы происходит процедурно? Я просто задаю набор действий, которые следует сделать с объектами и эти действия выполняются? Это правильный подход? Где вообще можно почитать-посмотреть, как правильно использовать ООП, как должны взаимодействовать объекты (в книжках-курсах больше внимания уделяется синтаксису, а мне бы образ мышления, что-ли)?
2. У меня есть класс Телевизор. У этого класса есть две переменные (громкость и канал) и три метода: переключить канал, увеличить громкость и уменьшить громкость). Правильно ли я понимаю, что суть инкапсуляции заключается в том, что пользователь должен обращаться к объекту класса телевизор только используя методы, которые ему предназначены (все три в моем примере)?
Если пользователь попытается не увеличить громкость с помощью метода, а изменить значение переменной "Громкость" - это нарушение принципа инкапсуляции, потому, что пользователь не должен менять что-то внутри моего объекта сам, по своему усмотрению, грубо говоря, в обход тех инструментов, того интерфейса, который я ему предложил?
А я, соответственно, должен защитить свой класс от всякого вмешательства, за исключением того, что прямо предусмотрено мной?
Еще один вопрос, уже не связанный с ООП:
Я хочу замутить проект на Tkinter - небольшую декстопную прогу, которая облегчит составление говнодокументов.
Но не могу придумать дизайн, где какую кнопочку поставить, в каком виде сделать. Нет ли у дорогого Анона в запасе каких-нибудь годных туторилов по теме основ дизайна приложений (кажется это называется UI/UX но я не уверен)?
>>42607
Сап, анончик, а что ты имеешь ввиду под совместным изучением? Я вот думал предложить анонасам сделать на Pygame модель солнечной системы с движущимися планетами, а в перспективе, и с возможностью расчета гравитационных маневров для полета от одной планеты к другой (правда это все заморочно, понятное дело). Но это скорее совместным проект, что бы скучно не было в одного ночами писать (ну и научиться с Гит работать не в одну каску, да и в резюме написать строчку об опыте совместного проекта, ога).
Пирог и спасибо Анонам, которые ответили мне в прошлом треде
>Где вообще можно почитать-посмотреть, как правильно использовать ООП
В книге Elegant Objects же.
Узнал, что проект пока еще ни разу не сталкивался с боттлоком из-за использования пистона.
А вы сталкивались c ним? Есть ли смысл учить какой-нибудь го для перфоманса?
мимо вкатился год назад
Только реббит на нем есть, а так нет тимлиду очень хочется, но он понимает, что бус фактор тогда начнет стремиться к отрицательным значениям
SQL
мне кажется странным стремление растирожировать его на каждый регион. нужно все в один докер пихать.
Следует оговориться, что это нетрадиционный взгляд на ООП. Может, интересный своей оригинальностью, но новичку лучше рекомендовать что-то каноничное.
И заставлять крутиться на одном vps шесть докеров с шестью nginx'ами/postgre/rabbitmq/celery и тд ради 6 сайтов? Как-то не экономненько получается
Спросили про правильность, а не каноничность. У Егора наиболее правильный подход к ООП, хоть, он и перегибает местами палку.
Два чаю. Вообще если бы программистам было не лень допиливать компиляторы/рантаймы вместо затыкания проблем с производительностью процедурщиной/нативщиной/вендорлокщиной/мультиланг разработкой и прочим байтоебством, а потом вокруг этих припарок создавать свои кривые и уродские фреймворки - то мир бы стал гораздо лучше. Или того хуже - возвращаться в каменный век, к байтоебщине, делая в 21 веке языки вроде Rust и Go.
https://github.com/stackless-dev/stackless/wiki
Новые версии выкатываются очень активно, тредами можно нормально пользоваться, чому его не юзают везде?
Раст - отличный функциональный язык. Сравнивают его с го только долбоебы, которые о любой технологии судят исключительно по заголовочкам желтушных статей маркетолухов.
>>42654
>Допустим, у меня есть класс автомобили, у которого есть переменная скорость и метод движение. Есть два дочерних класса, допустим Феррари и Веста. У первого из них переменная скорость увеличена, у второго уменьшена относительно той, что была в родительском классе.
Ебаный ты ублюдок, тебе не нужно городить лапшу из наследования для того, чтобы изменить значение переменной. Если ты не можешь даже придумать неублюдочный пример для своего вопроса, то это явный признак того, что тебе для начала следует заняться, блядь, делом и начать хуячить полезный, сука, код, а не дрочить на мудацкие примеры из книжек для тупорылых даунов.
>чому его не юзают везде?
https://github.com/stackless-dev/stackless/wiki/FAQ#there-are-some-exceptions-however
>This is especially the case with Stackless Versions released before commit 949c518c67c75a1. Since Stackless 2.7.7 most compatibility problems are gone
И нахуя ты это копируешь, дебил? По-твоему все остальные итт такие же дебилы как ты и читать не умеют? Ты спросил, почему его не юзают везде - тебе ответили. Хули тебе еще непонятно?
Там как раз не нормальные треды, а гринтреды, але.
while number > 1:
--if number % 2 == 0:
----n += 1
--else:
----number = 3 * number + 1
----m += 1
While слишком долгий и прожорливый.
>--if number % 2 == 0:
>----n += 1
>--else:
>----number = 3 * number + 1
>----m += 1
Ветка if не влияет на условие, и ты никогда не выйдешь из цикла, попав в if. Неудивительно, блядь, что он у тебя СЛИШКОМ ДОЛГИЙ.
Ага, спасибо, я уже нашёл, где проебался. Но вопрос в силе: как-то While можно переписать?
А что ты хочешь сделать?
Алсо, в какой вью это следует обрабатывать: в этой же написать метод post или сделать отдельную вью для таких целей?
Типа как ФПС в играх выводится и нагрузка на ЦПУ.
Только мне надо поверх всех программ и рабочего стола.
PyOpenGL или Tkinter лучше дрочить?
Может есть решения попроще?
Можно и без формы, фигачишь url вида path('fav/add/<pk>/', views.add_to_favorites
Фигачишь модельку вроде:
class Favorites(models.Model):
..user = models.ForeingKey(User, ....)
..post = models.ForeingKey(Post, ....)
Пишешь вьюху типа
def add_to_favorites(request, pk)
..post = get_object_or_404(Post, pk=pk)
..try:
....post = Favorites.objects.get(user=request.user, post_pk=pk)
....if not post:
......Favorites.objects.create(user=request.user, post=post)
обосрался чутка
>..try:
>....post
>....if not post:
переименуй тут пост в какую-нибудь другую хуйню, например FavPost
а ниже ничего не меняй пихай пост, который нашло или не нашло через get_object_or_404
>......Favorites.objects.create(user=request.user, post=post)
Короче, обрабатывать пост-запрос во вьюхе, которая список показывает, не стоит, так? Отдельно писать лучше для таких вещей + какой-то свой url для неё. А как без формы? Просто ссылку на этот url? Где-то читал, что если запрос меняет состояние системы, то не стоит использовать GET.
А для чего тогда может пригодиться переопределение метода post в ListView? Я пока так сделал, но мне не нравится, что в шаблоне у формы экшон содержит урл и параметр к нему, а урл всех постов не подразумевает никаких параметров, как-то глупо выходит.
Проебался сегодня целый день запихивая фласк приложение в ехе файл и все из за одной функции которая из html делает pdf. Как оказалось из за того что os.path строит неправильный путь к папке. Думал захардкодить биьлиотеку, но в итоге 1 вызов поиска пути пока никак не могу обойти, кроме как переписать весь модуль. Почти построил троллейбус из хлеба.
все, я решил, соре
Бамп вопросу
Сложна, сложна, ничея непонятно.
Но ведь эта штука нужна для выделения деталей на совершенно различный недетерминированных данных. Типо найти всех кошек на рандомных фотографиях животных. А у меня они полностью детерминированы - определены заранее.
Похоже дешевле всего будет привязать к каждому изображению какойто числовой первоначальный классификатор (типо суммы всех точек или точек в определенных позициях), искать по этому значению в базе изображений, и для случившихся нескольких совпадений сравнивать изображение попиксельно с готовыми образами.
Но это придется делать руками. А так хотелось подключить какую-то волшебную библиотеку, прописать пару параметров и больше ничего не делать.
>>44721
Мне просто нравятся таблички.
Или как разбить на отдельные функции?
Про GET и состояние системы: речь о том, что если запрос что-то изменяет на стороне сервера, а не просто получает данные, то для таких целей нужно использовать другой метод, например, POST.
Про урл и параметр в форме: ничем не плохо, кроме того, что у меня посты по адресу '.../blog/', и этот адрес никаких параметров не подразумевает. А в форме у меня action содержит этот же адрес, но ему передается еще параметр. Несоответствие получается, хотя оно и разруливается потом в контроллере. Ну да ладно.
Чому так?
Потому что ты читаешь книгу 83 года от рождения христа. Уже давным давно этот вопрос закрыт, что использовать абсолютно похуй, можешь как угодно сконфигурировать любой редактор, назначить на клавишу "таб" 4 пробела, использовать табы как сивол, использовать пробелы, разница только в самом факте. Забей. Я даже не знаю как это настроено в моих редакторах\иде, потому что разницы нет. Любой кто будет утверждать иное - шизик 50+ лет.
Сейчас вот начал курс на кодекадеми, параллельно нужно ещё читать учебник? Если да, то начинать сразу с Марка лутца - Изучаем питон, или есть более дружелюбная книга к нубам в языках программирования? книги по алгоритмизации не советовать, это и так понятно.
Ну, основы ты хоть где можешь получить.
Но смотри, чего тебе не хватает: ошибаешься в синтаксисе - ищи уроки по синтаксису, тупишь над решением - качай логику.
Основы это там сама "база", которую пишут в вакансиях погрмистов? Если ты в этом смысле, то это знание синтаксиса языка и ООП (ну и умение всего этого применять, конечно же).
Прошел SoloLearn, но там лишь на синтаксис упор (охуевший упор), никаких реальных задачек для мозгов нет.
Алсо, книги многими не рекомендуются, так как они быстро устаревают. Для примера: прочти пару постов выше.
Понял, анончик.
Основы это синтаксис языка и умение записывать алгоритм на нем, ну то есть все эти массивы хуйсивы циклы и прочее. Синтаксис, я так понял, заебись дадут на курсах, а дальше нужно будет либо искать простые проекты сапера там написать, скрипт под что-нибудь, либо решать всякие олимпиадные задачи на логику и её прокачивать, так? нарабатывать умение мыслить алгоритмами Параллельно с этим изучать прочие возможности языка, Django всякие и графические интерфейсы.
Все верно описал?
Да, все верно. Да и в принципе, самое умение думать и находить решение - важнее, ящитаю. Так как синтаксис можно быстро подтянуть.
> а дальше нужно будет либо искать простые проекты сапера там написать, скрипт под что-нибудь, либо решать всякие олимпиадные задачи на логику и её прокачивать, так?
Если найдешь курс, где после каждой темы будут давать годные задачи, то это тоже хорошо.
В целом, да, ты прав.
На кодекадеми задачи в платном курсе, я пока бесплатный дрочу. Потом пройду курс на stepik и питонтьютор, там по идее будут задачи. После этого, думаю, уже смогу что-то осилить из простых скриптов и задач.
кстати о сапере, на питоне можно написать полноценного сапера с графическим интерфейсом? Естественно, когда научишься.
Лучше не платить, можно и бесплатно обучиться. И в открытом доступе есть все знания и уроки.
Но если тебя будет мотивировать то, что ты заплатил, то другое дело.
> на питоне можно написать полноценного сапера с графическим интерфейсом?
Вот этого не знаю, правда.
Я такой же, как ты, хулиган нуфаг в питоне.
Я пока вообще платить не собираюсь, так как не знаю, зайдет ли мне программирование. Если заебет за пару месяцев - значит не моё и можно смело забывать о нем на всю жизнь. Понравится дрочить код - значит можно учить дальше.
> Я даже не знаю как это настроено в моих редакторах\иде, потому что разницы нет. Любой кто будет утверждать иное - шизик 50+ лет.
А потом скрипты не работают потому что какой-то мудила табы вместо пробелов сделаны, в твоем редакторе автоматическое преобразование табов в пробелы.
Онли пробелы
>Есть и были более производительные языки,
Потому что производительность это не самая главная характеристика языка, питон простой, не байтоебский, на нем быстро пишутся программы и есть очень хорошая стандартная библиотека.
>нейросетей библиотек больше, чем для других языков
Нейронками занимаются те люди которые не хотят ебаться с указателями, освобождением памяти и прочими низкоуровневыми вещами. К тому же под капотом у этих библиотек те же плюсы, которые обеспечивают приемлемый перфоманс
Ты иде для небольшой правки скрипта открывать будешь? Или воспользуешься тем же nano\блокнотом?
Потому что пиар гугла. В общем-то и все.
> питон простой, не байтоебский
Но байты ебать там с обёртками вроде hex, ord и bytearray со слайсами одно удовольствие.
Codecademy вообще херь какая-то, хотя я тоже сдуру с неё начинал. По 10 раз одно и то же "напишите 5 + 2", а теперь "2 + 5", а теперь " 5 - 2", теперь "a = 5, b = 2, a - b". Хуитка для даунов. То, что они там размазывают на ебаную тьму времени можно освоить за 15 минут. На степике курсы по-моему какие-то поверхностные слишком, лучше уж укус питона навернуть, если совсем очоба нужна. Та же хуйня, только быстрее и понятнее будет. После укуса Лутца навернуть, после Лутца наворачивать fluent python.
Главное параллельно с этим упражнения делай. Не знаю, мне лично больше гораздо помогают поставленные мне задачи кем-то или чем-то, а не придуманные самостоятельно.
Воспользуюсь вимом, плагин для проверки синтаксиса при сохранении мне скажет, если в файле намешаны табы с пробелами, после чего я использую :retab что бы все пофиксить.
Я коммодоиде я вспомнил потому что все современные редакторы (и иде) давно уже чхать хотели, что там у тебя, ибы пробелы, все сразу, ничего вообще, а если у кого то с этим проблемы, значит он использует софт из нулевых, как коммодо
Не, после C ебать байты в питоне гораздо более заморочено. То, что на С выглядит естественно и непринужденно, в питоне будет смотреться как прыжок изподвыподверта.
Изучаем для начала, наверно. Они разные: программирование больше по прикладному применению, а другая про сам язык.
По-моему нет таких, по крайней мере у лутца. Да ты не ссы, там немного и может пригодиться. Ну или просто бери да пропускай сравнение со второй версией.
Вообще, строго по моему опыту, нужно полистать еще пару книжек по питону простых, типа Изучаем Пайтон Мэтиза. И параллельно порешать задачки на кодварс.
Объяснюсь: укус питона хорош как вводная книжка, но не все аспекты раскрывает. Лутц же пипееец скучный, и если ты раньше не программировал, с большей долей вероятности тебя будет вырубать. Меня вырубало после прочтения 3 страниц, когда читал в первый раз.
В то же время, когда у тебя наберется небольшой опыт погромирования, в том числе и на пайтон, Лутц становится очень интересным, потому что раскрывает всякие мелочи и интересности, которые ты мог раньше не усвоить/забыть/автор не описал. Я, например, только после него научился нормально пользоваться лямбда-функциями, до этого получалось такое себе.
Из самого Лутца сначала Изучаем, потом Погромируем.
Трюков с метаклассами.
Синглтоны на метаклассах итд.
Спасибо.
https://repl.it/repls/MatureFlakyDemo
Можно ли бы это написать более элегантно?
Перепелил так, что бы можно было засовывать любую итерируемую последовательность
https://repl.it/repls/ThoseWickedSdk
Как собеседование проходит? Какие тестовые задания давали?
Есть тут те, кто вкатились в бэкенд для веб- приложений? Поясните за специфику этого направления.
Я вкатываюсь пока только в джуна, если интересно, то вот опишу пока свой опыт.
Собеседования скорее не проходят -- просто отклики игнорят либо присылают отказ. На остальных меня лично на одном просто спрашивали в общих чертах насколько знаю язык, с какими фреймворками работал и тд. На другом более конкретные вещи спрашивали типа какие типы данных основные есть, чем они отличаются, зачем нужен кортеж, если есть список и тд, потом про джанго немного: чем селект_ от префетч_рилейтед отличается, например. Эти ребята не давали тестовых. Гитхаб тоже никто не смотрел.
Две другие вакансии сразу (походу бот) кинули тестовые. Первая: у них есть классы для работы с рест и вебсокет апи трёх криптовалютных бирж, надо к ещё одной китайской написать такие же. Только они хотят работать с базовыми классами, потому тебе надо разобраться (ни комментариев, нихуяшеньки нет) какой атрибут в базовом классе апи за что отвечает в этой криптоссанине и написать класс, который будет представлять собой соответствие их атрибутов и эндпоинтов/параметров апи. Говно, если честно. Я больше пытался понять что есть что и почему кривая китайская апишка не реагирует на половину параметров (потом увидел issue на гитхабе, которые никто не закрывает), а не код писал. Второе задание было написать бэк для бложика на джанго + фронт на html: пользователи через админку, они могут подписываться на других, у них есть лента с постами от тех, на кого подписаны, в ленте можно пост пометить прочитанным + при появлении нового поста пользователь должен получить уведомление на мыло. Вот тут уже я код писал и довольно много, в соседнем треде говорят вон, что это говно, а не контора, если джуну в качестве тестового даёт столько кода писать. Ну хуй знает, посмотрим, что ответят, так-то всё равно я что-то подобное собирался делать для практики. Про тесты не говорили, я решил немного написать, но не все сделал, потому что уже времени не осталось и я не знал как тестировать формы и вью для обработки пост-запросов. В соседнем треде анона за отсутствие тестов разъебали. А ещё логи и обработка исключений оказались очень важны, а я не особо парился над ними.
Я вкатываюсь пока только в джуна, если интересно, то вот опишу пока свой опыт.
Собеседования скорее не проходят -- просто отклики игнорят либо присылают отказ. На остальных меня лично на одном просто спрашивали в общих чертах насколько знаю язык, с какими фреймворками работал и тд. На другом более конкретные вещи спрашивали типа какие типы данных основные есть, чем они отличаются, зачем нужен кортеж, если есть список и тд, потом про джанго немного: чем селект_ от префетч_рилейтед отличается, например. Эти ребята не давали тестовых. Гитхаб тоже никто не смотрел.
Две другие вакансии сразу (походу бот) кинули тестовые. Первая: у них есть классы для работы с рест и вебсокет апи трёх криптовалютных бирж, надо к ещё одной китайской написать такие же. Только они хотят работать с базовыми классами, потому тебе надо разобраться (ни комментариев, нихуяшеньки нет) какой атрибут в базовом классе апи за что отвечает в этой криптоссанине и написать класс, который будет представлять собой соответствие их атрибутов и эндпоинтов/параметров апи. Говно, если честно. Я больше пытался понять что есть что и почему кривая китайская апишка не реагирует на половину параметров (потом увидел issue на гитхабе, которые никто не закрывает), а не код писал. Второе задание было написать бэк для бложика на джанго + фронт на html: пользователи через админку, они могут подписываться на других, у них есть лента с постами от тех, на кого подписаны, в ленте можно пост пометить прочитанным + при появлении нового поста пользователь должен получить уведомление на мыло. Вот тут уже я код писал и довольно много, в соседнем треде говорят вон, что это говно, а не контора, если джуну в качестве тестового даёт столько кода писать. Ну хуй знает, посмотрим, что ответят, так-то всё равно я что-то подобное собирался делать для практики. Про тесты не говорили, я решил немного написать, но не все сделал, потому что уже времени не осталось и я не знал как тестировать формы и вью для обработки пост-запросов. В соседнем треде анона за отсутствие тестов разъебали. А ещё логи и обработка исключений оказались очень важны, а я не особо парился над ними.
Ничего в этом сложного особо и нет, пришел, поспрашивали за синтаксис питона, что-то из жс-хтмл-ксс, так, хуиту, даже не вспомню. Долго ебали с сикуэль (оказалось, писать запросы надо 90% времени), ну я его еще до вката как-то знал, так что более менее. Ну там какие-то теоретические вещи, типа пузырьком по сортировать, че такое бинарное дерево, такого уровня.
Посмотрели мои говнопетпроекты на гитхаб, всякие там бложики-хуежики, пара сверстанных лендингов, акк на кодеварс. Сказали, типа "хули ты кодишь как долбаеб, тебе бог лямбда-функции дал? Нихочу, хочу жрать говно". Ну я такой, типа, что бы читаемость, хуе-мое. Похвалили за комменты и относительную читаемость говнокода.
Спросили про люнухс, честно сказал, что очень смутно ебу, че там да как, но вот, типа интересуюсь Си, в планах сделать проект, туда-сюда, поэтому буду осваивать.
Спросили, че хочу сделать, вот, типа, говорю, буду онлайн-компилятор мутить для языков брейнфак и уук, типа, что бы по фану можно было поиграться.
Поговорили за эти языки немножко, сказал, что заинтересовался прогерством из-за низкоуровневой хуиты, робота хотел сделать, который мне масло передаст. Ну чел заценил вроде, посмеялся так, нормально.
Потом короче спросил, есть ли у меня вопросы, ну я там начал спрашивать за то, как они джунов учат, помогают-объясняют ли, про митапы, соврал, что давно хочу на МоскоуПайтон сгонять, про проект спрашивал, ну ваще так, показал, что мне интересно развиваться. Спросил, че мне хочется дальше делать в жизни, я сказал, что нравится пилить свои проекты, хочется прокачаться в управлении, и вообще приятно видеть результат работы. Как-то так, ну это правда.
В конце про ЗП сказал, типа сколько хочешь, я ответил, что понимаю, что много особо не дадут, и я потеряю в зарплате, зато буду заниматься тем, что нравится.
Короче, сказали, ну окай, давай мы подумаем еще, позвоним, но так у нас предложение 30к на первые 3 месяца, типа испытательный, потом 40к, а дальше как себя проявишь.
Через дня три позвонили, говорят, довай, ну я и согласился. Спросил че еще почитать, мне там скинули, что бы с проектом начал знакомиться, вот, в следующий понедельник выхожу.
На самом деле страшно было оч, тупил много, на самом деле, какую-то чушь нес о том, зачем нужен __init__, но блять рассказал про отличие списка от массива и про указатели, если дали бы какую задачку - я бы обосрался, но, я так понял, гитхаб с кодварс чел заценил (мне понравился кодеварс, я там по фану каждый день задачки решал), ну и вроде как ему понравилось, что я мотивирован.
Сама конторка вроде такая, не особо, пилит штуку с базами данных для госоргана, но мне норм.
А, еще короче про английский спрашивали, я тоже честно сказал, что не особо, на уровне разговорного в чужой стране могу, с гуглом документацию питоновскую читаю, пару книже читал. Ну и еще он меня про ООП спрашивал, а мне нравится ооп, много (относительно) читал про саму парадигму. Вот, как-то так.
До этого был на двух собеседованиях, на фронта и на фуллстек. На первом обосрался везде, где смог, на втором криво сдела тестовое.
Как-то так.
Ничего в этом сложного особо и нет, пришел, поспрашивали за синтаксис питона, что-то из жс-хтмл-ксс, так, хуиту, даже не вспомню. Долго ебали с сикуэль (оказалось, писать запросы надо 90% времени), ну я его еще до вката как-то знал, так что более менее. Ну там какие-то теоретические вещи, типа пузырьком по сортировать, че такое бинарное дерево, такого уровня.
Посмотрели мои говнопетпроекты на гитхаб, всякие там бложики-хуежики, пара сверстанных лендингов, акк на кодеварс. Сказали, типа "хули ты кодишь как долбаеб, тебе бог лямбда-функции дал? Нихочу, хочу жрать говно". Ну я такой, типа, что бы читаемость, хуе-мое. Похвалили за комменты и относительную читаемость говнокода.
Спросили про люнухс, честно сказал, что очень смутно ебу, че там да как, но вот, типа интересуюсь Си, в планах сделать проект, туда-сюда, поэтому буду осваивать.
Спросили, че хочу сделать, вот, типа, говорю, буду онлайн-компилятор мутить для языков брейнфак и уук, типа, что бы по фану можно было поиграться.
Поговорили за эти языки немножко, сказал, что заинтересовался прогерством из-за низкоуровневой хуиты, робота хотел сделать, который мне масло передаст. Ну чел заценил вроде, посмеялся так, нормально.
Потом короче спросил, есть ли у меня вопросы, ну я там начал спрашивать за то, как они джунов учат, помогают-объясняют ли, про митапы, соврал, что давно хочу на МоскоуПайтон сгонять, про проект спрашивал, ну ваще так, показал, что мне интересно развиваться. Спросил, че мне хочется дальше делать в жизни, я сказал, что нравится пилить свои проекты, хочется прокачаться в управлении, и вообще приятно видеть результат работы. Как-то так, ну это правда.
В конце про ЗП сказал, типа сколько хочешь, я ответил, что понимаю, что много особо не дадут, и я потеряю в зарплате, зато буду заниматься тем, что нравится.
Короче, сказали, ну окай, давай мы подумаем еще, позвоним, но так у нас предложение 30к на первые 3 месяца, типа испытательный, потом 40к, а дальше как себя проявишь.
Через дня три позвонили, говорят, довай, ну я и согласился. Спросил че еще почитать, мне там скинули, что бы с проектом начал знакомиться, вот, в следующий понедельник выхожу.
На самом деле страшно было оч, тупил много, на самом деле, какую-то чушь нес о том, зачем нужен __init__, но блять рассказал про отличие списка от массива и про указатели, если дали бы какую задачку - я бы обосрался, но, я так понял, гитхаб с кодварс чел заценил (мне понравился кодеварс, я там по фану каждый день задачки решал), ну и вроде как ему понравилось, что я мотивирован.
Сама конторка вроде такая, не особо, пилит штуку с базами данных для госоргана, но мне норм.
А, еще короче про английский спрашивали, я тоже честно сказал, что не особо, на уровне разговорного в чужой стране могу, с гуглом документацию питоновскую читаю, пару книже читал. Ну и еще он меня про ООП спрашивал, а мне нравится ооп, много (относительно) читал про саму парадигму. Вот, как-то так.
До этого был на двух собеседованиях, на фронта и на фуллстек. На первом обосрался везде, где смог, на втором криво сдела тестовое.
Как-то так.
> с какими фреймворками работал
> про джанго немного
> из жс-хтмл-ксс
Это прям обязательно или нужно хотя бы знать?
И сколько времени дается на вот это:
> написать бэк для бложика на джанго + фронт на html
Хотя, я на бэкенд пойду, то вряд ли мне фронт будут на тестовом давать. Или нет?
Спасибо. И удачи тебе с устройством.
>>46224
> гитхаб с кодварс чел заценил
А если ничего нет и опыта написания проектов нет вообще?
Удачи тебе на работке.
> Это прям обязательно или нужно хотя бы знать?
Зависит от каждой конкретной компании и позиции, сам подумай. В одном месте просто пытались, видимо, мой кругозор оценить, в другом, где вакансия была четко под джанго, естественно задавали вопросы про джанго.
Короче, я думаю, если в списке технологий или в обязанностях указано что-то конкретное как основной инструмент, то скорее всего что-то про это нужно будет знать. В остальных случаях, особенно если "будет плюсом" иногда на похуй просто могут спросить имеешь ли ты хоть какое-то представление, и если имеешь, то заебись, а если нет, то пёс с ним.
Из фронта меня только на вакансии рубиста закидали вопросами, потом выяснилось, что им фулстек нужен и вообще мидл, ну и я в гробу видал их фулстек вместе с руби после питона любой другой скриптовой язык говном кажется теперь, лол, а от вёрстки меня воротит больше, чем от байтоёбства.
Но как я понял, много где на позиции бэка требуется представление о базовых каких-то вещах из фронта. Можно очень быстро разобраться и освоиться, пройдя какой-нибудь курс, например, на freecodecamp базы неплохо даются. Сможешь рассказать про то как три колонки на страничке ебануть и в розовый раскрасить и хватит.
> И сколько времени дается на вот это
Мне дали 3-4 дня на это, проект надо было залить на гитхаб и вообще там должен прослеживаться процесс разработки. Честно -- клоунада с созданием мёрдж-реквестов самому себе это тот ещё абсурд, я будто с зеркалом разговаривал.
В самом задании написано 1-2 дня, вот тут я охуел, потому что джун вряд ли столько напишет за такой короткий срок. Если разбивать на нормальный рабочий день, то у меня наверно вся рабочая неделя ушла бы на это минимум, но я дома сижу, и могу себе позволить писать код больше 8 часов, если надо. А вот на что они рассчитывали, если у меня была бы работа? Физически невозможно просто за 3 дня столько кода выдать.
> я на бэкенд пойду, то вряд ли мне фронт будут на тестовом давать
Ну я тоже на бэк претендую, но как видишь... Там минимум, наверно, чтобы понять имеешь ли ты представление о шаблонизаторе, не знаю. Если не заморачиваться, то можно довольно быстро накидать шаблоны и на css вообще забить, я думаю. Я просто немного заморочился и сделал говно-ДИЗАЙН, хотя в css у меня тот ещё бардак и куча копипасты из интернета, да ну и срать на него.
Ящитаю, если даже простейшая верстка потребуется, то на ходу разберешься -- инфы много и там не так сложно (по крайней мере очоба). Скорее просто знать надо кучу параметров и их значений. Я раньше не писал никакие странички вообще, тем более стили для элементов не делал, не так много времени на это ушло, к тому же повторяющиеся или общие для страниц вещи можно запихнуть в один базовый шаблон и наследовать его в других -- это очень сильно упрощает жизнь и ускоряет написание.
А вот если потребуют какой-нибудь жс-фреймворк или бутстрап, то я бы дропнул такое задание. Сам просто пытался вкатиться в vue, и там много всего слишком для того, чтобы взять и за вечер написать. А когда я пытался сам написать проект с бутстрапом, я очнулся через несколько дней с осознанием, что на бутстрап больше времени трачу, чем на всё остальное, и забил.
> удачи тебе с устройством
Спасибо, и тебе. Надеюсь, хоть что-то полезное из моего словесного поноса найдешь для себя.
> А если ничего нет и опыта написания проектов нет вообще?
Знаю, что не мне адресовано, но вставлю свои 5 копеек. У меня больше 200 просмотров резюме уже и одни отказы да игноры. Я слежу за insights->traffic на гитхабе. И знаешь что? Всем до пизды мои поделки, их смотрели только один раз непосредственно пока я на собеседовании сидел решал задачку. Я думаю, это может быть плюсом, но не везде. И это едва ли поможет тебе попасть на собес, а на собесе всё решишь ты сам при разговоре. А уж всё остальное вообще сомневаюсь, что кто-то смотреть будет. То есть, у тебя на гитхабе может быть второй вконтакте реализован, а тебе на отклики будут приходить отказы по неизвестным для тебя причинам, потому что твой гитхаб никто не смотрел и не собирался даже смотреть.
> Это прям обязательно или нужно хотя бы знать?
Зависит от каждой конкретной компании и позиции, сам подумай. В одном месте просто пытались, видимо, мой кругозор оценить, в другом, где вакансия была четко под джанго, естественно задавали вопросы про джанго.
Короче, я думаю, если в списке технологий или в обязанностях указано что-то конкретное как основной инструмент, то скорее всего что-то про это нужно будет знать. В остальных случаях, особенно если "будет плюсом" иногда на похуй просто могут спросить имеешь ли ты хоть какое-то представление, и если имеешь, то заебись, а если нет, то пёс с ним.
Из фронта меня только на вакансии рубиста закидали вопросами, потом выяснилось, что им фулстек нужен и вообще мидл, ну и я в гробу видал их фулстек вместе с руби после питона любой другой скриптовой язык говном кажется теперь, лол, а от вёрстки меня воротит больше, чем от байтоёбства.
Но как я понял, много где на позиции бэка требуется представление о базовых каких-то вещах из фронта. Можно очень быстро разобраться и освоиться, пройдя какой-нибудь курс, например, на freecodecamp базы неплохо даются. Сможешь рассказать про то как три колонки на страничке ебануть и в розовый раскрасить и хватит.
> И сколько времени дается на вот это
Мне дали 3-4 дня на это, проект надо было залить на гитхаб и вообще там должен прослеживаться процесс разработки. Честно -- клоунада с созданием мёрдж-реквестов самому себе это тот ещё абсурд, я будто с зеркалом разговаривал.
В самом задании написано 1-2 дня, вот тут я охуел, потому что джун вряд ли столько напишет за такой короткий срок. Если разбивать на нормальный рабочий день, то у меня наверно вся рабочая неделя ушла бы на это минимум, но я дома сижу, и могу себе позволить писать код больше 8 часов, если надо. А вот на что они рассчитывали, если у меня была бы работа? Физически невозможно просто за 3 дня столько кода выдать.
> я на бэкенд пойду, то вряд ли мне фронт будут на тестовом давать
Ну я тоже на бэк претендую, но как видишь... Там минимум, наверно, чтобы понять имеешь ли ты представление о шаблонизаторе, не знаю. Если не заморачиваться, то можно довольно быстро накидать шаблоны и на css вообще забить, я думаю. Я просто немного заморочился и сделал говно-ДИЗАЙН, хотя в css у меня тот ещё бардак и куча копипасты из интернета, да ну и срать на него.
Ящитаю, если даже простейшая верстка потребуется, то на ходу разберешься -- инфы много и там не так сложно (по крайней мере очоба). Скорее просто знать надо кучу параметров и их значений. Я раньше не писал никакие странички вообще, тем более стили для элементов не делал, не так много времени на это ушло, к тому же повторяющиеся или общие для страниц вещи можно запихнуть в один базовый шаблон и наследовать его в других -- это очень сильно упрощает жизнь и ускоряет написание.
А вот если потребуют какой-нибудь жс-фреймворк или бутстрап, то я бы дропнул такое задание. Сам просто пытался вкатиться в vue, и там много всего слишком для того, чтобы взять и за вечер написать. А когда я пытался сам написать проект с бутстрапом, я очнулся через несколько дней с осознанием, что на бутстрап больше времени трачу, чем на всё остальное, и забил.
> удачи тебе с устройством
Спасибо, и тебе. Надеюсь, хоть что-то полезное из моего словесного поноса найдешь для себя.
> А если ничего нет и опыта написания проектов нет вообще?
Знаю, что не мне адресовано, но вставлю свои 5 копеек. У меня больше 200 просмотров резюме уже и одни отказы да игноры. Я слежу за insights->traffic на гитхабе. И знаешь что? Всем до пизды мои поделки, их смотрели только один раз непосредственно пока я на собеседовании сидел решал задачку. Я думаю, это может быть плюсом, но не везде. И это едва ли поможет тебе попасть на собес, а на собесе всё решишь ты сам при разговоре. А уж всё остальное вообще сомневаюсь, что кто-то смотреть будет. То есть, у тебя на гитхабе может быть второй вконтакте реализован, а тебе на отклики будут приходить отказы по неизвестным для тебя причинам, потому что твой гитхаб никто не смотрел и не собирался даже смотреть.
>А если ничего нет и опыта написания проектов нет вообще?
Я хз анон, я про тестовое забыл написать, что спросил, че мне его не дали, а чел сказал, типа у них тест - тот же бложег, так что они подумали, нахуй надо.
Если нельзя, то как .dt конвертировать в .csv?
Хочу проверить код, заменив rage>0 на >10.
Как это можно сделать?
А то в Spyder нужно вечно перезапускать программу и тогда переменные сбрасываются.
Как мне кажется на питоне нужен либо фулл стак поддерживать проекты со стеком django/flask + jquery, либо писать современное апи на котором уже будет работать фронт с использованием современного стека. Я конечно могу ошибаться, так как не работал разрабом, но имел опыт общения с людьми кто набирал людей на проекты.
>Как мне кажется на питоне нужен либо фулл стак поддерживать проекты со стеком django/flask + jquery, либо писать современное апи на котором уже будет работать фронт с использованием современного стека.
Работаю чистым бекендом, ссу на фулстаков, которые делают двойную работу
В смысле парсить аудиофайл? Посмотри, может тут есть нужная тебе функциональность: https://github.com/python273/vk_api
По-моему этот пакет может и просто список аудио получить, и ссылки на треки.
Есть инет магаз кое-какой технической достаточно сложной хуйни.
В нем есть приложения:
- Каталога (где товары). Товары содержат базовую цену и пиздец.
- Конфигуратора товара - те списка вариантов как допердолить девайс под свои нужды, ничего грубо говоря заумного, но для каждого товара свои потребности в конфигураторе. Конфигуратор состоит из 2 моделек типа Слой и Опция. Слой - это совокупность Опций.
- Корзина на сессиях - самодельная и не очень хитрая.
Как мне передавать в корзину список выбранных опций товара? Как мне потом допилить на страничке просмотра корзины кнопку "изменить опции" и чтобы передавать обратно из Корзины опции в Конфигуратор? Как бы вы подобное делали?
Может кто-то где-то видел корзины хранящиеся в моделях и БД, а не в сессиях? Так было бы удобнее, думаю.
Ну как пример:
[code]
import vk_api
from vk_api.audio import VkAudio
vk_session = vk_api.VkApi(login=login, password=password, token=token)
vk_session.auth()
vk_audio = VkAudio(vk_session)
tracklist = vk_audio.get(owner_id=user_id)
[/code]
В tracklist получишь список словарей, в словарях по ключу 'url' есть ссылка на трек, она открывается в браузере и если выполнить
> wget %audio-url% -O track.mp3
То он загрузит его, файл играется -- я только что проверил.
Анончек, ты бог, спасибо!
Я собираюсь сделать клиент вк на десктоп, типа телеги
Будут диалоги, с возможностью качать и прикреплять файлы и музыка
Как то так
Да не за что, читай доки внимательнее.
Аноны, а как обойти блокировку телеграма, если я хочу для него бота написать на requests/aiohttp? Знаю, что есть пакеты, где можно просто прокси прописать, но хочу попробовать без них всё сделать. Пока ничего не нагуглил полезного.
Ты мне предлагаешь опять сторонние пакеты использовать, а я хочу без них на голом requests, а потом aiohttp всё написать.
Да какыть оно у тебя без проксей работает? Вот я пишу requests.get(...) и всё, оттуда управление уже не возвращается.
Хуй знает анончек, никаких проксей не делал
Я тебе на PySocks кивал, либа для работы через сокеты + пример бота, как там их используют. Реквестс очень маловероятно умеют через них работать.
Почему в tkinter filedialog, окошечко, в котором выбираешь какой файл открыть или сохранить, в винде выглядит нормально, как системный файлдиалог, а в убунте 18.04 выглядит вырвиглазно, хуже чем убунтовский системный файлдиалог, и вообще весь tkinter в убунте вырвиглазный, а винде нормальный, особенно если виджеты из ttk использовать, как можно это исправить?
Не, гляди-ка: http://docs.python-requests.org/en/master/user/advanced/#proxies
Похоже, умеет с прокси работать. Я даже не думал про это и не пытался искать, потому что считал, что придется много пердолиться, чтобы заставить реквестс работать через прокси.
А вот aiohttp не может в носки, но вот тут предлагают костыль: https://stackoverflow.com/questions/36960800/is-there-any-way-to-use-aiohttp-client-with-socks-proxy
Завтра попробую.
Хреново, тогда другой вопрос: если я всё то же самое запилю через просто обычный api телеги и захочу залить на какой-нибудь heroku, чтобы оно работало, и я им пользовался, как в таком случае залить вместе с кодом конфиденциальную инфу для аутентификации? Не просто же в текстовом файле в открытом виде?
Где можно почитать про апишки коммерческого уровня?
Отбой, сам доки почитал
Сап, питоняши.
Не могу решить кату (задачу) с Codewars:
>Complete the function scramble(str1, str2) that returns true if a portion of str1 characters can be rearranged to match str2, otherwise returns false.
Написал код: https://pastebin.com/cRpnpa5Z
Он успешно проходит тесты, но слишком медленный.
Пробовал вместо in сделать бинарный поиск - по итогу стало еще медленнее.
Анончики, очень помогите пожалуйста оптимизировать.
А пробовал словарь вместо списка?
https://docs.sqlalchemy.org/en/latest/dialects/postgresql.html
Нихуя не пойму как это настроить. Есть база, объеявленая декларативно, скажем
class city(Base):
....__tablename__ = 'city'
....name = Column...
....index = Column...
Где то там в коде я создаю новый город
viskont = City(name='Viskont', index=111111)
Как теперь мне сделать upsert ?
Видимо, tkinter нынче совсем непопулярная тема. Неужели правда никто не в курсе?
Как топорное решение пойдёт, для малых размеров разницы никакой, но подумой, что происходит с текстом на болших размерах.
Сколько в алфавите букв? 52, включая регистры. цифры, символы и вся херня, в итоге 100 печатаемых символов. Как ни крути, не уникальных символов в итоге будет на порядки больше, чем уникальных. Этим можно воспользоваться. (Там, где количество повторений мало, предоставленный мной способ будет даже медленнее.)
Ты в своём коде на каждый элемент из s2 проходишься по всему в нихудшем случае списку s1, что в итоге даёт сложность, O(n×m) (размеры s1 и s2). на самом деле чуть меньше, потому что ты удаляешь элементы, математики помогите. Ну и удаление элементов из середины тоже не сильно производительности помогает.
Но если вспомнить про всего 100 возможных элементов, то станет ясно, что можно просто посчитать количество этих символов в s1 и s2 и сравнить, хватает ли их. Итого при "элегантном" в плане кода решении сложность уже линейная, O(n+m+k) (k - количество уникальных элементов в s2).
Ещё всё можно свести к одному проходу каждой из строк, записывая одновремнено количесво повторений всех символов, а потом их сравнить. Если ответ ответ отрицательный, то может быть хуже, а может быть лучше, смотря как быстро первый способ (считающий буквы поочерёдно) нашёл бы нехватающую. В коде видно, что в 6-7 раз медленнее может быть.
Но в целом уже выходит O(n+m) на составление счётчиков + O(k) на их сравнение. Не знаю, как правильно ли это писать через сумму двух O, суть та же — время растёт линейно и тут уже, наверное, сравнивать их стоит по средним временам, анализируя входящие в них операции и т.д. (явно не для задачи на 6 или 7 kyu но codewars)
https://repl.it/repls/ToughQualifiedDoom
Если очень надо, то:
1. Если есть какая-то информация о входных данных, во втором способе можно отсортировать буквы в порядке их среднего использования в языке. например, если предполагается, что из s1 собрать s2 будет нельзя, то велика вероятность, что не будет хватать как раз редких букв.
2. В третьем можно, вместо двух счётчиков, сделать один из s1, а затем декрементировать значения при обходе s2, прерывая, если упадёт ниже нуля.
(Господа математики, ткните носом в ошибки и подправьте мои O-нотации плз.)
Как топорное решение пойдёт, для малых размеров разницы никакой, но подумой, что происходит с текстом на болших размерах.
Сколько в алфавите букв? 52, включая регистры. цифры, символы и вся херня, в итоге 100 печатаемых символов. Как ни крути, не уникальных символов в итоге будет на порядки больше, чем уникальных. Этим можно воспользоваться. (Там, где количество повторений мало, предоставленный мной способ будет даже медленнее.)
Ты в своём коде на каждый элемент из s2 проходишься по всему в нихудшем случае списку s1, что в итоге даёт сложность, O(n×m) (размеры s1 и s2). на самом деле чуть меньше, потому что ты удаляешь элементы, математики помогите. Ну и удаление элементов из середины тоже не сильно производительности помогает.
Но если вспомнить про всего 100 возможных элементов, то станет ясно, что можно просто посчитать количество этих символов в s1 и s2 и сравнить, хватает ли их. Итого при "элегантном" в плане кода решении сложность уже линейная, O(n+m+k) (k - количество уникальных элементов в s2).
Ещё всё можно свести к одному проходу каждой из строк, записывая одновремнено количесво повторений всех символов, а потом их сравнить. Если ответ ответ отрицательный, то может быть хуже, а может быть лучше, смотря как быстро первый способ (считающий буквы поочерёдно) нашёл бы нехватающую. В коде видно, что в 6-7 раз медленнее может быть.
Но в целом уже выходит O(n+m) на составление счётчиков + O(k) на их сравнение. Не знаю, как правильно ли это писать через сумму двух O, суть та же — время растёт линейно и тут уже, наверное, сравнивать их стоит по средним временам, анализируя входящие в них операции и т.д. (явно не для задачи на 6 или 7 kyu но codewars)
https://repl.it/repls/ToughQualifiedDoom
Если очень надо, то:
1. Если есть какая-то информация о входных данных, во втором способе можно отсортировать буквы в порядке их среднего использования в языке. например, если предполагается, что из s1 собрать s2 будет нельзя, то велика вероятность, что не будет хватать как раз редких букв.
2. В третьем можно, вместо двух счётчиков, сделать один из s1, а затем декрементировать значения при обходе s2, прерывая, если упадёт ниже нуля.
(Господа математики, ткните носом в ошибки и подправьте мои O-нотации плз.)
>O(n+m+k) (k - количество уникальных элементов в s2).
Точнее, тут должно быть O((n+m)×k), вроде как (ведь мой код k раз проходит каждую из строк). А вот с одним лупом как раз (n+m+k).
Я понял что ты хочешь, ты хочешь происать так чтобы собрать все ссылки в обратном порядке и на всех страницах, так? Тоже удваиваю реквест.
Бамп.
Запили себе каштомный телега-клиент, ему каналы читать можно безо всякой ебанины.
Собственно, я изначально это тебе и рекомендовал со своими ссылочками, а потом ты или другой баклан сошли на говно что это потому что я мол стандартную либу не знаю.
Про либу не я писал и вообще не особо понял к чему тот пост был. Да, я в итоге сделаю как ты говоришь и буду работать через обычный апи для чтения каналов. Просто хотел запилить бота, которым бы мог кто угодно пользоваться, а так только я смогу, раз всё через мой аккаунт работать будет, по сути.
Придётся его ещё как-то огородить.
arr = np.array([])
arr2 = np.array([[1, 2], [3, 4]])
arr = np.append(arr, arr2)
print(arr2)
print(arr)
Вывод:
[[1 2]
[3 4]]
[1. 2. 3. 4.]
А надо:
[[[1, 2], [3, 4]]]
href может содержать либо абсолютный путь, либо относительный, либо ссылку на сторонний сайт.
Если ты находишься на example.com/a1/a2/a3, то:
href="/b1/b2" перебросит тебя на example.com/b1/b2 (т.е. это абсолютный путь от корня сайта)
href="b3/b4" перебросит тебя на examples.com/a1/a2/b3/b4 (т.е. это относительный путь на уровне текущей локации)
href="http://www.google.com" перебросит тебя, очевидно, на гугл.
href ты достать можешь, текущий адрес есть — в путь.
Действительно работает. Но ты меня неправильно понял. :(
Мне хотелось бы добавлять в arr элементы формы arr2. Не только тот один arr2 что в примере, а много.
В этом плане ndmin не помогает.
Вообще в интернетах пишут:
Что обычный list.append выполняется примерно в 4 раза быстрее np.append.
И правильным решение по скорости выполнения похоже является создание list, а потом конвертация в np.array.
Но фуууу же, какое то костыле-строение.
>np.array returns a copy of arr
Зашквар, такой зашквар.
>примерно в 4 раза быстрее
Это я ошибся. При десятках тысяч элементов - в сто раз разница.
Странный какой-то метод np.append, вроде он и есть, а вроде его и нет.
Для больших массивов np.append ненужен - ибо копирование, а для маленьких весь np полностью ненужен.
Аноны, что с вашим питоном не так?
Казалось бы простой синтаксис и нету указателей. А пользоваться сложнее чем С с малоками и указателями.
А то чет что django-cart, что django-easycart уже протухли кажись
>>49122
Вы не понимаете сути np.array, видимо. Это массивы, те самые, настоящие, а не списки. Они не созданы, чтобы им аппендили говно всякое без разбору.
>np.append, вроде он и есть, а вроде его и нет.
Его нет. Это просто для удобства использования его сделали и так назвали. На самом деле это то же самое, что создать новый.
Внутри это всё один большой кусок памяти, в котором идёт, скажем, 64 числа. Хочешь это одномерный из 64, хочешь — двумерный 8x8, или там 4x4x4, и т.д. А после добавления говна в конец эти цифры изменятся, при этом np.append позволяет соединять массивы разных длин/форм, поэтому что ты там хочешь получить в конце нампи гадать не будет, просто выдасть тебе одномерный массив, который изволь теперь сам делить как хочешь. Например, вот так — https://repl.it/repls/GlumBuoyantCone
>для маленьких весь np полностью ненужен.
нампи не только для скорости нужен (он даже не всегда быстрее чистого питона, написанного под конкретную задачу, вроде скалярного произведения одномерных векторов https://repl.it/repls/SubtleElectronicScreenscraper ), но ещё и для удобства работы. Слайсы всякие магические, векторы-хуекторы и т.д.
>А пользоваться сложнее чем С с малоками и указателями.
Если бы ты этим С с указателями (в них ничего сложного, кстати) пользовался, то вряд ли бы так истерично реагировал на подобное поведение.
Ещё на будущее на это взгляни — https://docs.scipy.org/doc/numpy/reference/generated/numpy.concatenate.html
Анон, спасибо тебе огромное! Все очень понятно расписал.
В будущем буду лучше стараться и больше думать.
Поясните, как ena выходит за пределы индексов строки, если она равна количеству символов в строке?
Вообще, где я обсераюсь, блять?
Хочу сделать программу, которая бы выводила буквы и звездочками рисовала количество их повторений в слове:
t - *
i -
p -
И тд.
С циклом while выдает эту ошибку (охуеть). Если оставляю for, то он выводит повторяющиеся буквы, то есть, пишет одну букву дважды (или трижды, если она три раза встречается в слове.
ЧЯДНТ?
Не должен. Можешь быть свободен
Индексы строк/списков и прочего в большинстве языков, включая питон, начинаются с нуля.
>s = "abc"
>len(s) -> 3
но
>s[0] -> "a", s[1] -> "b", s[2] -> "c".
Соответственно, s[3] это уже вне строки.
Питон, джанго, мускул/постгресс, асинкио, раббитмкью, линукс, докер, тесты.
>раббитмкью
Это разве на ждуна?
Очереди конечно просты как палки, но ждуну скорее всего нужно будет только знать команды для отправки\добавления колбека
Каждый жун занимается деплоем и лично разворачивает на боевом сервере код что пишет. Не задавай тут неудобные вопросы.
>А я вроде читал, что редис в качестве брокера для сельдерея работает быстрее кролика.
Чо блядь? Редис это NoSQL хранилище, а кролик это брокер сообщений. У них задачи и функциональность совершенно разные.
Что заставило тебя в питон ползти? Я вот смотрю на отказы и игноры моего резюме и думаю, что в ближайшие месяцы мне тем же самым предстоит заниматься.
У редиса бывают проблемы с персистентностью на больших нагрузках, у нас отказались от него в пользу etcd
А так же с реббита переходим на кафку
Да я на самом деле просто хотел узнать актуальный минимальный стек, на работу не хочу вкатываться. Просто нужно занять голову, решил написать игру-бот в телеге и пару идея для чат-игр на твиче есть(сам напишу, сам в них играть буду, естественно). Питон вроде простой язык, решил выбрать его.
Поставил керас с тенсорфлоу, подготовил данные. Но как мне определить какую структуру нейронной сети выбрать? Беру готовые варианты для мниста/цифар10 или пытаюсь сделать свою, в итоге получается что или сеть не обучается и буксует на 2-х процентах, или вроде всё идёт хорошо, с двух процентов сеть набирает до сотки (картинки то всегда одинаковые), тестовые данные тоже показываюТ 100%. НО когда я пытаюсь вручную через predict_classes посмотреть результаты по конкретным картам, мне показывает какую-то хуйню, 4рка буб и тройка пик может быть одного класса и т.д. В чем косяк? Как подобрать структуру сетки? Стоит ли обесцвечивать карты и оставлять только контуры перед обучением?
Или может другой, более удачный, метод решения моей задачи подскажите? Мне нужно делать скрин и максимально быстро распознавать карты на экране.
>максимально быстро распознавать карты на экране
Еще бы! Иначе будешь деньги дерять на онлайновом покере. Твой бот будет тупить и проебывать раз за разом твои денежки, лол!
Сэйм щит.
Ты уверен что ломишься в сервак телеги, а не в заглушку долбоебов из РКН?
Закинь на питонэнивер и попробуй оттуда безо всяких проксей
Чисто из практики
> джанго орм
+ Очень удобный интерфейс, работать приятно, всё легко и просто.
- Медленная
> алхимия
+ Много примеров и готовых решений, просто бери и юзай в продакшене. Миграции и прочие важные плюшки присутствуют.
- Более убогого интерфейса не встречал, глаза вытекают, документация не структурирована нормально.
> пиви
Юзал один раз, но потом успешно сменил её на алхимию и больше не возвращался(надеюсь и не вернусь), от неё плеваться только хочется(хотя возможно это так программу с ней спроектировали, что у меня вызывали боль исправления)
+ Есть асинхронная версия её, вполне себе шустра.
Ещё и за pony-orm поясню немного, раз начал
> pony-orm
+ Удобный интерфейс(немного непривычный после джанги). Хорошая скорость работы(судя по тестам). Проект развивается небольшой группой людей но довольно активно(есть и чат, где отвечают и issues коментят). Сейчас на ней активно пишу и для себя и на РАБоте.
- Не готова к продакшену - до сих пор нет миграций(да, скоро обещают даже ветка есть, но код в ней не покрывает всё что нужно и периодически на миграциях падает, поэтому пришлось форкать себе и допиливать).
>- Более убогого интерфейса не встречал, глаза вытекают, документация не структурирована нормально.
Фуф бля, я думал это только я заметил, все ее только хвалят. Помимо того что интерфейс и доки уг, так разработчики явно пришли из другого языка, алхимия совершенно не python-wave или как там говорят.
На чем удобнее делать RESTful api?
Но многие пользуются, т.к. альтернативы не очень популярны и известны.
Хотя я встречал счастливых людей, которые про алхимию даже не слышали.
Без прокси как раз в заглушку стучусь -- это видно из того, что ответа просто нет. При использовании прокси функция сразу бросает исключение FloodWaitError и я не понимаю, почему. Ведь я даже код не успел получить для входа. Прокси рабочий, до бот апи достучаться получается. Всё по документации в getting started делаю. На pythonanywhere без прокси получаю 'ConnectionError: Connection to Telegram failed 5 times', а с прокси 'Connection Refused'. Пишут, что на бесплатном акке через их mtproto работать ничего не будет.
Вот к примеру два способа создать файл:
open('file.txt', 'tw')
и
f = open('file.txt', 'tw')
Во втором случае при попытке открыть его в другой проге будем получать сообщение, что файл уже используется и неплохо бы его сперва f.close(). Это из-за присваивания переменной f? А там разве не копия файла хранится с которой питон работает? Почему ОС тогда ругается? СЛИШКОМ СЛОЖНО!
Файлы открывай серез with open(.....) as f и не нужно закрывать - само закроет
Что за хуету ты написал?
Я только вкатываюсь в джанго, какой лучше запилить сайт для начала чтобы научиться. Быстро изучил штмл и сиэсс, про существонвние бутстрапа знаю. Пока пугают только шаблоны и модели. ТАкой вот реквест, какие сайтики начать делать чтобы научиться, какая тематика, мб есть примеры посмотреть. Еще просмотрел видосы и почитал доки на оф сайте, так то вроде все ясно, я бы даже сказал, просто.
Бложик.
Насколько актуальна книга к 2019 году? Я полистал вроде 15 год, сильно версия изменилась, сейчас же уже джанго 2,0. Большая разница?
Ага, теперь в model.ForeingKey() надо on_delete= прописывать
Ну и с url немного проще стало (для некоторых)
А остальное то же самое
Там где-то свежая версия для 2+ джанги валялась, ее и гугли. Хоть и старая та же хуйня по-сути
Я как-то хотел выебнуться и сделать что-то типа сайта с заметками ну типа как гугл ноутс. На бутстрап больше времени уходило, чем на всё остальное, и я забил. Потом пока делал тестовое с бложиком много нового узнал, но модели и выборки там совсем ни о чём получаются. А я даже не знаю что можно придумать, чтобы прямо дохуя таблиц было и связей разных, чтобы прямо вот фильтры и вот это всё ебашить. Да и пока из того, что я пытался сделать, пришёл к выводу, что если нужна какая-то сложная выборка, то без манипуляций данными в питоне обойтись может не получиться. А вот на SQL я изъебнулся и запрос написал.
В статус баре же можно.
Инет магазин нормальный с нуля напиши.
Не такой типа:
class Product(..):
..name=
..price=
....
А со всякими изъебствами, размерными сетками для каких-нибудь футболок, цветами разными, конфигураторами, может какими-нибудь конструкторами принтов, фильтрами, объемом и весом посылки, расчетом доставки через апи каких-нибудь деловых линий, заказами, дисконтами, оптовыми заказами для юрлиц с генерацией инвойсов и прочей мути, чатиком с поддержкой и тд и тп
Я уже почти три месяца месяца пишу, и готово только процентов на 75 от силы, это при том что у меня почти 10 лет опыта в кодинге в целом и 4 года в джанге.
> Я уже почти три месяца месяца пишу, и готово только процентов на 75 от силы, это при том что у меня почти 10 лет опыта в кодинге в целом и 4 года в джанге.
Ну вот и зачем тогда ты такое задание начинающему анону даёшь?
Лучше б очередную борду запилил + API добавил туда и плюшки всякие
Ну он хотел чтобы запросов было достаточно дохуя, чтобы каштомные кверисеты писать. А API, а что API?:
def something(request):
..return HttpResponse(serializers.serialize('json', YourModel), content_type='application/json')
проще чем с шаблонами пердолиться даже
> А API, а что API?
Продумать и реализовать. В современных реалиях будет полезным опытом, со всякими ангулярами и прочим жсом.
Вопрос к знатокам: как так, лол, получается?
Неплохая, кстати, идея, только вот всякие конфигураторы и конструкторы -- это же про фронт и жс, не?
Да, но цену-то надо на серверной стороне считать, чтобы не выходило что товар стоит -9999 руб просто потому что юзер знает как включить инспектор в хроме
Я понимаю, но прежде чем всё это в бэке реализовывать, надо какой-то фронт прикрутить, не? Много пердолиться придется, я во фронте вообще ноль. И желания нет особо с ним работать, жс не доставляет.
А че там делать, там все просто:
SVG + jquery
https://www.miniusa.com/tools/learning/models-build/build.html#/?trim_code=cooper&partcodes=ZSG,850,1NA,4BD,383
где-то на codepen еще билдер наручных часов клевый находил
Во первых, код с вызовом dgeIn/edgeOut конкретной вершины тоже прикрепляй, во вторых, кусок кода никто тут перепечатывать не будет, на pastebin, а потом сюда с вопросом
Что за цветовая схема?
Сел в лужу, никогда ничего про это не читал и не думал об этом.
Есть один я с питоном, который коннектится к базе на мускуле через mysql.connector и пытается дернуть эту процедуру.
Ну то есть
cursor.execute("call my insert-select procedure with params")
output = cursor.fetchall()
cursor.close()
connection.close()
Селект отрабатывает, инсерт нет. Почему не отрабатывает инсерт, понятно - я не делаю connection.commit.
Пытаюсь вкрутить коммит руками - Commands out of sync; you can't run this command now
Поставил автокоммит - все работает.
Так вот, вопрос - как закоммитить этот говно в базу руками? Автокоммит не хочу.
>Вопрос: можно ли изъебнуться и в качестве ключа использовать изменяемый тип? Можно ли захешировать dict и как, если можно?
Делаешь собственный dict наследуюясь от обычного dict'а, и определяешь у него метод __hash__
Ну я тоже так подумал. После того, как собес закончился. Sooqua. Алсо, вроде лучше наследоваться от UserDict.
Ты как из while True выходить собрался?
Просто файл на подаче закончился, а ты еще что то инпутишь
>как так, лол, получается?
У тебя у Node в __init__'е есть дефолтные значения edge'й, и это списки. Эти списки создаются один раз, и делается это при создании класса, то есть после выполнения питоном кода на строках 9-13. Так что, после того, хоть ты и сделал Node() несколько, они все ссылаются на одни и те же два списка.
Попробуй ничего не изменяя создавать ноды через Node([], []), всё сразу починится.
Не делай дефолтными аргументами изменяетмые объекты. Если надо, делай arg=None, а в теле функции if arg is None: arg = [].
Спецом для тебя нашел, держи фронтенд:
https://codepen.io/mattamyot/full/aJXRZp
Бонусом можешь опциям сроки доставки в зависимости от наличия и влияния на цену предусмотреть.
>Надо тогда счетчик поставить.
Надо не счётчик ствить, а очки купить и условие читать нормально.
Я ничего, просто не знал про такое присвоение. Но так то графы приходилось юзать по работе, но на этот случай есть networkX.
Похоже на вычисление максимального потока в графе.
Да хуйней страдают, с графами играются
Вместо того, чтоб удалять уже выводившийся символ я получаю бесконечный цикл.
Расскажи, где я обсераюсь?
У тебя переменная ena не изменяется в цикле, почему он должен из него выходить? и нахуй он там вообще нужен
Обращение к методам родительского класса происходит черех метод super.
попробуй Буттон инит заменить на super().__init__
Ты можешь обращаться к строкам циклом фор.
Как к массивам с элементами символов.
for symbol in stroka:
tvoy govnokod is whlie
Попробуй так.
Написал докер файл, задал питон 3,6 и добавил простенький срипт(print('hello')), добавил cmd - [ "python", "app.py" ].
В результате получаю:
/usr/local/bin/python: can't find '__main__' module in 'app.py'
Делал и с __name__ == '__main__' и без, и с __init__ и как угодно - нихуя, выдаёт эту ошибку.
Пытался запускать в ручном режиме - тоже нихуя.
В какую сторону смотреть?
Гугл не даёт никаких нормальных ответов.
Во-первых, твой word.replace находит вне лупа. Во-вторых, результат замены (т.е. слово без каких-либо букв) ничему не присваивается, в итоге просто пропадает, а в переменной word остаётся всё то же самое, что и было. В-третьих, как уже сказали, условия цикла у тебя никогда не изменяется, ena как была каким-то числом, равным изначальной длине слова, так и осталась. Советую поменять или взять учебник.
Перепутал местами что / куда копировать и у меня создавали пустые файлы. Я ебанат.
Первый раз докер запускал.
Вот я сейчас пишу конвертер айди стима. Тут среди прочего мне нужно из строки вида STEAM_0:1:<рандомное число> вычленить <рандомное число>. Причем девятый символ может быть как нулем, так и единицей и это важно учесть. Далее в зависимости от девятого символа нужно провести простую арифметическую опрерацию. Так вот, как сделать правильней:
1.
id_ = 'STEAM_0:1:<рандомное число>'
num = int(id_[10:]) 2 + 1 if int(id_[8]) else int(id_[10:]) 2
2.
id_ = 'STEAM_0:1:<рандомное число>'
if 'STEAM_0:0:' in id_:
----num = int(id_.lstrip('STEAM_0:0:'))
----num = 2
elif 'STEAM_0:1:' in id_:
----num = int(id_.lstrip('STEAM_0:1:'))
----num = num 2 + 1
К слову, не предлагайте плз свой вариант написания, потому что вопрос не в этом. Просто считайте, что у вас есть выбор только между двумя этими вариантами. Какой бы вы выбрали?
Бля, сосака сожрала умножения
Я создаю внутри класса словарь, потом записываю объект класса в файл с помощью pickle. Потом загружаю обратно сохраненный объект (пикча 1). Все норм, такое поведение я ожидаю.
Но когда я делаю тоже самое перезапустив скрипт или запустив загрузку из файла в другом скрипте, получается непонятная штука, как будто данные в словаре не сохранились в файл (пикча 2). При этом если создать словарь не в классе а просто так, то все работает как надо.
Кто-нибудь сталкивался с таким? В гугле ничего не нашел. Это баг или фича? Мб я тупой и что-то неправильно делаю?
Что не понятно, ты заходишь на какую то парашу с просроченным или самоподписаным сертификатом
Я бы предпочел первый вариант, тем более
> Flat is better than nested.
Но тут надо смотреть на длину таких выражений. Если она расползается на несколько строк и по сути представляет из себя вывернутое на изнанку условие или цикл, то на хуй, лучше второй вариант.
Из этих двух - второй.
prefix, _type, val = id_.split(":")
num = val / 0.5 чтобы звёздочки не съелись
if _type == "1":
num += 1
>Мб я тупой и что-то неправильно делаю?
Словарь твой принадлежит классу, а не объекту этого класса, который ты в файл пиклишь. Когда ты загружаешь свой объект из файла, он так же указывает на словарь класса DC, который в новом скрипте имеет нулевые значение, так как ты ни одного объекта ещё не создал, который в ините прописали бы туда какие-то значение.
Легко увидеть, если перед pickle.load создать какой-то объект этого класса.
Писька в рот долбиська
Спасибо что просветил, анон. Получается, что я вообще неправильно понимаю работу классов и объектов. Много раз в объяснениях про ООП классы сравнивали с чертежом для реального объекта. Как могут созданные данные реального объекта принадлежать (храниться там получается) чертежу? Крч буду изучать все это дальше.
Попробуй изучать ООП на примере нормального ООП-языка, а не скриптопараши - путаницы будет гораздо меньше. Можешь даже тупо взять и почитать без практики пару глав про классы из какой-нибудь книжки по джаве.
Охуеть у тебя советы для новичков, не слушайте этого, и уж тем более не тащите в питон джавовский стиль ооп
Обычные, рабочие советы. Алсо, нет никакого "джавовского стиля" ООП, различия между мемберами класса и объекта этого класса везде концептуально одинаковые.
tl;dr: нечего сказать по теме - не разевай пиздюшник.
>различия между мемберами класса и объекта этого класса везде концептуально одинаковые.
Сам пишешь, что одинаковые, но отсылаешь в другой язык.
А речь я веду о стиле программирования, и в питоне и джаве он принципиально разный.
>нечего сказать по теме
Сказал человек, который втирает за джаву в питон треде, в ответ на вопрос по питону.
Потому что в этом другом языке для новичка это сделано гораздо понятнее.
Я не втираю "за джаву". Если ты настолько тупой, что не можешь открыть глаза и прочитать мой изначальный пост, то я не знаю, чем тебе еще помочь.
>Потому что в этом другом языке для новичка
>новичка
>изучи джаву что бы изучить питон
А когда он про лямбды спросит, ты его в кложур-тред отправишь?
Вообще я согласен с тем аноном, почему то лучше понять всю ООПшную срань шарпа который я учил, я смог только когда вкатился на работу н питоне, лол.
Вообщем смотреть на разных языках как оно устроенно полезно.
>Пытаюсь вкрутить коммит руками - Commands out of sync; you can't run this command now
Потому что транзакцию нужно руками же и открывать
cnx.start_transaction перед твоим cursor.execute.
>Как могут созданные данные
Просто почитай про class variable vs instance variable, а также заодно и про class/instance/static methods.
Нет, для этого же есть сикп-тред - туда и отправлю. А то так и будет всю жизнь думать, что "лямбда" - это однострочная функция ;) ;) ;)
Вообще странно, если делать в лоб execute, который ничего не возвращает, а только инсертит, то можно обойтись одним коммитом. Но спасибо.
Посмотрел книги из шапки - одна старая хуйня.
На английком есть свежак, но мне же надо на русике.
Лутц вообще 2011-го блять года, там уже пистон 10 раз поменялся с тех пор.
Хуй знает. Расскажи, плиз, свое уважаемое мнение о будущем питона, мне действительно интересно.
Собрался учить питон для написания диплома
>будущем питона
как язык он говно, но на нем слишком много наговнокодили, поэтому будет плавать, а ты будешь в этом ковыряться
На го достаточно вакансий, да.
Часто даже наблюдается стек пых+го.
А вот на питоне веб-проектов-то нихуя и нет.
Язык вроде топ1 или 2 в мире по популярности, но что блядь вообще на нем пишут - загадка.
Ну ML - это понятно, но 5% рыночка питона.
Гуглишь на hh - или джанго или питон всегда на подсосе в качестве третьего языка в проекте или вообще легасня.
Я тут не питон обсирать пришел, просто хочу выяснить сферу его применения, область, где питон хорош, а не НУ ЭТА ЕПТА БЛЯ СКРИПТЫ ТАМ ВСЕ ТАКОЕ МАШОБ ПИТОН ЗБС
Обычное попиксельное сравнение
Синьер бот-телеграм-апи-хтмл-архитект в треде.
Нет, через бот апи нельзя читать сообщения в чужих каналах, где бот не админ.
Тоже стояла такая задача, решил через обычное апи телеги(не бот).
Зачем тебе вообще нейросететь для неподвижных одинаковых объектов без искажений?
Тут попиксельное сравнение обычное на ура прокатит.
Сложный прекол, извини, не понял
Помимо разных скриптов - я вот недавно ходил по собеседованиям, во многих местах бэкэнд с хитрой логикой на питоне крутится, полагаю, из-за скорости прототипирования.
Причем, лол, на нынешней работе сейчас джавистов набирают, потому что решили, что делать серьезный продакшон на голом питоне слишком разорительно, то ли программисты косячат, то ли сборщик мусора действительно говно и отжирает любое количество памяти.
мимосисадмин
ты б погуглил сперва, тупиздень, а потом бы пездак свой разевал.
Ни кто не ловил эту шляпу из здешних Trojan:JS/CoinHive.A ???
Я словил было открыто пару ссылок с этого треда и флибуста.
как узнать с какого сайта словил?
Сам разобрался.
я дебик, не обратив внимания перешел на клон флибусты.site на котором был скрипт майнера
Короче, я совсем наивный. В жизни не программировал, мне 28 лет, у меня не АйТишная работа (которую я, к слову, люблю и менять не собираюсь) и так далее. Я решил учить питон по фану, потому что почему бы и нет - какая разница как задротствовать в свободное время.
В общем, проглотил "Learn Python 3 the Hard Way", лениво пописывая что там автор просил переписывать и выполняя все его заебы. Потом написал пару скриптов для себя, решать кое-какие рабочие вопросы - конечно полный примитив, обычно они решаются банальным калькулятором, бумажкой и справочником списать константы. Ну хуй с ним, вроде весело.
Чего там дальше читать? Где брать задачки? Не, ну я конечно типа ученый в толчке моченый, но дико работающий руками и на всякие курсы по ДАТА САЕНС у меня вызывают скуку. Где брать интересные задачи?
Ну я тут повторюсь, что вкатился чисто по фану, в поисках хобби лучше чем миньки раскрашивать да в иве крабить.
Почитай Think Python
Хорошая, бля, книжка. После нее будешь отстреливать и весь потенциальный функционал питона, и кучу примеров как его использовать,и тд. Есть на русском.
Хардвей говно для пидоров и надроченно только тем, что бесплатно, да и то, только чтобы гнусавый автор потом втюхивал тебе свои сраные видеокурсы и все это под неебаться превозмогательным соусом. Короче из чистой жадности пендосов, а так даже a byte of python прикольнее.
Кодю 15 лет каждый день, ни дня айтишником чистым не работал
Поищи django easythumbnails или django sorl thumbnail
Можно конечно и с PIL’ом поебаться, но был бы повод
>где брать задачи
>дико работающий руками
Прозреваю в тебе биохимика какого-нибудь. Захреначь самописный лабораторный журнал, чтобы еще отчеты генерировал.
Мне не совсем thumbnail нужно делать, мне просто нужно ресайз делать в свободном виде. Ну и вопрос был ещё в том, что я во вью в get_object получаю объект типа ImageFile, вот, допустим, я с помощью какого-нибудь пакета изображение из этого объекта обработаю как мне надо, а дальше что? Просто изображение возвращать?
А какая разница? По C++ вон вообще по-сути "Искусство программирования" Кнута от 1962 и до сих пор актуально шо пездец.
А если ты про мифические сложности переучивания с питона2 на питон3 то переучишься минут за 15, вместо print 'hui' надо будет print('hui') ебашить ото и 80% разницы
У крестов уже несколько стандартов поменялось.
Плюс каждый год выходят новые редакции книг.
А в питоне половина книг дают версию 3.0 как охуительный прорыв. Когда уже 3.7 есть.
Потому что как минимум появились async/await выражения. Ну и куча мелких нововведений типо f строк.
Ну варианта два: или учи английский и покупай (а иначе их и не достать - пиратятся чет тухло последнее время) только книги на английском, или читай просто пиздатые киниги похуй какого года, просто потому что для твоих ишак-скриптов всякие плюсы последних версий - до пизды припарка. Особенно если мовы ты не знаешь.
Это вообще нормально, что типа прогеры не знают английского?
А вообще какая разница. Ниже про Кнута от 1962 уже писали. Но имей ввиду - пока весь мир наслаждается свежими изданиями с исправленными ошибками или дополненным материалом, ты обмазываешься двойным сетом ошибок - и автора, и переводчиков. Так что лучше учи английский, благо технические тексты читаются даже полными школярами.
Поэтому я хочу купить выполнение этого дела у фрилансеров, которые получше разбираются в теме.
Подскажите, пожалуйста, какой фрилансерский сайт лучше всего подходит для такого? Чтобы не кинули, типа деньги взяли и давай до свидания. А также скажите как выбрать фрилансера, чтобы он сделал модели осознанно с пониманием, а не схитрил, сделав так как могу и я бесплатно, то есть тяп-ляп накидать код, не подбирая разумно параметров, кое как выполнить и просто скинуть результат как-будто оно так и есть?
Сколько денег такое может стоить?
Скачиваешь по n-штук, сохраняешь, скачиваешь следующие n-штук, обмазываешься тредами, iohttp
Есть ли у кого опыт работы программистом-стажером, имеет ли это смысл?
Суть такова, что сейчас на ХХ есть одна манящая вакансия, однако компания, которая её разместила в это же время развесила по моему ВУЗу из которого я кстати хочу ливнуть(зачем я об этом пишу?) листовки на обучение языку(естественно за щекели).Вот я и думаю, что даже если я к ним на собеседование приду, будет что-то вроде : "Ой вы конечно хороший кандидат, но немного знаний вам не хватает, мы тут кстати 4-ёх месячные курсы сейчас проводим всего за 4200/мес, после них мы вас обязательно возьмём на работу, честно честно"
Типа интерн? Скорее всего в этом случае просто продают курсы таким образом, но если там на собеседованиях реальные програмеры присутствуют, то если покажешь что ты нормальный пацан и на питоне говорить можешь, то могут и взять, но скорее всего там эта позиция даже не открыта
Страдаешь хуйней.
Если тебе нужен нормальный код и хороший % обучаемости - не обязательно быть дата саентистом что бы это сделать. Хватит пары базовых статей/мануалов и опыта в питоне.
Ну а если отвечать на твой вопрос - дорого будет стоить решение от реального спеца(но оно тебе и нахуй не нужно). Я думаю 1.5-2к вечнозелёных, не меньше.
Обычно ищут на upwork каком или если русня - fl.ru.
Но можешь и тут анонам предложить работу, думаю кто-то да ответит.
Нет, не нужно выжимать максимальный процент обучаемости. И код не нужен идеальный.
Нужно чтобы модели на взгляд были не совсем опущенскими. Чтобы минимальная доля обоснованности была в выбранных параметрах, количествах слоев. Чтобы в шарагу сдать и не предъявили, что я дичь втираю.
Лол, ну удачи.
То есть в шараге преподы старые, никаких Keras'ов не знают. Но зато они 100500 лет дрочили матан, алгем, мат. статистику. В 90ых-начале 00ых прочитали книги с формулами про нейронные сети, книги про методы машинного обучения. Поэтому могут спросить за количество слоев, за тип нейронной сети. Могут спросить за параметры обучения методов машинного обучения.
Я плохо знаю математику, поэтому не могу пояснить почему я выбрал такое большое количество слоев, просто напихал 11 Sequential слоев по 400 нейронов. Понятия не имею как прикрутить сюда реккурентную сеть GRNN, FITNET, CFNN, я только умею Sequential делать. Методы машинного обучения применил дефолтные, параметры вообще не трогал.
А я хочу чтобы кто-то мне помог причесать это дело, чтобы шарага не обоссала меня. То есть нет ориентировки на настоящий топовый результат профессионала, которые все оптимизирует до идеала. Надо лишь причесать так, чтобы в шарагу зашло.
Ебаны в рот.
Берёшь либу scikit-learn, берёшь книгу по ней - Введение в машинное обучение с помощью Пайтон, А.Мюллер и С.Гвидо.
Читаешь и выполняешь примеры все!
Там расписаны все методы и большая часть параметров. Интересующие параметры гуглишь и играешься с ними, записываешь свои изыскания. Всё нахуй. Я тебе секрет раскрою - % тоже будет важен, как результат работы твоей программы и ты по нему будешь ориентироваться какие параметры выставлять и чому.
Всё, или делай сам/проси анона тут, или иди нахуй на апворк/фл.сру, потому что ты даже не пытаешься. У тебя лапки и всё. Тьфу на тебя.
Рест АПИ поднимай на джанге/фласке/фалконе/aiohttp/tornado/аллахе, а как к ресту прикрутить эту парашу на ЖСе - спрашивай в ЖС-трэде.
Не, ты не понял. Вопрос не в том как из вуя запросы делать к джанго-приложению, вопрос как вообще всё это говно запустить при этом без использования вуя из интернетов и без какой-то левой запущенной в фоне хуйни на ноде. Проблема именно в том, что я даже хеллоуворлд запустить не могу, потому что там какая-то куча ебучих билдеров для этой хуйни, которую надо обмазать конфигами, по гайдам нихуя, естественно, не работает, а к джанго приворачивается через webpack-loader уже то, что высрет этот вебпак.
Понял, принял, спасибо, анон
К ЖСерам иди, ты какую-то ЖСо-хуйню несёшь
Рест апи поднимаешь и пиздец. А чем ты в него ломиться будешь похуй - джанго выдает/принимает по такому-то адресу так-то структурированный json а дальше че хочешь с ним то и делай
Никаких нодежиси и прочей дури для этого не нужно
А там импорты-хуимпорты, тебя браузер пошлет на хер.
Ты как-то неправильно фронт хочешь затулить, это при том что я толком и сам не понимаю как оно должно организовываться.
Обычно идея такая - подымаешь ноду в качестве сервака для фронтенда и на ней крутишь реакт/вуй/шот еще, а уже они ломятся в джанго которое у тебя где-то глубоко в AWS / heroku на антресольку запихано.
Чтобы пихали реакт или ангуляр прям в шаблоны джанго - я такого не слышал даже
Нихуя себе, а где про это почитать? Я гуглить пытался как фронт устроен, но там больше про всю эту ссанину, а не про то как оно работает на сервере. То есть если я хочу фронт на js, то шаблоны надо писать для js-фреймворка, а джанго чисто на rest и шаблоны джанговские вообще не нужны?
>>55784
Что вы тут рассказываете, создаете в вашем проекте еще одну приложуху (собсно для фронта с реактами), делаете там БАЗОВЫЙ (минимальный) набор темплейтов (по сути голых), пишите для них вьюхи, в шаблоны вставляете ваш скрипт, который дальше уже может даже роутить сам.
Плюсы: в целом разработка проще, можно использовать джанговскую аутентификацию, кешировать страницы, у нас 1 сервер, не надо еще и НОДУ поднимать (кто интересно ее будет поднимать, джангисты или реактовцы?), всегда можно расширить приложение статикой.
Минусы: Если приложения вот прямо выстрелит, 300кк человек в секунду, то вы сами захотите запихнуть фронт на отдельный сервер (а еще отдельный сервер для базы данных и отдельный для статики).
> в шаблоны вставляете ваш скрипт
Как? Всё, что я нашел -- обмазаться вебпаком и бобылём, высер вебпака рендерить будет django webpack loader. Как без этой хуйни нормально вставить жс, если там всякие импорты и прочая срань?
Чем руководствоваться? Какой принцип создания админок как в джанге/фласке и прочих?
Я для себя примерно такое накидал:
1. Пользователь подключает к своему веб-приложению админку, задавая урл для перехода и параметры для подключения к БД.
2. Я подключаюсь к существующей БД через свою ОРМ и поднимаю веб-морду на заданном урле со списком моделей и списком данных записанных в БД.
3. Добавляю всякие функции типа создание/удаление/изменение имеющегося.
Всё так или упустил что?
Ты хочешь какую-то дичь, если честно, пытаешься впихнуть невпихуемое. Ощущение будто ты дико, адово угорел с самой идеи ORM, но не вполне понял что это не волшебная палочка, а просто дрист чтобы по сто раз не писать "FROM table SELECT * WHERE field1=......."
Подскажу что знаю, и почему на мой взгляд это не сработает.
По фласку:
Админки во фласке ты пишешь сам, орм - Sqlalchemy
Она дурноватая и хуевасто документированная, и вообще как я понимаю штука в питон залетная, а не каноничная питон-вей хуитка.
По итогу ты просто будешь вынужден портировать каждую уже существующую админку сайта без фронтенда и прочих шаблонов, но с сохранением всей уже прописанной логики во фласк.
Тогда проще отхуячить старый сайт, переписать его шаблоны и уже на фласке и пусть крутится
По джанго:
Админку джанго делает само, в зависимости от прописанных моделей.
Создавать модельки по существующей базе ты конечно можешь, при чем есть вариант прям из бд их брать: https://docs.djangoproject.com/en/2.2/ref/django-admin/#inspectdb Какие-то каштомные штуки (ну например хранить в каком-нибудь поле словарь типа "ключ: значение" ты мастеришь уже велосипедами сам. Как и логику обработки форм, например есть базовая модель джаго юзера и тебе надо прикрутить к ней поле "телефон" - ты сначала через OneToOne-relation делаешь модель Profile, прикрученную к этому конкретному юзеру, назначаешь пишешь две формы типа:
class UserEditForm(form.Modelform):
..class Meta:
....model = User
.......fields = '__all__'
class ProfileEditForm(form.Modelform):
..class Meta:
....model = Profile
......fields = ['phone',]
в шаблоне выводишь их например
<form ....
{{ profileform.as_p }}
{{ userform.as_p }}
{% csrf_token %}
<input type='submit'>
</form>
И хули дальше если тебе надо в одном действии "обновление профиля юзера" сразу две модели менять? Автоматической удобной админки джанго из ORM тут уже недостаточно, впихивать по-отдельности можно - но очень быстро админ начнет забывать дописать то то, то сё.
Как итог - то же самое что и с фласком. Чтобы эта чудо-универсальная админка работала нужно будет перенести всю логику обработки и хранения данных в джанго и так для каждого конкретного сайта.
Ну и к слову, как давно ты видел сайты без админики? Я в последний раз видел чтобы кто-то контент на своем сайте-визитке правил ручками через phpmyadmin году эдак в 2007
Ты хочешь какую-то дичь, если честно, пытаешься впихнуть невпихуемое. Ощущение будто ты дико, адово угорел с самой идеи ORM, но не вполне понял что это не волшебная палочка, а просто дрист чтобы по сто раз не писать "FROM table SELECT * WHERE field1=......."
Подскажу что знаю, и почему на мой взгляд это не сработает.
По фласку:
Админки во фласке ты пишешь сам, орм - Sqlalchemy
Она дурноватая и хуевасто документированная, и вообще как я понимаю штука в питон залетная, а не каноничная питон-вей хуитка.
По итогу ты просто будешь вынужден портировать каждую уже существующую админку сайта без фронтенда и прочих шаблонов, но с сохранением всей уже прописанной логики во фласк.
Тогда проще отхуячить старый сайт, переписать его шаблоны и уже на фласке и пусть крутится
По джанго:
Админку джанго делает само, в зависимости от прописанных моделей.
Создавать модельки по существующей базе ты конечно можешь, при чем есть вариант прям из бд их брать: https://docs.djangoproject.com/en/2.2/ref/django-admin/#inspectdb Какие-то каштомные штуки (ну например хранить в каком-нибудь поле словарь типа "ключ: значение" ты мастеришь уже велосипедами сам. Как и логику обработки форм, например есть базовая модель джаго юзера и тебе надо прикрутить к ней поле "телефон" - ты сначала через OneToOne-relation делаешь модель Profile, прикрученную к этому конкретному юзеру, назначаешь пишешь две формы типа:
class UserEditForm(form.Modelform):
..class Meta:
....model = User
.......fields = '__all__'
class ProfileEditForm(form.Modelform):
..class Meta:
....model = Profile
......fields = ['phone',]
в шаблоне выводишь их например
<form ....
{{ profileform.as_p }}
{{ userform.as_p }}
{% csrf_token %}
<input type='submit'>
</form>
И хули дальше если тебе надо в одном действии "обновление профиля юзера" сразу две модели менять? Автоматической удобной админки джанго из ORM тут уже недостаточно, впихивать по-отдельности можно - но очень быстро админ начнет забывать дописать то то, то сё.
Как итог - то же самое что и с фласком. Чтобы эта чудо-универсальная админка работала нужно будет перенести всю логику обработки и хранения данных в джанго и так для каждого конкретного сайта.
Ну и к слову, как давно ты видел сайты без админики? Я в последний раз видел чтобы кто-то контент на своем сайте-визитке правил ручками через phpmyadmin году эдак в 2007
Сорян, кажись я читнул твой вопрос жопой, а потом спросонья как-то еще и как-то снова жопой интерпретировал.
В джанго админку писать это по-сути две строчки
admin.py
from .models import Hui
admin.site.register(Hui)
Далее можешь ее каштомизировать, скрывать поля, добавлять какие-то нетривиальные методы и тд.
Нет смысла писать универсальную админку, потому что функционал уже и так встроен, а две+ строчки ты в каждом своем приложении и так нахлобучить не заебешься
Фо фласке админка пишется так же точно как и фронтэнд, только скрывается ебатней с сессией/регистрацией/юзером/паролем и тд.
Ох, антош, спасибо конечно, но немного мимо.
Я видимо плохо пояснил, но:
1. Я работал с Джанго-админкой и она ок, да. Наверное ещё фласко-админку накачу и потрогаю
2. Я не хочу делать админку для фласка/джанги, я хочу сделать свою админку под веб-приложение написанное на другом веб-фреймворке, в котором админки нет. Поэтому я предположил, что общие принципы построения админок везде схожи и написал про Джанго/фласк и орм.
Так же написал примерные этапы выполнения/работы админки и попросил анона высказать свое мнение, ибо может я забыл что, т.к. не нашел инфы о том как "сделать свою админку в <фреймворкнейм>. Возможно плохо искал.
Или передвавай(если только это не константа и не может быть определена вне всех функций) или закидывай всё в класс ну и там уже селфы-хуелфы.
Понял, спс
Забыли деление
Типа деплою прожку аки как на хероку, и там выбираю например 12 миллионов запросов к апи. Он их автоматом генерирует и говорит всякую статистику типа среднее время ответа и так далее.
Если нету. Палю идею для стартапа так скозатъ.
Ну вроде как есть, но наверное это не совсем то, чего бы ты хотел. Называется просто тесты. Обмазываешься ими и че хочешь то и делай с полученной инфой.
Я ебу что ли? Придумал кому вопрос про свой ноут задавать.
Купи на диджитал оушене на месяцок vps и врубай на всю мощь и тесты, и приложуху.
я пару недель назад регал новый акк мне 100 баксов дали на счет на первые два месяца (потом отберут) и после того как я 5 бачей туда все ж засунул.
Короче если акция еще работает тебе даже для суперблатного дудосера своего рест апи мощей сто пудов хватило бы.
посвященная Pandas и языку Python
там есть такая строчка
country = [u'Украина',u'РФ',u'Беларусь',u'РФ',u'РФ']
Скажите, пожалуйста, что такое u?
Юникодовская строка.
Вот это попробуй почитать, мне лучше зашло.
https://pythonworld.ru/obrabotka-dannyx/pandas-cookbook-0-ipython.html
И что со скоростью вычислений? Сравнивать по пикселям 52 карты, и так ещё повторять для каждой - это же долго будет, или я не прав?
Планирую искать работу на питоне в ДС, так как внезапно появилось жилье не так далеко от ТТК. Ранее работал совершенно в другой сфере, но в свободное время писал разные приложения, сайты для себя и знакомых. Вот встал вопрос указывать ли прошлое место работы и стоит ли задеплоить несколько проектов вставив ссылку в резюме? Кто нибудь полезет их смотреть?
> Ранее работал совершенно в другой сфере
> указывать ли прошлое место работы
Зойчем? Не релевантный опыт ведь.
> писал разные приложения, сайты
Как freelance указывай этот период, а в скобках кратко напиши список приложений которые создал.
Насчёт деплоить или нет - хз, но ссылку на НОРМАЛЬНЫЙ гитхаб с примерами кода дать стоит.
Но если ты как фуллстек хочешь идти - задеплой пару веб-приложений что б показать как ты на хтмл/цсс/жс программируешь
Не понял, объясни
Да, тулинг в питоне - говно.
Ты в резюме должен написать свой релевантный опыт. То что ты 5 лет картоху жарил в маке - никого не ебет, когда на собесе спросят про то, чем ты занимался после универа n-лет, тогда про это и можешь рассказать, а до этого - не еби ХРке головы
>>56858
> Подумай, у кого ты просишь совета
И у кого он просит совета, на твой взгляд?
Ты думаешь одни вкатывальщики/диваны сидят тут?
Я искал работу не имея релевантного коммерческого опыта и имея пробел в 1.5 года после учебы. Ещё 8 месяцев было фриланса, и только в самой зассаной конторе меня спросили про пустые 1.5 года(я честно рассказал, где работал). В норм фирмах будут гонять по теории и опыту на реальных проектах, всё.
> не еби ХРке головы
Жун 28 лет
Опыт работы 0 лет
Тут то твое резюме и отправиться в корзину, какое еще собеседование
Ну так от того что ты напишешь о жарке картохи - нихуя не поменяется.
Был у меня на работе коллега, который в 30 пришел ждуном из рекламы(гугол/Яндекс настраивал на сайтах). И ничего, норм, правда фирма говно, но она придаст ему ускорения.
Ты не ной и не выебуйся, а двигай жопой и придумывай себе фриланс на последние года 2-3 и затирай историю о том, как шел к цели. Регайся на линкедине и хр сами будут писать, как расширишь круг "друзей".
Ну картоху я не жарил, иначе бы не смог купить жилье. Попробую указать все как есть, если не фортанет не сильно расстроюсь.
> Ну картоху я не жарил
Молодец, я просто привёл пример не релевантного опыта, не более.
> смог купить жилье
Нахуй тебе то ойти если ты успешен?
> pipenv
Хуйня без задач. Сначала рейц её высрал, всё ахали как же пиздато, прошёл год и теперь все также ахают как же хуёво. Сука, сразу сказал, что бесполезное говно. Просто в пифоне так повелось не знаю, наверное из-за дибилов книгописателей, что большинство высирает свой код в виде пачки питоновских файлов без инструкций по установке. Казалось бы, сделали тебе setup.py → setup.cfg → pyproject.toml → что там сейчас в poetry. Описывай зависимости, делай энтрипоинты, кастомизируй экстрасами! Нет, не хочу! Хочу жрать говно requirements.txt! И это питонисты?! Мудачьё! за 7 лет в пифоне только два раза была ситуация, когда сломалась зависимость зависимости, это якобы то, что решает pipenv... это смех
Здоровому пифонисту нужен только pyenv ну может ещё poetry, не дошли до него руки ещё. А вообще, намечается положительный сдвиг в этом говне: отказ от setuptools, distutils. Вопрос лишь в том, как быстро это случится.
> requirements.txt, setup.py
В чем проблема этой хуйни?
Почитал за poetry - прикольная штука.
Мимодругойанон
сука
не корми суку
А, все, понял, при .save() он сам понимает, когда надо сделать insert, а когда update. Вот он умный какой блин
>А речь я веду о стиле программирования, и в питоне и джаве он принципиально разный.
Кстати вот как раскусить стиль питона? Я сам джавист, использую питон для каких-то своих тулзов, постоянно ловлю себя на мысли, что пишу в джавастиле и питонист так не пишет. Пытаюсь делать меньше абстракций, тогда получается что-то в процедурном стиле как в сишке.
Конечно, для тулзов-то ладно, и так сойдёт. Но если взяться за что-то посерьёзнее, то выйдет какаха.
ПРОСТО без задней мысли берешь и пердолишь код так, чтобы он был проще, а не сложнее.
Если классы помогут сделать код более лаконичным - используй их, если нет - пусть будет на функциях.
А что такое блямба, редикс?
Есть cxfreeze, например. Он может по-моему даже в один файлик всё упаковать. Правда, я его для винды использовал, про остальные не знаю. Только там надо будет руками написать список модулей, которые реально используются, иначе он тебе накидает столько, что хеллоуворлд будет жирнее твоей мамки.
Аноны, как сделать плагин для джанго? Едея есть, но как сделать что бы можно было как любое другое расширение подрубить в настройках проекта?
> В чем проблема этой хуйни?
Прикола никакого. Разные способы описать зависимости и процесс установки приложения в случае setup.py.
Бля, проблема, а не прикол... проблема requirements.txt в том, что ты не описываешь как устанавливать твоё приложение. Это не проблема если у тебя один py файл, но если использовать расширения на си например, то необходим шаг по их сборке. Проблема setup.py в том, что если у меня не си, а хуй с горы, то встроить кастомный пайплайн сборки в setuptools адово. У нас на работе сделан свой extension для сборки cmake-ом и я не понимаю ни строчки в нём (образно). Но, как я выше писал, надеюсь на улучшение ситуации, благо пеп уже есть.
Понял, довольно специфические задачи решает.
Разве не nginx будет раздавать видосы, а тебе нужно только плеер встроить, который ссылки должен подхватывать?
мимо
Хранить на очевидной файлопомойке(есть специальные серваки, со слабыми процессором и большим объемом оперативы и хорошим ссд).
Раздачу можно настроить через nginx, как выше писали уже.
По плееру хз - гугли, думаю всё просто будет.
Купи Flussonic
> Может есть фреймы получше?
Falcon/aiohttp
> А онлайн кинотеатр/мангаридер лучше писать на фласке или на джанго?
Смотря какая структура у тебя будет. Если монолит - лучше джангу, там и готово почти всё уже, бери подключай только.
Если микросервисы/ещё что - то лучше что-то из вышеперечисленного, но и туда джангу можно запихнуть, хули нет.
Вопрос про фреймворк можно бесконечно обсуждать. Пока у тебя нет какой-то специфической задачи и/или архитектуры - нехуй думать, бери любой популярный и пили.
Еще такой вопрос. Могу ли я сделать сайтик на джанго, а api для него на фласк и реакте написать?
фласк рест*
Не прав, да. Попиксельное сравнение прерывается по первому несовпадению.
Тут недавно в треде поднимался вопрос о знании базового курса информатики для изучения языка. Что вообще необходимо знать из школьного курса (может даже из университетсткого)? Реально ли обойтись без этого?
В силу обстоятельств, в школе все умудрился просрать, а в универе информатики просто нет
Где-то затерялась ссылка на фришный курс по CS от амуриканского универа - CS50, в принципе он даст базовые знания по нужным областям.
Если времени много и хочешь копнуть чуть глубже - серия книг Таненбаума(там и сети и железо и ОС), на сколько я помнил там 3 книги, но они довольно объемны, хоть и читаются очень легко.
Прочел недавно "Теоретический минимум по Computer Science" - совсем короткая книга, но полная, можешь и её навернуть за 2-3 вечера.
Огромное спасибо!
А, ну и:
> Реально ли обойтись без этого?
Всё реально, даже без инглиша погромистом быть, но лучше не надо.
>Если времени много и хочешь копнуть чуть глубже - серия книг Таненбаума(там и сети и железо и ОС), на сколько я помнил там 3 книги, но они довольно объемны, хоть и читаются очень легко.
>Тут недавно в треде поднимался вопрос о знании базового курса информатики для изучения языка
Лолбля, таненбаума нужно купить, когда ты понимаешь, что хочешь понять, как все работает под капотом, для ждуна/мидла это вовсе не обязательно, т.к. все спрятано настолько глубоко, что они никогда это не увидят
Ничего плохого в глубоких знаниях для джуна/мидла нет, а иначе можно так и остаться на таком уровне. Так же как ничего очень сложного не рассказывается в этих книгах(по крайней мере про сети и ОС точно, ибо их прочел).
А чего-то более годного я не знаю. Может видео-курсы какие есть еще,.
Антош, если есть что добавить - пиши, а не лолкай.
За время прочтения осей и сетей можно выучить пистон, джангу, скуль и еще много чего, лучше это делать потом, когда поймешь, что тебе чего-то не хватает, а то будешь дрочить полгода-год таненбаума, пока вкатываться мог
https://pastebin.com/1AQ8WEkW
Если запускаю тот же pipe line в консоли - картинка нормальная.
Думаю что-то не так в районе возврата значения из output или записи в bytesIO. Но как это оттраблшутить и исправить?
Если output или f.getbuffer() записать на диск - получается правильная картинка.
Получается проблема гдето в районе открытия картинки через PIL.
Загуглив нашёл этот способ параллелить, в другой программе у меня он же работает адекватно.
Обычный не пуловский map нормально работает с теми же аргументами
Этот Питон какой-то неправильный.
from PIL import Image
import numpy as np
import cv2 as cv
img = Image.open("in.jpg")
new = np.array(img)
cv.imwrite("out.jpg", new)
Что это за преобразование цвета на выходе?
Оказалось у opencv неправильный порядок цветов.
Фиксится так
new = cv.cvtColor(new, cv.COLOR_BGR2RGB)
В продакшене я такого не встречал конечно, но почему нет?
По факту веб морда+админка от джанги, а апи на /фреймворк_нейм/, другое дело это целесообразность такого подхода. Для начала нужно для себя причины обозначить этого зоопарка.
Я вижу только одну для себя - когда веб морда косвенно только связана с АПИ. К примеру у сайта обширное АПИ которое делает кучу всего, а вебморд только предоставляет доступ к готовым данным.
> А онлайн кинотеатр/мангаридер
В данном случае, вряд ли нужен такой зоопарк,
Если кратко/просто: твоё приложение на джанге, куда запрос приходит, обрабатывается в этом же приложении и отдаётся назад результат. Никаких сервисов и распределённой структуры. Надо масштабировать? Берёшь всё своё приложение, копируешь на новый сервак и только в nginx добавляешь ещё один IP для распределения запросов и нагрузки.
Для небольших и средних проектов норм подходит.
Для чего-то более объёмного - не очень, т.к. зачастую лучше масштабировать отдельные части(я не про БД/кеш/подобное, а про отдельные вычислительные задачи, уровня "пережать видео", к примеру). Как-то так.
По той же причине почему брутфорс подбирал пароль за три минуты а не три недели.
Это просто условность.
Ну и ширусы писать можешь хоть на баше. Так что...
понял тебя
Как сразу выйти из многомерной рекурсии или многократных циклов?.. На ум приходит тот самый goto из Си. Есть ли в Питоне наиболее элегантный выход из таких пизданутых циклов/рекурсивных вызовов функции?.. офк без выхода из программы с помощью sys.exit()
Не, предлагали подобный PEP, но гвидо ван россум отверг его (зато пропихнул ни кому не нужный оператор ":="). Для циклов можно использовать else после цикла, можешь нагуглить пример.
курю bs4 решил спарсить информацию с сайта росстата и сразу фейл, какая-то ерунда с кодировкой на кириллице, перепробывал все, что нашел в интернете
на первом скрине то, что я пытаюсь спарсить, на втором попытки
что сделал:
создал объекты класса UnicodeDammit и BeautifulSoup - не помогло
использовал "formatter", который рекомендуется в официальной документации для работы с HTML entities https://www.crummy.com/software/BeautifulSoup/bs4/doc/#output-formatters
убрал пробелы и переводы строк(мало ли?) - очевидно не помогло
закодировал и декодировал в utf-8 - не помогло
>Как сразу выйти из многомерной рекурсии
А разве там не достаточно просто return, чтобы выйти из рекурсии? Что ты имеешь в виду?
>или многократных циклов?
Типа, хочешь так?
for i in range(n):
...
for j in range(m):
...
if some_condition:
<особый брейк чтобы выйти сразу из всех циклов>
Тогда можно вместо for использовать while и вычислять условие выхода:
some_condition = True
i = 0
while some_condition and i < n:
j = 0
...
while some_condition and j < m:
...
some_condition = <проверяем условие досрочного выхода>
j += 1
i += 1
А можно хитрить, делать из многих циклов один:
from itertools import product
for i, j in product(range(n), range(m)):
...
if some_condition:
break
>Как сразу выйти из многомерной рекурсии
А разве там не достаточно просто return, чтобы выйти из рекурсии? Что ты имеешь в виду?
>или многократных циклов?
Типа, хочешь так?
for i in range(n):
...
for j in range(m):
...
if some_condition:
<особый брейк чтобы выйти сразу из всех циклов>
Тогда можно вместо for использовать while и вычислять условие выхода:
some_condition = True
i = 0
while some_condition and i < n:
j = 0
...
while some_condition and j < m:
...
some_condition = <проверяем условие досрочного выхода>
j += 1
i += 1
А можно хитрить, делать из многих циклов один:
from itertools import product
for i, j in product(range(n), range(m)):
...
if some_condition:
break
Пишешь вложенную функцию без параметров и тут же ее вызываешь. Прерываешь все return'ом
def yoba():
for for for for for for return
yoba()
>А разве там не достаточно просто return, чтобы выйти из рекурсии
Допустим функция вызывает саму себя. После return прекратится выполнение только вызванной функции. Та, что ее вызвала, продолжит ебошить
> Допустим функция вызывает саму себя
Как ты представляешь себе выход из рекурсии? Ты там на фортране хуячишь?
Тут надо исключение бросать и ловить. Хотя в целом это говнокод, но если очень нужно, то вперед
while True:
print(self.server.recv(MAXBUF))
печатает только MAXBUF данных. Но я вручную запихал в сокет раз в 5 больше данных чем MAXBUF. (это unix сокет)
Пишу websocket-чатик, который обменивается с клиентами JSONчиками. В них есть поля не только для хранения сообщений, но и всякие команды для сервера по типу авторизации, регистрации, добавления какого-нибудь пользователя в чс и т.д
Стек следующий:
1) aiohttp
2) peewee-async
3) PostgreSQL
Т.к я не знаю ничего кроме python и javascript, то написать могу только web-клиент. Для него хочу использовать Flask. Для фронта Vue, но это наверное неважно.
Вопросы для шарящих Анонов:
1) Как мне грамотно организовать сессию и аутентификацию?
Предполагаю, что клиент зайдет на страницу лигина, которую отдаёт Flask. Потом к Flaskу прилетит POST-запрос, и он сделает запрос на чат-сервер, т.е отправит JSON с введенной информацией в зашифрованном виде.
Если все ок, то сервер отдаст Flask какой-нибудь JSON Web Token, запишет сессию к себе в бд. После Flask ответит с сессионной кукой и перенаправит на страницу чата(типа окна мессенджера). Дальше клиент будет общаться напрямую с чат-сервером по websocket. Если страница перезагружается, то Flask будет проверять авторизацию пропуская запрос через себя к серверу и обратно.
2) На сервере для хеширования паролей хочу использовать bcrypt. Хеш с солью считается долго. Есть ли смысл считать его в отдельном потоке/пуле потоков/процессе/пуле процессов? Чтобы не было блокирующих операций.
3) Не могу понять, как нужно поступать с соединением с бд. На каждый запросс где-нибудь в middleware открывать соединение? Или нужно завести пул и брать соединения оттуда, а потом их освобождать?
Аноны, буду очень рад хотя бы небольшому комментарию хотя бы по одному вопросу. Даже радикальному.
Ну вообще, как сахарок := достаточно удобен, мне например он в таком месте понадобился
if a:= some_dict.get('key') and a.get('nested') == 'some_string':
Потому-что я хочу написать сервер, который будет выполнять только основные функции чата, а не рендеринг шаблонов и обработку POST-запросов.
Чтобы его в будущем могло использовать какое-нибудь мобильное приложение. Хотя, конечно, проект учебный
По ебалу надо бить за такой код. Давно уже придумали attribute access врапперы типа addict, но нет хочу жрать говно, зато ИСКАРОПКИ ХА-ХА, НИКАКИХ ЗАВИСИМАСТЕЙ, КАНЧАЮ ПРОСТА
if some_dict.get('key', {}).get('nested') == 'some_string':
Что мешает сделать два "модуля": основные функция чата™ и рендеринг шаблонов© и запускать в рамках одного aiohttp сервера?
define "лишняя работа"
Ты не задумывался вообще зачем нужен asyncio и event loop? Какую задачу он решает?
Я прекрасно понимаю почему ты это написал.
Возможно аргумент с лишней работой не особо канает. Хотя думаю, что иногда и канает.
Но всё-таки разве не нужно разделять функциональность? Пусть ядро будет ядром, а модули модулями
Так я тебе и говорю, разделяй. Что мешает разным модулям крутиться на одном сервере? Зачем ебаться и с фласком и с aiohttp, когда можно только с aiohttp?
Вообщем, если сделать так, как ты предлагаешь, то вопрос с авторизацией и аутентификацией наверное отпадает. Хотя я так долго думал о своей модели, что мне надо еще всё осмыслить.
Оставшиеся вопросы еще актуальны
Пиздарики вашему бейсику. Гвидо съебался, хипстеры в годрысню перетекают, останетесь только у ученых, на пару с фортраном.
Пруф?
Коля каждый день ложится спать ровно в полночь и недавно узнал, что оптимальное время для его сна составляет X минут. Коля хочет поставить себе будильник так, чтобы он прозвенел ровно через X минут после полуночи, однако для этого необходимо указать время сигнала в формате часы, минуты. Помогите Коле определить, на какое время завести будильник.
Часы и минуты в выводе программы должны располагаться на разных строках (см. пример работы программы)
Помните, что для считывания данных нужно вызывать функцию input без аргументов!
я тебя слегка наебал, у нас на связке не фласк, а аиохттп, потому что скорость
По сути нам джанга нахуй не сдалась, от нее используется только админка и орм для описания моделей, на стороне аиохттп параши все делается скл запросами.
Юзать фласк в качестве апи смысла вообще нет, в отличии от аиохттп скорости он никакой не даёт, а других профитов я не вижу
>Чувак задал вопрос по ООП, потому что, ВНИМАНИЕ, не понимает ООП
>ЧСВшный мудазвон полил говно потом что не не понимает ООП
Ты вообщепоходу не подозреваешь какой же ты мудак блядь.
Мимо другой анон.
> Elegant Objects же.
Почитал отзывы и описание, складывается впечатление что имею дело с сектой живой воды.
Но если серьезно имеет смысл обратить внимание или это какой то профисиональный мем как скип?
Падажи, но судя по синтетическим (и не очень) тестам, фласк шустрее джанги значительно, но медленнее aiohttp, да.
Какие задачи у вас апи выполняет?
> 22 August 2013
> 07 March 2k19
> Что за хуйня, это какой-то особый метод обучения или книга устарела?
Ну вот хуй знает.
Ладно, тупой вопрос был. Ну зато интересно разбираться в чем ошибки и исправлять их, может быть я и материал лучше усвою
Блять, я мудила. Все проблемы из-за отступов были, а я сидел и код правил.
Передайте ему "С таким отношением только торрент".
>считать сикп мемом
>считать ооп из eo сектой святой воды
Дай угадаю остальные твои воззрения:
>адепты юнит-тестирования - это свидетели иеговы
>статическую типизацию придумали веруны в нло
>многопоточность - это мем
>монады - выдумка жидорептилоидов, чтобы запутать Ваню
Его полили говном не поэтому, кстати.
Как сделать так, чтобы CPU0 от google colab не участвовал?
В машобтреде вопрос задал, но там обычно не отвечают
Скип и правда мем в среде программирования. То что ты не в курсе определения "мем" - твои личные проблемы.
>считать ооп из eo сектой святой воды
Во первых это было не утверждение а вопрос.
И вопрос не о концепции ООП в целом, а личном его представлении егорки.
Так что и тут обосрался, маня.
1) PyQT - кривожопое говно, хоть лучше ничего и нет.
2) Что ты вообще хочешь сделать?
3) Дай код.
>складывается впечатление что имею дело с сектой живой воды
>это было не утверждение а вопрос.
Так все ООП исключетельно на егорке сошлось, или нет, несектант?
Применима ли она в питоне?
Смотрю вроде на примерах пока все, ну кроме разделения интерфейсов наверное, кажется лютым капитанством.
Когда смотришь антипримеры как делать не стоит - вообще не понимаешь каким надо быть дебилом что бы так писать.
Вроде и так понятно что надо делать так.
>Вводишь минуты.
>его сна составляет X минут
Х минут, это сколько минут? Сколько вводить?
>Выводишь время после полуночи которое составляется из этих минут.
Начать считать минуты после полуночи, до скольки? Когда перестать вести счет?
Да, я тупенький, но я хочу разобраться и начать кодить, все говорят, что питон простейший язык для вката, я должен это осилить
Да уж, Eiffel для настоящих олдфагов.
>И вопрос не о концепции ООП в целом, а личном его представлении егорки.
Егорка не один представляет ООП таким образом, есть много независимых разработчиков со схожими представлениями.
>Х минут, это сколько минут? Сколько вводить?
Тоже всегда терялся на этих задачках потому что написаны они максимально расплывчато и поуебански.
Но вообще все просто.
Ты должен написать прожку которая выводит время при любом икс.
То есть сколько минут ч часах? 60.
Еслли ввели 50
Оно должно вывести
часы: 0
Минуты: 50
Ну или просто 00:50
Если 70
то 01:10
Если 130:
02:10
Проще говоря вся задача это простое деление числа икс с остатком на 60.
Или остаток от деления если целой части нет.
А как научиться понимать, чего от тебя требуют в этих мразотных задачах? Мне все время кажется, что там дохуя лишней информации, в которой я путаюсь, я вообще подумал, что тут два неизвестных числа, и нужно ебаться с Х и Y
Спрашивать, если это соревнование, у жюри, если это для учебы, у преподов, если просто так книжку изучаешь, там, наверное, ответы есть в конце, если нету и очень нужно узнать мнение авторов задачи, пиши авторам учебника, честно говоря, если ты это сам для себя решаешь, то в случае непоняток можешь просто сам выбрать как эту задачу понимать, если вариантов много, можешь сделать для нескольких из них, упражнение же. В целом, понимать поможет только опыт.
Оу, спасибо
>А как научиться понимать, чего от тебя требуют в этих мразотных задачах?
ПОнятия не имею, я в олимпиадном программировании никогда участие не принимал.
Попробуй codewars. Там на английском и то понятнее чем то что пишут в этой хуйне на родном.
Сука, аж трясет нахуй из-за этих пидорских подходов постановления задачи или описания темы у меня проблемы с математикой в школе были.
А как только стал изучать сам - все пошло естественно и как по маслу.
Дак я вот как раз и пытаюсь сам вкатиться, смотрю ролики, сайты, задачи выполняю, а задачи составляют вот такими пидорскими методами
Тогда тебе лучше на кодварс, но он скучноватый, или CheckIO.
Они полезны тем что после того как решил можешь посмотреть как решили другие.
А можешь посоветовать какие-то аудиокниги, лекции и прочее говно, которое я смог бы слушать на работе и запоминать? Где поменьше практики, я так пару лекций по джаве слушал, там начало только и многое применимо к питону, но дальше пошел пиздарез с практикой и писаниной, и такое я осилить не смог, ибо на работе непопишешь, зато выучил всякие термины и обозначения, нужно побольше такой залупы, имеется?
>какие-то аудиокниги, лекции и прочее говно, которое я смог бы слушать на работе и запоминать?
чтобы релаксирующая музыка была на фоне и начитывала девочка нежным голоском!
Чтобы можно на работе было учить теорию, а дома уже практиковаться
Нахуй он там нужен программе? int (input()) Без инта никак?
А хули не понятно? Set не упорядочен, у тебя каждый раз новый list будет, иногда будет совпадать и равенство будет выполняться
>иногда будет совпадать и равенство будет выполняться
Базаришь?
https://www.onlinegdb.com/Skyy0DlPV
Тебе лишь бы ляпнуть. Сказать потому что он хеши сортирует куда логичнее.
Строго говоря в этой версии сортирует, в следующей не сортирует. Единственное, что гарантируется интерфейсом - это то, что он неупорядочен.
мимо
Но все же совсем наоборот.
>компьютерному программированию
>компьютерному программированию
>компьютерному программированию
Идешь в обычную, а не десяточную, панель управления - система - ну и дальше там где-то будут переменные окружения.
снеси нахуй, поставь искаропки, пиши под линухом, как вариант. чем более дефолтные у тебя настройки, тем легче жить
Эта хуйня все еще не утонула?
Вопрос следующего характера:
Чем больше сижу на кодварс и сололерн, тем больше привыкаю к использованию лямбда-функций, итераторов, всякого рода мапов и фильтров (так как, часто, их использование помогает быстрее/легче решать задачки, побеждать в дуэлях и тому подобное).
Но когда я использую такие нагруженные штуки в своих проектах, понимаю, что их становится весьма непросто читать где-нибудь так через месяцок, особенно когда итераторы-условия выстраиваются в нефиговую по длинне строку.
Как часто вы используете эти фичи пайтона, и как не перегнуть палку?
Не слушай >>61122 петуха. input возвращает строку, int пытается преобразовать то, что ему дано в ход в целое число.
>>61127
Хз что за книга, но на обложке что-то многообещающее. Если >>61226 щеночек придирается к форматированию, то очевидно оно сделано для того, чтобы больше уместилось. А так, если в книге весь код такого уровня, то думаю полезно почитать. Но скорее всего это как трейлеры в кино. И вообще книги кал, смотри выступления с конференций на ютубе, читай чужой код.
>>61178
Если это книга для новичков, то выбрасывай её, это конечно академичный таск про список атрибутов всех родителей, но в реальной жизни никому не пригодится. И непонятно, почему он использует для visited словарь, в который засовывает True. Нахуй вообще значение надо, если единственную ценность представлюят ключи. Было бы логичнее использовать set. Короче, хуйня какая-то.
>>61637
Это пиздатый концепт, но он не особо применим в пифоне. Основная идея: сделать коротко и читаемо разбивается об противоположный камень с ростом сложности задачи. И наверное это хорошо, потому что большой код ≠ нечитаемый код, а короткий код ≠ читаемый код. Я тоже грешил лямбдами, фильтрами, мапами сначала, но, поверь мне, старая добрая функция/генератор/for будут гораздо более читаемыми и поддерживаемыми. Иногда map удобен, спору нет, но он удобен только когда это всё влезает в одну строку в 80 символов.
>И вообще книги кал, смотри выступления с конференций на ютубе
Щееееет. Индусские туториалы ваще бомба.
Есть строка вида "Я люблю {анекдоты}"
И есть список ["собак", "дошираки", "двач"]
Нужно перебрать все возможные варианты строк, подставив в фигурные скобки то, что находится в списке, и не забыть о том слове, которое изначально находится в строке (анекдоты).
Как это сделать так, чтобы оно не выглядело слишком монструозно?
Пиши регексп, серчем слово достаёшь, сабом заменяешь.
Или финд скобы если не предполагается ложных и неверных скоб.
Да вот у меня только с регулярными выражениями и получалось. Мне думалось, что есть какой-нибудь симпатишный способ
Ты долбоёб? Я имею ввиду пиздатые выступления с конференций: David Beazley, James Powell, Raymond Hettinger.
Что делать ? Что почитать ?
(Повеситься пытался, но веревка порвалась)
Есть упрощенный вариант, можно ни английский не знать, ни быть суперматематиком.
- На русском курс про машинное обучение пройти на stepic.org
- Умножение матриц, операции с векторами, смысл производной, производная z(x,y) можно прочесть на mathprofi.ru
- Потом на русском на youtube Андрей Созыкин - Глубокие нейронные сети на Python
- Потом переведенная книга на русский Шолле Франсуа - Глубокое обучение на Python
Этого мало для вката, только лишь вступление, но дальше уже проще будет ориентироваться в более сложной литературе.
>насколько зашкварно
В крайней степени. Почитай и подумай над своим поведением.
https://www.python.org/dev/peps/pep-0008/
https://pythonworld.ru/osnovy/pep-8-rukovodstvo-po-napisaniyu-koda-na-python.html
РЕР для пидоров
Особенно убивает концепция "выделяй бинарные операторы пробелами но сцуко не смей так делать для аргументов по умолчанию"
Есть момент крафта вещи а именно в нем участвуют от 3 до 5 вещей (больше или меньше нельзя), шанс успеха крафта 3 вещи 60%(в случае неудачи возвращается 1 вещь), 4 вещи 80%(в случае неудачи возвращается 1 вещь), 5 вещей 100% (шанса неудачи нет, поэтому этот вариант не учитываем)
Результат выводиться в виде:
> 60% шанс - 11 / 100 , остаток - 1
> 80% шанс - 26 / 100 , остаток - 2
Блять, что крафтим-то? Какая еще "одна вещь возвращается" в случае неудачи? Чего блять?..
Изначально если у нас есть "вещи", напрашивается ООП. Метод класса craft должен брать несколько объектов и по len(args) выбирать вероятность успеха. А функция random.random() генерирует float и смотрит попало ли оно в выбранный % диапазон
Он для начала приебошил этот костыль ибо не знает че да как. Если он хочет рандомно выбирать шанс, то ему в помощь random.choice, если ему нужен фиксированный фанс в случае каждой определенной ветви, он просто сравнивает рандомно сгенерированное число с float-границей
> Блять, что крафтим-то?
Абстрактную вещь
> Какая еще "одна вещь возвращается" в случае неудачи? Чего блять?..
Беру я 3 predmet, шанс успеха крафта 60%, в случае успеха я получаю один gotoviy_predmet, в случае неудачи я получаю один predmet
и
Беру я 4 predmet, шанс успеха крафта 80%, в случае успеха я получаю один gotoviy_predmet, в случае неудачи я получаю один predmet
> Изначально если у нас есть "вещи", напрашивается ООП. Метод класса craftдолжен брать несколько объектов и по len(args) выбирать вероятность успеха. А функция random.random() генерирует float и смотрит попало ли оно в выбранный % диапазон
Мне бы в виде кода, а то я не очень понимаю
def craft(num: int):
--chanceRoll = random.random()
--if num == 3 and chanceRoll >= 0.6:
----return True
--elif num == 4 and chanceRoll >= 0.8:
----return True
--else:
----return False
>>craft(3)
True
Примерно так. В Тру и Фолсы подставляешь то, что хочешь в итоге.
Я только ща сообразил, что ты хочешь, в общем, функция может принимать еще и список predmet'ов, а в случае неудачи возвращать случайный из них:
def craft(num: int, items: list):
...
--else:
----return random.choice(items)
>>craft(3, ['хулиточка', 'анус пса', 'червь-пидор'])
анус пса
В случае удачи, соответственно, возвращается скрафченный предмет. Организуется в виде словаря:
CRAFTED_ITEMS = {'JavaScript': ['хуй', 'говно', 'жопа'], 'Хуита': ['хулиточка', 'анус пса', 'червь-пидор']} и тогдалия.
Ну, а в функции craft() сравниваешь входящий список со значением в словаре и возвращаешь соответствующий ключ.
>Мне бы в виде кода
Сам бы и написало этот класс Item с базовыми методами и атрибутами. От него можешь наследовать подобные классы для расширения функционала, можешь примешивать другие классы для того же и т.п. Мне банально лень тебе это все расписывать. Подобие метода класса внизу. Реализация самого крафта вещи как такового по любому должна идти через БД какого-либо вида. В принципе можно удовлетвориться отдельным двоичным файлом pickle, где имеется кортеж пар set - item. Ну или банальный словарь где опять же ключ - название предмета, значение - set его компонентов
def craft(args):
----R = random.random()
----if len(args) not in range(3,6):
--------print('Cannot craft an item from these')
----elif len(args) == 3:
--------if R >= 0.6:
------------item = random.choice(args)
------------del args
------------return item
--------else:
------------return new_item(args)
и т.д.
Забыл, что здесь подзалупная звездочка интерпретируется как italic
>Причина?
Дурной тон.
Представь себе масштабную разработку с привлечением кучи разрабов, которые хуярят глобалки. Во-первых, есть шанс совпадения имен, тогда все поедет к хуям: у одного это одно значение, а у другого имя переписывается принимает другое. Во-вторых, тяжело читать такой код. Вот проект с кучей py-файлов и импортов между ними. И то тут, то там всплывают рандомные глобалки. Что это, откуда это, почему это здесь? Хуй поймешь, нужно искать и смотреть, что это означает. Если бы это была функция, которая возвращает булку или список, было бы понятнее. Человек смотрит на импорты и видит, ага, вот импорт из "неймспейса" такого-то, можно зайти в него и посмотреть, что из себя функция представляет, что принимает и что возвращает. А если это какой-то NAME_LIST_2, то охуеть не встать, давайте по поиску попытаемся найти, что это за дрянь, а потом оторвем руки тому, кто ее сделал.
Твоя жопа для пидоров. Следовать стандартам порожденным многолетним опытом работы сообщества разработчиков - путь настоящего мужчины.
>не катит, нужны рациональные причины подобному поведению разрабов
Хуятит пиздюк ебанный. Ты мне еще на собесе так побазарь со старшими.
Любой программный продукт это коллективный труд большого количества людей на протяжении длительного времени, а не твои убогие высеры уровня васянская лаба.
Поэтому он должен быть масштабируемым блядь, и что бы изменения в одной его части не делили весь продукт на ноль, делая его неработоспособным.
За подробностями открывай принципы SOLID и читай нахуй они нужны.
Прошу посоветовать мне что-то на питон, фреймворк, библеотеку или че там ваще похуй, что сможет просто блять грамотно обрабатывать дохуиллиард соединений, ладно не дохуиллиард, а ,допустим, одновременно до 1к соединений, чтоб я мог нормально обрабатывать запросы, чтобы без всяких ебанутых надстроек по типу django или pyramid где в рот ебись не нужная авторизация админпанель и все в этом роде где можно легко поьтеряца, и нужно чтобы это было то, что я один раз запущю, и туда будут приходить соединения, чтобы типа у меня внутри был класс обработчик который каждый раз будет вызываться при новом соединении и я буду там уже со всей хуйней делать свои надстройки и прочую поебалистику, а то , сука, куда не плюнь, все блять готовых решений наклепали и они нахуй не нужны мне, шо то говно, шо это, прошу вас, посоветуйте
в этом вся и проблема что я не знаю что мне конкретно нужно, из http серверов всякая пораша по типу фласка джанго пирамид имеет слишком много не нужных мне для решение задачи надстроек, мне нужно что-то что просто будет корректно осуществлять менеджмент подключений, с возможностью расширения способностей по средству моего кода, я не хочу с нуля писать сервер на тех же сокетах, мне нужен готовый, провереный вариант, а ты нахуй шлешь, пидрила
а бля, я дебс, да, годнота, благодарю, внатуре сам наебашу, спасибо всем
Ну вот сегодня я выучил как доставать цитаты и строчки из текста с выводом на экран, все питонеры запоминают команды типа "cliches, потом ставишь "=" и далее..." ну и в таком духе, это должно быть все в голове?
Я вот каждый день учу новое и тренирую старое, так должно происходить самовкатывание в питон?
Нет. Видеотуторы по большей части бесполезны, даже с учетом того, что ты повторяешь за ними. Ты просто на втором уроке тут же забудешь, что было в первом. Поставь себе реальную практическую задачу. Например, автоматизировать что-нибудь на работе или дома. Часто повседневные задачи включают работу с папками и файлами (копирование, создание, удаление), чтение из текстовых файлов, запуск программ по расписанию. Когда ты ставишь себе задачу, то начинаешь искать методы ее решения. Тут-то и приходит запоминание, поскольку ты не все в одну кашу смешиваешь, а выделяешь необходимое.
Когда создашь скрипты, можно подумать о GUI, чтобы тот или иной скрипт выполнялся по нажатию кнопочки в красивом окошке. Тут уже смотреть надо на PyQt - непаханное поле дроча и вникания в его функционал.
https://archive.ics.uci.edu/ml/datasets/Superconductivty+Data#
У меня следующий вопрос. Могу ли я привести признаки к общей шкале(стандартизировать)? То есть взять каждый столбец признаков и вычесть из каждого значения столбца mean по данном столбцу, а потом поделить на std по этому столбцу? И так сделать со всеми столбцами(На приложенной картинке описал формулами стандартизацию)?
Скажите, пожалуйста, мне нужно такую стандартизацию делать или нет?
Ведь просто метод random.choice рандомно выбирает один из объектов, но исходный список он не изменяет
Варианты: а) после операции val=random.choice(Iterable) использовать метод Iterable.remove(val). Но если таких элементов несколько он удалит первый в очереди, иногда это может быть критично
б) сделать через val=Iterbale.pop(random.randint(0,len(Iterable)-1) . Но выглядит пиздец уебищно
Че делать?
3x1 + 4x2 -> min
2x1 + x2 >= 3000
20x1 + 4x2 >= 45000
43x1 + 2x2 >= 12000
10x1 + 5x2 >= 55000
код
res=linprog([3,4],
A_ub=[[-2, -1],[-20, -4],[-43, -2],[-10, -5]],
b_ub=[-3000, -45000, -12000, -55000])
что не так то блять?(
в онлайн сервисе решается, а этот код выдает ошибку
ValueError: Phase 1 of the simplex method failed to find a feasible solution. The pseudo-objective function evaluates to 2.5e-11 which exceeds the required tolerance of 1e-12 for a solution to be considered 'close enough' to zero to be a basic solution. Consider increasing the tolerance to be greater than 2.5e-11. If this tolerance is unacceptably large the problem may be infeasible.
Сильно задрачивать питон не нужно, в ML тебе даже ООП редко когда понадобиться. Там в основном нужно либы знать, ну знания самого предмета нужны. Хорошее знание языка тебе пригодиться, когда будешь модели импленетировать с нуля на каком-нибудь tensorflow. В общем, учи питон по мере необходимости. Если возникают проблемы, то грамотно сформулированный поисковой запрос на английском языке поможет тебе в 99% случаев. Могу дать ещё такой совет: смотри чужой код. Сначала пробуй решить сам ( с помощью гугла), а потом смотри как решают эту задачу другие люди, наверняка у курса есть свое коммьюнити, мб там вообще решения выкладывают после дедлайнов. Это поможет тебе прогрессировать, и не вариться в котле со своими костылями. Если знаний языка совсем не хватает, то можешь глянуть какой-нибудь курс или видос по нужной теме, благо их сейчас достаточно
Я имел в виду, что это целевая функция, конторую нужно минимизировать
Докер думаю юзать, то там столько всего и хз что лучше подойдёт мне для этих целей.
Уже есть images с тасками, которые буду запускать, осталось только решить проблему объединения.
Смотрел в сторону докер-машины и swarm(создаю одного менеджера и кучу воркеров), но не уверен что это то, что мне нужно.
floating point-проблемы в scipy, советуют использовать method='interior-point'.
https://github.com/scipy/scipy/issues/6139
Ну либо options={'tol': 1e-10} добавь, как сообщение говорит.
Решил попробовать наимоднейшую нынче тулзу pyenv.
На моей свежеустановленной системе 2 пайтона: 2.7.15 и 3.7.2. Почему pyenv видит только 3.7.2(system)? Или просто 2.7.15 не используется для системных нужд и стоит просто так? Хотя в это сложновато поверить, т.к у меня Arch.
Собираюсь поставить еще одну модную тулзу pipenv. Т.к его нужно засунуть в site-packages какого-нибудь из пайтонов, непонятно кого выбрать. Лучше поставить к системному мб? Или это вообще не имеет значения?
import asyncio
async def main():
print('Hello ...')
await asyncio.sleep(1)
print('... World!')
asyncio.run(main())
Вываливается ошибка: RuntimeError: asyncio.run() cannot be called from a running event loop
Версия питона 3.7.2
Вот черт, это ошибка с IDE Spyder.
В консоле все работает.
>>> import asyncio
>>> async def main():
... print('Hello ...')
... await asyncio.sleep(1)
... print('... World!')
>>> asyncio.run(main())
Hello ...
... World!
>>>
Оказалось что сраные пердолики в IDE уже где-то крутят эвент лупом.
Фикс:
import nest_asyncio
nest_asyncio.apply()
В дебиане10 как то не густо python IDEшек.
Я привык к eclipse, но что-то в репозитории debian10 не завезли PyDev.
Потестил те какие есть: spyder и eric - все говно.
Остановился пока на vim + python-mode + jedi-vim, ибо кроме подсветки синтаксиса и автодополнения мне вроде ничего и не надо. Зато оно вообще не тормозит и я могу его удобно запускать на удаленном ПК. Предыдущие IDE запускал перенаправлением X по сети (нужен был 3.7 петон, когда в локальной ОС он 3.5)
>Остановился пока на vim + python-mode + jedi-vim
Следующая остановка spqcemacs, брат жив, зависимость есть.
Не понял
'"a": "asdasd \" asdasd \" asdasd"'
При попытке считать это json файл питон видит это как
'"a": "asdasd " asdasd " asdasd"'
Соответсвенно json.loads не может декодировать эту хуиту.
Как фиксить?
Уже разобался. Ненавижу, блядь, джавистов. То что у них считается валидным json у нормальных людей считается белым шумом.
Зачем? Мертвый язык @ мертвый тред
спасибо большое, аноним
def total(initial=5, numbers, keywords):
count = initial
for number in numbers:
count += number
for key in keywords:
count += keywords[key]
return count
print(total(10, 1, 2, 3, 5, 10, vegetables=50, fruits=100))
выдаёт сумму чисел из нижней строчки Print, 181, при этом цифра 5 вначале (initial=5), никак не учитывается - туда хоть 100 можно поставить, если же сделать так:
def total(initial=5, numbers, keywords):
count = 5
for number in numbers:
count += number
for key in keywords:
count += keywords[key]
return count
print(total(10, 1, 2, 3, 5, 10, vegetables=50, fruits=100))
То цифру 5, которая присвоенна переменной каунт, почему то из суммы вычитает, хотя операций вычитания в коде нет, и на выходе получается результ 176
А если же не декларировать переменную initial функции total вовсе:
def total(numbers, keywords):
count = 5
for number in numbers:
count += number
for key in keywords:
count += keywords[key]
return count
print(total(10, 1, 2, 3, 5, 10, vegetables=50, fruits=100))
Тогда как и положенно цифра пять изначально присвоенная переменной count прибавляется к переменным передающимся функции в нижней строке print и на выходе получается 186*
почему так?
def total(initial=5, numbers, keywords):
count = initial
for number in numbers:
count += number
for key in keywords:
count += keywords[key]
return count
print(total(10, 1, 2, 3, 5, 10, vegetables=50, fruits=100))
выдаёт сумму чисел из нижней строчки Print, 181, при этом цифра 5 вначале (initial=5), никак не учитывается - туда хоть 100 можно поставить, если же сделать так:
def total(initial=5, numbers, keywords):
count = 5
for number in numbers:
count += number
for key in keywords:
count += keywords[key]
return count
print(total(10, 1, 2, 3, 5, 10, vegetables=50, fruits=100))
То цифру 5, которая присвоенна переменной каунт, почему то из суммы вычитает, хотя операций вычитания в коде нет, и на выходе получается результ 176
А если же не декларировать переменную initial функции total вовсе:
def total(numbers, keywords):
count = 5
for number in numbers:
count += number
for key in keywords:
count += keywords[key]
return count
print(total(10, 1, 2, 3, 5, 10, vegetables=50, fruits=100))
Тогда как и положенно цифра пять изначально присвоенная переменной count прибавляется к переменным передающимся функции в нижней строке print и на выходе получается 186*
почему так?
эм, с разметкой обосрался(
А всё, разобрался, видимо пример в книге некорректный, и то что вначале мы декларируем itial=1:
def total(initial=1, numbers, keywords):
Это всё хуйня, и в итоге initial присваивается значение первой цифры при вызове функции:
print(total(10*, 1, 2, 3, 5, 10, vegetables=50, fruits=100))
наебала немножко книженция.
лол, только сейчас дошло что это в коде две звёздочки мне разметку руинят
Вы видите копию треда, сохраненную 14 апреля 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.