Вы видите копию треда, сохраненную 30 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: >>2055136 (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
то есть ты еще не уехал?
я думал ты уже там тусишь! откуда инфа что у тебя например букдут бошки и алко? и бабос?
кем там планируешь работать?
Вот условие -
Given an integer array nums, return an array answer such that answer is equal to the product of all the elements of nums except nums.
The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer.
You must write an algorithm that runs in O(n) time and without using the division operation.
Example 1:
Input: nums = [1,2,3,4]
Output: [24,12,8,6]
class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
res = []
for i in range(len(nums)):
m = []
sum_ = 1
for j in range(len(nums)):
if i == j:
continue
else:
m.append(nums[j])
for k in m:
sum_=sum_*k
res.append(sum_)
sum_ = 0
return res
Вот условие -
Given an integer array nums, return an array answer such that answer is equal to the product of all the elements of nums except nums.
The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer.
You must write an algorithm that runs in O(n) time and without using the division operation.
Example 1:
Input: nums = [1,2,3,4]
Output: [24,12,8,6]
class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
res = []
for i in range(len(nums)):
m = []
sum_ = 1
for j in range(len(nums)):
if i == j:
continue
else:
m.append(nums[j])
for k in m:
sum_=sum_*k
res.append(sum_)
sum_ = 0
return res
Ты ссылку то на задачу кидай, на эту лапшу без пробелов нет никакого желания смотреть
планирую работать в продажах(Ювелирка), так как говорю на английском и путунхуа. Сначала я приеду, поработаю месяц-два, и когда все норм будет, буду искать себе ментора. На крайний случай - тичером за 1500к долларов пойду(как и работал несколько лет, в принципе), но это будет не Нячанг, а жопа мира, хоть и у моря. Откуда инфа? жил там пол года до пандемии, ром дешевле водки в этой стране, бошки тоже на каждом шагу. вангую вопрос - накуй мне вкатывание в ойти? А вот для того, чтобы вкатиться в Канаду. Попробовал сварку - то еще удовольствие раком пол дня стоять. Попробовал учить - те места, где я не туплю, а нахожу сам решения (щас я на задачках на синтаксис и лупы) - вызывают эйфорию. Но на следующий день я могу сесть и затупить на следующей теме. Почему не предлагаю деньги? потому что ты хер их вышлешь из страны, не указав в налоговой декларации сколько ты реально получаешь, и не отдав половину зарплаты налогами. Все кэшем. пэйпалом мне высылали вьеты через решалу, этот нехороший человек взял 60 баксов комиссии). Вроде даже на ангельском документацию и лекции всякие воспринимаю нормально, на степике курс тоже на нем, но не хватает слов типа "ты че, долбаеб? тут вот по этому у тебя код не работает" Боже. как мне хочется кодера, разве я много прошу?
В принципе несложная задача. Но я не знаю, тебе решение рассказать, или идеи какие-то подсказки?
Ты решил со сложностью O(n^2), оно решается как O(n), в том числе без деления.
>without using the division operation
Кекнул с этого условия. Порой задачи такие условия выстраивают, чтоб ты мог взять стакан воды без рук, но нахуя без рук это делать?
>>2072562 →
что такое путунхуа и как его выучил?
что такое нячянг?
и как там жить без прописки и пастопрта, поясни.
алсо там что, бошки законны?
ну это классика.
сперва тебя заставляют писать функции для решения векторов и всякой дичи а потом после того как ты порешаешь говорят что для этого есть библиотеки
Ладно, реши две задачи
1)
надо вернуть другой массив, чтобы в нём были произведения чисел до текущего
то есть для [1,2,3,4]
возвращал
[1, 1, 2, 6]
2) придумай код, чтобы от для массива возвращал массив, где в каждой ячейке произведения числе, что после текущего, то есть для [1,2,3,4]
[24, 12, 4, 1]
Ну и ещё чуть-чуть подумать после этого.
В данном случае чуть иная история. С делением возможен чуть более очевидный алгоритм.
При этом технически для процессоров целочисленное деление это самая сложная операция, и не на всех процессарах она вообще есть.
Возможны очень даже прикладные ситуации, где деление не определено вообще или очень сложно делается. Например, когда ты что-то по модулю делаешь.
>где деление не определено вообще или очень сложно делается.
Собственно пример. Пусть нет гарантии, что результат уложится в 32 бита. Но надо вернуть значение по модулю в 10 миллионов. А просто произведение даже в 1000 бит не влезет.
Питон, конечно, в коробке поддерживает работу с огромными числами. Другие платформы нет.
Если ты сразу считаешь по модулю, то делить ты не сможешь. В то время как алгоритм быстрый существует, что ни деление, ни арифметика на больших числах тебе не нужны.
>считай половина решения
Но я не хочу половину решения? Я хочу подсказку, чтобы самому сделать.
Подумай, как оптимально считать все произведения чисел до текущего и после текущего. Чтобы за один проход.
А что такое гугол?
Нячанг это крупный город побережный Вьетнама, туристический центр. Когда на море едут, то в Нячанг в первую очередь.
Если ты едешь больше, чем на пару недель, там на месте что-то типа специальной визы оформляется за небольшую плату.
Больше полугода тоже вполне себе легально живут, надо уточнять как, там довольно много русских.
Сейчас Вьетнам закрыт.
Город прикольный, конечно. Я лично был бы не проч там пожить.
Никогда не юзаю. Это только для собеседований. На работе работу работаю, а не эти олимпиадные продристы дрочу.
Ну вообще регулярно что-то бывает умеренное. Просто когда умеешь сложное, о простом даже не задумываешься. А когда не умеешь, то можешь плохо сделать и не понять, что ты плохо делаешь.
Что-то висит в фоне, что надо бы сделать, но там совсем алгоритмоёмкое, извращения по синхнонизации данных.
да так и живут, за 30 баксов гоняют на автобусе с лежачими местами до границы Лаоса или Камбоджи и делают визараны. все довольно удобно организованно
Если нихуя не знать, то и не получится использовать.
А так всякие базовые штуки проскакивают, хотя они зачастую уже реализованы в либах, просто нужно знать, что есть вот такое решение такой проблемы.
Путунхуа - китайский материковый язык, выучил в универе, жил в Китае 3 года, но это оффтопик, а на остальное тебе анончик ответил. Нячанг - тема, люди там годами живут и кайфуют. Правда много и быдла. Бошки там незаконны, но строгость закона компенсируется необязательностью его исполнения - дуют не все, но много кто, до иностранцев никому дела нет, если ты не химию местным толкаешь. Так че, проверка моего бэкграунда завершена и у меня есть кому делать мозг и от кого слышать, "какой ты тупой гуманитарий, так не надо, а так надо?"
Я просто даже кейсов таких представить не могу, вон выше задача была с расчетом произведения элементов массива без деления. У меня таких ситуаций с подобными условиями никогда не было, хотя и не круды пилю.
Это задачка на динамическое программирование, а не алгоритмы и структуры, о которых речь.
Может прямо такой алгоритм и не понадобится, если ты только всякими численными штуками не занимаешься.
Но ведь тут не про то, чтобы прочитать в книжке этот алгоритм. Тут про то, чтобы его придумать.
Ты так развиваешь у себя алгоритмическое мышление, чем больше разных задач ты решаешь, тем легче тебе что-то придумать и реализовать. Даже в крудах какие-то алгоритмы попадаются.
Привет ♂️ Хочу для начала сделать Максимально простым с одной страницей буквально. Собираюсь дергать статусы определённых страничек с ссылками к ним. Потом прикручу ещё что-то. Может графики какие биткоина и прочих паркетов.
Думаю делать на Джанго. Или советуете Фласк? У меня ещё обязательное условие чтобы я мог разместить на Амазоне. Вот хочу ссылку найти от начала до самого деплоя. Может есть такие гайды.
Аноны, помогите, пожалуйста. Решаю я на степике пик рил, а ответ не проходит, хотя код правильный. Это я тупой или автор курса?
[code lang="python"]
def f(x, y, a):
return (y - x < a) or (7 x + 4 y > 350) or (3 y - 2 x > 45)
q = 300
for a in range(q):
ok = True
for x in range(q):
for y in range(q):
if not f(x, y, a):
ok = False
break
if not ok:
break
if ok:
print(a)
break [/code]
Спасибо
Лол. Темка наоборот смузихлебская, с закосом под мак.
>я как код на 2ч оформлять?
В шапке ссылки есть. Ты уверен, что это надо с помощью кода на питоне решать, а не математическими преобразованиями?
Вот инструкция по деплою приложения на джанго из трёх частей. Недавно нашёл, но не читал пока внимательно, первая часть более-менее адекватная вроде (это то, что в прицнипе я умею), другие не изучал.
https://testdriven.io/blog/dockerizing-django-with-postgres-gunicorn-and-nginx/
https://testdriven.io/blog/django-lets-encrypt/
https://testdriven.io/blog/django-docker-https-aws/
Третья часть как раз про AWS. AWS я не умею, но вот надо бы научиться.
>Думаю делать на Джанго. Или советуете Фласк?
Не очень понятно, что у тебя за задача.
Джанго это CRUD. Если ты делаешь сайт какой-то, то однозначно лучше джанго. Если же у тебя приложение, которое само работает в фоне, и к нему интерфейс нужен, то скорее надо смотреть на flask/aiohttp.
Твоя задача не очень ясна, но судя по всему тут две задачи, первая собирать данные, вторая визуализировать их для пользователя.
А откуда там <=?
Хипсторы совсем пизданулись, делают скриншоты кода и дрочат.
Надо ещё эффектиков насыпать, полраоид, виэйчес, вся хуйня.
Пять секунд в гугле - `editor.parameterHints`. Как вы программировать на работе планируете с такой несамостоятельностью?
Спасибо большое
> Как вы программировать на работе планируете с такой несамостоятельностью?
Да я вообще как хобби этим занимаюсь. Ну и я пробовал искать, но почему-то не нашел
>Твоя задача не очень ясна, но судя по всему тут две задачи, первая собирать данные, вторая визуализировать их для пользователя.
Да, именно так на старт. Это будет сайт «помощник» с разными страничками для команды куэ на самом деле. Чтобы они могли посмотреть статусы, посмотреть логи, отчеты. Думаю тогда Джанго?
>>73473
Спасибо бро. А есть гайд как делать сам сайт на Джанго? Элементарный. Деплой это уже в конце ведь.
Научи меня, о сенсей. Твой гайд был бесценен
Лучше думай не о том как написать еще один двач (это вообще программная задача, которая была решена уже кучу раз), а как его сделать популярным и как его монетизировать хотя бы до уровня самоокупаемости.
ну это как раз так просто - пидоришь рекламу лохотронов и блядей, наркотиков - профит
Ищи сервисы по решению капчи и закидывай туда денежки
как вариант
>А есть гайд как делать сам сайт на Джанго? Элементарный.
Есть
https://docs.djangoproject.com/en/3.2/intro/tutorial01/
Шаг за шагом делается приложение и разбирается.
> Думаю тогда Джанго?
Джанго в любом случае лучшее, с чего надо начинать. Там много чего в коробке и ты так поймёшь, как правильно работать с фреймворками.
"легковесные" фреймворки на самом деле сложнее, они подразумевают, что ты довольно хорошо плаваешь в программировании, понимаешь устройство веб-приложений, ориентируешься во всяких библиотеках, которые можно прикрутить со стороны, чтобы самую базу сделать.
Поэтому любому, кто начинает что-то в веб и нет большого бэкграунда в программировании, опыта создания приличных приложений, начинать надо с джанго.
Абу, заебал иди работу найди.
Не русский что ли?
Используй куки, Люк
class Hero:
def __init__(self, health, damage, mana, ourklass = input(), ourspec = input()):
""""Вводим аттрибуты персонажа"""
self.health = health
self.damage = damage
self.mana = mana
self.ourklass = ourklass
self.ourspec = ourspec
if self.ourklass == '1':
self.ourklass = 'Воин'
elif self.ourklass == '2':
self.ourklass = 'Маг'
elif self.ourklass == '3':
self.ourklass = 'Рыцарь'
if self.ourspec == '1':
self.ourspec = 'Убийца'
elif self.ourspec == '2':
self.ourspec = 'Целитель'
elif self.ourspec == '3':
self.ourspec = 'Щитоносец'
else:
print('Ошибка')
exit(0)
geroy = Hero('Здоровье:'+ str(100),'Урон:'+ str(25),'Мана:'+ str(100))
print(geroy.p_description())
class Hero:
def __init__(self, health, damage, mana, ourklass = input(), ourspec = input()):
""""Вводим аттрибуты персонажа"""
self.health = health
self.damage = damage
self.mana = mana
self.ourklass = ourklass
self.ourspec = ourspec
if self.ourklass == '1':
self.ourklass = 'Воин'
elif self.ourklass == '2':
self.ourklass = 'Маг'
elif self.ourklass == '3':
self.ourklass = 'Рыцарь'
if self.ourspec == '1':
self.ourspec = 'Убийца'
elif self.ourspec == '2':
self.ourspec = 'Целитель'
elif self.ourspec == '3':
self.ourspec = 'Щитоносец'
else:
print('Ошибка')
exit(0)
geroy = Hero('Здоровье:'+ str(100),'Урон:'+ str(25),'Мана:'+ str(100))
print(geroy.p_description())
Это шутка или ты вкатыш с курсов?
Сделай отдельную функцию на определение класса и замени if'ы на словарь
Так пиши названия не жопой, а нормально
солнца больше, нет рек слякоти осенью и рек говна со слякотью весной, дешевые и бесплатные фрукты, море - повсюду куча райских пляжей из рекламы баунти, куча всяких ресторанов (рай для кишкоблуда), бошки, грибы, разные красивые парки и заповедники где можно почилить и позалипать в красивые пейзажи, нет зимы, когда нужно таскать блядскую зимнюю одежду как космонавт и покупать ее, передвижение в любую точку очень удобное - на обычном скутере - дешево и пиздато.
Кто сказал, что они живут как бомжи? Засиделся ты, аноша на одном месте. Максимум, что из антисанитарных условий приходит в голову, это муравьи в домах,тропические тараканы(редко - с ними легко бороться), и крысы которые далеко не у каждого вьета будут в доме, потому что хоть с ними и тяжело бороться, но вьеты очень чистоплотны и трудолюбивы и легко справляются с этой хуетой. Это все неприменимо к многоэтажной застройке, у многоэтажек в Нячанге хороший резист к тропическому DLL. Да, несколько веков будучи колонией и несколько десятилетий будучи совком сильно травмировали общество в плане экономики и сознания, давно сельхоз и промышленные реформы напрашиваются, коррупция в стране есть, но я бы не сказал, что средний вьет живет хуже среднего русского, скорее наоборот.
Инпут в аргументах это очень плохо. Exit не используй, это не си тебе. Попробуй @dataclass, здесь уместно будет. То что ты творишь в здесь
>Hero('Здоровье:'+ str(100),'Урон:'+ str(25),'Мана:'+ str(100))
Это, вообще, ужас. Переопредели для этого __str__.
>что они живут как бомжи?
То есть после той же машквы или варшавы какой-нибудь ты в говновьетнаме с глиняными дорогами и дизентерией будешь себя ощущать как дома, лолблять?
кстати поясни что такое ДЛЛ тропический и что за ад там еще есть?
всякие змеи и черви кусают? пауки, дикие пчелы?
и правда ли что они там едят только летучих мышей и обезьян?
и все вьетнамки же страшные пиздец?
там еще сильны традиции вьетконга?
По телеку говорят что даже в европе живут как бомжи
То, что на офф сайте предлагают состоит на 95% из воды и абсолютно не нужной хуйни, а сама важная информация запрятана в абсолютно рандомных местах. Гугл тоже толкового ничего не советует.
давай в резюме ссылки на чужие работы
> Кто сказал, что они живут как бомжи?
Жидометодичка, чтобы русские рабы любили своих жидовских оккупантов, свой столетний концлагерь, и не бухтели.
Лол, я жил и в Пекине и в Шанхае и в Даляне - попиздатее Москвы будут города(За варшаву не шарю). Все равно выберу Нячанг. Дизентерия? Не ешь мусор с помойки и мой руки (за пол года во Вьетнаме ни разу не траванулся ни чем, хотя я мясо почти не ел вне хороших ресторанов. Глиняные дороги? - не суйся в горы. Анош, ну если ты не понимаешь кайфа жизни в тропиках, тебе больше нужно цивильного, европейского, то я с тобой спорить не стану. Я лишь говорю, что в жизни в тропиках есть свой кайф, там дешево, там фрукты, там море и много солнца. Мне по кайфу, как тысячам анонов по всему миру. (>>75061
Из ада - ну крыс побольше в стране, им на улице очень хорошо. Муравьи в домах частной застройки. Если ты не черт и не чухан - ты и их не увидишь. Змей и пауков среднестатистический анон за все время пребывания в стране не видит ни разу, если ему не придет в голову рыться в мусорных кучах в деревнях где-нибудь. Где-то на севере анон увидел дома сколопендру.Если не шляться там, куда сами вьеты не лезут, то тебя никто не укусит (если ты только сам ребят из кафе Луизиана не попрпосишь) Это в целом за тропический сервер. А теперь за Нячанг: самый ад, это если жилье выберешь неправильно - в шумном месте например, с плохим видом, но это в целом мелочи, но иногда слишком впечатлительным может испортить впечатление, это в первый заезд может случиться, если уж совсем заебланить или денег зажать снять на первой/второй линии и забраться в совсем стремные трущебы где нибудь рядом с рынками. Про вьетнамок - забей, это не тайские и филлипинские шлюхи, они на иностранцев сильно не кидаются,хотя массаж с отсосом не проблема, но даже по сравнению с теми же китаянками, они не бросаются на иностранцев, хотя я и не пытался знакомиться. Во вьетнам ехать не за кошкоженами надо.
ну так что, анонички, я заинтересовал кого-нибудь?поговорим за коучинг? Я вам - английский, который может пригодиться любому аноше. который достоин большего. чем россиянские зарплаты, а вы мне - немножечко своего времени, пока границы закрыты хотя бы так, онлаен
Вообще мне кажется, это прикольно может быть в первый год-три. Если же о постоянке думать, то там всё-таки другая цивилизация и ты там совсем чужой, мы всё-таки плоды западной цивилизации, как ни крути.
Но правда тут про постоянку не говорили, а про то, чтобы просто какое-то время пожить, там год-два.
Чем таким легковесным растеризовать размеченный форматированный текст? Нужно:
1) Жирный/курсив
2) Менять цвет отдельных слов
3) Вписываться в блок
4) Уметь в альфаканал, ложиться на фон.
Звучит как css и немного js.
Вряд ли найдешь что-то кроме рендера хтмл.
ну люди в среднем по 5 лет тусят
Что за кафе луизиана?
алсо что там около рынков7 там реально как в фильмах показывают - кругом узкоглазые и мопеды и жарят тараканов?
css3 всё умеет. Базовый css3, без фреймворков, без JS, без всего остального.
Кафе Луизиана - синячная, там все алкаши россиянские тусят. Насекомых не жарят, но мясные лавки на рынке обходить нужно за километр - страшные запахи. Мопеды и вьетнамцы везде, это страна вьетнамцев и мопедов.
>руки занять с помощью кодинга
>дохуища кода при этом с минимумом логики
Гражданин индус, тяжело было учить русский язык?
Пиши программы на ассемблере. Хорошо руки занимает
Напиши асинхронный фреймворк аля джанга + дрф.
Проблема литкода в том, что задачки могут быть реально сложными, в смысле хрен додумаешься до решение. Но само решение на пару десятков строк.
Литкод учит тебя думать и придумывает, но совсем не учит тебя писать большой код.
А инженеру-программисту в первую очередь надо уметь с большим кодом работать.
Я бы сказал что проблема там в том, что многие задачи хуево сформулированы и зачастую непонятно че вообще они от тебя хотят.
Морской бой напиши. Сначала без ИИ. Потом на ИИ ещё столько же потратишь.
Лол, раз в несколько лет случайно попадается ссылка на этот бложек и каждый раз у этого типа какие-то новые интересы. Живут же люди.
пиши всякое говно на джанге, там прилично кода
например напиши сайт, усеянный кнопками и формами разного размера и цветов, лол
максимально бесполезная куча кода
Контрибьютить в попенсорс, код причесывать, типы прописывать, тесты писать, вот это вот все. Мозги напрягать сильно не надо, а писать много.
есть ли менее уродливый способ получать номер итерации при хождении по листу?
n = 0
for i in list():
# ...
n += 1
не обязательно сам номер итерации - нужно положение элемента i в списке
enumerate
>дохуища кода при этом с минимумом логики
Зумеры изобретают пет проекты?)
Ну сделай бота для телеги или какую хуйнюшку на pygame. Мне кажется, будет сложно писать код ради кода, надо, чтобы ты при этом делал что-то интересное для себя.
Мне кажется ананасы не понимают запросы этого человека. Он литерали хочет задачу чтобы писать код ненапряжно - только руками, с отключенным мозгом.
То есть буквально какая-то задача "перепиши легаси говно проект-нейм на Питон используя лапшекод, с прослушиванием ютубчика-твича на фоне".
>>76771
Flask попробуй, он минималистичнее. есть ещё что-то меньше фласка
Это разные вещи, input это prompt, тебе нужен keypress.
Возьми FastAPI, можно сделать и асинхронный кибердвач и скромную борду на 1.5 человека, выглядит как микрофреймворк с кучей батареечек.
В плане математики разумно.
Остаток от деления это всегда неотрицательное число,
-13 % 3 == 2
При этом должно выполняться, что
(-13 // 3) + (-13 % 5) == -13
В правилах Питона написано, что округление в разные стороны при отрицательном числе и при положительном. Если не путаю.
Целочисленное деление
Для положительных чисел оператор целочисленного деления ведёт себя как обычное деление, за исключением того, что он отбрасывает десятичную часть результата. Рассмотрим работу данного оператора на примерах:
print(10 // 3)
print(10 // 4)
print(10 // 5)
print(10 // 6)
print(10 // 12)
Результатом выполнения такой программы будет:
3
2
2
1
0
При делении отрицательных чисел необходимо помнить, что результат целочисленного деления не превосходит частное. Другими словами, округление берётся в меньшую сторону (число -4−4 меньше, чем число -3−3).
Результатом работы следующей программы:
print(10 // 3)
print(-10 // 3)
будут числа:
3 # округление в меньшую сторону
-4 # округление в меньшую сторону
Логика как раз очень понятна, потом что вариант, как получить результат целочисленного деления:
1) берёшь остаток от деления, оно же деление по модулю
-13 // 3 = 2
вычитаешь из числа остаток
-13 - 2 = -15
И это число делишь нацело, получается -15 / 3 = -5
Эквивалентная логика в том, что если ты какое-то число X поделил на три и получил Y, то если от него отнять 3, то Y должен уменьшится на 1 без вариантов.
(X // 3) == Y ==> ((X - 3) // 3) == (Y-1)
Просто вот из математических - алгебраических соображений должно быть только так. А питон родом из математической среды.
Посмотрел, в Си, точнее gcc, получается не -5, как в питоне, а -4.
В этом плане путаница. Скорее всего так в инструкциях деления процессора реализовано, но это надо смотреть.
В данном случае мне кажется, что логика питона 100% более правильная и правильно, что они реализовали именно так.
https://ideone.com/jdDopX
Может слеши не в ту сторону? Может путь сохранения плохой слепляется? С PIL ты все делаешь правильно, а со своей операционной системой, по-видимому, нет.
>>77013
Ну вот если напечатать:
print("Вот путь к файлу: ",srcPath)
print("Вот путь назначения: ",dstPath)
print("Вот путь для Im.save скленный: ", dstPath+srcPath)
То:
Вот путь к файлу: 0000\1000\2001\IMG_9838.JPG
Вот путь назначения: d:\output\
Вот путь для Im.save скленный: d:\output\0000\1000\2001\IMG_9838.JPG
Traceback (most recent call last):
File "C:\Users\Sergoshko\Desktop\newtry.py", line 22, in <module>
img.save(os.path.join(dstPath,srcPath),quality=100)
File "C:\Program Files\Python38\lib\site-packages\PIL\Image.py", line 2169, in save
fp = builtins.open(filename, "w+b")
FileNotFoundError: [Errno 2] No such file or directory: 'd:/output/0000\\1000\\2000\\IMG_1802.jpg'
>>>
Малолетний дебил, я же тебе сказал проверь слеши. У тебя в разную сторону, видишь?
Значит попробуй создать папку отдельно через os.
Кстати, со слешами так не принято работать, нужно пользоваться os.sep
Как можно сделать это по-другому? Например, если у нас нет поля с датой.
Ты сам подумай, как тебе взять нужные данные и отсечь ненужные, по какому принципу ты определяешь вот это?
Придумай логику, и будет понятно, как это закодировать. Иначе как минимум будет криво и с дырами.
Можно, например, делать через ограничение LIMIT, но так ты должен закладываться на то, что все нужные данные в лимит уложатся, а это очень вот нехорошо закладываться на это.
Он по очереди ищет, передвинь системный на позицию раньше в PATH.
я искал, в подборке были какие-то студенческие работы
Проблема в том, что я последние полгода занимался всякой асинхронщиной с микросервисами, знания джанги сильно ниже среднего
Такой вопрос, что может подразумеваться под "бест практисами" и "оптимизации производительности" в контексте джанго экосистемы?
Это такой сорт илитизма - найти пононеймовее и поебанутее книжку?
Алсо, судя по пять сек в гугле оно про второй питон, вряд ли тебе нужно именно это.
Лутц нихуя не свеж и принципиально не хочет обновляться. Где-то есть его сайтик, где он ведет список, чего надо покурить нового после книжки.
Вот совсем не понимаю взаимодействие фронта и бекэнда, материалов по этому нет.
У тебе смешались разные подходы. Бэк может делать вообще всё, т.е. формировать и отдаватьготовые страницы, а может наоборот всё висеть висеть на клиенте, в таком случае бэк нужен только для персистентности.
Чтобы советовать книжку, минимум надо знать твой опыт в программировании и ИТ. А ещё твои интересы и задачи, что ты на питоне хочешь делать.
Опыта в программировании нет. В идеале, хочу изучить питон в объеме, который позволит этим знанием зарабатывать. Ну а в процессе изучения уже буду видеть, даётся это мне, или ни в зуб ногой
Правильно ли мое решение? У каждой функции есть адрес, мы создаем декоратор где проверяем адрес функции, если его нет в словаре, то мы его туда пихаем и ставим счетчик 1, если есть то просто добавляем +1.
Но как бы сделали вы?
def hui():
__hui.calls +=1
hui.calls = 0
hui()
С декоратором красивее, конечно. Ну и можно навешивать на чужие функции.
Моя мечта, сидеть с ноутом на пляже, и ненапряжно работать, рушится:(
Ты динамически изменяешь сигнаруты функции добавляя ей состояние. Такое можно только замыканиями делать не превращая все в говнокод. Пусть лучше декораторами обмазывается которые сами используют замыкания
Спасибо, понял.
С++, любая книга. Нет, это не шутка. Много всяких интересных концепций, указатели, адреса, выделение памяти, деструктор, тру перегрузка функций, делегаты, интерфейсы, виртуальные функции и прочее.
Это позиционируется как фича, которую специально имплементили лол.
Что ты на это скажешь?
https://www.python.org/dev/peps/pep-0232/
Скажу, что это со скрипом принимали
https://mail.python.org/pipermail/python-dev/2000-April/003361.html
Здесь вышло число 33(count), 1 у нас лишний так как добавляем его до вызова next.
Мы вызываем его такое же количество раз сколько у нас элементов, то есть в первом задаче лежит [15,10,5,2] выходит 32, во второй так-же, но почему не выходит число 64, если мы по первому прошлись, посчитали, бац стоп итерейт, идем по второму, стои итерейт в общем 64(65) раз(а). Почему вышло 33?
Может это быть из-за того что мы передаем туда один список?)
import queue
def task(name,queue):
while not queue.empty():
count = queue.get()
print("Очередь",count)
total = 0
print("Name",name,'running')
for x in range(count):
total+=1
yield
print("Name",name,'total',total)
def main():
work_queue = queue.Queue()
for work in [15,10,5,2]:
work_queue.put(work)
tasks = [task('One',work_queue),task('Two',work_queue)]
done = False
count = 0
while not done:
for t in tasks:
try:
print('count',count)
count = count + 1
next(t)
except StopIteration:
tasks.remove(t)
if len(tasks) == 0:
done = True
main()
Здесь вышло число 33(count), 1 у нас лишний так как добавляем его до вызова next.
Мы вызываем его такое же количество раз сколько у нас элементов, то есть в первом задаче лежит [15,10,5,2] выходит 32, во второй так-же, но почему не выходит число 64, если мы по первому прошлись, посчитали, бац стоп итерейт, идем по второму, стои итерейт в общем 64(65) раз(а). Почему вышло 33?
Может это быть из-за того что мы передаем туда один список?)
import queue
def task(name,queue):
while not queue.empty():
count = queue.get()
print("Очередь",count)
total = 0
print("Name",name,'running')
for x in range(count):
total+=1
yield
print("Name",name,'total',total)
def main():
work_queue = queue.Queue()
for work in [15,10,5,2]:
work_queue.put(work)
tasks = [task('One',work_queue),task('Two',work_queue)]
done = False
count = 0
while not done:
for t in tasks:
try:
print('count',count)
count = count + 1
next(t)
except StopIteration:
tasks.remove(t)
if len(tasks) == 0:
done = True
main()
А теперь выйди и запости нормально.
https://pastebin.com/PURuwZcp
Нихрера не понятно, что ты хочешь и как ты это хочешь.
Ты кладёшь в очередь какие-то числа, 4 числа, у тебя эта очередь одна на две задачи, каждая задача берёт оттуда данные, соответственно эти данные достаются только одной очереди.
А как должно быть и что ты хотел?
И вообще странный код, не понятно, что ты пытаешься сделать. Какой-то свой цикл обработки сообщений примитивный.
И есть там задачка такая - https://stepik.org/lesson/63306/step/8
Это простое упражнение на использование частичного применения функции.
Напишите функцию con_class, которая принимает целое положительное число n и возвращает итерируемый объект (iterable), содержащий все делящиеся на n целые числа в промежутке от 0 до 100 (обе границы включены).
Определите эту функцию в терминах другой функции как частично применённую (имеется ввиду, что вам не понадобится создавать свою функцию, а потом ее уже частично применять к чему-то --- достаточно обратиться к какой-то встроенной функции).
..
собственно вот мой код:
from functools import partial
con_class = partial(divmod, 101, n=int(input()))
и ошибка:
Error:
Traceback (most recent call last):
File "jailed_code", line 6, in <module>
print(list(con_class(int(input()))))
EOFError: EOF when reading a line
..
ЧЯДНТ? Куда смотреть... Решение очень простое должно быть, но как-то не могу понять, куда копать...?
Какие-то скобки проебал или что-то в этом роде. Ищи.
https://pastebin.com/fxzaYrW2
Какое уебанство, зачем тебе лишний цикл?
Может быть тебе поможет sleep(1) в конце каждой итерации. from time import sleep
Как запустить процесс чтобы питон ждал окончания работы процесса, с тайм-аутом обрубал его?
Пик - мое, при запуске хоть ран, хоть колл, хоть что - питон сразу говорит что весь скрипт успешно исполнен, и процесс поднимается как бы сам по себе, ну и на таймаут ему похуям.
ну ебать можешь создать другого юзера и работать с анакондой из под него.
смена юзера в винде это пять сек
вроде вместо while c == 0:
while a !=10:
нужно писать while c == 0 and while a !=10:
или я не прав?
Там вообще всё плохо, нет смысла исправлять отдельную хуйню.
Но работает, а эффективность наберется со временем.
Кстати я подохуел с веса анаконды, только установил конду и юпитер а она на диске 10 гигов почти занимает, нихуя себе.
и оперы поджирает тоже так прилично при работе.
Там кучу говна в нагрузку дают, чтобы не ставить вручную. Есть миниконда с стандартной либой.
пик_рандом
Очевидно, что надо просто перечитывать файл.
Или при обращении к серверу парсить, или просто периодически, причём лучше использовать специальные модули для этого, смотри модуль watchdog, например.
гугл ничего стоящего не нашел.
надо сконвертить https://pastebin.com/mzsp1kdp вот это в питон.
Как это сделать???
https://dumpz.org/cdCnfHKFPa2c
на vds
Писал ответ, "хотел сказать норм, но есть к чему придраться", описал к чему. Ответ слетел, и хорошо.
На самом деле есть ошибка в __set_intem__. В духе race condition. Ты не предусматриваешь ситуацию, когда можешь дважды записать в ячейку словаря, когда кто-то её ждёт. Так ты попытаешься дважды вызвать set_future() для одной фьючи, из-за чего словишь исключение.
Второй момент, придирка уже, если делаешь словарь, то хорошо бы сохранить функционал словаря. В том числе удаление элемента. Оно тоже будет некорректно работать в некоторых таких ситуациях. Можно или обойти, или заблокировать возможность удаления, последнее нехорошо, если ты интерфейс словаря всё-таки реализуешь.
>>79430
>На самом деле есть ошибка в __set_intem__. В духе race condition. Ты не предусматриваешь ситуацию, когда можешь дважды записать в ячейку словаря, когда кто-то её ждёт. Так ты попытаешься дважды вызвать set_future() для одной фьючи, из-за чего словишь исключение.
Это можно было бы через проверку done у фьючура сделать при присваивании элемента.
Но потом подумал и решил что __setitem__ придется вообще убрать, так как при перезаписи значения до смены контекста через await будет доступно только последнее значение, а остальные исчезают. Нужно новый асинхронный метод пердолить для добавления что бы явно блокировалась перезаписывание до тех пор как как все ожидающие корутины получат результат.
Глобальные переменные определяются на старте, поэтому в глобальном скоупе это имеет значение. В самых функциях уже нет, потому что они не выполняются сразу.
https://ideone.com/9lFKC5
было бы что плотить.
Я сделал изменения в библиотеке requests, хочу создать пулл
создал новую ветку branch
пишу git push, пишет нет прав, пишу git pull, вот что пишет -
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=<remote>/<branch> repos
как я понял тут надо указать с чем сравнивать, но вообщем все жопа не выходит, на ютубе немного не то нахожу.
>так как при перезаписи значения до смены контекста через await будет доступно только последнее значение, а остальные исчезают
Это зависит от того, какое поведение ты в принципе хочешь реализовать.
Ты можешь, например, записывать результат в саму фьючу, тогда там будет как раз первый присвоенный результат и ты частично обойдёшь заодно проблему удаления элемента (фьюча будет возвращать результат, хотя элемент уже удалён).
В общем тут смотря что ты хочешь реализовать и зачем. Может ты хочешь сделать что-то вроде очередей-каналов, может Event.
Если как-то сильно усложнять логику, то надо просто отказываться от реализации на базе словаря и писать что-то своё.
Твой словарь мне ещё более-менее понятен, чтобы блокировать чтение из словаря, пока там что-то не появится. Ну и брать самое актуальное оттуда, не пытаясь отслеживать промежуточные значения.
Иначе ты делаешь что-то из паттернов pub/sub, подписываясь на канал и читая данные оттуда.
Да я уже обдумал все что ты написал и про эвенты и про паб/саб, пошел уже думать что именно реализовать мне надо, лол
google translate
не знаю как элитные байтоебы делают, но опишу как делал я:
во-первых, ты ее должен форкнуть прямо с веб-интерфейса.
клонировать уже из своего репозитария.
потом сделать в нем свой бранч.
перед отсылкой PR, слить все коммиты в один.
Поискать таки кнопку PR в веб-интерфейсе.
но будем честными, нахуя ты в основополагающую библиотеку полез? что там можно исправить?
я так понял виртуальное окружение не создалось, а почему?
Это команда для линупса, плюс ты криво скопировал.
Для шиндовс будет
venv\scripts\activate.bat
да не, там первое слово не распознает, а так ты прав, там папка скриптс, нашел его.
Вот вместо virtualenv что надо написать?
Забыл поблагодарить, спасибо!
Вопрос связан отнюдь не с тем, что меня не устраивают эти два, меня просто друг спросил. Ну я ему ответил, что пайчарм это дефолт, а вс код для уебищ. Ничего не упустил?
Суп двощ
Я использую микрософтовский text_dataset_from_directory для своей нейронки, но когда я его вызываю, он принтует свою отладочную инфу в мою красивую консоль и поганит мне кошерный вывод моей отладочной инфы
Подскажи пожалуйста, как вызывать text_dataset_from_directory без принта в консоль?
Не путай ВС с ВСКод, если первый для уебищ, то второй для богов, а ты просто маня и не шаришь
Тогда поясни, чем плох ВСК
На случай, если кто-то будет гуглить, лично я использовал такое решение: в месте, где мы вызываем "нежелательную" ф-цию просто перенаправляю выходной поток нахуй во временный файл, потом возвращаю обратно в консоль
Решение червепидорское, если кто-то даст лучше, с радостью воспользуюсь, но работает
Тебе не нужна анаконда - юзай колаб или подобные(каггл, даталор, может у твоей обучающей площадки есть свой с какими-нибудь инструментами проверки). Во-первых у тебя все библиотеки уже загружены, тебе не надо ставить пандас, нумпи и матплотлиб себе не в комп, не в виртуальное окружение, тебе надо просто import pan.. и он тебе предложит сам import pandas as pd~. Во-вторых можно нароллить себе теслу т4, врядли твоя даже 2070 вытянет и половину той же мощности, это если тебе нейронки пинать надо, тебе не надо скачивать 20 гб говна, и я хз насколько ты юзер, но поскольку у тебя винда и такой вопрос - ты скорее всего не сможешь ее искоренить, вычистить окончательно и всегда будешь иметь проблемы с кучей версий питона на пеке, тебе это не надо
Сейчас преимуществ от локальной работы нет никаких, но если вдруг у тебя есть майнинг ферма - ты все равно подключил локал рантайм колаба, просто потому что у него самый удобный фронт и интеграция с гугл,диском
lst = [el.replace('a','b') for el in lst]
a = [{'name': '127345', 'digit': 12345}, {'name': '134256547', 'digit': 12355545}]
e = []
for i in a:
i['name'].replace('7', '9')
e.append(i)
print(e)
Как мне сохранить изменения которые я сделал в цикле? В новый список добавляется тоже самое, а старый не сохраняется.
Все разобрался
например,
class Program:
# первостепенно
class ProgramOptions:
# второстепенно
и всё работает норм.
Пишу дополнение к этой штуке с похожей иерархией, и метод первого класса (даже не __init__) не просекает тему. Я там даю умолчание параметра функции как инстантинацию этого второстепенного объекта.
В чём прикол? Так нахуй некрасиво исходники вверх ногами делать.
Вот смотрю по всей Украине джунов на джанго почти нет, только дата сайенс или машин лернинг(они мне противны, ну и вот и все).
У меня есть небольшой опыт на фрилансе, плюс я сейчас изучаю джанго, вроде неплохо шарю в БД - PostgreSQL, разбираюсь с гитом, но не идеально. Разбираюсь в алгоритмах и структурах данных, могу пояснить что такое стек, очередь, связной список и т.д, знаю несколько инструментов на таком себе уровне. Результат такой, что мое резюме даже не читают, просто скпипают, меня даже на тех интервью не зовут. Конкретно на джуна на питоне вакансий почти нет,походу было ошибкой его учить. Я подумываю взяться за JS(для фулл стак) или за Java + Kotlin(для андроида), как-то душно здесь.
Есть сейчас аналог, или эту штуку удалили как не питонную, и нужно просто вручную обернуть в try тот код, все ошибки из которого я хочу сам обрабатывать и записывать куда мне нужно?
Не знаю же. Какая-то виндоус-проблема, походу, лол.
Я ведь специально проверил и в консоли, и в виде файла - запускать что-то мелкое удобнее в этом idle (для проверки перед засовыванием в крупные проект), чем создавать отдельный файл в громоздком пучарме, где он неудобно с отдельными файлами работает.
При этом в пучарме работает, вот после твоих слов проверил ещё раз, увидев что это ещё работающая фигня. Спасибо.
Наверное, idle сам что-то с ним мутит или как-то по-другому перехватывает.
Если запускать в чистой интерактивной сосноли, то всё тоже работает.
Можно как-то это отключить?
Может быть этот баг пофиксили в новых версиях? У меня стоит древняя 2019.3.4
Да не почему. В другом месте стоит как ты написал.
Правильнее спросить зачем мне вообще ctrl+i нажимать, лол, если тут на стадии написания кода всё выравнивается. Привычная из крестов, перед нажатием ctrl+s нажимать ctrl+i, и я случайно все тексты в файле сломал, что было очень обидно, что теперь их поправлять.
Пошагово показывает изменение переменных, списков, строк и прочего. И очень легкий, не грузит систему.
Какую фигню нужно для этого юзать, цель - Будет бот который будет запоминать лица людей и после если человек говорит покажи мое лицо, то он показывает его)
обычный бот который принимает на вход имя и ебало, записывает это а потом по запросу выдает картинку.
С пожеланием рака яичек, ASM/C программист.
Бля, не тот тред.
>подарочный код
Держи
def childAppend(self, name, vals):
child = Config(name, vals)
self.children.append(child)
child.parent = self
self.attribs.append( child )
Дарю!
О, спасибо. От души!
Но пичарм довольно тяжелый для системы. А Тони куда легче и он прям сделан для нубов, которые хотят пошагово смотреть как у них код переменные обрабатывает.
Надо хранить файлы, а я к S3 отношусь как к локальному диску, что не есть правильно, как мне кажется.
У некоторых людей до сих пор ноуты 2010 годов с 8 гб оперативы. И для таких компов Пичарм тяжеловат.
Проблема в том, что у людей может не быть денег, если они еще учатся. На Степике вообще рекомендуют Wing IDE, а у вас тут как старообрядческая коммуна, в которой знают только PyCharm и Vscode.
Потому что пайчарм и вскод самые удобные и функциональные код едиторы на данный момент.
Ничего кроме них и не нужно.
Да чет безразлично чем пользоваться. Главное, чтобы подсветка была, автодополнение, какие-то подсказки типа что за метод, может отладчиком когда-то начну пользоваться, удобное перемещение по файлам да возможность нескольких за раз да и всё. Остальное тупо делается через терминал. В чем я не прав?
мимоанон
а как следить за этими промежутками? Один процесс, который ходит по записям и смотрит, исполнилось или нет?
Выгружаешь в память и планирощиком каким-нибудь пользуешься
https://github.com/dbader/schedule
Или если через асинхронно можно, то loop.call_later и asyncio.sleep обмазаться, если у тебя не миллионы юзеров
https://stackoverflow.com/questions/51292027/how-to-schedule-a-task-in-asyncio-so-it-runs-at-a-certain-date
Или на крайняк, если точность до десяток секунд не особо важна, то раз в минуту делать запрос в бд и если текущий интервал миньше минуты назад был, то запускать уведомление юзеру. Но это совсем костыль.
Знаю, многие советуют пойти на гитхаб почитать готовые проекты. Я пытался. Вот смотрю на код, и вроде отдельные функции что делают понимаю, но вот что в целом там творится нихуя не понятно.
Сделай игру. Небольшую стратегию, с одним ресурсом, тремя юнитами и двумя зданиями.
В случаи питона это задача на несколько вечеров (если не перемудрить - а делать простое), если не делать октодеревьев всяких и всё полным перебором делать, чтобы лагало сильнее. И я не поверю что есть парень вкатывающийся в программирование, которому будет не интересно и у которого нет фантазий на тему какую игру он бы хотел делать.
Одновременно потыкаешь библиотеки для графики, ui, звука а ещё можно добавить мультиплеер и чтобы у тебя был веб-интерфейс, который позволяет через браузер посмотреть статистику - и какую область там ты себе хочешь - вражеские мобы с интеллектом на нейросети, которая выбирает отступать, бежать за врагом или стрелять.
ну например в пучарме есть свой терминал, чтобы никуда не лазить лишний раз. пиздато же
это джава
https://pastebin.com/gQm8h6jp
В чем прекол кода без прикладных задач? Если есть время, неторопись, передохни, поизучай еще что-то, а потом подумай как там можно прикрутить что-нибудь на пистоне.
>>81375
Что надо для проекта то и учи. Игру, бота, парсер, калькулятор.
>>81389
>Одновременно потыкаешь библиотеки для графики, ui, звука а ещё можно добавить мультиплеер и чтобы у тебя был веб-интерфейс, который позволяет через браузер посмотреть статистику - и какую область там ты себе хочешь - вражеские мобы с интеллектом на нейросети, которая выбирает отступать, бежать за врагом или стрелять.
Домики набигают, можно грабить корованы...
data = f.read()
parsed = vromfs_file.parse(data)
def _parse(self, stream, ctx, path):
need_read_size = ctx._._.header.packed_size - (16 if ctx.first_part else 0) - (16 if ctx.second_part else 0)
Кто-нибудь скажет откуда берутся параметры ctx и path ?
Слепой штоле, это разные методы.
> Что надо для проекта то и учи.
В том-то и проблема, что не знаю что надо. Не могу я представить общую структуру полноценного проекта.
Вот мне хочется запилить десктопную и более функциональную версию https://tabletopaudio.com/.
Пошел искать библиотеки для работы с аудио, толком нихуя не нашел.
Как хранить и структурировать данные тоже представить сложновато.
Как сделать сервер на Heroku с Webhook для бота Viber? Куда вообще начать смотреть, а?
И второй вопрос: есть какая-нибудь библиотека для склонения русских ФИО?
куда перекатываться из питона? умею в плюсы и жыэс, но как-то не уверен.
Поскажите как их объедилить чтобы получилось a b c e f g,при условии что d в первом файле повторяется во многих строках?
последний год в вебе работал, вот и захотелось перекатиться. До этого с мл возился.
да хуй знает насчёт игр. Я написал парочку, что-то вроде флэшки Little Rocket Man + музяка, понравилось. Но зп там не очень
Спасибо!
интересная тема, мб и правда посмотрю что-то такое. Правда, финтехи например хуйня страшная. Надеюсь тут не будет такого
На мой взгляд только в играх (инди формата) ты сам можешь себе ставить задачи и придумывать всякие решения. В этом плане в геймдеве скучно никогда не будет (если конечно на Юнити три-в-ряд не клепать как безумный китаец на конвейере).
Питон еще популярен у ученых. Можно подумать о том какой инструмент или сервис можно сделать для них.
я на факультете клепал уже, там денях нет ни у кого.
а с инди тяжело лавэ иметь? страшно кидать работу на полгода ради того чтобы нихуя не заработать.
Сделаешь второй Valheim - изи бабки. Но там делало 4 человека и не всем так везет.
>ctx и path ?
Поставь нормальную иде, там все можно посмотреть.
>>82085
Что непонятно?
Думаешь какую штуку ты хочешь написать, думаешь функционал, потом думаешь структуру.
У тебя по ссылке какая-то сложная для новичка йоба.
Попробуй напиши что-то несложное, прикрути к этому уведомления в мессенджер, прикрути команды какие-нибудь. Потом допиливай функционал, думай как сделать лучше и тд. непонятно какой у тебя уровень знаний, может ты не понимаешь как хтмл работает даже и прочее.
я так не смогу, хех. там юнити используется кажется?
спасибо за ответ, тем не менее. Мб и попробую, если BI хуйнёй тоже будет.
Да, и это не пошло на пользу игре.
Кстати ты это зря, игра совсем не сложная - мне понятно как там сделать вообще всё без юнити, это просто очень долгая задача на полгода, год, два или больше - но никаких чудес там нету, в отличии от многих других игр, где одному это никак не вывезти.
>>82159
Она на юнити.
brainfuck?
я и говорю про время которое займёт, не про то что игра сложная дофига.
Если ты один, то в самом деле разумнее на юнити, так как минимальный прототип будет уже через пару недель.
Я бы на крестах писал совсем своё (работаю с opengl больше десяти лет), чтобы бесконечный мир, который не лагает из-за специальных структур данных для него, и всё в таком роде. Но и до первых результатов работать где-то ещё, и заниматься этим в свободное время - потому что 90% что даже если ты неплохо сделаешь, то про твою игру никто не узнает, как мне кажется.
>>82165
А чего чудо?
Там текстуры в 128х128 и десять мобов на всю игру.
И как это сделать?
Читаешь второй полностью в словарь с ключом d, потом читаешь первый построчно и пишешь построчно.
Если файлы влезают в память, то выгрузить их в словари, начать перебор по первому с мержем оставшихся данных
Чего пример? Суть тебе пояснили, делай.
разница небольшая что писать. Если ты что то хочешь не знаешь что, то ты нихуя не сделаешь в итоге.
можешь написать мессенджер с блэкджеком и шлюхами, можешь распознавалку ёбел с эффектами, можешь игруху. Можешь и форум захуячить, разницы никакой. Если думаешь как сладко найдёшь работу в отрасли - иди смотри вакансии, кого хотят над чем работать и просто пиши демо проект для подобных. Например, если ты в qt захочешь вкатываться, можешь сделать сапёра или вроде того, если совсем изи
И че, в десктопных приложениях нет веба, ты дурачок?
У меня есть инлайн кнопка, мне нужно использовать комманду по ее нажатии, че надо сделать?
Невермайнд лол, разобрался
вайбер разве популярен?
мне кажется или в визуальных новеллах кода и логики мизер?
там же основная работа это рисовка и написание диалогов.
а остальное это прост овыбор реплик и смена фона
погугли разные способы джойна в пандас
периодически в стиме хайпует очередной инди высер.
это закон.
они попали в струю, свезло. могли и затеряться сразу же.
но если пошел хайп то можно быстро нарубить бабок
низкая цена + мульти + возможность срать в игра = профит
Есть ВН, где геймплей это ККИ, ДЖРПГ, симуляторы какого-то бизнеса и прочее. Хоть тактические бои в космосе.
Там за ооп нормально поясняют? Или стоит выбрать что-то другое?
>ну например в пучарме есть свой терминал, чтобы никуда не лазить лишний раз
Это как-то очень притянутое преимущество. Во-первых, терминал появился в IDE ещё лет 20 назад, когда они работали на 1 мегабайте (мега, не гига) памяти. В том же VS Code есть. Во-вторых, далеко не всегда вообще им можно пользоваться. И реально особой экономии времени нет.
Я не пробовал пичарм, может стоит попробовать, но мне кажется, надо очень долго осваивать работу с IDE, чтобы научиться полноценной ей пользоваться.
Пользуюсь вимом с минимумом плагинов и VSCode.
Всякие автодополнения прикольно, но в чём-то порочная вещь. Какой-то принципиальной экономии в разработке не дают, потому что в основном время тратится не на набор кода, а на то, чтобы подумать, вникнуть и т.п. Это очень тупой код должен быть. Ну да, в случае там html/css удобно, там реально ускоряет, но там и думать особо не надо.
Реальная отдача от IDE начинается, когда ты можешь быструю навигацию по коду делать, гулять по исходному всех функций, что ты вызываешь, и т.п. От этого реальная отдача, когда надо разобраться, подумать, и т.п.
ХЗ, может этот пичарм с этим лучше справляется, не скажу, что я очень доволен тем, как вот у ВСкода это. Или я им просто не научился пользоваться. Или и то, и другое.
Само собой есть проблема, что такая навигация не всегда возможна, IDE не всегда может предсказать, откуда код для исполнения будет взят, пока не исполнит, конечно.
Короче, вопрос - кто пользовался серьёзно ВСКод и Пичарм, в чём там принципиальное отличие по их возможностям?
with open('help.txt', 'w') as f:
with redirect_stdout(f):
work_dir = PATH_TO_FILES
raw_work_ds = tf.keras.preprocessing.text_dataset_from_directory(
work_dir,
shuffle=False,
batch_size=count)
for text_batch, label_batch in raw_work_ds.take(1):
return text_batch.numpy()
Программируй и все будет (с). Лучше алгоритмы подучи и матешу, на хуй тебе документацию по каждой библиотеке читать? Будешь часто юзать - прочтешь рано или поздно.
Алгоритмы читал, математика у меня не особо. Например открываю документацию к супу4, а там огромная простыня, и сразу шишка опускается.
>Если буду так делать и дальше то так ведь и остануть копипастомакакой да?
Да. Учись умению писать код с нуля, не пользуясь подсказками.
Делай как все - создавай вопрос на Стаковерфлоу
что реально делается с питоном? на hh все питонские душные пиздец предложения или я мудак и не туда смотрю?
самое простое и более явное — QA automation, остальное сложно
Если в книге про уток, то норм. Но, имхо, еще надо пздц как много смотреть реализацию ООП у крутых прогеров и самому дохера и больше написать, чтобы пользоваться всеми плюшками подхода.
Через xpath.
Прикольно же
Гвидо рассказывал, что они там в дропбоксе начали делать какие-то прототипы на питоне, чуть увлеклись, в результате
> His recruitment at Dropbox made sense for the tech company. Dropbox has about four million lines of Python code and it's the most heavily used language for its back-end services and desktop app.
Короче надо вовремя слить и перейти на джаву. 4 миллиона превратились бы в 20 миллионов, но зато быстрые.
а че тот же pandas или numpy в c++ есть?
и прочие интересные библиотеки которые здорово экономят время.
Сделай сам?
так самому писать не так сложно, начни с простых задач
алсо ты когда берешь чужой код например, ты понимаешь как он работает?
если не понимаешь то нет смысла копипастить.
если понимаешь значит сам уже сможешь написать в следующий раз похожий код
а библиотеки они нужны для специфических задач, например ты хочешь что то реализовать, гуглишь библиотеку, упрощающую реализацию.
да что угодно с питоном делается.
веб, боты, расчеты, графики, анализ данных, скрипты, парсинг, чтение и запись данных, работа с базами, нейронки, даже ебаные игры примитивные.
Максимум до 16, старше не начнёшь поспевать.
Ну я ж серьёзно, где такое ещё спросить, как не на дваче
Пытаюсь разбираться как все работает.
>>83275
>Все те платные курсы про питон это обман?
В каком плане обман? За тебя собирают материал, разбирают, жуют и кладут в клювик. Будешь ли ты после этого программистом? Скорее всего нет. Потому что программисту надо уметь самому жевать, колоть и вообще.
>>83396
От пары месяцев если уже умеешь на чем-то писать до бесконечности. Зависит от того как часто и как упорно будешь заниматься. "норм проекты" бывают разные, лол.
>От пары месяцев если уже умеешь на чем-то писать до бесконечности
Ну вот интересует опыт тех, кто вкатился в программирование сразу на питон с 0, и через сколько по времени они смогли получить/выполнять работу
Если ты всю жизнь работал грузчиком например то скорее всего нихуя не выйдет. Это как ты никогда даже на велосипеде не ездил но хочешь управлять космическим кораблем.
ХЗ, вон в соседнем треде чел писал что два месяца прошел курс на степике и взяли тестировщиком на удаленке
я охуел
зависит не от этой хуйни нелепой а от обучаемости и желания конкретного человека.
прост есть необучаемые которые хоть всю жизнь инженером проработали но нового нихуя не узнали за 30 лет, а им и не нужно.
есть которые нахуй писать нормально не научились за 40 лет. не код писать имею ввиду, а просто блядь русскими буквами. типа КУПИ СЕГОРЕТ.
Вот таким сложно будет, практически невозможно.
А для обучаемых уже от желания зависит и терпения, в случае если некоторые нюансы обучения их раздражают
Двачую, на Степике курсы норм и заставляют математику школьную вспомнить и вообще. Минимум тебя до функций доведут (а сейчас там один продвинутый вышел, там вообще матрицами мозги ебут - хотел бы я посмотреть как часто тестировщику МАТРИЦЫ нужны).
Многим просто не интересно программировать, и дело не в деньгах или обучаемости. Плюс программирование менее линейно и наглядно чем например ебашить молотком, прогресс не особо может быть виден, особенно когда долго ебешься ебешься и результата не видно.
А это уже проблема отчуждения результатов труда.
Не грузчиком, но с программированием не связан вообще никак. Но обучаем вроде, получил вышку по той специальности, которую хотел в далеко не самом плохом вузе.
Спасибо, анон
Функцию не стал выносить в ideone, она ничтожная.
@app.route('/postmethods', methods=['POST'])
def get_post_data():
if request.method == 'POST':
data = request.data
return data
else:
return 'Make POST request.'
Зачем ты ему те же данные возвращаешь? У тебя что, API или формы какие-то? Если это сайт, то обычно юзера редеректят на страницу, которую он создавал/изменял.
Есть ли какие-то интересные практические задачи, ради которых сеошнику/вебмастеру стоит освоить Python?
Парсинг? Поисковую выдачу парсить не приходилось пока что, а инфу с сайтов отлично парсит Screaming Frog, как это делается можно освоить с нуля буквально за полчаса.
Мониторинг сайтов по своему списку параметров? Можно накостылить на PHP даже с поверхностными знаниями обмазавшись stackoverflow.
Какие-нибудь дашборды с вытягиванием инфы с сервисов по API и компоновкой в удобном для себя виде? Опять же, накостылить на пыхе намного легче.
Один раз сталкивался с потребностью клиента нашей галеры в лайтовом анализе биг даты (распедалить XLS-файлы на несколько сотен тысяч строк суммарно и объединить инфу по некоему набору параметров), что теоретически оправдывало бы использование питона. Тем не менее, с помощью штатного погромиста сделал и это на PHP. В процессе осознал, что что выбрал максимально черезжопный путь и куда эффективнее было бы загнать всю инфу в БД и работать с ней там через SQL-запросы.
В общем, с одной стороны хочется освоить стильномодномолодежный язык погромирования хотя бы на базовом уровне, а с другой - непонятно что мне потом с ним реально полезного можно сделать. Реквестирую идеи.
Ну смотря куда метишь и что умеешь.
Меня взяли тестером через месяц и одну прочитанную книгу (но я не пошел, чисто ради интереса сходил).
А через пол-года вкатился в дату, но у меня был математический бэкграунд.
Как там в веде и девелопменте - в душе не ебу, но когда работал в геймдеве, у нас было полно прогеров со стажем 2-3 года макс.
>Плюс программирование менее линейно и наглядно чем например ебашить молотком
По-моему, программиование это нахуй просто пример линейности и наглядности, что может быть еще более линейно чем программа?
>прогресс не особо может быть виден, особенно когда долго ебешься ебешься и результата не видно.
Это связано исключительно с тем, что ты не понимаешь что тебе нужно либо что ты пытаешься сделать либо оба пункта. Просто когда у тебя новый проект, сядь с бумажкой и ручкой, поковыряй в носу и накидай от руки примерный план - что ты хочешь написать и как это написать.
Если ты умеешь в пхп, то сиди себе на пхп, это сравнимого класса скриптота. Можно катиться ради МЛ, в котором он расхайпован, а просто так ради молодежности, ну хуй знает.
480x360, 0:04
>Есть ли какие-то интересные практические задачи, ради которых сеошнику/вебмастеру стоит освоить Python?
Если ты чего-то конкретного не хочешь то ничего. Или ты хочешь чтобы я тебя убеждал учить пистон?
Может кто-нибудь посоветовать хорошие базовые учебники по ним?
Я взял пару солидных учебников для мат/экономических вузов, и, в своем стиле, сижу@конспектирую по 40 страниц в день и решаю все задачки, а нужно было с этим разобраться еще, как говорится, вчера.
Сорри за вопрос не совсем по теме треда, но мне кажется тут много кто с таким сталкивался. Хотелось бы что-то в стиле Head first, чтобы можно было пройти за 3-4 дня. Я понимаю что вникать нужно серьезно и без сомнения буду, но сейчас сроки горят, а на меня скинули проект с включением форкаста и мне нужно интегрировать существующие решения форкаста с выхлопной формой подачи, а делать это без понимания, хотя бы базового - путь вникуда.
*с выхлопной формой подачи даты
Спасибо за ответ, анон
ну такие курсы не только на степике, на курсере тоже есть где и математика (причем с математикой это тупо начальный курс стартовый) и заканчивая теми же матрицами с матплотлибами и прочей дата саенс хуергой
>математика
>jump_speed
>pyglet
Там намного интересней. Да ну, вполне можно нормально на питоне сделать.
>>84362
Он расчеты не через математические либы делает. Там видно жирнющий массив с вычитанием n. В питоне числа неизменяемые и при любом изменении переменной уничтожается старый объект и создается новый. Когда таких вычислений становится много, то начинается заметная просадка по производительности.
Ботов для телеграмма не предлагать, сделал недавно одного, для изучения английского языка, но это как-то скучно и ничего интересного там нет.
Я не имею опыта с БД напрямую, то есть чистые запросы никогда не писал, пользовался ОРМ, поэтому хочу освоить этот навык, буду учить PostgreSQL. Решил для себя выбрать какой-то проект, в котором можно хорошо применить эти навыки, выбор:
1 - Айтюнс или Спотифай в десктоп версии с синхронизацией с веб браузером, сделать что-то вроде проигрывателя, пока не решился, или попробовать как-то спарсить огромное количество музыки, что бы вышло действительно круто.
2 - Телеграмм боты меня больше не интересуют, так как там нет ничего интересного.
3 - Django-Flasк, там нет прямого взаимодействия с БД, все делается через ОРМ
>3
>Django
Huy_Sosi.objects.raw('SELECT * FROM table')
>Flasк
Тут вообще обзмеился. Если у тебя по дефолту алхимия ассоциируется, то тебе рано бд начинать учить, ты еще миерофреймворки не освоил
db.engine.execute("Select 1from table")
Зайди на sqlzoo и потренеруйся в запросах
Анончики, почему функция работает в иде, но не работает на степике (я знаю, что ее не нужно там вызывать, передавать ей аргументы и т.д. написал - и все
Аригато годзаймас!
Там нечему не работать.
Обосраться два варианта - принт вместо добавления в список, или индекс при наличии повторяющихся чисел, тут надо решать через eumerate.
Ну у меня в пайчарме то, что я написал работало. Замутил список, как ты сказал, и в него заппендил то что было НУУУУУЖНОБЛЯТЬ. В степике заработало тоже, спасибо тебе, анончик
>По-моему, программиование это нахуй просто пример линейности и наглядности, что может быть еще более линейно чем программа?
Речь про результат труда же, не тупи.
НАХУЙ ОН ККМЕНТИТ НА КИТАЙСКОМ, ОН ЕБАНУТЫЙ?
есть сайты где можно ебаться с запросами как хочешь
НЬЮ ХАУСУ - ЭЛЕКТРОХАУСУ
Для тренировки SQL лучше не проект пытаться делать, а именно тренироваться на SQL в отрыве от проекта.
То есть ты составляешь какую-нибудь базу данных, либо берёшь готовую, например порождённую той же ORM, и начинаешь извращаться с запросами.
Плюс анализ из производительности, плюс всякие БД-специфичные вещи, вроде serial для PG, транзакции, базовые админ скиллы и т.п.
>3 - Django-Flasк, там нет прямого взаимодействия с БД, все делается через ОРМ
Ну и в джанго напрямую SQL используется, и уж смотреть что там в запросы превращается просто необходимо.
Ты охуеешь, когда включишь отладку. Там элементарно может получаться так, что на вывод одной страницы свыше 1000 sql запросов будет делаться, это если таблица какая-нибудь простая. Когда можно было бы обойтись условно пятью запросами.
ОРМ это маня-высер типа вот давайте высрем еще 1 подложку чтобы в случаю чего провести миграцию с говно-1 на мс-говно-1 правда проебавшись вед реакцию на нулл по разному у разных баз и ваще орм дрысня нужна только для масштаба и однго типа баз, мол не нашли в базе свежей, ищем в кэше или бэкапе.
Понятно, мне большую колу и два биг тейсти
Что, не выходит вкат в додики?
Все внимание, додики обоссанные, альфач в треде
ОРМ сама по себе хипстерская идея, типа давайте придумаем оболочку, которая спасёт мир.
Я мало работал с джанго, да и ОРМ вообще, я может просто готовить не умею.
То, что у Джанго, это пиздец какой-то, как только начинаешь серьёзно работать.
Я когда-то давно работал много с сырым SQL, на php правда, есть такой момент, что когда большой проект, где много объектов и запросов, то ты просто начинаешь изобретать свою собственную ORM. Я даже делал какой-то свой вариант.
То, что у джанго, очень порочно. Они предлагают использовать ОРМ в шаблонах, то есть когда у тебя фактически SQL запросы идут в тот момент, когда ты стратицу уже готовишь, а это очень нехорошая практика.
Она чудовищно неэффективная и они судя по всем до сих пор не допилили до эффективного состояния. То есть у тебя может быть цикл, условно объекты Section и Article, который ссылается по ForeignKey на Article. Ты хочешь выбрать все article с ссответствующим section.id, делаешь соответствующий orm запрос. Вроде бы совсем очевидная история. Но получаешь, что реально на каждую итерацию цикла идёт ещё один или несколько SQL запросов из Article на один элемент. А если там какие-то более сложные зависимости, то вообше писец. В принципе как-то обходится. Но если ты просто пишешь код, то под капотом будет дикий пиздец, жутко тормозной.
При этом даже кеширования нет адекватного. То есть у тебя спокойно может быть туча одинаковых запросов.
ну а хули ты хотел, бух женская професия, главбух мужская
так и похрюмировние, максимум что макаки делают это то что делали телефонистки раньше
> Они предлагают использовать ОРМ в шаблонах, то есть когда у тебя фактически SQL запросы идут в тот момент, когда ты стратицу уже готовишь, а это очень нехорошая практика.
Может профессиональный джангист это прокомментировать, стоит ли избегать этого? То есть использовать орм в шаблонах.
>Может профессиональный джангист это прокомментировать, стоит ли избегать этого?
Там разве запросы не во вьюхе делаются с последующей передачей результатов в шаблон?
мимо писал на джанге 3 года назад
>>85101
>Там разве запросы не во вьюхе делаются с последующей передачей результатов в шаблон?
Нет, ты в шаблон на самом деле передаёшь не данные, а хитрые объекты, разные QuerySet. Они для тебя выглядят как данные, а реально когда ты пытаешься взять их значение, происходит исполнение SQL запроса.
Самое неприятное, что там постоянно чудовищно неоптимальные запросы, в смысле делается много простейших запросов вместо одного группового.
С этим можно бороться, ты можешь использовать метод values()
data = MyModel.objects.filter(....).values()
он делает что-то списка, это список легко конвертировать в словарь.
Плохо то, что так ты не можешь сшить данные, join сделать, только вручную сшивать. От ORM ничего не остаётся почти. Но вот как раз сшивать джанго ОРМ совсем не умеет, или я не умею его готовить. ХЗ возможно ли сготовить нормально, но средне случайный человек точно не умеет.
То есть для тебя выглядит всё отлично, но реально на каждое получение данных по внешнему ключу следует отдельный запрос. Соответственно надо сшивать самому, если хочешь скорости.
Присоединяюсь в вопросу, деды-душители джанги, расскажите, как живёте с ОРМ. Пользуйтесь, нет, какая практика на этот счёт.
У меня такое ощущение, что эта ОРМ только для того, чтобы быстро наваять прототип. Или для редких запросов, где скорость не нужна. Иначе придётся данные сшивать руками. Или не опускаясь до SQL, или даже свои SQL запросы через интерфейс ОРМ. Или вообще без ОРМ для каких-то запросов.
Использовали джангу как генератор фронтенда для микросирвисов, но то было для внутрикорпоративной приблуды и лютой нагрузки не было.
f.write('<' + nick + '> ' + msg)
f.write("\n")
f.close()
Почему пишется 2 одинаковые строки подряд?
В смысле две одинаковые?
Но твой код надо в любом случае иначе писать.
легаси-питон-2 стиль
f.write("<%s> %s\n" % (nick, msg))
или
f.write("<{}> {}\n".format(nick, msg))
или (python 3.6+)
f.write(f"<{nick}> {msg}\n")
Эх сча бы в 2к21 писать без контекстного менеджера...
Что тут происходит?
Да нормально живется с Django ORM, ей просто нужно уметь пользоваться. Если не понимать, как работает ORM под капотом и какие есть плюшки для оптимизации запросов - тогда все будет работать по-уебански и в базу будет спамиться over 9000 запросов. Также, многое зависит от структуры данных и их разделения на таблицы БД. Но стоит понимать, что для задач аналитики, где нужно много данных из разных таблиц вытащить одним запросом ORM не подойдет. Для относительно простых операций, коих 95% в вебе - отличный инструмент.
Насчет values - он не для оптимизации используется, а просто напрямую нужные поля вытягивает. Если не нужна вся модель - можно использовать only. join-ы оптимизируются через select_related и prefetch_related. Если надо циклом пройтись по куче объектов из базы - можно использовать iterate. Короче, RTFM
Ну это уже к жаваскрипту.
Это муштра, сынок
512x640, 0:09
Есть функция, возвращающая словарь типа:
{"arg1" : a.item(),
"arg2": np.where(b1 == f.tb2)[0][0].item(),
...
"arg4": some_list
}
Проблема в том, что значение arg2 - число, и по этому числу в arg4 надо взять срез. Я, конечно, могу то же самое выражение написать в arg4 для взятия среза, но получается слишком громоздко.
Можно как-то без введение новых переменных получить готовое значене arg2 и использовать в arg4? Т.е. получается вызов ключа внутри самого словаря.
> Можно как-то без введение новых переменных получить готовое значене arg2 и использовать в arg4?
Нет.
Проебывается проверка MIME-типа
че комментировать то?
ты молодой долобеб, склонный к категоричным суждениям- вот и весь комментарий.
В каких-то случаях от ORM лучше отказаться, а в каких-то он нужен.
Короче, есть 2 знакомых ирл, веб программисты, вкатывались оба через js, один из них беком сейчас занимается, второй макакич.
Говорят мне что питон для вкатывальщика не нужон, ты новичок пиздуй в веб.
Но сука, душа лежит к змее. Что делать?
Чтобы с интами и стрингами иметь проблемы - надо очень захотеть.
А вот когда библиотеки вместо строк или листов возвращают свои объекты - это боль.
не знал, что питон настолько язык для умственно неполноценных
учи блядь, если хочешь, в чём проблема?
если тебе в падлу учить значит не учи.
выбор то простой
Очевидно же, что каждый макака свое болото хвалит. Вкатывайся, как ты хочешь, а будешь советы слушать и заниматься какой-то хуйней неинтересной, перегоришь и вообще забросишь.
ХЗ зачем вообще вкатунов агитировать за свой язык, если ты не преподаватель курсов, конечно.
Вкатуны не нужны.
Пусть чел научится сначала прогать серьёзно на чём-нибудь, годы потратит на это, а потому уже можно будет его в свою секту заманивать.
class Buffer:
def add(self, *a):
return(self.buf)
A = Buffer
print(A.add(1,2,3,4)) #Выводит [2,3,4]
A = Buffer()
print(A.add(1,2,3,4)) #Выводит [1,2,3,4]
На что влияют эти скобки? В первом случае "1" идет как аргумент функции add. Почему во втором не идет?
В первом случае ты создаешь объект класса, а во втором вызываешь метод.
В первом случае ты тупо вызываешь функцию как атрибут класса, self забирает первый элемент.
Во втором случае ты вызываешь метод объекта.
A = Buffer()
A.add(1,2,3,4)
это то же самое, что Buffer.add(A, 1,2,3,4)
>A = Buffer
>A = Buffer()
В первом случае A это класс Buffer. Во втором случае ты создаёшь экземпляр класса, то есть ты создаёшь обект класса. Что тебе скорее всего и нужно.
Соответственно в первом случае ты напрямую вызываешь метод, не привязывая его к объекту, первый параметр перейдёт на self.
А во втором случае в self будет объект класса.
Ты будешь не тру программистом, если написал свой первый hello world до записанного курса
Всем привет, я вот изучаю пайтон уже около 6 месяцев и решил выбрать для себя путь по которому идти, в планах или дата инженерия или веб. Я учусь на CS за границей, хорошие знания английского, но слабый мат, прям очень слабый, уровня 7 класса +-, но мне это пока не мешала создавать небольшие приложения и выполнить пару заказов на фрилансе.
Смогу ли я с таким мат бэкграундом в дата инженерию, нужно ли это там действительно? Сама область очень нравится. Математику я потихоньку учу, но тяжеловато дается.
В веб вкатиться всегда успеешь - учи матешу.
Ребят, есть вопрос, я в Python только одним глазком, нужно сделать простую програмку. Ее смысл заключается в том, что она находит названия всех функций в файле, а потом их появление, я сейчас в самом начале, дайте совет как ускорить работу. Какие-то тонкие нюансы и т.д., заранее спасибо. Ибо у меня 11к слов, и каждое ищет по 0.04 секунды(400 секунд ждать такое себе).
Где можно найти домашки csc в открытом доступе? На ютубе только сами лекции
Будто после сессии кто-то что-то помнит.
Вторую часть я что-то не понял.
Если имелось в виду искать определение функций, а потом количество их вызовов, то это лучше делать за один проход.
Ищешь определения и пихаешь в список, ищешь любые вызовы и пихаешь в collections.Counter.
И потом по списку функций забираешь значения из каунтера.
Ну я тоже так подумал, и сделал вот так. Сейчас погуглю коллекции
Асинк, мультипоток.
Ты тупо молотишь каждое имя на каждую строчку. Я говорю извлекать всё из каждой строчки, а потом выбрать только нужные имена.
>>208666
Мне просто нужно будет потом то что нашло, изменять на другие слова, вооот, а каунтер только число совпадений дает. Смысл программы в том, что она меняет названия функций на Il1Il1Il(i большое L маленькое) и потом мне вызовы нужно найти и также поменять)
Лучше напиши что в целом нужно сделать, а то ты спрашиваешь про какие-то подзадачи, а они изначально через жопу.
Есть текстовый документ с кодом на языке Jass(Варкрафт 3 язык), мне нужно в нем, найти название всех кастомных функций, и изменить их. Первая функция будет ii вторая il третья i1 четвертая iii пятая iil и т.д., мне нужно найти вызовы этих самых функций, т.е. в тексте найти название функции до ее переименования(шифрования) и переименовать ее.
Помогите, пожалуйста, сообразить, как лучше выполнить такую последовательность действий:
1) Взять датафрейм
2) Взять срез (несколько строк) с этого датафрейма
3) Что-то с ними сделать
4) Удалить эти строки из датафрейма из п.1
5) Повторить шаги 1-4
6) Удалить опустевший датафрейм из п.1
Тогда лучше грузить целиком и регулярками заменять. Вот тебе пример. Т.е. собираем все функции, а потом замена с коллбеком.
https://ideone.com/9zt20p
Код слишком сложен дня меня, есть пара вопросов, функция repl принимает аргумент, но в 16 строке ты его не передаешь как она понимает с чем работать? Я посмотрел findall функцию в гугле, и она принимает только 2 аргумента, что третий аргумент означает? Строку с names вообще не понял
findall находит все имена функций, потом через join склеиваем в регулярку вида name1|name2|...
sub её ищет и на каждое совпадение вызывается repl с найденным значением, а возвращаемый результат используется для замены.
Никакие.
А какой язык ты выбрал мейновым на этом поприще, питон, джава, скала?
И почему такой необычный выбор профессии? Писал SQL-запросы 20 лет и решил что-то сделать со своей жизнью?
Лол, я не заметил, что пишу в питон тред, тогда первый вопрос снимаю.
Не очень понятно, как ты ищешь вызов функций.
Вот, допустим, ты определил четыре функции как
function func():
function func2():
function super_func():
function t():
По твоей логике поиска, на первый взгляд, каждое ключевое слово
function
будет трактоваться как вызов функции func() и t()
а каждый вызов функции func2() будет считаться и вызовом func2() и func()
Аналогичная история и с super_func().
Тебе надо прикручивать или писать самому какой-то парсер. Тот подход, что делаешь ты, во-первых тормозной, во-вторых очень глючный на реальных ситуациях.
А так, ты просто парсишь, выделяешь в коде вызовы функций, и заносишь их в словарь с подсчётом количества вызовов.
Параллельно парсишь те функции, которые ты сам определил у себя в коде, если это актуально, чтобы вызовы каких-нибудь системных функций отсечь.
Я понимаю что есть проблемы с вызовом функций, я просто для начала написал примерную программу, чтобы понимать основы, и как сделать быстрее код. Сейчас читаю про регулярки и понимаю что буду делать через них, чтобы описанной тобой проблемы не было.
Да, я оч много работал с SQL + знаю на нормальном уровне Питон, поэтому решил уйти в Дата Инженерию.
В плане производительности у тебя проблема в том, что сложность k*n, где k количество функций, а n количество строк.
А сложность на самом деле линейная, если сейчас не думать о сложности самого парсинга.
Тебе надо просто парсить строки и считать количество вызовов функций, которые найдёшь, и фильтровать из по вхождению в список нужных функций. Точнее не в список, а в множество или словать, проверка вхождения в список работает медленно, а во множество или словарь быстро.
Сейм.
Но ты сразу учитывай, что настоящие дата инженеры работают с джавой и скалой, а рисовать даги в айрфлоу это не то чтобы охуительная дата инженерия.
Так у меня добавление в массив названий функций занимает 0.6 секунд, проблема не в этом
Тебе не нужно его делать. Тебе нужно найти все функции, которые там, и потом проверить, есть ли они в контрольном словаре функций. Ну и счётчики обновить соответственно.
Жаль, что это не будет работать, когда методы разных классов называются одинаково, но вы уж сами ебитесь с этим...
Разве что ближе к пенсии.
Да и тимлид из меня так-себе, не умею в менеджмент, мне бы какую-нибудь должность, на которой нужно дохуя знать, но не нести ответственность за людей.
Мб кто сталкивался с таким, в чем может быть проблема?
А что при этом показывает загрузка памяти-процессора по htop и другим?
Что показывает netstat в плане количества соединений открытых?
fastapi ведь тоже напрямую не запускают, а через всякие прокси. насколько я понимаю, то есть из-за этого могут быть проблемы.
Если приложение перезапустить, то после этого нормально?
Обычная история (не фастапи, а вообще), что по каким-то причинам у тебя висят незакрытые соединения, то есть приложение считает, что они открыты, а на самом деле они закрыты. А этом большая утечка ресурсов, и из-за этого всё начинает тормознуть и виснуть. Особенно для вебсокетов актуально.
Для обычный http тоже может быть актуально. Вот если без прокси они работают, то очень даже вероятно.
>А что при этом показывает загрузка памяти-процессора по htop и другим?
Нагружено вроде не особенно, вывел данные докер статстом (пик1).
>Что показывает netstat в плане количества соединений открытых?
Вроде также не особо нагружено (пик2).
> а через всякие прокси. насколько я понимаю, то есть из-за этого могут быть проблемы.
Да, запущено через траефик, но вроде опять же он не так и нагружен.
>Если приложение перезапустить, то после этого нормально?
Да, после перезапуска на пару часов минимум становится все хорошо, потом опять начинает нафиг слать. Я думал сделать автоперезагрузку контейнера, но это же фигня, что сервер будет пару секунд даже лежать
Ну не знаю, анон.
У тебя что-то течёт в приложении, надо смотреть на приложение, как-то логировать и отлаживать. Я просто с fastapi дела не имел вообще. Да и твой стек не понятен.
Я делал подобные вещи на ноде и на aiohttp. На aiohttp сталкивался с тем, что он некорректно обрабатывал зактытие вебсокета, то есть в каких-то случаях не понимал, что вебсокет закрыт. В результате накапливалось большое количество незакрытых задач. Потом правда баг это заделали, там в самом aiohttp был баг.
Более-менее обычная история может быть, что ты где-то внутри открываешь соединение, для внутренних нужд, потом запрос исполняется, а соединение корректно не закрывается. И у тебя висит задача, которая ничего не делает, но соединение висит.
Это иногда можно понять через netstat и некоторые другие утилиты. Но это надо в контейнер зайти.
Попробуй зайти в контейнер, то есть сделать
docker exec -it container_name bash (поставить внутрь баш правда надо), и там уже netstat и другие инструменты запускать.
Ты, по идее, можешь увидеть огромную простыню незакрытых соединений, но это не точно.
Ещё могут течь соедениния с БД и другими подобными сервисами, там же тоже лимиты. Ещё могут течь файловые дескрипторы.
Просто то, как ты описываешь, выглядит как самая классическая утечка, а это вообще довольно обычная вещь, я это сам ловил несколько раз. И все с этим сталкиваются.
Зашел в докер, показывает те же 3 соединения на сервер.
Стек довольно простой, FastAPI + HTTPX для запросов + Traefik как реверс прокси. HTTPX соединения открываю через асинхронный контекстный менеджер ,т.е. закроется оно в любом случае. Просто хз где оно насрать может.
тут нет никакой шутки.
этот анон уже полгода тут создает функции которые возращают сосание и ебание
Сегодня иду с подругой, она мне что-то говорит и я думаю, а какие данные она мне дает, json от запроса, интежер или строку, да хрен пойми, а что за строка, а может там вообще флоат? Блин, как я вообще могу узнать что за входные данные она дает. Потом останавливаюсь и понимаю что минуты 3 я думал о том как буду работать с ее кодом, заржал в голос.
Ну я вот о чём, в твоём сервисе как приходит соединение, так у тебя запускается обработчик этого соединения. Который, в свою очередь, может занимать какие-то ресурсы, открывать соединения. файлы и т.п.
После того, как соединение закрылось, твой обработчик должен это отловить и освободить все занятые ресурсы, после чего закрыться сам. Иначе могут быть проблемы.
Вот возможно что-нибудь в этом духе и происходит, ты не освобождаешь ресурсы нужные, либо обработчик вообще не закрывается, не может отловить, что соединение закрылось, а тупо висит в месте, где ждёт данные из сети.
647925
>Пздц, бывала ли у вас такая хуйня?
>>Сегодня иду с подругой
Ты тролль? Или хотя бы в тред про вкаты, или вообще куда-нибудь в /b/
Понять бы просто в чем проблема. Т.к. вроде все стандартное, вроде все должно, но видно где-то все же течет память
Надеюсь вне треда у него такая же разнообразная и увлекательная жизнь как и в треде
Раз в top/htop не видишь, значит память и процессор не текут.
Я ставлю на то, что или сетевые соединения (странно, что ты их не видишь), или какие-нибудь подключения к БД, очередям и т.п., или файловые дескрипторы.
Или вообще какая-нибудь специфичная внутренняя хрень, какие-нибудь внутренние ресурсы вроде очередей и т.п.
Понять тяжело. И надо понимать, как у тебя это всё устроено.
Попробуй логи активнее собирать, как у тебя обработчики открываются-закрываются и как ресурсы выделяются-освобождаются.
На самом деле зашкварный способ отладки, но он работает.
Проблема в том, что нет ни подключений к БД, ни к каким-либо очередям или файловым дескрипторам. 1 роут, который берет запрос к серверу, подставляет нужные данные, делает запрос с помощью httpx на другой сервер и возвращает данные все. По-идее случай для мониторинга netstat`ом, но раз пусто значит все же дело не в этом. Попробую нахуярить принтов, посмотрим как выйдет.
con_class = lambda n: (x for x in range(100) if x % n == 0)
50к где-то, хуй знает. Мне кажется, ты тредом ошибся, сходи в тор и посмотри
Вы видите копию треда, сохраненную 30 июля 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.