Это копия, сохраненная 20 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: >>1843911 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
#######################################
ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года
Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
исхдник: https://dumpz.org/bASGKD8cCFDf
БАМП
После того как сделал первые проекты и нашел работу, на которой в одно ебало пришлось пилить архитектуры, начал глядеть линк
https://www.youtube.com/user/profyclub/videos
потом подкатилась предложка, и очень помогло в развитии.
Какая цель? Нужен сервер и хост очевидно же.
Готов 6 месяцев уделять по 8 часов обучению python, 6 дней в неделю.
Постараюсь получить как раз тот опыт и те знания, которые можно применить на практике. Буду писать свою программу (копировать функционал другой программы).
Начальные навыки - 0 (умею работать в консоли линукса, разве что).
Смогу ли я через 6 месяцев претендовать на какие-то деньги в фрилансе?
Однозначно. Мы все с этого начинали. Трудились днями и ночами, читали лутца. Зп - от 120к. Все что нужно - усердие, трудолюбие, желание, главное - не ленится. Сразу комитить и выкладывать на гитхаб Я когд то тоже шел по твоему пути, и вот, зп 300к., только фриланс, работаю на островах, домик в тае, жена - 906090, пятеро детей. Ты главное работай, не ленись.
мне много денег не надо.
Если в месяц будет стабильно выходить доллариев 200 - уже буду рад неистово.
Но при этом, нужно чтобы поля из этого запроса задавались переменными. То есть, вместо "Name Name", "
Но проблема в том, что когда я собственно указываю имена переменных там, сайт, на который я шлю запрос думает, что я поехал кукухой, т.к он получает названия переменных (Пикрелейтед 2) и у меня вылезает
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Если я убираю одинарные кавычки которые стоят перед и после фигурной скобкой, и пробую отсылать это в таком виде (пикрелейтед 3) то получаю:
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Как поставить эти грёбаные кавычки, но уже после того как вместо переменных будет вставлено значение?
Не понимаю, ты что-ли сам руками пытаешься строку собирать? Или всё-таки через json.dumps()?
Не понял тебя.
У меня есть программа, которая сама генерирует эти логины пароли имэилы и всё это мракобесие. Собственно все логины пароли и прочая хрень хранятся в переменных. И мне нужно вставить эти переменные в запрос
Код показывай
АНОНЧИКС!!!! я допенькал и открыл для себя новую грань моделей орм жанги.
>>1852150 →
в общем там просто не создавал поле по наследованию модел.<тип данных>, а определял его черз объявление атрибута класса
def price(self):
return self.product.price
ну и у тотала по строке тоже так же
Попробуй свой третий пик, только кавычки в нейм имейл и тд на одинарные поменяй.
это у тебя на работе такое задание?
Допустим, вот https://pastebin.com/4tKujbhS
Я понимаю, что я где-то объебался с индексацией n+1 или n-1, но никак не пойму, где именно.
https://github.com/nameko/nameko
Если это по работе, то я и сам своего рода программист ЭВМ
Какую хочешь, такую и предоставляют, это лишь интерфейс для программы, который доступен другим разрабам.
Пиздец, ты откуда вылез вообще?
Пиши и получишь модуль для pypi. Напиши апи к апи Яндекс карт. Хочу чтобы было
import vasyan
pos = vasyan.get_pos(‘Salem’)
И чтобы безлимитное число запросов выполнял.
Сразу в голову приходит REST API, но не засшкварно ли его использовать в десктопном приложении?
бля чо он так руками машет?
То получишь Совок и он развалится.
Вместо бетона и кубометров котлованов у тебя апи.
Че, совсем писать нечего?
Напиши мне красивое api к glpi. Старое под питон2 уже не работает.
class MyError(Exception):
def __init__(self, text):
self.txt = text
a = int(input())
b = int(input())
try:
if b < 0:
raise MyError("ff")
except MyError as mr:
print(mr)
else:
print(a / b)
Просто пидарская укбанская хуйня сука умрите красноглазые прыщебляди
ДВАЧУЮ! я ебался с этим пайон 2 и 3 целый час, в инете нашел решение 3 странице гугла, втф. Снес нахуй и сижу на винде
это ты еще ноду не ставил.
Тот момент когда ставишь библиотеки через пайчарм в нужное окружение и питоны живут мирно
используй осм
Смотрел. Там надо регаться как разработчик, еще что-то делать, платить за облако, за токен и прочая канитель.
да мне не обязательно библиотеки нужны.
ты пользовался гугл картами? как получил токен? заплатил?
Я не собираюсь дрочить какие-то протеины высчитывать, не хочет собираться и хуярит ошибки — идёт на хуй. Линукс это елеработающее тупое говно для долбаебов.
Я в общем-то солидарен.
Я подзабил на проект с картами, АПИ кей просто получил в своей учетка на гугл клауд. Сейчас попробовал запустить код и они просят для работы с этим ключом подключить оплату по проекту, лол. Это фэйл. Сори.
ок. спасибо, что проверил.
Ты просто неосилятор, что у тебя там свалилось при установке пайчарма? Какой дистр?
class MyError(Exception):
def __init__(self, text):
self.txt = text
a = int(input())
b = int(input())
try:
if b < 0:
raise MyError("ff")
except MyError as mr:
print(mr)
else:
print(a / b)
Угадай, что будет если вместо b подставить 0 и как оно будет взаимодействовать с if b < 0
>poetry
Перечитай вопрос и постарайся всегда отвечать на вопрос, а не на проекции своих желаний. Поэтри - это хорошо, давай про него поговорим завтра.
я даун! ты просто гений
Дрочить гугол целыми днями это не осиляторство говнолинукса, это просто дрочь гугла.
Спасибо, а теперь пояснения. Сначала я должен сделать poetry add <пакет с версией> для каждого из 44 import'ов в моём проекте.
А я хотел избежать копипастинга, мне лень копипастить.
> дрочить гугол
> скопировать команды с оф.сайта или третьей ссылки в гугле на фосс
> в одну команду поставить с АУРа
Понимаю, действительно сложно. Солидарен с твоим объективным мнением о линуксе, полностью поддерживаю.
Ты издеваешься, что ли? У меня нет requirements.txt
Я его хочу создать без ебатни с копипастингом. И PyCharm ещё какие-то подлянки делает - типа выдаёт ворнинг, что надо добавить пакет, но не добавляет, надо колупать руками.
Всего этого хотелось бы избежать, чтобы как-то автоматом генерировать requirements.txt
Сначала обрадовался, а потом вот это:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 26973: character maps to <undefined>
Это в этом пакете, не у меня.
Спасибо, как раз сам только дошёл.
Склепал requirements.txt
Там 9 строк. Некоторые пакеты пропущены.
Типа json, shutil, gzip. Надо полагать, они "считаются" стандартными...
Да, это стандартные пакеты
Ну да, только за деньги и решать ее. В Гугле не совсем дураки работают, что бы боты их капчу решали. Либо просить токен для апишки у циана
Поставь Anaconda. Сможешь запросто создавать себе виртуальные окружения с нужной версией питона, можно всем управлять и через консоль, а можно и через графический интерфейс. Она кроспластформенная, есть и линухах и на винде.
var print
var hello size of python, hello. world
void piska
main
main main void size of bytes
more of bytes
int hello
int world
finally ... mmmmmmm int print size of 1++ %d %s(hgfjhj%^*%$%^%)
ladno
print(hello world)
И еще вопрос. Можно ли пиздить шаблоны и делать их на джанге, есть совместимость с вордпрессом? Чтоб прям по красоте было.
Нету совместимости
Потому что делишь на ноль.
Ты забыл объявить переменную и указать сколько нужно байт. Делать надо через var
с байтами проебался компилятор не понял ничего бывает такое. Асемблер нужен для ускорения. Слишком медленно все идет.
Сяп. А как решают этот вопрос те же платные api? Что-то из разряда нейронки для распознавания своей строят? Внедрение подобной капчи дорогое или почему все поголовно не настраивают себе ее на сайт? Впервые на такое наткнулся
Там сидят тысячи макак, которые разгадывают капчу за низкий прайс
Да решил и дата саенсом обмазаться, поковырявшись с квартирами, и решил парсить первый попавшийся сайт
>изначально была на потоках, которые не работают параллельно в питоне
Зачем писать программу на потоках, если они не работают?
Так было написано до меня
А в чем проблема ```pip freeze > requirements.txt```
Или ты без виртуальных окружений живешь?
Или такое уже есть? Можете дать ссылку?
Оцените, и подскажите что пригодится для этого?
Бамп
Есть пустой список. В переборе первой строчкой идет проверка на пустой список.. И если список пуст, то должен выводиться ком-ий. Но проблема в том, что выводится целое ничего.
users_list = [']
for user_name in users_list:
if not users_list:
print("We need to find some users!")
elif user_name == 'admin':
print("Hello, Master! How are u?")
else:
print("Hello, " + user_name.title() + ", glad to see you again!")
Бля. Спасибо.
Я бы спросил почему, но задам вопрос иначе - где можно почитать почему for не работает/не выдает никаких ошибок, если список пустой?
Почитай, что такое итераторы.
Если коротко, что делает for -
вызывает iter для получения итератора, потом на каждом витке вызывает next до получения StopIteration. В случае с пустым списком он получит его сразу.
https://ideone.com/zoKoI4
Принято, спасибо!
Кто в Пайчарм шарит, как убрать с боковой полосы отображение ворнингов? Подгрузил один сторонний проект, там дохрена ворнингов, лишь инфполе захламляют, вся боковая панель желтая
https://twitter.com/gvanrossum/status/1326932991566700549
Так все равно пистон разрабатывается в рамках PSF, а дид даже не главный там.
>puenv
Ты про pyenv https://github.com/pyenv/pyenv ? Я им просто не пользовался, поэтому сложно судить. Как я понял, pyenv ориентирован на только питон.
В Анакоде все работает с помощью менеджера пакетов conda, он работает не только с питоном, а в принципе с чем угодно, если это что угодно завернуто в формат пакетов conda, например, пакеты для языка статистической обработки данных R, Анаконда вообще поначалу создавалась в основном как инструмент для всяких дата-саинтистов и нейронок, но, конечно, для веба или чего тебе угодно тоже все отлично подойдет. Анаконда это целая экосистема, с кучей инструментов, предустановленных пакетов и большим сообществом.
Получил задание по курсовой: "Фотоальбом" типа микро Инстаграма. Авторизация, Лайки, комментарии, личный кабинет.
Я в программировании на уровне околонулевом, куда и в сторону чего смотреть?
За месяц успею это нарисовать?
import pandas as pd
и сразу же ошибка:
RuntimeError: The current Numpy installation ('c:\\python\\lib\\site-packages\\numpy\\__init__.py') fails to pass a sanity check due to a bug in the windows runtime. See this issue for more information: tinyurl com y3dm3h86
Ребят, че эти пидоры опять наворотили?
Я соснул с виндой и amd ?
>Я в программировании на уровне околонулевом, куда и в сторону чего смотреть?
Мне кажется, что не на питон. Входной уровень для того, чтобы в веб что-то делать, относительно высокий.
Вообще, задание довольно зверское для начинающего. Вот особенно если дать и сказать "делай". Неадекватное обучение. Обычно это приводит к тому, что совсем-совсем номинально всё сделано, или тупо сдают чужую работу.
Насколько это можно использоавть? Кто юзал скажите как полет.
ты про это что ли? там вроде написано, что надо использовать параметризованные запросы. я их и использую.
вопрос про дурацкие апострофы с кавычки остался висеть, я щитаю.
Как поменять значение итерируемого элемента? Например:
x = ['foo', 'bar']
for y in x:
if y == 'bar':
y = 'qwerty'
(оно конечно не работает, т.к. y есть внутри итератора, а мне на x[1] надо сослаться)
Спасибо
Слишком много ненужного выводит.
> по курсовой
>Фотоальбом" типа микро Инстаграма
Пиздануцца.
Ладно б там на диплом какой. Либо, реально, просто на готовой CMS склепать за пару-тройку дней.
Haha, Rails blog in 15 minutes goes brrrrt. поменять посты на картинки, добавить в модели лайки
По джанге (и фласку) могу порекомендовать видеоуроки Corey Schafer, но можно просто спиздить у кого-нибудь код с гитхаба.
За месяц вполне реально сделать, как и за неделю. Но я бы крайне не рекомендовал тянуть до последнего, хотя сам все делал и сдавал в самый последний момент, даже диплом за неделю написал.
Там пакеты не сразу обновляются потому что
Не находит ни один из инициализаторов в pythoncom, как это ... подключить нормально? Может сталкивался кто
сорян, прогнал чота с запросом сам.
зато новый вопрос возник. есть строка
s = ['451769\tYavidovo\tYavidovo\tJavidovo', 'Yavidovo', 'Явидово\t56.87068\t34.51994\tP\tPPL\tRU\t\t77\t\t\t\t0\t\t217\tEurope/Moscow\t2012-01-16']
делаю s.split('\t') и на выходе получаю ['451769', 'Yavidovo', 'Yavidovo', 'Javidovo', '0']
как забороть?
с объяснением когда и где использовать
я хочу получить вот такое
['451769', 'Yavidovo', 'Yavidovo', 'Javidovo,Yavidovo,Явидово', '56.87068', '34.51994', 'P', 'PPL', 'RU', '', '77', '', '', '', '0', '', '217', 'Europe/Moscow', '2012-01-16', '0']
Когда хочешь, что бы функция использовалась как атрибут
Анон, подскажи, пожалуйста, как мне нарисовать график с помощью matplotlib, если у меня оси x и y разной длины? Получаю ошибку x and y must have same first dimension, but have shapes. Полагаю, нужно как-то расширить короткий список до длины длинного или нет? В гугле не могу найти похожий на мой кейс.
немного не так. в исходной строке 3 элемент - это "Javidovo', 'Yavidovo', 'Явидово". три слова не разделены табуляцией и при сплите по табу должны составить один элемент, а не парситься.
s = ['451769\tYavidovo\tYavidovo\tJavidovo', 'Yavidovo', 'Явидово\t56.87068\t34.51994\tP\tPPL\tRU\t\t77\t\t\t\t0\t\t217\tEurope/Moscow\t2012-01-16']
в твоем выводе элементы с индексом 3, 4, 5 выведены отдельно.
['451769', 'Yavidovo', 'Yavidovo', 'Javidovo', 'Yavidovo', 'Явидово', '56.87068', '34.51994', 'P', 'PPL', 'RU', '', '77', '', '', '', '0', '', '217', 'Europe/Moscow', '2012-01-16']
а мне надо так:
['451769', 'Yavidovo', 'Yavidovo', 'Javidovo,Yavidovo,Явидово', '56.87068', '34.51994', 'P', 'PPL', 'RU', '', '77', '', '', '', '0', '', '217', 'Europe/Moscow', '2012-01-16', '0']
о да! то, что надо. чел, ты - гений!
Там говорят главный питухонщик в Майкрософт пошел, все, языку пизда?
Такие книжки выхватывают какие-то базовые вещи и показывают их применение в контексте своей темы.
Т.е. ты сможешь автоматизировать какие-то вещи в этой хуйне. А чтобы учить питон нужна книжка про учение питона. Так что это просто разные ЦА.
О, спасибо, не знал.
https://www.cnews.ru/news/top/2020-11-13_microsoft_zamanila_vyshedshego
И кстати Майкрософт уже давно не угроза человечеству, а его возможность на спасение. Сейчас главное зло это Гугол, стремящийся всё скупить, поработить и похоронить.
А Майкрософт с уходом Стива Балмера из руководства резко поменял стиль управления, политику, направление развития.
Они поддерживают и инвестируют в открытый код, уходят от попытки всё подмять под винту в создание совместимой с линуксами платформы, развиваются в облачные сервисы и т.п.
Короче Гугол сейчас это как Майкрософт в начале нулевый, а Майкрософт как IBM.
Гвидо уже не диктатор + питон в ведении PSF
>Майкрософт уже давно не угроза человечеству, а его возможность на спасение
>А Майкрософт с уходом Стива Балмера из руководства резко поменял стиль управления, политику, направление развития
И они не сливают инфу о тебе через тысячи зондов телеметрии, ага. Прохладные истории.
Это бесполезно, объяснять им что-то. Не смочь в venv или скачать pycharm с rutracker'a взломанный — это абсурд.
pip freeze > requirements.txt в linux консоли. Обратный процесс pip -r requirements.txt
У меня вот проект в пайчарме, я указал конда экзекьютабл , все ок
но банально опевцв даже не могу поставить
пишет, что в ее репах нет такого пакета
какого хуя? через пип все встало как надо
Конда нужна только в том случае, когда необходимо иметь несколько разных версий питона или наборов библиотек, и легко между ними переключаться.
>
Исключительно мое имхо, но конда та еще залупа, и систему все это добро нереально загаживает. Без конды хреново в дата саенсе, с ней - во всем остальном. Мое решение - разрабатывать в докере.
Качаешь образ с кондой, монтируешь в него свои директории, монтируешь на хост из него директорию с кондой, запускаешь в контейнере терминал, пробрасываешь порты, если нужен jupyter, и работаешь так. Если в докер не могешь - учись пользуйся venv, в конде они тоже есть.
Для себя я написал вот такую вот тулзу, может быть и тебе пригодится - https://github.com/VoidDruid/juppy
Это другое.
Читаю книгу, а знаний самих азов, судя по всему, и нет.
Может кто посоветовать учебник/книги по информатике, что ли?
Я даже не совсем понимаю, что мне нужно читать кроме построения алгоритмов. Быть может, это и действительно учебник по информатике, если он не будет лишним.
ну я еще не смотрел на счет удобства и тд
но пока сконяюсь тоже к вердикту "залупа", тк сталкивался еще и с тем, что не мог в другой проект пробросить модуль один
хотя я сам работаю (когда приходится) через venv.
А конда типа это можно или че? если я буду ебашить через venv и pip - это зашквар?
как его лучше поставить на другой комп? собрать докер образ или скомпилить?
>имеешь ввиду в одном проекте?
Нет, в разных. Допустим, у тебя есть одна среда для датасаенса с питоном 3.7 и соответствующими библиотеками, а другая для веба с питоном 3.8. Конда позволяет легко этим управлять. Еще при помощи конды легко ставить библиотеки, у которых зависимости не только на питоне, например Tensorflow.
Про бутстрап я слышал я имел ввиду другое. Типо вставить готовый шаблон, отредачить его с шаблонизатором и - готово. Те можно просто взять скачать сайт, дергуть хтмл и ксс от него, отредачить и получить с джангой уже готовый сайт. Посмотрел бутстрап - там надо самому все писать.
>но по идее это ведь и можно добиться связко pip + venv
Нельзя иметь разные версии питона, а зависимости не на питоне придется ставить вручную.
>Bootstrap 3\4
репорт
Ни в коем случае не стоит связываться с этим говном, это каменный век. В своё время бутстрап был актуален, сейчас это тормоз и шаг назад.
Не то, чтобы сильно оптимизировать, но идейно так можно:
params = []
if start != "":
____params.append("start={}".format(start))
if limit != "":
____params.append("limit={}".format(limit))
if params:
____request_url += "?" + "&".join(params)
Это чуть более логично и читаемо, особенно если у тебя больше двух параметров.
Если у тебя много таких кусков, то тогда можно просто специальную функцию написать и потом в одну строчку делать.
Собирать параметры в словарь, и если в словаре что-то есть, то компрехеншеном захуярить в строчку.
Ну и ещё момент, в куче библиотек и фреймворков для этого есть свои функции. Скорее всего в urllib тоже есть.
Они сделают более корректно, например как надо закодируют спецсимволы.
Ты опять не понял)
я имею ввиду - понравился мне сайт, я беру его копирую, все его хтмл стр и делаю просто копию. Такое на джанго возможно? По идее ведь да, и есть шаблонизатор, те можно дернуть чужой сайт, и с помощью ниндзи вставить свое. Можно?
Нет, невозможно.
Сделать из готового сайта шаблон сложно, кроме самых примитивных вариантов. Примитивных не в плане вёрстки, а в плане количества и представления данных.
Когда используются развитые фреймворки для вёрстки, то всё ещё усложняется.
На самом деле лучше найти выложеный шаблон и на его основе что-то сделать.
Но в любом случае работа квалифицированная.
Шаблонизатор служит для того, чтобы ты мог удобно генерить сложный html код, использовать части кода и т.п.п
Причём на всех языках кроме PHP без какого-либо шаблонизатора в принципе невозможно даже самый примитив сделать. PHP сам в себе шаблонизатор, его так и придумали для этой цели (потом из шаблонизатора сделали язык программирования), но без полноценного современного внешнего и на нём уже давно не делают.
Ты сам понимаешь смысл того, что пишешь?
Что значит тяжёлая функция на один час? Один вызов требует часа вычислений для получения результата? Так ты очень долго будешь что-то искать, с учётом, что у тебя 20 параметров.
Генетические алгоритмы, сколько помню, тоже не совсем для этого, они неэффективны в плане минимизации числа итераций, и не про поиск глобального минимума. Они тебе найдут какой-нибудь локальный.
В целом надо знать специфику твоей функции.
MPI тоже о другом, по-моему это скорее для матричных вычислений, и вообще, это уже давно не модно, 20 лет назад модно было. Для MPI тебе надо специально разрабатывать код и алгоритмы, далеко не всё дружит с этой архитектурой. Скорее надо делать в асинхронном стиле, когда ты создаёшь кучу воркеров, очередь задач, кидаешь задачи в очередь и ждёшь результата.
Причём если задачи очень долгие, но воркеров много, то там ты строишь специально алгоритмы под это, чтобы давать больше задач для наиболее вероятных веток. Я даже когда-то что-то подобное делал, но руками всё, не знаю подходящих инструментов, и очень уж тут специфика задачи важна.
Конечно я имел ввиду, что на один вызов функции уходит час.
>Они тебе найдут какой-нибудь локальный.
Цитата с scipy.optimize.differential_evolution
>Differential evolution is a stochastic population based method that is useful for global optimization problems.
Я понимаю, что число итераций будет большим, но мне как-то не сильно важно, т.к. мне не надо будет каждый день оптимизировать функцию. Надо найти всего один раз.
>MPI тоже о другом,
>20 лет назад модно было.
В hpc, где сотни нодов, аналоговнет.
И вот на скрине пример проекта молекулярной динамики на с++ с питоновским интерфейсом, поддерживающем mpi.
Научи на примере пожалуйста как делать в одну строчку. Скажем start = 1, limit = 5.
хз про твой код, но чекни модуль yarl, может сможешь его встроить и это будет более правильным решением
Переключение потоков в пистоне (да и вообще везде) это очень дорогая операция. Обычно делают несколько инстансов веб-приложения, запросы на которые распределяются через балансировщик.
Многопоточность нужна в первую очередь для того, чтобы не блокировать работу приложения, пока делается какая-то долгая операция, например чтение с диска, или вычислительная подзадача.
Её придумали ещё в те времена, когда на компьютерах в основном был один процессор с одним ядром, то есть не ради распараллеливания ресурсоёмких задач.
Она действительно актуальна для настольных приложений с GUI, в GUI без потоков никак.
Для традиционных задач в стиле крудов веба менее актуальна. Где актуально, удобнее асинхронность через asyncio, но это не про джанго. В вебе обычно просто много воркеров запускается и они синхронно работают. Но только до того времени, пока тебе не надо работать с сокетами и вебсокетами.
Зачем ты руками собираешь строку?
https://requests.readthedocs.io/en/latest/user/quickstart/#passing-parameters-in-urls
Как работает super() ?
Юзал его всегда без аргументов, чтоб вызвать метод класса родителя, но вижу ему часто передаю аргументы, 2 штуки. Первый это собственно класс родителя, второй - self. Постоянно вижу именно таа, есть еще какие-то способы и фишки для него, передавая другие аршументы скажем? (пробовал так, мне постоянно ошибки сыплет, такое ощущение что аргументы там и не нужны вовсе, все и так работает норм)
Спасибо за ответ, а можешь подсказать для чего на практике нужна работа с вебсокетами? Я представляю как это работает, но на практике это нужно для большей скорости или как? Можно ведь просто развернуть веб приложение, если тебе данные какие-то нужны с сервера на котором они обрабатываются, зачем так низкоуровнево прогать
Идейно похожие вещи, какие-то отличия есть, в JS ты можешь добавлять коллбаки на reject, в питоне нет.
Вообще Future не рекомендовано к использованию в прикладном коде питона, это больше для библиотек.
Посмотри сам, попробуй реализовать что-нибудь и с тем, и с другим. Смысл общий, идея реализации общая, но всё-таки они разные.
А вообще, асинхронность в целом в JS и Питоне сильно разная. В JS поддержка более нативная. Но в asyncio зато больше прикладного из коробки идёт.
Низкоуровневая штука это просто сокеты. Но с ними ты из браузера не можешь работать, например.
А вебсокеты как раз протокол очень высокого уровня. В сокетах ты высылаешь бинарный поток, а в вебсокетах ты высылаешь пакеты данных, плюс там кучу всяких системных пакетов контроля соединения и т.п.
Вебсокеты нужны, чтобы интерактивно с пользователем взаимодействовать. Ты можешь посылать команды в лайв-режиме в браузер и получать ответ сразу же.
Конечно, можно как-то и без вебсокетой обойтись, бомбить сервер постоянно запросами, long polling и т.п., но это всё криво и ресурсоёмко, и не так эффективно.
>И типа если это работает, то и норм.
Грамотно нужно делать для того, чтобы поддерживать возможно было, дорабатывать и интегрировать во что-то.
Очень тяжело, когда везде разная логика и разные велосипеды.
Но в прикладном плане важно, чтобы софт решат поставленные задачи. Только для этого софт и нужен.
Когда в твоём коде, в твоей реализации видят доморощенный пионерски подход (криво, переусложнено, не по стандартам, когда стандарты есть и приняты), то о тебе думают как о возможно способном ученике, на которого надо потратить много сил, чтобы сделать его коллегой, с которым будет удобно работать.
>когда стандарты есть и приняты
Это где в пистоне стандарты то? После жабы кажется, что каждый код делает как хочет забивая хуй на все, даже на pep8 часто забивают.
Все работает по модели request -> response
Юзер кидает реквест и сервер ему овтечает респонсом, только там. А с вебсокетами есть сразу канал, сервер туда можно сколько угодно сообщений для клиента высирать
В каждой компании свои
У нас вот с недавнего времени обязателен тайпинг и большинство сервисов разрабатываются на принципе DI. Раньше было хуевее. Ни тайпинга, нихрена. А в проекте кода почти на 100к строк (не считая пустых)
Но ведь никто не держит долго соединения, насколько я знаю, да и как у клиента есть только жс, или на жс пишется вебсокет, который отправляет данные, а на питоне их принимают?
пошли на джарп лучше, там щас пилим первый релиз
Погугли. Высрать ws-соединение на жс - хуйня. А на чем его принимать - вообще похуй
Благодарю.
>Высрать ws-соединение на жс - хуйня. А на чем его принимать - вообще похуй
WebSocket на JS поддерживается хорошо и нативно, но вот как раз на чём принимать ни разу не всё равно.
Фреймворк и инфраструктура должны с вебсокетами дружить. Вот хрен ты так просто подружишь с вебсокет с синхронным фреймворком, извращения нужны. Через nginx по-умолчанию вебсокет не пройдёт, надо специально в конфиге правила прописывать.
Короче вебсокет на стороне клиента почти ничего не меняет, если грамотно он сделан, а вот проектирование сервера меняет очень-очень сильно.
Иди на почасовую ставку, дохуя будут платить за ту же работу.
Пока нет. а что?
Или может я не то не так открываю, есть фаил .py так он вместо того чтобы в редакторе кода открываться сразу запускается.
Ну как бы работает через этот побелевший питон открытие, "открыть фаил", но он такой мерзкобелый и мерзко как блокнот...
а был чёрный и с норм дизаином, что случилось и как вернуть обратно дизаин?
Гугл смотрит на меня как на тупого при запросе "питон стал как блокнот".
Всё, разобрался.
питон принимает, а в команде name.pushButton_9.hover
connect( ho ) выдаёт ошибку типа не знает что за hover?
Но как уже после запуска фаил1, запустить ещё одно окно, действиями в открывшемся окне программы?
Т.е. я создаю фаил3 программы.
Но фаил2 подтянут вначале кода фаил1.
А этот фаил3 нужно подтягивать получается после "def" и описания действия, которое должно вызывать его открытие?
Как-то по-особенному этот фаил3 в коде фаила1 нужно подтягивать, или точно также как подтянут фаил2 который открывается сразу же при запуске фаил1?
Типа "нужно сделать такое-записывпешь вот так"
Понятно что совсем элементарные задачи, разбитый дальше некуда, т.е. единичная команда, а не "нужно сделать игру в которой грабить корованы-пишешь так".
Или кратенько не выйдет?
Сколько в питоне вообще "элементарных", типа фундаментальных команд?
Я имел ввиду, скчать сайт wget. И потом взять хтмл файл и править его так как надо мне, убрав все лишнее. Я не беру прям мега сложные сайты - нет. Например мне надо сделать блог на скорую руку, я ввожу в яшу - блог кота моти, качаю сайт. Вуаля, на джанге делаю быстро все. По итогу, скачав сайт, буду имет готовый шаблон, простой сайт. Тащемта я не силен в верстке, знаю разметку хтмл и ксс на уровен - тупо подправить и все. Те взять шаблон сайта, шаблонизатором расставить нужное. И все, плюс сделаю вьюхи и все это вывести, ну еще базу сделать.
Немного, загугли шпаргалку по питону, если на жсе прогал каком-нибудь, то достаточно быстро с основами разберешься
Сам не ставил ничего, но вроде алгоритм такой(хостинг очевидно на линупсе)
Клонируешь репозиторий
Создаешь venv
Ставишь зависимости
Настраиваешь nginx и бд
Делаешь миграции
Запускаешь, вроде все
Хотя я хз как там работают эти хостинги, но через ssh можно наверное все сделать
Скачать стили и хтмл просто, если сайт простой, то и в шаблонизатор не сложно, наверное, запихнуть, в чем вопрос то?
>вроде
Вот именно что "вроде". Ты не описал ключевые моменты по тому, как сам джанго на сервере поднимать, а в этом главное отличие локального запуска и запуска на сервере.
Нужен какой-нибудь менеджер процессов, который будет следить за тем, что процессы есть. Нужно настроить соединение nginx и джанго-wsgi. И ещё статику настроить.
Есть инструкции на этот счёт.
Делать надо через ssh, иначе сложнее в любом случае. Нужен VPS сервер, а не обычный php хостинг.
>Или кратенько не выйдет?
Нет. Судя по вопросу, ты программированием пока не занимался вообще, ни на чём.
Программирование это не команды в командной строке, это чуть сложнее.
Шутки-шутками, но по культуре мало пишут, всё время вскользь. Вот, забавная ироничная статья на хабре: https://habr.com/ru/post/526474/ Чувак описывает как, где и на чём он всё делает.
Инструкции есть и вроде несложно гугляться, окей, клонировал репозиторий, развернул все с зависимостями, далее(опыт был с gunicorn - wsgi) в настройках nginx проксируешь все кроме static и media на gunicorn через сокет или по внутреннему ip на котором запустил gunicorn, в настройках джанги указываешь файлы статик и медиа, неверное лучше завать конкретный вопрос, но в общем я это так вижу. Хз как у больших дядечек, но наверное для перезапусков пишется скрипт, который все поднимает при запуске(nginx, бд вроде сами переподнимаются)
Да хоть что-нибудь кто-нибудь показал и рассказал.
Спасибо большое.
Да, но что если параметр будет пустой? Тогда их пример не сработает.
Ну в том примере с ideone добавляешь ? и результат. Если значений не будет, то он туда и не попадет.
>Так вот вопрос, че делать дальше?
Попробуй сделать что-нибудь прикладное, как вариант. Игрушку, приложение, борду или сайт.
Второе, смежные технологии, базы данных, очереди, технологии программирования вроде многопоточности-асинхронности и т.п.
Глубоко в язык лезть без прикладного учебного опыта смысла нет, надо чередовать.
>fluent python
я хотел, но меня отталкивает 2016 год выпуска, сильно ли много за 4 года изменилось?
В контексте самой книги ничего особо не изменилось.
А. Понял. Спасибо.
> скажите я могу себе просить зп больше 35к в мск?
Низкую зарплату не имеет смысла просить вообще. В связанной с АйТи компанией ты или не нужен вообще, или нужен за рыночные-чуть ниже рыночного деньги.
Исключение лишь мелкие конторы, где нужен один единственный чел, чтобы поддерживать их интернет-магазин или что-нибудь в этом роде, но платить они особо не готовы и других программистов там нет вообще.
Если ты просишь неадекватно мало, то для работодателя это сразу знак "ты дно, неуверенное в себе никто", и он тебя только поэтому прокатить может.
Попробуй, в конце концов. Но запросы хотя бы до 70 подними, что вроде как скромно, но адекватно.
>скажите я могу себе просить зп больше 35к в мск
Столько получает стажер на половину ставки, а полноценный джун - 60-70к. Другое дело что джуном без вышки и опыта работы тебя вряд ли возьмут, так что придется идти стажером.
Смотри что у меня выходит. Все робит. Но, если лимит или старт будут пустыми, то он все равно из передаёт как Ноне. Как поправить? Нужно именно через метод делать...
https://ideone.com/bMWNaL
Посоветуйте годный и не совсем быдлокодерский способ обращаться с 2д координатами (а-ля школа, т.е. x1=5, y1=7; x2 = 8, y2 = 3)
Это позиции игрока и НПЦ соответственно, думаю сделать два словаря (gamerPosition и npcPosition) с полями yAxis и xAxis. Поскольку только вкатываюсь в написание кода на питоне, не уверен в выборе структуры данных.
Буду благодарен за советы.
Вдруг у кого-то даже завалялся хороший пример работы с 2д координатами в питоне?
В докер научись ещё оборачивать и збс + асинхронщину ковыряй.
40-50к можешь просить с ходу.
МимонеизДС
Вот пример свежих вакансий от ХР.
>ЗП: до 3000$
>до
Сразу нахуй. В таких случаях реально предложат в 2 раза меньше хотя и в остальных случаях тоже крайне много наебов.
я хочу бота, который бы постил в канал заданную мной инфу. читал документацию, нашел только как создавать ботов, даже сам одного создал. а вот чтобы бот постил в созданный паблик-канал - такого не нашел. есть чо?)
Интересно, как ты нашёл гайд по созданию ботов, в котором нет абзаца про основную фукнцию бота: писать куда-то что-то. Вот библиотека (одна из лучших): https://github.com/python-telegram-bot
Осиляй-запускай бота на ней. Отсылка сообщений там идёт просто:
context.bot.send_message(chat_id/user_id, text)
chat_id - Это получается ссылка на канал? Например, t.me/lgelectronics? Вот этот момент меня и смущает.
>chat_id - Это получается ссылка на канал?
Да. В случае открытого канала, как у тебя, это просто @lgelectronics. Иначе вот такие алгоритмы поиска: https://github.com/GabrielRF/telegram-id#web-group-id
На самом деле, вычисляется на раз. Я просто ботом chat_id выяснял и выводил к себе в приват или в лог.
>Вот этот момент меня и смущает.
Ну и понятное дело, бот должен висеть на канале. Дуров там рестрикций для ботов хуеву гору сделал, чтоб не спамили и всякой хуйни ими не делали.
Спасибо, анон. Буду разбираться.
Господа, а существует ли какой - то фрейм ворк, на базе которого можно было бы быстро собирать приложение с кнопочками, расчетами и отрисовкой графиков с красивым интерфейсом ? нужно для чтобы мои дебилы пятикурсники нормально эксперименты обрабатывали
> Не думаю, что человек, неспособный зайти на хх или линкедин, способен выучить что-то необходимое для желаемой вакансии.
Ну, на хх могут и протухшие вакансии быть. Поделился чем смог, так сказат.
> Лучше бы скинул ТЗшки
Как же я запощу то, чего не существует? Последние года 1.5 задачи ставятся устно и реализуются с небольшими пометками/схемами в процессе.
Хотелось бы что то более интерактивное и красивое, ноутбук уже есть
Есть класс с обычной функцией, которая выбирает из базы данных. Есть другой скрипт, использующий ее.
Что правильно делать асинхронным: функцию в классе или в скрипте вызывать через event_loop?
Асинхронность умею и понимаю, в докер щас учусь, принял, буду просить больше
Блэт, и этого нет.
Как ни странно, когда есть опыт работы - не просят тестовое(по крайней мере у меня ни разу не просили, как только набрал 1+ год опыта).
До этого было стандартно все и не интересно:
1. Туду лист на джанге
2. Парсилка сайта + апи для получения данных из бд после парсинга и запуска парсера
3. DRF и апи к запуску/проверке статуса отложенных задач Celery
Больше всего на собесе заходил формат:
Антош, вот есть такая задача, создать такой вот сервис, как решать будешь, какие технологии и чому будешь применять?
Тогда я ТЗшки скину, если не забуду, как домой вернусь. У меня там в основном по алгоритмизации задачи были и лишь пару веб-приложений. хотя на веб собеседовался
Подбампну.
https://stackoverflow.com/questions/64855686/docker-flask-client-sent-an-http-request-to-an-https-server
Проблема в какой-то ерунде кроется, а я разобраться не могу
Там всё на самом деле неправильно, при этом у меня работает, но если запускать твоей командой, то пишет
>docker run -it -p 5000:5000 tmp_my_flask_app:v0.1 bash
bash: 1: bash: [python]: not found
точнее я запускаю как терминал, а не как демон, чтобы вывод видеть и демонов не плодить, но не важно.
В схеме
>docker run -it -p 5000:5000 --entrypoint bash tmp_my_flask_app:v0.1
root@985304b7f861:/app# ls
Dockerfile app.py requirements.txt
root@985304b7f861:/app# python3 app.py
Serving Flask app "app" (lazy loading)
Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
Debug mode: on
Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
Restarting with stat
Debugger is active!
* Debugger PIN: 135-407-209
172.17.0.1 - - [16/Nov/2020 13:47:10] "GET / HTTP/1.1" 200 -
172.17.0.1 - - [16/Nov/2020 13:47:10] "GET /favicon.ico HTTP/1.1" 404 -
Работает.
Скорее что-то с настройками винды, я под линуксом запускают.
Но с точки зрения сборки контейнера неправильно вообще всё, что только можно.
Зачем ты вообще берёшь за основу контейнер с убунтой, когда надо в таких случаях брать контейнер с питоном?
Бери from python:нужная версия
В твоём варианте ты банально не контролируешь версию питона. На основе образов питона ты получаешь ту же убунту с кучей всего ещё, туда даже компилятор C++ входит, но грамотно собранную и одну на всю систему.
Там и другие нюансы есть, если собирать как ты, на базе убунты, но не надо этого делать в принципе.
Там всё на самом деле неправильно, при этом у меня работает, но если запускать твоей командой, то пишет
>docker run -it -p 5000:5000 tmp_my_flask_app:v0.1 bash
bash: 1: bash: [python]: not found
точнее я запускаю как терминал, а не как демон, чтобы вывод видеть и демонов не плодить, но не важно.
В схеме
>docker run -it -p 5000:5000 --entrypoint bash tmp_my_flask_app:v0.1
root@985304b7f861:/app# ls
Dockerfile app.py requirements.txt
root@985304b7f861:/app# python3 app.py
Serving Flask app "app" (lazy loading)
Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
Debug mode: on
Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
Restarting with stat
Debugger is active!
* Debugger PIN: 135-407-209
172.17.0.1 - - [16/Nov/2020 13:47:10] "GET / HTTP/1.1" 200 -
172.17.0.1 - - [16/Nov/2020 13:47:10] "GET /favicon.ico HTTP/1.1" 404 -
Работает.
Скорее что-то с настройками винды, я под линуксом запускают.
Но с точки зрения сборки контейнера неправильно вообще всё, что только можно.
Зачем ты вообще берёшь за основу контейнер с убунтой, когда надо в таких случаях брать контейнер с питоном?
Бери from python:нужная версия
В твоём варианте ты банально не контролируешь версию питона. На основе образов питона ты получаешь ту же убунту с кучей всего ещё, туда даже компилятор C++ входит, но грамотно собранную и одну на всю систему.
Там и другие нюансы есть, если собирать как ты, на базе убунты, но не надо этого делать в принципе.
Попробуй такой вариант докерфайла:
FROM python:3.8
COPY . /app
WORKDIR /app
RUN /usr/local/bin/python -m pip install --upgrade pip && pip install -r requirements.txt
ENTRYPOINT ["/usr/local/bin/python"]
CMD ["app.py"]
>40-50к
Это ниже минимального уровня. Не надо просить ниже минимума. Ты или не нужен, или тебе заплатят, или местно дно и туда скорее всего идти не надо, потому что нормальные люди там работать не будут.
Если ты просишь слишком мало, ниже минимума, значит в тебе что-то не так, и с тобой связываться не надо. Либо ты себя ПОКА сильно недооцениваешь, но устроишься и чуть поработаешь, так сразу начнёшь себя уважать и искать другое место. Ни первое, ни второе нанимателям не нужно совсем.
Просить надо от 70-80 и даже больше (если есть скиллы, но нет коммерческого опыта), в крайней случае тебя сторгуют на ставку пониже. Если ты просишь слишком мало, то твои шансы только понижаются, а не повышаются.
А разве не посмотрят как на долбаеба?
Kivy, по всей видимости, в первую очередь ориентируется на мобильную разработку, но заявляет себя как кроссплатформенное решение, то есть работает и на десктопах. А пробовал ли кто-нибудь тут десктопные приложения на Kivy делать, или это изначально странная идея?
А смысл, если у тебя не тачскрина?
Рахмет, повторил по твоим шагам - все получилось.
Есть QT на нем и делаю, там и дезигнер и вот это вот все есть.
На киви только под мобилку когда-то баловался, все таки он проигрывает по удобству.
Слушьте, а вот сделал я в Qt програмку для примера, с кнопкой, типа рамка-окно рабочее с кнопкой. Затем в питоне отделил типа 2 файла, один с программой основной, а второй с "графикой".
Ну нормально, открываю основной фаил кода-прдтягивается автоматически второстепенный фаил кода с графикой и открывается та рамка с кнопкой.
Но как сделать так, чтобы при нажатии на эту кнопку открывалось ещё одно окно?
Надо про логике создать ещё один фаил графики, и в основной программе дописать чтобы он подтягивался при нажатии на кнопку.
Но чёт прописываю это также как подтягивание того первого фаила сразу при включении программы, но нихера не работает.
Можно примере?
А с QML в связке с питоном не пробовал?
Я не особо понял, что тебе надо, но видимо, ты хочешь, чтобы в ответ на нажатие кнопки что-то происходило. Для этого тебе нужно связать сигнал clicked кнопки с функцией, которая будет делать нужное тебе действие.
Допустим, у тебя есть кнопка button и функция foo(), которая делает что-то полезное, тогда тебе надо написать button.clicked.connect(foo), и теперь при нажатии на кнопку button будет вызываться функция foo
https://wiki.qt.io/Qt_for_Python_Signals_and_Slots
Не, это понятно, а как сделать чтобы при нажатии на кнопку открылось окно ещё одно?
Я писал так как ты в посте указал, а функцию foo описывал что она подтягивает фаил с графикой ещё одного окна.
Но чёт нихуя не робит.
Т.е. у меня или питон из командной строки не откырвается, или скрипты не работают.
Приходится каждый раз менять путь то к папке с питоном, то к папке с скриптами, пздц заёбно.
Чё делать?
Ебанутый штоль? Там изначально дохуя всего для работы системы и можно добавлять сколько угодно через ;
Ну вот скопировал я это в текстовый фаил и сохранил с расширением .py
Открываю питоном, а оно не открывается.
Или это не так делается?
>и можно добавлять сколько угодно через ;
Я просто смотрел гайд по настройке на 10ке, и там у чело тупо куча строк для вставки путей, и я такой прихуел хули у меня одна всего, про перечисление через ; и не подумал даже.
Спс.
Я пытаюсь понять что такое асинхронное программирование и написал такой класс https://ideone.com/RHJ7pZ
Когда я пытаюсь его использовать извне, то все упирается в вопрос: где нужно использовать async/await? В методе класса или в вызывающем скрипте?
Буду благодарен за разъяснение или пример. Все эти аналогии с секретарем или макдональдсом понятны, непонятно как именно применить на практике.
>где нужно использовать async/await?
Нигде, потому что у тебя все функции синхронные, и методы синхронные, тот же requests.
Тебе нужно использовать специальные асинхронные библиотеки. Или с помощью aiohttp, или другие варианты есть. Буквально вчера был срач в ньюфаге, там упомянули httpx, интересная либа как раз для этого, к своему стыду я такой не знал даже.
Смысл асинхронности в том, что пока ты сам не разрешишь явно переключение исполнения на другой поток, переключения не произойдёт.
Ты когда объявляешь функцию как def async foo(), ты тем самым создаёшь функцию, которая возвращает не обычный объект, а специальный хитрый объект, который допускает переключение исполнения. В общем тут хитро всё. Но смысл в том, что ты не можешь просто сделать await обычной функции.
А переключение исполнения возможно только в точке await. В этом главное отличие от тредов, например. При этом переключение не гарантировано, тут уже специфичные грабли питона.
Глянь на пример из aiohttp
https://docs.aiohttp.org/en/stable/client_quickstart.html
Сейчас я тебе сделаю быстро демо пример, чтобы именно асинхронность продемонстрировать.
Лол, точно.
Пишет нет модуля PyQt4.
У меня до этого был импорт только из PySide
Теперь что, по одному все их качать каждый раз когда будет попадаться код с импортом из другого модуля? Можно ли как-то срзау все их скачать?
Если не затруднит, бро. Так-то я понял уже что к чему по этому модулю.
>Если набивать портфолио копипастом, в чем подводные?
Всем похуй на портфолио бекендеров, особенно начинающих
Бочку делал.
Качай и ковыряй ёпты
PyQt настолько интуитивные бинды, что первое окошко с кнопочками я написал за час не зная ни Qt, ни Python
Кроме специфического для всех нативных гуев контейнеринга/лейаутинга вникать там особо не во что
Фишка в том, что бы сделать свое, своими руками и показать, что ты понимаешь как все организовать и сделать. Можешь приходить у других, но зачем?
Пик 1. Классека
Пик 2. Ебанутые какие-то, нихуя не ясно. Особенно зачем джанга и алгоритмы сортировки вместе, да ещё и с постгресом и виртуальной машиной.
Пик 3-4. Нихуево они так губу раскотали, ты в результате сделал это тестовое?
Для ньюфагов тестовое и собес решают, для мидлопомидоров иногда достаточно о предыдущем проекте попиздеть
Последнее объявление. Если Kafka и K8s не для красного словца, можно 4к просить. Хотя если для задач по нагрузке нужна именно Kafka, там наверное придется и на Go писать сервисы иногда.
Первая классическая олимпиадная задачка.
Вторая более мутная, во многом на умение разбираться с инфраструктурой и какие-то основные знания основных вещей, тоже норм.
Третье сразу нахуй, вообще смотрится как коммерческая задача, которую решили сделать средствами соискателей. Плюс это в любом случае большой объём работы. За такие тестовые стоит браться, только если в конторе уверен, что они что-то более серьёзное разрабатывают, уже какие-то собесы прошли и уже предметно разговор идёт о том, чтобы тебя брать, и потянешь ли ты работу с ними или нет.
> вообще смотрится как коммерческая задача, которую решили сделать средствами соискателей. Плюс это в любом случае большой объём работы
Лолшто, простенький круд. Как раз проверка на крудошлепство.
>Лолшто, простенький круд.
Замороченный круд с кучей условий, неопределённости, тут на сотри строк кода работы и минимум день, а то и больше работы. Причём работа такая именно рутинная работа, вникнуть, что там они хотят и как это оформить, написать какие-то стандартные вещи с объёмом кода, и т.п.
Со стороны большой конторы, где это именно тестовое без наебалова, это просто неуважение давать такое на раннем этапе. Ты на них тратишь день и больше, они на тебя ничего, может глянут краем глаза и скинут в корзину. Это очень плохо говорит о конторе. Скорее всего они особо нанимать и не планируют и относятся с соискателям как к говну.
Со стороны мелкой конторы это может быть наебалово. У них висит задача, как сделать что-то подобное, но им лень или не хватает квалификации сделать нормально. Они дают такое ТЗ, ждут решения, находят какое-нибудь интересное и на его основе делают своё. Тупо может быть история, что нет спеца по Джанго.
Ну так-то это к девопсу ближе, вангую, что не дадут самому руками все тыкать и делать на свое усмотрение.
Вроде как в больших компаниях есть отделы и разделение обязанностей, а не вот это вот всё, раз бэкэндер то сервер и сеть на тебе.
Спс, чет тупил и даже загуглить не мог нормально.
Есть разные библиотеки для связи питона и Qt, PyQt это одна из них, а PySide это другая библиотека, так как PySide основана на PyQt, да и делают они одно и тоже - вызывают функции Qt из питона, то они очень похожи, до такой степени, что часто достаточно просто заменить import PyQt на import PySide и все заработает. У этих библиотек есть разные версии, и у Qt есть разные версии. Сейчас для Qt последняя выпущенная версия Qt 5.15, вроде как, в декабре этого года обещают выкатить Qt 6, для PySide это PySide2 5.15, для PyQt5 5.15.1. PySide2 на данный момент поддерживает компания, владеющая Qt
https://wiki.qt.io/Qt_for_Python
https://www.qt.io/qt-for-python
У них вики и доки есть
https://www.riverbankcomputing.com/static/Docs/PyQt5/
https://wiki.qt.io/Main
https://doc.qt.io/qtforpython/
По крайней мере, Pyside2 устанавливается вместе с кучей примеров. У меня прямо в папке site-packages, куда pip складывает установленные пакеты, в папке Pyside2 лежит папка examples
Аноны, нужна помощь. Хочу изучить Python для личного пользования. К примеру, для создания парсеров, автоматизации действий (через vk-api и т.п.) Что мне стоит прочесть для того, чтобы вкатиться?
pythontutor.ru какой-нибудь. Потом сам разберешься.
лучше не надо!
мой знакомый так начинал - для личного пользования, парсеры-хуярсеры...
а потом очнулся в google с пачкой опционов
Алсо:
Иногда знание pysyde выручает, т.к. именно на нем можно что-то написать для расширения программы. К примеру, встретил такое во FreeCad. Хочешь доп. окна в которых запрашивал бы данные для расчетов - хуярб скрипт на pysyde.
Мимодругойанон
Спасибо
Скалярных.
Расшифровка из Idle прилагается но я слишком тупой и не знаю языка. ( Моя теория что это из-за оператора and но это не точно а если так то какого хуя )
Для новичка и вообще язык хорош, но работать вроде на нём говняно-конкуренция большая.
Допустим мне надо что он открывал окно с данными из текстом данных из экселя сразу при наведении курсора на область.
Какой лаг будет?
Ну понятно там что от жёсткого диска компа наверное ещё зависит, но а вообще?
0.023351192474365234 секунды на чтение и вывод на экран файла (1460 rows × 81 columns). Дальше считай сам сколько потребуется времени.
Спасибо за тэст, думаю я не успею сообразить что вообще какая-то задержка произошла.
Но ведь это же будет влиять от того ссд или хдд на компе и насколько крутой, и сильно должно влиять.
У тебя ссд?
А как реализует так и будет.
Если еблан, то реализует чтение всего файла при наведении. Если не еблан то сделаешь чтение пары верхних строчек ещё до того как мышка подъедет к файлу, а отображение уже как произойдет наезд на файл(прям как отрисовка объектов в гейдеве)
Через классы делай если большой процент повторного использования кода и надо писать универсальный код, декораторы для хакеров не таких как все, функциями ебош если ты совсем тупой и тебе похуй что никто потом не поймет че ты там наколбасил.
Ты наверное очень тупой. Я посмотрел видео хауди хо джанго за час, сделал сайт за полчаса и продал его за 40к баксоа на апворке. Заказов очень много, не успеваю брать. Или ты просто невнимательно смотришь.
Да обычно даже в обычной джанге все удобно через классы понимать что за что отвечает, тут же есть
StringRelatedField
PrimaryKeyRelatedField
HyperlinkedRelatedField
SlugRelatedField
HyperlinkedIdentityField
Просто для того, чтобы отобразить по-разному поля связные
У меня все теряется в голове, хоть документация хорошая
Хочу сделать JSON по образцу с помощью Питона, но не догоняю как.
Ссылка на щит-код: https://ideone.com/oWGO1n
Не так написал, видимо. Да и вообще чота я уже сам запутался нахуй как я хочу)
Используя только арифметические операции (+, -, %, *, /, //) определите, делится ли число натуральное число N на 11 (использовать признак делимости на 11).
Да, так можно проверить, но это не является решением, потому как необходимо чтобы проверка происходила по признакам делимости на 11
Этих признаков несколько, но любой требует проверки делимости на 11 для числа покороче исходного.
не знаю ни одного признака делимости на 11, где требуется делить на 11. Зато с другим принципом полно
Всё просто же, берем первую ссылку из гугла.
> Число делится на 11, если сумма цифр, которые стоят на четных местах, равна сумме цифр, стоящих на нечетных местах, либо отличается от неё на 11.
Т.е. через while делишь на 10 и собираешь эти четные нечетные.
Просто фигачь рекурсивно дальше, если abs разности сумм цифр >= 11.
> На самом деле, правило, описанное выше — это упрощенная версия полного признака делимости на 11. В большинстве случаев при решении задач школьного курса математики его достаточно.
> Но если быть точным, признак делимости звучит следующим образом.
> Число делится на 11, если сумма цифр, которые стоят на четных местах, равна сумме цифр, стоящих на нечетных местах, либо отличается от неё на число, которое делится на 11.
Но нахуя тогда городить огород, непонятно. Хотя там будет небольшое число, разве что для этого, т.е. подходит для ручного вычисления.
https://ideone.com/STAwST
Это чисто для проверки. Ну а там ещё один цикл вхуярить или рекурсию.
>Используя только арифметические операции (+, -, %, *, /, //)
Условие непонятно. Циклы, if-else, лямбды использовать можно или нельзя? В общем, пикрил мое решение без использования N % 11 == 0.
lambda x: int(x) можно заменить на int
digits = list(map(int, str(num)))
odd = sum(digits[::2])
ну и дальше понятно
>в учебной задачке за такое сделают ататат.
Серьезно? Я еще понимаю использование признаков делимости - это довольно хорошая задачка на рекурсию - но руками высчитывать цифры это совсем пиздос.
И ведь после такого студент рано или поздно устроится джуном и начнет фигачить в прод цикл с num // 10 num % 10.
спасибо
А в чем проблема? Я не вижу принципиальной разницы у обоих подходов.
В всяких статических языках ещё придется поебаться с этими конвертациями, так что с арифметикой даже предпочтительнее.
>А в чем проблема? Я не вижу принципиальной разницы у обоих подходов.
Вместо того, чтобы учиться возможностям языка и написанию читаемого кода, студенты привыкают писать велосипеды. Потом им приходится переучиваются.
>В всяких статических языках ещё придется поебаться с этими конвертациями
Как правило можно преобразовать аналогичным образом. В том же шарпе есть LINQ.
>Вместо того, чтобы учиться возможностям языка и написанию читаемого кода, студенты привыкают писать велосипеды.
Которые ещё и пиздец какие медленные, ибо вместо одного % делаешь ебическое количество делений.
Асинхронщина мать ее...
1. Как выполнить сразу множество асинхронных запросов к БД через асинхронную sqlalchemy? (если гонять await connection.execute(query) через цикл for то это нихрена не асинхронщина)
2. Как мне заблокировать доступ к БД на тот момент, пока выполняется эта операция? Чтобы несколько разных запросов к БД не сконфликтовали?
queries = [task1(), task2(), task3()]
await asyncio.gather(*queries, return_exceptions=True)
> Как выполнить сразу множество асинхронных запросов
Ебни Н запросов в одной транзакции.
> Как мне заблокировать доступ к БД
К БД - никак, к записям которые ты заюзал в другом запросе - оно само.
При миграции ловлю ошибки:
psycopg2.errors.DuplicateTable: relation "django_session" already exists
django.db.utils.ProgrammingError: relation "django_session" already exists
Удаление всех джанго-таблиц, миграций под ноль и новый запуск не помогает, ошибка остаётся. Если мигрировать с --fake, она проглатывается, но тогда проблемы с админкой:
"django_session" is a composite type LINE 1: SELECT (1) AS "a" FROM "django_session" WHERE "django_sessio... ^
Куда копать? Как исправить?
Спасибо <3
asyncio.Queue
>Но как же тогда расти как программист?
Гораздо полезнее будет узнавать про архитектуру, протоколы и правильную организацию кода.
Это разве сложно? Если учить компьютер сайнс не по видео хауди хо, то этот багаж знаний довольно быстро набирается
А где в компутер сайнс учат архитектуре? В том же cs50 или sicp. Там только байтоебство и алгоритмы. Даже от тех же способов хранения и передачи данных очень многое зависит.
Оно само как-то приходит. Главное практиковаться почаще, ну и заглядывать в код чижу. сикп - мем
Так а что советовать, ты уже считай на правильном пути. Как тебе правильно сказали - учи архитектуру, си для этого лучший вариант, ну еще и ассемблер можешь поучить, чтоб понимать си
Я кажется как-то давно листал вот эту книженцию
http://download-mirror.savannah.gnu.org/releases/pgubook/
Там довольно мягко вводят ассемблер.
В одной папке лежат два файла, из одного хочу заимпортить другой, а первый импорчу из другого места в интерактивном режиме питона. Просто так не импортится, говорит, что второй файл не может быть найден, что, вроде как, и понятно, но как это решить без коряченья сис паса, а то эта система - переиспользуемая либа.
Модули - это переиспользуемые компоненты, которые я хочу приносить пачкой git clone в каждый новый проект свой импортить из одной командой. Я не могу перейти в другую папку(разве что sys.path добавить, но это выглядит как одноразовый костыль), потому что я уже исполняю код в другой папке и там многое на это завязано.
Не знаю чем тогда тебе помочь. Глянь видосы хауди хо, про питон за час. Там должно быть. Я посмотрел и уже начал зарабатывать 300к в секунду. Зуб даю, не вру. Но давно смотрел прост. Если пересмотрю то вообще все 600к буду делать.
>рекурсивно вычислить сумму положительных элементов для каждой строки в двухмерном а(10,10) массиве
Вот моё решение https://ideone.com/a57N2g
Но там в какой-то момент всё идёт по пизде в функции _arraysum, и она возвращает None.
Куда копать
Не знаю как в других городах, но в Москве эйчары имеют доступ к каким-то способам уточнить эти вопросы. В двух компаниях, про которые я слышал, это - веский повод добавить собеседника минимум в 5-летний чс, обычно в перманентный вообще добавляют, да еще и могут в какую-то общую базу это слить, тогда вообще только город менять, либо искать какую-то крохотную компанию с неопытной эйчаршей.
Он пиздит
Вроде для удаленки норм, но тут еще курс рубля помог, в рф для моего опыта зп ниже в 1.5 раза примерно
Везение сыграло очень большую роль, когда вкатился на эту вакуху был 1 год, но это стартап на тот момент был и люди срочно нужны были
Не оч
Сразу столько, сейчас уже третий год пошел, но я на расслабоне работаю сейчас и новую работу искать не хочу
Так это в начале было, когда было 3.5 человека, сейчас все выстрелило, компания обрасла жирком, от скоростного добавления фич ушли к большей стабильности
вопросов нет
Спасибо
Я дурак... почему я забыл return написать
и почему-то табуляция поехала, магия какая-то, тупой емакс
И по итогу я правильно понимаю, что это просто строка с ">>>" имеется ввиду?
Скажи, зачем тебе это?
Поддреживаю и дополняю несколько мегамонолитов: личный кабинет, sso, другие сервисы для работы юзера
А почему она так назыается? По крайней мере в словаре я не нашел значения это слова, которое хоть как-то подходило бы для строки
Строка-приглашение. Приглашает присоединиться к работе высера разработчика. Вот и всё
Ты к tmp прибавляешь 1, но никуда не присваиваешь, из-за этого цикл стоит на месте и бесконечно крутится, чтобы значение присвоилось надо написать tmp = tmp + 1 или сокращенная форма - tmp += 1
Спасибо
Все пишут что python очень хороший язык для вката в it. Ну типа можно с него начать, но что на нём можно делать? Какие задачи решают с помощью питона? А какие лучше на нём не делать?
Приложения на нём лучше не писать. Под смартфоны или под десктоп, которые, с ГУИ. Язык скриптовой, а следовательно, медленный. Быстро на нём работают модули, написанные на С и моули, работающие с быстрым железом, которое считает на аппаратном уровне. Там, где нужна скорость, писать лучше на чём-то другом. Это же относится и к вебу - если сайт очень уж большой, то надо с питона куда-то перебираться. А всё остальное можно на питоне - из-за хуевой горы уже готовых библиотек остаётся только учить их интерфейс и применять.
Можешь порешать ссаные задачки и забить на свои вкаты, а то так и будешь слюни пускать.
А что скажешь про автоматизацию систем спомощью питона?
Я именно для этих целей хочу его изучать, потом буду подкатывать яйца в сторону девопса...
О, вот для этого как раз вкатываться и стоит. Всю рутинную требуху туда захуяришь. Только никому не рассказывай, а то ещё работы дадут.
>В год электрона это уже не актуально
Ну да, с электроном теперь всё равномерно медленно. И медленный питон не особо на этом фоне выделяется.
>Чудовищный пожиратель ресурсов, если так между нами, девочками.
Зато на нем можно легко и быстро сделать красивый интерфейс.
В том-то и смысл. Сегодня всем похуй на ресурсы на десктопе.
Это хорошо, значит в правильном направлении двигаюсь
Да
спс помоги еще
def find_outlier(integers):
ran = 0
for i in integers:
if ran == 3:
print('zzz')
break
ran += 1
это вдеь тоже можно норм написать
ran = 0
for i in integers:
if ran == 3:
print('zzz')
break
ran += 1
Идешь не в те компании. Надо искать какие-нибудь стартапы где похуй на вышку. Да в принципе и крупные компании могут давать подработку. Я перед вторым курсом проходил собес в Касперском, но не прошел не из-за того что студенота малого лвла а из-за того что хуево прошел тех собес. Через несколько месяцев меня сами нашли из другой конторы. Так что тут главное не сдаваться еще
А я уже хочу сдаться, вот спросил выше про книги, видимо одного питона не достаточно, нужны теоретические знания, в стартап почти попал, но в итоге на ту же позицию набежало еще куча других разработчиков и в итоге ответ отложили за неделю
А что хоть на собесе спрашивали? У меня из теор знаний просили только простенькую хеш функцию придумать
Я вот с конца третьего курса начал искать работу и потребовался год для жоп офера. В основном мое резюме даже не просматривали либо отклоняли без собеса/тз. По знаниям я не могу сказать, что поднялся. За пару собесов запомнил основные вопросы (обязательно спросят про хттп запросы, osi, ооп поверхностно и базы данных), запомнил пару каверзных вопросов и ответы на них, начал читать книгу по смежной специальности. Т.е. по знаниям не поднялся, а просто вышел на нормальную контору (не стартап).
>>861102
Ну по вопросам в которых я затупил:
Бд:
Не смог идеально рассказать про нормализацию
Не знал что такое индексы
Наверное неправильно ответил про планировщик
Линукс:
Не сразу вспомнил что пайпом можно не только вход выход перенаправлять, но и ошибки
Не смог сказать точно как с мопощью консоли найти топ 10 айпи в логах
По питону на все ответил без проблем
Cмотри в сторону покупки курсовой, микропрогер.
я вот сегодня попытался на удалённом сервере гугла поставить на винду хром. Ох как я ругался. Там просто запрещено скачивание любых файлов в експлорере, карл. Пока не отключишь спец заглушку в фаерволе, про которую увидишь в индусском видео.
да, я ставлю на удалённый виндовский сервер питон и куду и запускаю пих2пих
если могешь, то докер. Если не компилится- фризь и делай среду в конде там где нужно ставить.
Он удобный?
Обнаружил, что кое-какой софт на нем написан и решил что неплохо бы изучить. Но ведь flask же "battery not included" - как он может быть удобным ?
Что-то у меня какие-то проблемы с ним, не хочет ничего запускать. Сначала кнопка запуска горела зеленым, но писало что-то о том, что нет интерпретатора, я решил переустановить питон, удалил всё и скачал заново, теперь вообще она не горит и предлагает добавить конфигурацию
У тебя справа написано, что идет индексация. Просто подожди, пока оно закончится, и все заработает.
Создал новый проект, но уже со стартовой страницей, теперь всё работает
>Нормализация
Знаю только про уменьшение избыточности
>Индексы
Та штука, которая позволяет увеличивать производительность при фильтрации данных
>Планировщик
Что?
>Как с помощью с помощью консоли найти топ 10 айпи
В шелл дрисне только грепом умею пользоваться
мимо 300кк/нсек
их может быть тысячи и типа в основном это "поменял название файла", "пукнул в лужу". Нужно что-то серьезнее
Зависит от того, как коммитят сами разрабы, если разносить фичи по веткам и делать скваш перед мержем, то все получается красиво
есть примеры?
Можешь выбрать интерпритатор в настройках проекта, либо при создании проекта, зеленая стрелка применяется к последнему запущеному файл(шифт+ф10, либо пкм по названию скрипта и ран)
Есть уже целые системы, типа uipath, если ты про заполнение форм, таблиц и подобное, а вообще по моему опыту лучше не вкатываться на питоне, на каждую вакансию набегает по 150 макак типо тебя, 20 делают тестовое и проходит 1, а вакансий за месяц ну 20-30
Тут есть шарящие в регулярках на питоне? Как мне получить строку, что находится между символами . и &? Например ab.cd123.lox&31g, в данном случае надо lox получить
re.findall("\\.([^.&]*)&", "ab.cd123.lox&31g")
Сейчас считываю названия и тащу [10:] и отрезаю формат файла [:2]. Но это плохой метод. Как лучше считывать?
Как ебанько стал проверять длину перед нарезкой. Но вы лучше подскажите как правильно, посоны.
res = Counter(res).most_common()
res.sort(key=lambda x:(-x[1],x[0]))
собственно почему в л\мбда выражении после определения переменной х, нужно переменные вывода указывать явным кортежем.
еСЛИ НАПИСАТЬ ТАК lambda x:-x[1],x[0])
ругается на аргументы
res.sort(key=lambda x:-x[1],x[0])
^
SyntaxError: positional argument follows keyword argument
Предположу, что
res.sort(key=lambda x:-x[1],x[0]) эквивалентно res.sort((key=lambda x:-x[1]),(x[0]))
if age > 14:
return f'{int(age/2+7)}-{(age-7)2}'
else:
return f'{int(age - 0.10age)}-{int(age+0.10*age)}'
print(dating_range(23))
что скажите о рекомендуемом возрастном диапазоне, в котором можно с кем-то встречаться
Объясните пожалуйста, максимально доступным языком: при создании каждого экземпляра класса, параметру object передаётся значение, например "Бобик".
При запуске этой программы, кроме прочего, через метод talk на экран выводиться текст и значение параметра name, который, по непонятым мне причинам имеет значение параметра object.Как так? Ему же не передавали это знание! Как он его получил?
Можете чекнуть мой гитхаб и сказать куда дальше расти?
Да и вообще скажите про косяки в коде
https://github.com/Tr0ub1e
В питоне конструктор это метод init, object это то, от чего класс наследуется (по дефолту неявно, тут можно было не писать). Self это ссылка на объект (у которого name бобик)
Это копия, сохраненная 20 апреля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.