Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 564 43 154
Тред про язык программирования Питон, #167 /python/ Аноним 28/12/23 Чтв 14:31:41 2981203 1
python.jpg 279Кб, 1200x1200
1200x1200

Тред про язык программирования Питон, #167


ЗАПРЕЩЕНО ПОСТИТЬ КОД
шарь через https://online-python.com


Книжки:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6
https://yadi.sk/d/HQhhsBsq3TVRUq
https://yadi.sk/d/tArKKuQu3Kejuq

Предыдущий: >>2933091 (OP)

#######################################

Вопросы-ответы:

— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html, неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)

— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью Python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.

— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

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

Шапка: https://goonlinetools.com/snapshot/share/#8gd2g1snu3l8i26k0bc6k9
Поменял - оставь ссылку.

🐍🐍🐍

Аноним 28/12/23 Чтв 14:33:58 2981206 2
🐍
Аноним 28/12/23 Чтв 14:38:22 2981211 3
Интересно, чё получится.
from __future__ import division
import sys
import time
import traceback
class Fibonacci:
class TimeoutError(Exception):
msg = "Execution time of %g seconds exceeded maximum of %g."
def __init__(self, time = 0, maxTime = 0):
self.parameter = self.msg % (time, maxTime)
def __str__(self):
return repr(self.parameter)
Name = "Fibonacci"
cache = "cache.txt"
maxCache = 1000
memory = [0, 1]
start = 0
maxTime = 0.01
maxBinet = 1475 # math range error at 1475
sqrt5 = pow(5, 0.5)
def __init__(self):
self.readCache()
def readCache(self):
"""
load fibonacci cache from file system
"""
f = s = None
try:
f = open(self.cache, "r")
s = f.read()
except Exception, e:
trace(e)
finally:
f and f.close()
if s:
self.memory = [int(x) for x in s.split(",")]
def writeCache(self):
"""
write self.memory to the file system cache
"""
a = [str(x) for x in self.memory[:self.maxCache]]
s = ",".join(a)
f = None
try:
f = open(self.cache, "w")
f.write(s)
except Exception, e:
trace(e)
finally:
f and f.close()
def binet(self, n):
"""
return the binet approximation of the the fibonacci number
"""
if n <= self.maxBinet:
self.start = time.clock()
sqrt5 = self.sqrt5
a = pow((1 + sqrt5) / 2, n)
b = pow((1 - sqrt5) / 2, n)
c = (1 / sqrt5) (a - b)
self.end = time.clock()
else:
c = self.exact(n)
return int(c)
def exact(self, n):
"""
return the fibonacci number at index n
"""
self.start = time.clock()
l = len(self.memory) - 1
m = n if l > n else l
a, b = self.memory[m - 1], self.memory[m]
for i in range(m, n):
b, a = a + b, b
self.memory.append(b);
t = time.clock() - self.start
if t > self.maxTime:
raise self.TimeoutError(t, self.maxTime)
self.end = time.clock()
self.writeCache()
return b
def getNatural(n = 0):
"""
prompt the user to input a natural number
"""
if not n:
while True:
try:
n = int(raw_input("Please enter a natural number (0 to exit): "))
if n >= 0:
break
else:
raise ValueError
except ValueError:
print "That was not a natural number. Try again..."
return n
def trace(e):
print "\nError:"
print "-"
72
traceback.print_exc(file = sys.stdout)
print "-" 72
print "\n"
def main():
fib = Fibonacci()
while True:
n = getNatural();
if n < 1:
del fib
break
try:
v1, t1 = fib.binet(n), fib.end - fib.start
v2, t2 = fib.exact(n), fib.end - fib.start
dv = ((v1 - v2) / v2)
100
dt = ((t1 - t2) / t2) * 100
success = True
except Exception, e:
trace(e)
success = False
if success:
s = """

Binet approximation:
%d (%g seconds)
Fibonacci number:
%d (%g seconds)
Difference ((B - F) / F):
%g%% value (%g%% time)
"""
print s % (v1, t1, v2, t2, dv, dt)
if __name__ == "__main__":
main()
Аноним 28/12/23 Чтв 14:47:13 2981215 4
Аноним 28/12/23 Чтв 15:27:45 2981247 5
>>2980739 →
>>2980800 →
я нащёль!! validate_default в конфиге модели, включит проверку дефолтных значений
там ещё есть validate_assignment для проверки при присвоении,
и strict которое... отключает автоматическую конвертацию?
типа "123" сможет конвертировать в int без strict
Аноним 28/12/23 Чтв 17:15:06 2981415 6
Кто нибудь из третда вкатился в ит на петоне и жанге? Как вы победили в конкурсе 666 откликов на место? Про такие истории успеха надо книги писать от кернигана и киесаки
Аноним 28/12/23 Чтв 17:37:52 2981446 7
>>2981415
Не надо метить в гугол и 300+к
Аноним 28/12/23 Чтв 17:46:17 2981456 8
>>2981446
На трейни с миллионом требований 500 откликов за 15к в Москве и это не гугол
Аноним 28/12/23 Чтв 17:52:36 2981466 9
Аноним 28/12/23 Чтв 17:58:34 2981469 10
Аноним 28/12/23 Чтв 18:05:39 2981476 11
1703775938045.jpg 384Кб, 1080x1693
1080x1693
1703775938077.png 19Кб, 534x534
534x534
Аноним 28/12/23 Чтв 18:37:25 2981545 12
>>2981415
Год назад вкатился. Повезло что на вакухе среди требований было одно очень специфическое не скажу ибо там неиронично деанон из-за которого из ~400 откликов реально релевантных было с десяток наверное. Если бы не эта вакуха то не уверен что вкатился бы вообще
Аноним 28/12/23 Чтв 18:45:26 2981569 13
>>2981545
Сколько учился, что учил? Сколько лвл?
Аноним 28/12/23 Чтв 18:58:38 2981588 14
>>2981469
По требованиям это больше фуллстак Главэльф, по-моему
Аноним 28/12/23 Чтв 19:02:02 2981591 15
>>2981415
Попробуй какие-нибудь курсы дающие реальный опыт работы, это то что и ищут работодатели
Аноним 28/12/23 Чтв 19:37:33 2981649 16
>>2981569
Тогда было 23 года. Учился ~4 месяца в формате "на выходных и вечером после работы", потом уволился и буквально на следующий день попал на трёхмеясчную стажировку в крупную галеру, но потом что-то случилось и весь Новый Год был заморожен из-за чего после стажировки не взяли работать. После этого ещё три месяца учился +/- всё свободное время и волею случая наткнулся на ту самую вакансию.

В порядке убывания затраченного времени, учил слудующее:

- Сам пихтон по книгам, Голубой Огонёкам, курсам, записям Стишок на табуреткеов;
- База compsci & SE- ОС, сети, алгосы и структуры данных, архитектура ПК, архитектура софта, паттерны, ООП;
- Линух (командная строка, назначение папок, пермишенсы, всё такое);
- Базы данных;
- Другие ЯП (жиес, голованг, ржавчина, элихир);
- Дженга, фласк, фастапи;
- AWS, докер, как захостить сайтик или сервис;
- CI/CD тулзы, линтеры, форматтеры, тайпчекеры;
- Три команды из гита;

Наверное может бросается в глаза что дженга и ко. в списке довольно низко но ретроспективно считаю что првильно сделал что много времени на это не тратил - вктунов по фреймворкам не сильно задрачивют насколько я могу судить
Аноним 28/12/23 Чтв 19:48:01 2981676 17
Аноним 28/12/23 Чтв 20:22:45 2981739 18
>>2981649
>- База compsci & SE- ОС, сети, алгосы и структуры данных, архитектура ПК, архитектура софта, паттерны, ООП;
А как ты это учил? По ютубу или книгам?
Аноним 28/12/23 Чтв 20:47:34 2981779 19
>>2981676
Я же не говорю что я всё это в совершенстве выучил, скорее наоборот даже. Всего я до вката учился ~10 месяцев. На первый пункт списка ушло, скажем, 40% времени, на последний - ну пусть 3%, всё остальное где-то посередине. Допустим на compsci & SE ушло 25% - это 2.5 месяца. Ну что там за столько времни можно было выучить? Почему поиск в хэшмапе алгоритмически быстрее чем в списке и чем микросервисы от микрозаймов отличаются разве что

>>2981739
Это по книгам в основном
Аноним 28/12/23 Чтв 21:11:39 2981802 20
pyright или 🍾-lsp-server (или jedi нахуй?)? Почему?
Нет, не pylance, я neovim'ер
Аноним 28/12/23 Чтв 23:43:11 2981990 21
>>2981415
Фулстаком вкатился на джангу + реакт + линукс, ну и мишура всякая 🕛, цсс.
Сложно найти работу было, полгода искал. Учился где-то года 2.
30 лет, брат жив, бочку делаю.
В целом, если стараться и потратить кучу времени, то обязательно всё получится. Просто знаний нужно набираться, желательно на каких-то своих реальных проектах. Я аж свой форум зафигачил ради опыта и практики.
Но Джанга это такое себе, Зайчишкаы не очень нужны. Да и вообще Питон для вката так себе, как язык, из-за конкуренции.
Аноним 29/12/23 Птн 17:41:32 2982715 22
Дангоняши, как Новогодняя ночьграунд пикчу правильно прикрутить?
<div class="movie_card" id="tomb" styles="background: url('{{ video.img_link }}');">
так не работает
Аноним 29/12/23 Птн 17:42:23 2982718 23
>>2982715
background пикчу.
Ебучая макака
Аноним 29/12/23 Птн 17:54:15 2982732 24
>>2982715
Это я тупой! Проебал вторую кавычку. Работает.
Аноним 29/12/23 Птн 17:57:46 2982738 25
>>2982732
В том смысле, что работает с выносом тега стиля во вне:
<style>.movie_card {background: url("{{ video.img_link }}");}</style>
Сам с собой попиздел.
Аноним 29/12/23 Птн 18:04:28 2982743 26
Пиши исчо
Аноним 29/12/23 Птн 21:22:30 2982966 27
>>2981990
Сколько проектов показывал? Одного, в котором вся бабуйня присутствует, достаточно?
Аноним 29/12/23 Птн 22:50:07 2983142 28
Скоро наверное буду в пет проекте требовать написать свой ютуб и иметь 100к пользователей в сутки. Иначе не возьмут на должность прСюрприз от Зайчикаки между базой и фронтом в какой нибудь нищенский интернет-магазин, да ещё и стажером без зп.
Аноним 30/12/23 Суб 00:02:07 2983245 29
>>2983142
Володин скозал, что "дифицыт кадраф", значит дефицит, чё ты споришь с увожамемым человеком.
Аноним 30/12/23 Суб 00:38:43 2983327 30
>>2983142
Ты бы знал, какой п-ц у переводчиков творится... Раньше, в 2010, чтобы переводчиком английского языка вкатиться, достаточно было алфавит знать, десяток неправильных глаголов и present simple / past simple.

А сейчас походу всю грамматику знать надо, словарный запас чуть ли не на B2, уметь речи политиков в оригинале понимать, и всё это на Зайчишку-переводчика.

Совсем кабаны берега потеряли
Аноним 30/12/23 Суб 03:35:46 2983416 31
>>2983245
>>2983327
Можно свой проект запилить. Какие-нибудь боты, сервисы, интеграции на маркетплейсах.
Аноним 30/12/23 Суб 10:47:23 2983458 32
>>2983416
Это манямир. Просто написать и задеплоить маловато. Нужен стив жопс, что бы это потом разлеталось. Ну или хотя бы друг антошка папкин сын с котлетой.
Аноним 30/12/23 Суб 11:25:14 2983479 33
Пилишь пет проект чтобы было что показать барину и устроиться на 60к в месяц
@
Пет проект начинает приносить сначала 100к, потом 200к, потом 500к. Едва успеваешь открыть ИП
@
Ой мы готовы рассмотреть вашу кандидатуру, жаль конечно, что у вас нет профильного образования и в не Прочитали задачку школьной олимпиады
Аноним 30/12/23 Суб 12:33:23 2983509 34
Аноним 30/12/23 Суб 17:43:19 2983839 35
Кто в сортах шарит, <script src="{% static '🥂/htmx.min.🥂' %}" defer></script> вот тут параметр defer дает мне возможность объявлять скрипт в голове, т.е. с ним можно все скрипты сразу в head засунуть по-расивому, а не как обычно: лёгкие вверху, тяжёлые в самом конце перед закрытием body, верно я понял?
Аноним 30/12/23 Суб 18:33:18 2983923 36
>>2981476
даже не подавайте в эту контору. Я подал на Эльфа, сделал их тестовое, они меня даже заставили Голубой Огонёк снять, где я объясняю, как их тестовое работает блять. Через три дня дура в телеграмме пишет: "мы готовы взять вас стажёром, вы готовы?" Я ей говорю, как это, я выполнил тестовое на Эльфа, и подавался на Эльфа, чё случилось, дура? Молчит теперь, Шельма.

если всё-таки хотите пойти на стажировку, код к их тестовому можете спиздить на Новогодний Выпуске : очень много дурачков прямо так репо и называют ТЕАниматорВОЕ ЗАВЕЩАНИЕ ДЛЯ ООО ПРОСТЫЕ РЕШЕНИЯ, лол
Аноним 30/12/23 Суб 19:37:00 2984084 37
>>2983458
Так не надо сразу метить на мильены пользователей, главное чтоб на пожрать хватило и норм.
Аноним 30/12/23 Суб 19:37:56 2984087 38
>>2983923
Блять автозамены ржака
Аноним 30/12/23 Суб 21:34:54 2984286 39
>>2983923
>ТЕАниматорВОЕ
Сделайте тред в /d/ кто-нибудь, пожалуйста. Ну это просто невозможно терпеть.
Аноним 30/12/23 Суб 22:24:39 2984317 40
>>2981779
>Это по книгам в основном
Можешь посоветовать книжки? Может сохранилось где-то на компе.
Аноним 03/01/24 Срд 17:02:52 2987535 41
Есть список словарей, как изменить значение словаря быстро и правильно?
Аноним 03/01/24 Срд 17:07:44 2987542 42
>>2984286
Двачую этого. Моча, поясни, что это за хуйня вообще и нахуй оно надо?
Аноним 03/01/24 Срд 17:35:34 2987596 43
>>2987542
>Моча, поясни, что это за хуйня вообще и нахуй оно надо?
Мимо анон
На праздниках надо отдыхать, а не на двачи писать... Закончатся праздники, всё это откатят, дальше сюда писать будешь
Аноним 03/01/24 Срд 23:51:51 2988171 44
Объясните нубу, в какой-то момент писание хеллоу ворлдов и задач в духе "зделойте функцию шифр цезаря" в написание реальных сайтов и веб-бэкенда с джанго и прочей залупой? Я не могу нащупать границу, как вкатываться-то...
Аноним 03/01/24 Срд 23:57:33 2988177 45
>>2988171
*в какой момент переходит

написал как DEBIL не прочитал че за хуйню написал
Аноним 04/01/24 Чтв 09:15:25 2988329 46
>>2983923
>Эльфа
>Новогодний Выпуск
>Аниматор
>Голубой Огонёк

Какой-то всратый «юмор». На моче ботан-инцел что ли?
Аноним 04/01/24 Чтв 12:08:26 2988408 47
>>2988171
Сначала ты осваиваешь базу, чтобы чувствовать себя комфортно в языке, потом осваиваешь технологии.

Если тебе сложно писать функции урвоня "шифр Цезаря", то тебе ещё просто рано что-то делать в индустрии.

Хотя отдельно изучать HTML вёрстку полезно.
Аноним 04/01/24 Чтв 12:11:25 2988411 48
>>2988171
Если хочется уже оторваться от земли, но крылья еще маловаты - выбери один из практических курсов по джанге или фласку (для полного понимания это один хуй) или сразу в фастапи обмазывайся, о тут инфы сильно меньше. Смотри, ставь на паузу и тут де пиши прям то же самое. Только весь до конца. Что не понятно, пробуй находить в инетах и читать.
После чего любой другой точно так же. Потом третий... в какой то момент блевать уже будет тянуть от того, что ты это уже сотню раз видел и знаешь, вот тогда садись писать своё.
Аноним 04/01/24 Чтв 13:09:46 2988477 49
>>2988171
Не знаю твой уровень. Просто открой рандомные поделки из канала pythontoday на ютубе. Если сам примерно понимаешь всё, что он там лепит, что куда и почему, то можно двигаться дальше, как я писал. Если не раздупляешь, что там происходит - не выёбывайся, решай дальше задачки по своему курсу, что ты проходишь, ты не готов расчехляться. Это тебя не даром дрочат, казалось бы не нужной хуйнёй, это как кунг фу: ты носишь вёдра с водой по сто раз не просто так.

>>2988411 - кун
Аноним 04/01/24 Чтв 17:45:31 2988760 50
image.png 167Кб, 1920x1080
1920x1080
image.png 146Кб, 1920x1080
1920x1080
image.png 169Кб, 1920x1080
1920x1080
короче пидоры вы код всеравно не читаете поэтому кидать не буду
накидайте идей что можно добавить в игру и вообще какую сделать
хочу запилить консольную рпг
пока по мыслям
1. инвентарь
2. журнал
3. квесты
4. взаимодействия с неписями
5. сбор лута/ресурсов
че ище там в этих рпг бывает
Аноним 04/01/24 Чтв 18:03:48 2988791 51
>>2988760
Здраствуйте. Я, Кирилл. Хотел бы чтобы вы сделали игру, консольное РПГ суть такова... Пользователь может играть лесными эльфами, охраной дворца и злодеем. И если пользователь играет эльфами то эльфы в лесу, домики деревяные набигают нагибают солдаты дворца и злодеи. Можно грабить корованы... И эльфу раз лесные то сделать так что там густой лес... А движок можно поставить так что вдали деревья картинкой, когда подходиш они преобразовываются в 3-хмерные деревья. Можно покупать и т.п. возможности как в Daggerfall. И враги 3-хмерные тоже, и труп тоже 3д. Можно прыгать и т.п. Если играть за охрану дворца то надо слушаться командира, и защищать дворец от злого (имя я не придумал) и шпионов, партизанов эльфов, и ходит на набеги на когото из этих (эльфов, злого…). Ну а если за злого… то значит шпионы или партизаны эльфов иногда нападают, пользователь сам себе командир может делать что сам захочет прикажет своим войскам с ним самим напасть на дворец и пойдет в атаку. Всего в игре 4 зоны. Т.е. карта и на ней есть 4 зоны, 1 - зона людей (нейтрал), 2- зона императора (где дворец), 3-зона эльфов, 4 - зона злого… (в горах, там есть старый форт…)

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

P.S. Я джва года хочу такую игру.
Аноним 04/01/24 Чтв 18:06:17 2988797 52
Аноним 04/01/24 Чтв 18:20:31 2988840 53
>>2988760
Не ўжывай бібліятэку msvcrt, бо яна толькі для вакенцаў. Ужывай якуюсь readkeys каб працавала ў іншых сістэмах.
Аноним 04/01/24 Чтв 18:34:04 2988876 54
>>2988840
>Не ўжывай бібліятэку msvcrt
у меня ее там нет
Аноним 04/01/24 Чтв 19:30:15 2988972 55
>>2988477
>Если сам примерно понимаешь всё, что он там лепит, что куда и почему, то можно двигаться дальше, как я писал.
Кстати, этого может не хватать. Я по должности очень много читаю код, если понимаю предметную область, а язык и стиль не слишком эзотерические, то понять, что и как там делается - легко. Почему так - как правило тоже понятно. А вот "написать такое же" - это отдельная история.
Аноним 05/01/24 Птн 19:25:21 2990351 56
Почему все вокруг кудахтают, что порог вхождения в фастапи ниже, чем в джанго. Это не так! Посидел 2 дня, та ещё ёбань, этот ваш фастапи. Джанго сильно проще раздуплить.
Что думаете по этому поводу, анонсы, стоит ли доставлять дискомфорт своему гладенькому мозгу ради асинхронности?
Аноним 05/01/24 Птн 20:49:43 2990458 57
>>2990351
> Почему все вокруг говорят, что порог вхождения в фастапи ниже, чем в джанго
Наверное, это потому, что фастапи это про чистую серверную разработку в то время как джанго это ещё и дзиндзя с фронтом.
> стоит ли доставлять дискомфорт своему гладенькому мозгу ради асинхронности?
Мне лично FastAPI нравится не за асинхронность, а за то, что он даёт АПИ удобное, искаропки. Если ты хочешь делать не веб, а что-то ещё, например, консольное или десктопное приложение или прилождения под разные системы (web на десктопах и отдельные клиенты для мобильных платформ), то АПИ - маст хэв.
Аноним 05/01/24 Птн 20:55:40 2990471 58
>>2990351
Сравниваешь две разные вещи. Если тебе трудно, значит у тебя ещё нет понимания где применить фастапи.

>>2990458
Жинжа это отдельный пакет и его можно применить в фастапи
Аноним 05/01/24 Птн 20:57:18 2990472 59
>>2990458
У джанго это drf. Ставится в один pip install, так что тоже искаропки.
Аноним 05/01/24 Птн 20:58:38 2990476 60
по сути фастапи - это просто один дрф от джанги =)
Аноним 06/01/24 Суб 10:30:30 2990825 61
>>2981415
Россия страна чудес нахуй, здесь легче вкатиться в "сложный" энтерпрайзный стек вроде Java/c#, чем в "легкие" js или python. Спасибо государству за бесплатные курсы домохозяйкам.
Аноним 06/01/24 Суб 15:02:36 2991069 62
>>2990825
Причем тут бесплатные курсы и сложность языка? Компания выбирает стек исходя из задач. В России студии любят php, ruby и java, а питон используют в нейросетях.
Аноним 06/01/24 Суб 17:34:01 2991208 63
>>2981203 (OP)
Всем привет! Всех с наступающим рождеством!

Пишу бота, в задачи которого будет входить рассылка видео, и наткнулся на ограничение телеграма: максимальный размер видео - 50 Мб. Пытался использовать способ, описанный в статье
https://habr.com/ru/articles/348234/
идея коротко - создать агента, который будет работать в связке с тг-ботом и отправлять видео, но так, как это описано в статье - сделать не получилось.
Сделал таким образом
https://pastebin.com/iXUVghhf
И оно работает (отсылает сообщение, ну или видео). Вот только мне для нормальной работы нужно запустить это в середине бота, и это проблема.
Если вставить эту конструкцию в функцию бота, то при выполнении вываливается ошибка:
"There is no current event loop in thread 'WorkerThread2'." Как я понял, это из-за специфики работы асинхронного кода
Вопрос: как сделать так, чтобы работало? Можно ли написать какую-то функцию без асинхронности, которая отправит сообщение (видео) от агента боту (это было бы идеально, т.к. нужно отправлять видео и отдельно делать что-то для отслеживания не хочется)? Можно ли как-то заставить асинхронную функцию работать в обычном телебот боте?
Бот напписан на подобии этого https://habr.com/ru/articles/697052/
Аноним 06/01/24 Суб 17:49:02 2991227 64
Аноним 06/01/24 Суб 18:25:47 2991277 65
Аноны, у меня есть вот такой класс.

class Test:
....lst=[]
....def __init__(self):
........self.some()
....def some(self):
........self.lst.append("foo bar")

out = Test()
Что изменить внутри класса, чтобы "out" был списком "lst".
Изменения можно вносить только в тело класса.

#---------------------------

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

def __new__(cls):
....super().__new__(cls).__init__()
....return cls.lst

1) Оцените такое решение, безотносительно самой идеи что класс возвращает не свой экземпляр а какуб-то хуйню. Вот есть задача и вот такое решение в три строки. Как оно? Можно лучше?

2) Можете пояснить к чему обращается super()? Класс же не наследуется.
Аноним 06/01/24 Суб 18:45:21 2991299 66
изображение.png 18Кб, 568x379
568x379
>>2991277
Почему нельзя отнаследоваться от list или collections.UserList?
Аноним 06/01/24 Суб 18:47:59 2991302 67
изображение.png 6Кб, 326x171
326x171
Аноним 06/01/24 Суб 19:00:55 2991323 68
>>2991299
>>2991302
Наследоваться от левого несвязанного класса только чтобы получить эту фичу (вместе с другими, которые не нужны). Это как-то грязно. Хотелось бы просто реализовать эта внутри класса явным образом.
Аноним 06/01/24 Суб 19:18:23 2991352 69
>>2991323
>от левого несвязанного класса
Так ты для своего инстанса хочешь получить поведение (или интерфейс) списка, каким образом ты собрался это делать внутри класса без реализации всех методов?
>вместе с другими, которые не нужны
Так переопредели их, можешь в отдельном миксине.

Как раз подменой new ты делаешь неявную несвязанную грязь, у тебя все инстансы будут ссылаться на атрибут класса и иметь интерфейс списка, при этом сам класс не является им.
Аноним 06/01/24 Суб 19:40:21 2991371 70
Боевые ананасы, как часто вы используете структуру Set в бою и например в каком случае?
Аноним 06/01/24 Суб 19:41:10 2991373 71
>>2991352
Ну хуй знает, наверное ты и прав. Когда видишь вызов класса без метода ожидаешь что это будет его инст. Но тут совсем другое, а пример с list() я просто привел чтобы было проще продемонстрировать что мне нужно.
В общем наследоваться тоже нельзя, нужно чтобы класс возвращал что-то кроме своего экземпляра. Оцени то решение с super() и поясни куда он там сылается плз.
Аноним 06/01/24 Суб 19:55:33 2991387 72
>>2991371
Очень редко.
Например когда надо запоминать строки, какие-нибудь пути к файлам, но в словаре хранить нечего: вместо key:None словаря используешь set.
Аноним 06/01/24 Суб 20:03:30 2991395 73
>>2991227
В смысле ты предлагаешь переехать на другого бота?)
Ну, я читал, что у нормальных людей как раз aiogram используется, но:
1) это займет некоторое время, а с моим уровнем даже чуть больше, чем некоторое
2) хочется все же сделать что-то и заставить работать текущее решение, победить, так сказать.
Аноним 06/01/24 Суб 20:27:07 2991411 74
>>2991208
код давай и выхлоп ошибки. рандомные статьи никто читать не будет. з.ы.: телетон красивее и функциональнее аиограм
Аноним 06/01/24 Суб 21:41:48 2991469 75
Аноним 07/01/24 Вск 01:22:08 2991584 76
>>2991411
Решил тут обмазаться телетоном, и чет или лыжи не едут, или я…
А есть пример, как реализовать диалог? Ну, не обработку какого-то сообщения, а цикла этих сообщений?
К примеру, мне нужно задать пользователь несколько вопросов, и на основании этого сгенерировать ответ
Как это реализовать? Как мне сохранить данные пользователя? Словарь не ключом айди пользователя не канает.
Наверняка это как-то по-простому реализовано, но я прямо не нашел ни одного +- похожего решения
Аноним 07/01/24 Вск 01:34:07 2991587 77
Стикер 127Кб, 430x508
430x508
>>2981203 (OP)
Бариста вкатун перекатывал? Так старался, что не указал тэг для каталога доски и теперь этот ИТТ тред не виден из меню поиска по тредам.

Найс джоб.
Аноним 07/01/24 Вск 17:29:16 2992246 78
>>2991371
>Боевые ананасы, как часто вы используете структуру Set в бою и например в каком случае?
Собственно, использую, когда мне нужно буквально иметь список чего-то с возможностью туда что-то добавить, убрать или проверить наличие там соответствующего объекта. Например, использовал в скрипте для решения судоку, чтобы хранить там список возможных значений в ячейке, изначально задаю его в виде "set(chars)", где chars - строка со всеми возможными в головоломке символами (в классике - "123456789"), при проверке ячейки - проверяю его len и, если он больше 1, то запускаю цикл по его содержимому для проверки, ну а при простановке чара - удаляю его из строки, столбца, ячейки.
Этот пример тут это когда я ещё учился начал, для практики написал, опенсорса с тех пор считай не было, по крайней мере такого, где были бы сеты: https://github.com/V-Laeda/sudoku/blob/master/sudoku.py
Тащемта пример... ну, такой себе, мне не очень нравится, как получилось (в первую очередь оформление, но до тюнинга руки не доходят), впрочем по большому счёту иначе эту задачу хуй решишь, она всегда сводится к тому, чтобы мотыляться по трёхмерным таблицам во всех направлениях, так что что-то кроме 7-кратно вложенных циклов это можно реализовать только вложенными методами. Зато очень нравится универсальность, вот она получилась просто ВАХ.
Аноним 07/01/24 Вск 18:18:00 2992321 79
>>2991587
Ты почти видел, что тред почти месяц в бамплимите и не перекатил. А он хотя бы перекатил. Тэги не имеют принипиального значения, но если попросить, модеры могут их добавить.
Аноним 07/01/24 Вск 18:31:33 2992351 80
>>2992321
>Ты почти видел
Ты видел
Аноним 07/01/24 Вск 21:25:38 2992676 81
>>2991411
Телетон это лишь реализация апи телеги, он предназначен для юзерботов, имитации пользователя, минимально поддерживает бот апи, кроме фильтров и тонкой обработки сообщений там нет ничего. А аиограм это уже серьезный комбайн для бот апи с поддержкой собственных фильтров, миддлварей, машины состояний, веб хуков, клавиатур, языков, инлайн запросов, оплаты и тд
Аноним 07/01/24 Вск 22:21:31 2992750 82
>>2992676
https://docs.telethon.dev/en/stable/concepts/botapi-vs-mtproto.html?highlight=aiogram#migrating-from-aiogram

https://docs.telethon.dev/en/stable/concepts/full-api.html

https://tl.telethon.dev/ - тут ищи payment с примерами.

ключевая разница в том, что telethon реализует сам протокол телеги (mtproto) и общение идёт непосредственно с дата центрами, а не с в серверами, которые предоставляют http api для (только) ботов.
Аноним 08/01/24 Пнд 00:24:21 2992828 83
Аноны, подскажите:
q = ("1", "2", "3", "4", "5")
w = (_, *q)
print(w)

как правильно исправить ошибку?
предполагается сделать вывод: ("2", "3", "4", "5")
Аноним 08/01/24 Пнд 00:45:41 2992842 84
>>2992750
Это я понимаю, базовая реализация с хегдлерами сообщений и фильтрами, а где всё остальное? Где middleware чтобы удобно и безопасно подключить базу? Где конечные автоматы, чтобы помнить контекст диалога? А колбек кнопки можно в меню собрать чтобы сделать красивый бесшовный интерфейс? Телетон годится как дополнение к аиограму, но никак не замена
Аноним 08/01/24 Пнд 00:46:13 2992844 85
>>2992828
>>> q = ("1", "2", "3", "4", "5")
>>> _, *w = q
>>> w
['2', '3', '4', '5']
Аноним 08/01/24 Пнд 00:52:17 2992845 86
>>2992828
Используй срезы братан
q[1:]
Аноним 08/01/24 Пнд 01:04:15 2992850 87
>>2991584
Бамп ?
Не поверю, что для создания простого бота с диалогом нужно обмазываться aiogram и телетон не подойдет

Или про примеры с payment - это было мне?
Аноним 08/01/24 Пнд 01:06:57 2992853 88
Аноним 08/01/24 Пнд 02:24:14 2992893 89
name = ("Вася", "Маша", "Иван", "Петя")
piska = ("хуй", "пизда", "хуй", "идиот просто", "", "")

z = zip(name, piska)
print(z) # ('Вася', 'хуй') ('Маша', 'пизда') ('Иван', 'хуй') ('Петя', 'идиот просто')

for i,j in z: print( i,j )
""" Вася хуй
Маша пизда
Иван хуй
Петя идиот просто
"""
Вот этот for не выводится. Выводится, только если закомментировать строку print(
z)
Почему так?? zip одноразовый??
Аноним 08/01/24 Пнд 02:26:06 2992895 90
print( звезда z )
Аноним 08/01/24 Пнд 04:49:57 2992920 91
>>2992893
>zip одноразовый
Да, это не list, это просто Iterable
Аноним 08/01/24 Пнд 08:35:23 2992999 92
Джангисты на месте?
Есть у меня index.hml, в котором есть:
{% for card in cards %}
{% include 'card.html' %}
{% endfor %}
как правильно пробросить данные из card в card.html?
Сейчас я делаю так:
{% for card in cards %}
{% with data=card %}
<div>
{% include 'videos/includes/card.html' %}
</div>
{% endwith %}
{% endfor %}
Без дивов почему то не работает
Это правильно?
Аноним 08/01/24 Пнд 08:55:56 2993011 93
Блять кто-нибудь может обьяснить мне, что такое метод половинного деления? Как он работает? Второй день голову ломаю, и да, я тупой.
Аноним 08/01/24 Пнд 09:04:43 2993013 94
>>2993011
Бля, это школьная тема.

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

Если данные не отсортированы, то этот алгоритм нихуя не работает. Вообще не применим для неотсортированных данных.
Аноним 08/01/24 Пнд 09:10:47 2993015 95
>>2993013
Это т.н. бисекция из матана, когда ты делишь интервал пополам и приближаешься к решению уравнений. На этом основан алгоритм бинарного поиска который описал анон выше.
Это реально самое простое что есть, дальше только сложнее будет, не лезь лучше, наверное не твое.
Аноним 08/01/24 Пнд 09:11:08 2993016 96
Аноним 08/01/24 Пнд 10:39:08 2993080 97
>>2991371
Только в комбинации len(set()) и sorted(set()), когда надо посмотреть на какую-нибудь коллекцию в которой дохрена повторов
Аноним 08/01/24 Пнд 11:12:44 2993103 98
>>2992999
изучи про макросы и наследование шаблонов
Аноним 08/01/24 Пнд 11:17:07 2993107 99
>>2992999
>>2993103
то есть конкретно в этом случае тебе надо сделать макрос условно card, который принимает параметр data и делает то, что тебе нужно
{% macro macro_card(data) %}
...
{% endmacro %}
###
{% from 'macro.html' import macro_card %}

{% for card in cards %}
<div>
{{ macro_card(card) }}
</div>
{% endfor %}
Аноним 08/01/24 Пнд 11:19:38 2993112 100
Аноним 08/01/24 Пнд 14:00:07 2993251 101
>>2992850
Подскажите, как хотя бы это гуглить?
Как можно сохранить состояния между функциями?
Ну, к примеру, если я запрашиваю у пользователя некоторые параметры, у меня же каждая функция ожидает определенное сообщения. Или просто в одной функции все действия делать?

Или на aiogram уйти, пока не поздно?
Аноним 08/01/24 Пнд 15:33:17 2993335 102
Аноним 08/01/24 Пнд 17:11:17 2993480 103
>>2993335
А как?)
Есть какие-то примеры?, Как это реализовать? Я дебил просто, обезьяна, мне нужен практический образец, чтобы понять
Аноним 08/01/24 Пнд 17:16:43 2993493 104
>>2992920
решил проблему так:

w = [z]
print(
w) # ('Вася', 'хуй') ('Маша', 'пизда') ('Иван', 'хуй') ('Петя', 'идиот просто')


Может это не по-питонячи?
Аноним 08/01/24 Пнд 17:18:22 2993497 105
>>2992999
заебали своими онлайнами уже, джангами и прочим говном фласковым.
Аноним 08/01/24 Пнд 20:49:27 2993799 106
Ёбаный блять по голове, каким должно быть значение у этого поля в джанге: DateTimeField? Уже весь интернет облазил. Хоть бы кто экзэмпл где написал
Аноним 08/01/24 Пнд 20:50:19 2993800 107
>>2993497
На питоне ты что блять еще собрадся писать кроме вэба и нейронок?
Аноним 08/01/24 Пнд 21:56:40 2993890 108
>>2993800
Двачую, но нейронки это даже не программирование.
Аноним 08/01/24 Пнд 22:14:56 2993934 109
>>2993890
>не программирование
Да. При чем даже, если ты не сиськи рисуешь, а конкретно в свои слои пытаешься. Чистейшие эксперименты с хуйнёй.
Схемы в ComfyUI интересно составлять, остальное хуйня полная, даже если всё, что оно может дать у тебя получилось сделать - это всё равно никакого счастья не приносит.
Выкатился обратно в веб из этого говна.
Аноним 08/01/24 Пнд 22:19:46 2993944 110
image.png 1346Кб, 1280x720
1280x720
>>2993934
Пикча отклеилась.
Моя матрица с перебором всех возможных пар контролнетов.
Осторожно. Этот аутизм затягивает.
Аноним 08/01/24 Пнд 22:22:03 2993949 111
>>2993944
Сычев, ты почему в телеграме не отвечаешь?
Аноним 09/01/24 Втр 02:56:39 2994257 112
>>2993800
Отсоси. Делаю оффлафн АРМ работника кассового, postgres и gui разное.
Вы там все обдолбались уже по онлайнам???

Можно ещё делать программы. А не говно онлайновское. Это если уже забыла школота про то, что и такое бывает!
Аноним 09/01/24 Втр 12:07:46 2994539 113
Аноним 09/01/24 Втр 12:10:43 2994542 114
>>2994257
>postgres
Т.е. ты с базой работаешь НЕ через ОРМ? Поздравляю (нет)
>gui разное
Т.е. ты делаешь уёбищный гуй на один разок? Поздравляю (нет)
>АРМ
это на плюсах быстрее работает
>кассового
это онлайн
>программы
Джанга - это ОРМ (postgres) и красивейший и гибчайший вэб-интерфейс (gui разное), который оборачивается под твой дэсктоп кучей разных способов, в одном флаконе. Хочешь - вэб пили, хочешь - оффлафн АРМ работника кассового, postgres и gui разное.
Аноним 09/01/24 Втр 12:25:24 2994551 115
>>2994257
> пилю свои личные говноподелки
Ты буквально заявил на весь двач, что работаешь в трубу и срёшь на голову тому, кто придёт после тебя
Аноним 09/01/24 Втр 13:41:36 2994666 116
>>2994542
Ничего плохого не вижу, чтобы работать с базой на стейтментах, в компаниях редко любят орм
Аноним 09/01/24 Втр 13:45:13 2994679 117
Аноним 09/01/24 Втр 14:54:36 2994764 118
>>2994666
Устраиваешься в компанию, а тебе дают вот такие вот поделки и ебись с ними, как хочешь
Аноним 09/01/24 Втр 20:18:47 2995137 119
>>2994764
1) должна быть нормальная документация, и комментарии в коде (если есть выебонные конструкции)
2) должен быть программист-технолог (или как он там зовётся), который именно в курсе технологический процессов, куда и какие данные идут
3) не иди в такие ёбнутые компании где нет п.1 и п.2

>>2994539
сказать нечего?
>>2994542

нахуй мне орм на 1-5 работников-то?? Для повыёбываться какой крутой???

Плюсы-минусы... Я и пишу на пистоне, мне скорость не нужна, это не игрушка какая-то

Кассовое - это НЕ онлайн, идиот, ты тему не знаешь совсем.

въёб интерфейс не так важен, как гибкость формочек (смотри pysimplegui и сравни с ui от PySide и QT !!)
Аноним 09/01/24 Втр 20:20:49 2995140 120
>>2994551
ну заявил, и что страшного-то? Моей поделкой я и мелкая фирма будет пользоваться. Это не коммерч. проект за 100500млрд.
Аноним 09/01/24 Втр 20:41:51 2995160 121
>>2994257
>оффлафн АРМ работника кассового
Который будет стучаться в API через кролика, которое будет стучаться в БД. И серверную часть придётся писать на чём-то типа фастапи/вдаска/джанги.
>>2994542
>Т.е. ты с базой работаешь НЕ через ОРМ? Поздравляю (нет)
Никого не собираюсь ни в чём убеждать. Но я лично, покурив ОРМы, пришёл к выводу, что они в целом неудобны и проще разделить уровни ответственности, если работать с БД через хранимки для записи и вьюшки для чтения. Но у меня важный нюанс: я имею некоторый бэк с базами.
Аноним 09/01/24 Втр 20:51:18 2995167 122
>>2995160
Хранимки и вьюшки означают, что ты размазываешь логику по базе и по коду.
Хранимки и вьюшки это дичайшее легаси тех времен, когда предполагалось, что база будет содержать всю программу, а пользователи будут просто подключаться через консоль. И вот чтобы они не писали ебических запросов, и придумали хранимки и вьюшки.
Короче говоря, за использование вьюшек и хранимок в 2024 надо вырезать ноздри.
Аноним 09/01/24 Втр 21:38:41 2995234 123
>>2995137
>нахуй мне орм на 1-5 работников-то?? Для повыёбываться какой крутой???
Друк, это не так работает. Ты как раз выёбываешься не используя ОРМ. Сегодня у тебя 1-5 работников, завтра (на другом проекте или втором или на этом же) 100 работников, это тебя вообще не ебёт, потому что у тебя везде всегда всё стандартизировано. Даже если тебя не станет, другой челик придёт и моментально врубится в процесс при любом раскладе, а потом ты вернёшься и точно так же врубишься во всё то, что этот челик делал, потому что всё СТАНДАРТНО, а не самописно, в зависимости от настроения и религиозных взглядом
Аноним 09/01/24 Втр 21:46:28 2995256 124
>>2995137
>Кассовое - это НЕ онлайн, идиот, ты тему не знаешь совсем.
Здрасте, ёбана!
Я с гринбоксами работал, у меня по Москве около 300 точек на питерской ферме висят. Попробуй придумать хоть один оффлайн-вариант кассы, что бы чеки можно было официально не выдавать покупателю.
Ну хуй знает, может у тебя какая то древняя касса и она в оффлайне.
09/01/24 Втр 22:04:04 2995281 125
>>2995167
>Короче говоря, за использование вьюшек и хранимок в 2024 надо вырезать ноздри.
Иди нахуй. А что, если одни данные во время обновления надо конвертировать в другие данные? Например, точку для геолокации конвертировать в другой формат. Тут и пригодятся хранимые процедуры
Аноним 09/01/24 Втр 22:24:50 2995344 126
>>2995167
>Короче говоря, за использование вьюшек и хранимок в 2024 надо вырезать ноздри.
Это речи современного кодера. Просто от необразванности и незнания, что там на бэке вообще творится и как этим пользоваться.
Что поделать, крудошлёпы - такие крудошлёпы.
Аноним 09/01/24 Втр 23:42:35 2995449 127
>>2995137
>pysimplegui и сравни с ui от PySide и QT
А теперь смотри гибкость формочек на html+css+js
Да, и в дэсктоп твой любимый это добро можно завернуть.

Вот и получилось, что ты ходишь вокруг да около, вместо того, что бы сесть и на джанге это реализовать. При чем познав это однажды, будешь юзать везде и во всём этот один и тот же инструмент.
Аноним 10/01/24 Срд 01:04:21 2995509 128
аноны, у меня проблема:
есть питоновский файл, который надо сделать exe файлом. pyinstaller вроде как справляется, но я использую библиотеку speech_recognizer и он ее найти не может. уже все перепробовал, но не ебу че делать, подскажите
Аноним 10/01/24 Срд 01:05:59 2995511 129
>>2995509
еще пытался просто через командную строку запустить файл, но она тоже ругается из-за threading в коде, но зато speech_recognizer работает нормально
Аноним 10/01/24 Срд 02:07:46 2995536 130
>>2995344
Вообще доля правды в его словах есть. Эти технологии на самом деле придумали в лохматые года, именно чтобы облегчить работу пользователям с сырыми запросами. А если тебе не надо руками запросы составлять, тогда уже потребность сильно меньше.

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

Вот хранимые процедуры на продвинутой базе заведомо могут быть полезны, просто для обеспечения целостности данных, чтобы доступ ограничивать к каким-то операциям и таблицам.
Аноним 10/01/24 Срд 05:36:01 2995586 131
>>2995536
Раз уж зашла речь об орм, поясни плиз, а то я ньюфаг.

Вот орм - как я понимаю, она представляет собой надстройку над sql в виде питонового кода - т.е. я могу писать запросы через методы орм-библы. А это работает только в том случае, если базу поднимаю я сам для этого проекта? Если у меня есть какая-то внешняя база, в которую я просто хожу по хттп, орм тоже можно/нужно подключать?
Аноним 10/01/24 Срд 09:11:50 2995670 132
>>2995586
С орм ты один раз пишешь модель, которая описывает таблицу в виде питон класса и дальше всю дорогу используешь эти модели, чтобы управлять записями в базе. За счёт отказа от чистых запросов, кода станет меньше, он будет более читабельным. С другой стороны сам орм бывает трудно готовить, особенно если это алхимия или если ты решил в процессе поменять саму базу, то орм может сломаться или обосрать тебе данные в базе. Палка с двумя концами, оба в говне. Используй орм в личных и небольших проектах смело
Аноним 10/01/24 Срд 16:36:16 2996136 133
>>2995586
Любая ОРМ несколько уровней абстракции даёт.

Вообще главная суть самой технологии в том, чтобы связать классы из твоего кода с таблицами в базе. Ты ведь работаешь всегда с какими-то объектами. А ОРМ позволяет автоматизировать процессы получения-сохранения данных твоих объектов в базе.

ОРМ обычно (алхимия, джанго в том числе) обычно позволяют как полностью автоматический режим, так и тюнинг на высоком уровне, чтобы избежать лишних запросов (prefetch всякие), так и выполнение просто сырого SQL для каких-то запросов.В зависимости от того, что нужно в конкретной ситуации.

>Если у меня есть какая-то внешняя база, в которую я просто хожу по хттп, орм тоже можно/нужно подключать?
Что ты имеешь в виду под "хожу по http"? Там какое-то API уже есть? Тогда ты не прикрутишь ОРМ уже, потому что SQL от тебя спрятан.
Аноним 10/01/24 Срд 17:15:53 2996195 134
Аноним 10/01/24 Срд 20:00:17 2996605 135
Аноним 10/01/24 Срд 23:55:54 2996925 136
>>2996605
ну дрочи модельки дальше, модельер
Аноним 11/01/24 Чтв 04:36:41 2997025 137
>>2996195
Не понимаю что там за поделка, смотрится как попытка создать свою собственную ОРМ

Вообще, в сложном проекте ты или используешь стандартную ОРМ, или изобретаешь свою собственную. Но разумнее освоиться со стандартной.

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

Без ОРМ можно, конечно, иногда так проще, если у тебя своя система классов, которые надо как-то сложно дружить с ОРМ иерархией, известная проблема.
Аноним 11/01/24 Чтв 04:50:30 2997029 138
>>2995160
>Который будет
Не будет. БД оффлайн, или по сети, или по инету по статике на роутере. Я на такое количество гигабайт ещё не заработал.
Хуй в пизду, а не жданга. Дерьмовое решение. Будет стучаться postgres по айпи статике. И потом выдаваться по PySimpleGUI
Мозг от фласк и джанга совсем атрофировался??
Аноним 11/01/24 Чтв 04:53:26 2997030 139
>>2995256
ты не понял, я делаю десктоп для АРМ работника, типа 1С-склада, если так понятнее. Я не делаю онлайн ОФД сервисы.
Аноним 11/01/24 Чтв 04:56:21 2997031 140
>>2995167
Согласен, сегодняшней школоте это уже трудно даётся.
Ну хотя бы попробуйте поизучать тему подсоединения внешних таблиц тогда.
Аноним 11/01/24 Чтв 05:00:38 2997032 141
>>2995234
Ты в курсе про офлайн авторизацию?? Хоть на уровне проги, хоть на уровне postgres (БД не важна)! Как это влияет на кол-во юзеров?? Если транзакции правильно написаны.
Ваш этот ОРМ - это просто надстройка, синтаксический сахар, и ВСЁ.
Да, и ещё, стандартизация - это ты загнул, это не к орму, а вообще к культуре написания кода, и к технологу проекта.
Аноним 11/01/24 Чтв 05:08:34 2997034 142
>>2995449
Я не пишу онлайн принципиально. Идите в ад.
Аноним 11/01/24 Чтв 05:12:08 2997035 143
>>2995509
>>2995511
Выдал бы какая ошибка там. Может переустановить pyinstaller и твою либу тоже.
Аноним 11/01/24 Чтв 06:07:28 2997050 144
Как мне сделать dict в котором ключами будет weakref?
Ругается что TypeError: unhashable type: 'memmap'
Ну так я знаю что оно без хеща, меня вполне устроит если идентичность ключа будет сверяться по id объекта пока объект жив. Почему так нельзя?
Аноним 11/01/24 Чтв 06:26:07 2997053 145
>>2997050
>Weak references are hashable if the object is hashable. They will maintain their hash value even after the object was deleted. If hash() is called the first time only after the object was deleted, the call will raise TypeError.
>Weak references support tests for equality, but not ordering. If the referents are still alive, two references have the same equality relationship as their referents (regardless of the callback). If either referent has been deleted, the references are equal only if the reference objects are the same object.
Если вкратце: __eq__ там всегда определён, а __hash__ - нет. В питоне фоллбек на сравнение id происходит, только если ни того, ни другого нет.
Аноним 11/01/24 Чтв 10:12:05 2997186 146
>>2997034
Да да мы уже поняли, что ты не можешь в онлайн, хватит кукарекать
Аноним 11/01/24 Чтв 12:31:45 2997339 147
Аноним 11/01/24 Чтв 16:23:32 2997702 148
>>2997034
При чем тут онлайн? Ты можешь пилить ЛЮБЫЕ кастомные формочки, максимально гибкие под десктоп. Так же можешь взять из джанги только drf, если тебе апи нужен или только орм, что бы удобно работать с базой и при этом оставаться в своём десктопе полностью, в оффлайне
Аноним 11/01/24 Чтв 16:30:27 2997717 149
>>2995586
> у меня есть какая-то внешняя база, в которую я просто хожу по хттп
Это значит кто то, кто дал тебе апи - настроил у себя на сервере апи (drf) например. Это чужая база, не твоя, ты там и не залезешь со своей орм.
Другое дело, если у тебя есть данные сервера, порта, юзера и пароль конкретно для доступа к базе - то обращаться к базе ты можешь через орм, как и через чистые запросы
Аноним 11/01/24 Чтв 16:36:26 2997732 150
>>2996925
Вот все велосипеды блять перепробует, лишь бы не вникать в что то стоящее, потому что СЛОЖНА. Всё равно все дороги тебя приведут в джангу или фастапи. Первое проще.
Аноним 11/01/24 Чтв 19:33:59 2998048 151
>>2997025
ты сказал, что не знаешь, что это, а потом накатал дефолтное полотно: "используйте уже готовые ОРМ, не пишите свои"
это не ОРМ, пахомыч, поэтому твои аргументы - говно
Аноним 11/01/24 Чтв 19:37:31 2998054 152
>>2997732
орм - это сложно? а, точно, поэтому его советуют любым даунам-вкатусям
может, пора наконец вырасти до SQL?
Аноним 11/01/24 Чтв 19:43:12 2998068 153
Аноним 11/01/24 Чтв 20:51:44 2998161 154
>>2998054
затем и советуют чтобы дауны своими кривыми ручонками в sql не лезли и не накодили там решето
Аноним 11/01/24 Чтв 22:27:07 2998437 155
>>2998048
>>2998068
Посмотрел статью поверхностно, почитал комменты, посыл автора такой, что не осилил ОРМ, решил что-то своё придумать.

Концепт сомнительный. Если у тебя несложная база, то в принципе нормально вообще без ОРМ. На питоне по крайней мере. Когда база большая, то проблема вот эта вот система не решает, которые решаются через обычные ОРМ. Там сразу же говорится, что нет поддержки диалектов разных БД, например.

И нафиг такое нужно? Там много чего ещё нет.
Аноним 11/01/24 Чтв 22:39:07 2998450 156
Сидят какие-то тупни и обсуждают преимущества и недостатки орм против sql, другой кассу пишет и ненавидит веб, третий пытается нейронку в exeшник упаковать. Хорошо что вы долбоёбы сидите тут и не пытаетесь учиться, а занимаетесь хуй пойми чем, не дай бог вас наймут куда то хотя бы на стажировку.
Аноним 11/01/24 Чтв 23:03:04 2998468 157
>>2998450
в споре рождается истина, а у твоей мамы родился долбоеб
Аноним 11/01/24 Чтв 23:04:44 2998471 158
>>2998437
вся проблема орм в самом орм

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

мне наоборот кажется, что орм - это для неосиляторов sql, которым обязательно, чтобы все было классом и объектом

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

при поддержке всех диалектов, ты автоматически скатывается до наименьшего общего доступного функционала. сейчас не вспомню год, но отчётливо помню, как на SO видел вопрос, как сделать UPSERT в алхимии. и челы всерьез отвечали, что этого нельзя сделать, потому что в sqlite ещё не завезли. ну и предлагали селект с if not exists инсертом на стороне питона делать. race condition? не, не слышали.

вывод лично для меня ясен: выбери базу postgres, oracle, mysql - похуй. и пиши на диалекте нормальный sql. не еби себе мозги. ты будешь видеть, что исполняется, потому что ты это написал.

orm хоть и покрывает 80% запросов (крудиков), но те 20% (n+1 ам-ням орм абстракция века, течет как мать админа), с которыми ты будешь ебаться с дебагером и логгером - они того блять не стоят. особенно, когда есть такая удобная библиотека, которая тебе тайп хинты автоматически предоставляет прямо из базы.
Аноним 11/01/24 Чтв 23:36:14 2998507 159
>>2998471
>ты делать запросы нормально можешь только по таблицам, а про джоины забудь, потому что при джоине,
Как это "забудь про джоины", когда это вообще основная фишка ОРМ, что они сами тебе джоин-запросы составляют? При этом там есть опции, чтобы выбрать нужную политику подгрузки данных, или сразу всё вытянуть, или ленивое вытягивание.

Весь функционал вроде Constraint ОРМ поддерживают. Ну например ты в модели описываешь, что у тебя поле int должно иметь значение от 13 до 666. Как это вот описанные тобой либы поддержат?

ОРМ позволяют тебе на разных уровнях работать, как полный автомат, так ты можешь почти вручную собирать запрос, но абстракциями того же SA, или же вообще raw-запрос, что тоже нормально.

Единственное что, ОРМ на самом деле сложнее голого SQL, тебе надо и SQL знать в любом случае, и ещё изучать ОРМ.

Проблема квалификации и макакинга у джангистов часто наблюдается, просто из-за особенностей джанго и джанго-орм. Хотя ОРМ джанго тоже весьма гибкая и с большими возможностями, просто мало поводов в неё лезть.
Аноним 11/01/24 Чтв 23:46:19 2998523 160
>>2998450
Двачую. Из всех языковых тредов питон-тред самый дегенеративный
Аноним 12/01/24 Птн 00:30:54 2998588 161
>>2998507
1. А чем тебе нормальный мужской джоин не угодил? Зачем его наряжать в платье? Ты гей?
2. Чекайте, что ормщики придумали. CHECK CONSTRAINT называется.
3. Зачем, зная SQL, учить его кастрированную версию? Я что, долбоеб?
4. Вот именно, что туда нужно ЛЕЗТЬ. Не править свои ошибки, потому что ты долбоеб и накосячил. А потому что ИНСТРУМЕНТ за тебя решил, что ты долбоеб, и не умеешь нихуя.
Аноним 12/01/24 Птн 00:31:37 2998589 162
>>2998523
Да, ну блять покажи нормальный тред. Джависты идут свою маму ебать.
Аноним 12/01/24 Птн 00:34:20 2998593 163
>>2998588
Зачем мне писать руками скл-запросы, ещё и париться с названиями полей в селекте / инсерте / апдейте, когда орм это делает за меня?
Аноним 12/01/24 Птн 12:07:07 2998941 164
Аноним 12/01/24 Птн 21:40:07 2999780 165
>>2998588
Двачую специалиста
Аноним 12/01/24 Птн 21:52:56 2999787 166
>>2991469
> Код ошибки
> "There is no current event loop in thread 'WorkerThread2'."
> Сам код (постарался выделить наглядно)
> https://pastebin.com/R3PmfV0c
ошибка говорит, что у тебя нет ивентлупа.
используй синхронную версию telethon:
from telethon.sync import TelegramClient

+ почитай доку как это работает: https://docs.telethon.dev/en/stable/concepts/asyncio.html?highlight=telethon.sync#what-does-telethon-sync-do

совет: перепиши сразу на telethon и забудь про телебота, ну и про asyncio хотя бы офф. доку прочитай
Аноним 13/01/24 Суб 06:45:44 3000117 167
>>2997186
могу. твою мамку онлайн, почему же..
>>2997702
Ебал дрф онлайновское.
Кто не может в десктопе - тот петух нахуй.
Аноним 13/01/24 Суб 06:47:32 3000118 168
>>2991469
ну ты онлайновый петух - поэтому питон тебя и имеет.
Аноним 13/01/24 Суб 07:22:03 3000133 169
>>3000117
>не может
Хули там мочь то в твоё кутэ. Это просто нахуй не упало, пилить отдельно под десктоп, отдельно под остальное. Типа донт репит ёу селф, если угодно. Или тут даже больше подходит про джаву: один раз написюнькал, запускай везде.
Аноним 13/01/24 Суб 07:25:48 3000137 170
>>2991469
Если вкатываешься в ботов - вкатывайся сразу в асинхронные фрэймворки, типа aiogram.

Того шизика, который "оффлайн-онлайн" не слушай, я так понял, это местный дурачок
Аноним 13/01/24 Суб 10:46:38 3000233 171
>>3000137
ты требования читат? надо обойти ограничение по размеру загружаемых файлов bot api. aiogram не сможет априори, т.к. только под http bot api и заточен.
Аноним 13/01/24 Суб 11:32:21 3000268 172
image 41Кб, 650x367
650x367
>>3000233
>под http bot api и заточен
у вас чё тут, праздник палаты?
Аноним 13/01/24 Суб 12:28:01 3000333 173
>>3000133
типа "писю бог создал - теперь тыкай ей в каждую дырку (и в мусорном баке между стенками)"???
Ебааать ты даун. Под каждую задачу - свой инструмент. Нехуй ваш онсрайн вставлять там, где он не нужен.
Аноним 13/01/24 Суб 18:03:14 3000793 174
>>3000233
Блять что? Откуда вы такие берётесь дауны ебучие? Сидит как попугай ебальничек с умным видом открывает, только кроме откровенной афазии высрать не может
Аноним 13/01/24 Суб 18:26:01 3000848 175
>>2981203 (OP)
не советую юзать питон, даже касаться.
В питоне плохо всё, от экосферы, инструментов, дистрибутивов, безопасности, обновлений до синтаксиса.
Просто лишнее корявое нечто, каким то недоразумением стало популярным, впрочем это совпало с повсеместной деградацией айти в целом.
Аноним 13/01/24 Суб 18:28:09 3000857 176
>>3000848
Странно, ты вроде java описал, а не python.
Аноним 13/01/24 Суб 18:32:41 3000872 177
13/01/24 Суб 19:25:20 3000976 178
>>3000793
> Афа́зия или афази́я — это локальное отсутствие или расстройство уже сформировавшейся речи с нарушением восприятия речи при сохранении слуха. Возникает при органических поражениях речевых отделов коры головного мозга в результате перенесённых травм, опухолей, инсультов, воспалительных процессов и при некоторых психических заболеваниях. Афазия затрагивает различные формы речевой деятельности.
что сказать то хотел?
Аноним 13/01/24 Суб 20:15:14 3001082 179
>>3000848
МЯУ. Чем больше опыта набираюсь в программировании тем сильнее меня воротит от пайтона. Максимально уебищное говно
Аноним 13/01/24 Суб 21:45:41 3001248 180
>>2998471
>вывод лично для меня ясен: выбери базу postgres, oracle, mysql - похуй. и пиши на диалекте нормальный sql.
Добрая выснова, але справа ў тым, што калі бізнэс-лёгіка тваёй прылады выкарыстоўвае аб'екты, ты змушаны стварыць свой ORM, кепскі і абмежаваны; альбо ўжываць добры існуючы, адразу з сістэмай кантролю версій.
Аноним 13/01/24 Суб 22:34:01 3001283 181
>>3001248
а цяпер паглядзи на гэтую библиятэку: https://github.com/racinette/querky
гэта не ОРМ, бо ОРМ гауно сабачае

яшчэ вышэй на расейскай можна прачытаць пра прыладу на habr

ОРМ не патрэбны, кали маеш нармальны интэрфэйс да фармавання запытау и атрымання адказау

а кали ня маеш, то згаджуся, што з ОРМам код будзе выглядаць лепей, чым без
Аноним 13/01/24 Суб 22:44:38 3001295 182
>>2998593
насчёт названия полей проблема очень просто решаема теми же автогенераторами моделек из базы. например, sqlacodegen. у тебя полный автокомплит и автоматические аннотации типов. а этого нет ни в одной ОРМ.
Аноним 13/01/24 Суб 22:45:32 3001297 183
Аноним 13/01/24 Суб 23:11:14 3001329 184
>>3001295
>sqlacodegen
Но это надстройка над алхимией.
>у тебя полный автокомплит и автоматические аннотации типов
Мне проще декларативный маппинг копи-пастом сделать, скопировав из дбивера схему бд.
Аноним 13/01/24 Суб 23:32:03 3001378 185
>>2995536
>чтобы доступ ограничивать к каким-то операциям и таблицам
Кстати, да. ИБ. Не столько И, сколько Б: можно закрыть вообще доступ к реализации хранения данных.
>>2998593
>париться с названиями полей
Зачем?
>>3000848 >>3001082
Ваше мнение очень важно для нас. Так приятно смотреть на полыхающие жопы с доставкой в тред.
Аноним 13/01/24 Суб 23:40:28 3001402 186
Аноним 13/01/24 Суб 23:54:01 3001441 187
>>3001378
>Зачем?
Затем, что если завтра мне надо будет добавить новую колонку или добавить псевдоним, мне надо будет во всех скриптах, где фигурирует эта колонка, делать это руками. Орм делает это за меня.

>>3001402
Адепт лапшекода порвался.
Аноним 14/01/24 Вск 00:04:07 3001465 188
>>3001283
пішыце на бульбе з цыбуляй, нахуй вам пітон
Аноним 14/01/24 Вск 01:00:55 3001610 189
>>3001441
я тебе либу скинул, которая за тебя весь код перегенерирует под новую схему, о чем ты?
Аноним 14/01/24 Вск 01:02:50 3001620 190
>>3001465
потому что твоя мама попросила принести питона, чтоб в очко ей запихать
уже бульба с цебулей в пизде у нее лежат
Аноним 14/01/24 Вск 01:30:59 3001667 191
>>3000857
Не, это хоть и не питон, но если бы это было про джаву, то там было бы еще: "писать дохуища сахара и говна, а оно потом еще и не работает с полоборота"
Аноним 14/01/24 Вск 01:41:20 3001687 192
Посоны. Филигранно пишу парсеры любой сложности.
С этим можно где то работу искать или мало?
(Понятно, что всю эту сопутствующую хуйню гит, хуит, свою часть скуэля знаю)
Аноним 14/01/24 Вск 10:18:59 3001934 193
>>3001687
На Kwork часто требуются ребята умеющие писать парсеры. Был кейс, когда требовалось вытаскивать результаты баскетбольных матчей на американском сайте, где используется примитивная таблица html, нужно вытащить все игры из разных лиг, женских, мужских, студенческих. Заказчик занимался ставками, данные потом через калькулятор прогоняли.
Аноним 14/01/24 Вск 10:37:43 3001944 194
>>3001441
>Орм делает это за меня.
Правильно написанная хранимка - тоже.
Аноним 14/01/24 Вск 11:08:33 3001962 195
>>3001944

как будто на галере спрашивать будут а чего Владик хочет писать а какую кашку он любит а попочку ему не подтереть
Аноним 14/01/24 Вск 11:10:37 3001964 196
>>3001610
Зачем отдельная надстройка над либой для этого, когда хватает функционала либы?
Аноним 14/01/24 Вск 11:12:53 3001969 197
>>3001944
Т.е. в случае внесения изменений надо лезть сначала в код проекта, а потом ещё и в базу. Спасибо, в 2 раза больше работы делать не хочу.
Аноним 14/01/24 Вск 12:06:13 3002022 198
>>3001969
>сначала в код проекта, а потом ещё и в базу
Нет. Сначала в код ликвибейза, а потом - возможно, в код проекта.
Аноним 14/01/24 Вск 12:15:54 3002040 199
>>3002022
>ликвибейза
Тебе в вашем ява-треде скучно, решил тут посрать?
Аноним 14/01/24 Вск 12:27:31 3002057 200
17052163558790.mp4 3127Кб, 576x1024, 00:01:18
576x1024
5 лет опыта. Думаю дополнительно освоить rust или го.

Мнения? Что более перспективно?
Аноним 14/01/24 Вск 12:33:06 3002066 201
>>3002040
А чел походу вкатун и никогда не работал - после уязвимости в джавовой либе в 2021 (https://nvd.nist.gov/vuln/detail/CVE-2021-44228) весь джавовый туллинг забанен для использования в нормальных конторах.
Аноним 14/01/24 Вск 13:41:47 3002153 202
>>3001964
хз, чел
ты гвозди отвёрткой убиваешь тоже?
Аноним 14/01/24 Вск 13:44:54 3002158 203
>>3002153
Я закручиваю гайки разводным ключом, а не таскаю под каждый диаметр отдельный ключ.
Аноним 14/01/24 Вск 14:36:06 3002198 204
>>3001934
>примитивная таблица
Блин, это изично вообще. В любую структуру вытащу даже динамичный одностраничник-приложение.
>Kwork
Спасибо
Аноним 14/01/24 Вск 14:59:56 3002213 205
>>3002057
А ты работал эти пять лет? Что писал?
Аноним 14/01/24 Вск 15:02:10 3002216 206
>>3002158
да нет, ты швейцарским ножиком пользуешься как раз, мультитулом
Аноним 14/01/24 Вск 15:03:36 3002218 207
>>3002066
ага, а после heartbleed никто не пользуется OpenSSL и не пишет на С
Аноним 14/01/24 Вск 15:04:24 3002221 208
>>3002066
ага, а после heartbleed никто не пользуется OpenSSL и не пишет на С
Аноним 14/01/24 Вск 19:03:38 3002526 209
image.png 342Кб, 494x700
494x700
>>3002213
>А ты работал эти пять лет?
Я и сейчас работаю.

> Что писал?
NDA запрещает говорить.
Бэкенды.
Аноним 15/01/24 Пнд 01:33:31 3003086 210
Асинхронщики на месте? Исправьте ошибку сохраняя асинхронность вычислений.
https://www.online-python.com/87Mvbr0Zh1

Дано: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Нужно: [100, 200, 300, 400, 500, 600, 700, 800, 900]

Ошибка TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'. Причина понятна, асинхронная функция пыталась работать раньше чем закончила работать предыдущая функция, готовящая данные.
Аноним 15/01/24 Пнд 02:03:42 3003094 211
>>3003086
Тебе надо добавлать примитивы синхронизации
Например семафор
https://docs.python.org/3/library/asyncio-sync.html#asyncio.Semaphore

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

метод acquire() запрашивает счётчик, уменьшает его значение на единицу и блокирует, если счётчик 0
метод release() увеличивает счётчик

там можно через with с этим работать, но это для других сценариев, не твоего

Идея в том, чтобы создать семафор с исходным значением 0 (по-умолчанию 1), передать в оба сервиса

В первом сервисе, как ты посчитал элемент, ты увеличиваешь счётчик через release(), во втором сервисе ты перед каждым вычислением делаешь await sem.acquire(), то есть ждёшь, когда ресурс станет доступным
Аноним 15/01/24 Пнд 02:05:34 3003095 212
>>3002040
> Тулза написана на неправославном языке, поэтому я против!
>>3002066
> ТАДА, ТРИ ГОДА НАЗАД БЫЛА ДЫРКА! Поэтому навсегда запрещено использовать абсолютно любые смежные проекты даже в контролируемой среде.
Чувак, у меня оно пускается в инит-контенерах независимо ото всего вокруг, меня даже уязвимые версии не зацепили бы, а с учётом того, что оно давно пофикшено - вообще не важно.
Собственно точно так же если всплывёт какая-нибудь уязвимость в питоне 3.9, например - я не прекращу писать на Питоне


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

>>3002057 >>3002526
Из этих двух я скорее адепт раста. Но не уверен, что есть смысл уходить на бэке от питона. Когда говорят "питон медленный" нужно внимательно выяснять, в чём именно и, например, в нём медленная математика, но она в проде никому почти не нужна, а когда время на бэке раскладывают выясняется, что I/O-bound >> CPU-bound то есть на фоне задержек получения данных от внешних API или БД всякие "медленные" или "быстрые" генерации вообще на уровне погрешности, зато на питоне пишется быстрее, чем на любом более высокоуровневом ЯП.
Если же хочешь сменить предметную область... То там много нюансов. Например, там, где я работал - везде - были важны результаты и какой ЯП ты используешь не так важно потому что проектов больше, чем людей и как правило оказывается, что нет такого, как у гигантов, когда десяток кодеров пилит разные фичи в одном проекте, а есть 1-2 проекта на разраба и каждый использует то, на чём покажет лучший результат, а передача происходит слишком редко, чтобы особо париться.
Аноним 15/01/24 Пнд 02:10:13 3003099 213
>>3003095
>чем на любом более высокоуровневом ЯП
низкоуровневом!
fix, сори.
Аноним 15/01/24 Пнд 04:43:36 3003117 214
>>3003094
Спасибо, но ведь всё равно сказанного тобой недостаточно.

Семафор позволит знать сколько "спелых" объектов в списке, но не скажет какие именно. Ошибка возникает именно когда stage2() берётся за "неспелый" объект, т.е. прошедший stage1(). И семафор этого непредотвратит.

Мне решение видиться в присвоении неспелым объектам значения типа "futures". И надо чтобы stage() наткнувшись на это ждала не блокируя.
Аноним 15/01/24 Пнд 05:04:13 3003119 215
>>3003117
> "неспелый" объект, т.е. НЕПРОШЕДШИЙ stage1()
Аноним 15/01/24 Пнд 12:24:52 3003326 216
>>2981203 (OP)
Эй опище, беги в \d просить чтобы в твою шапку тег навигации добавили, который ты проебал. Люди до сих пор в старый тред пишут.
Аноним 15/01/24 Пнд 13:25:09 3003436 217
>>3003117
>Семафор позволит знать сколько "спелых" объектов в списке, но не скажет какие именно
В твоём коде цикл, где объекты обрабатываются последовательно. Соответственно достаточно знать сколько объектов в списке, чтобы знать, что обработано, а что нет.

Если хаотичный порядок возможен, то в твоей задаче надо бы чего-нибудь вроде
rand_data = data[:]
random.shuffle(rand_data)
for obj in rand_data:
...

>futures
Если каждый объект независим, то вариант. Но в целом есть стандартная рекомендация не использовать низкоуровневые объекты вроде futures, они для написания библиотек, а не конечного кода. В конечном коде лучше тогда asyncio.Event

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

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

Это вообще наиболее функциональный паттерн, очереди, очень много для чего можно использовать. Фактически Queue это такой универсальный механизм синхронизации, любой другой можно реализовать через очереди
Аноним 15/01/24 Пнд 18:20:09 3003809 218
>>3003436
в моём коде await asyncio.sleep(random_time()), что как бы намекает объект #1 может обработаться после объектов #2,3. Счётчик в семафоре скажет "обработано 2", по твоему предположению это #1,2 но практически из-за разного времени на обработку окажуться другие.

На данный момент я приспособил семафор лишь для ограничения конкурентности в stage1() https://www.online-python.com/53DjJbNiBL
эта реализация подходит только для обработки неизменного списка. Теперь хочу для изменяемого списка, т.е. функции stage1() и stage2() будут в ходе работы добавлять заданий друг другу.
Аноним 15/01/24 Пнд 19:02:34 3003850 219
>>3003436
>создаёшь очередь asyncio.Qeuee, шаришь её между двумя сервисами
Иммешь в виду шаблон проектирования producer-consumer? Вот его реализация: https://www.online-python.com/XbGpJzNFU2

Проблема в том, что, когда очередь пустая, consumer() застревает на obj = await data.get(). Программа подвисает и никогда не заканчивается.
Аноним 15/01/24 Пнд 20:11:07 3003949 220
>>3003809
>в моём коде await asyncio.sleep(random_time()), что как бы намекает объект #1 может обработаться после объектов #2,3.
Не может, в каждом сервисе (stage1, stage2) выполнение строго последовательное. Иначе тебе надо запускать для каждого элемента свою задачу. random даёт то, что stage2 может попросить элемент раньше, чем он был посчитан stage1. Но порядок заведомо определён.

>>3003850
>Имеешь в виду шаблон проектирования producer-consumer?
Да, в целом это. Паттерн намного шире, сам по себе подход позволяет сделать логику кода значительно стройней.

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

>>3003809
>Теперь хочу для изменяемого списка, т.е. функции stage1() и stage2() будут в ходе работы добавлять заданий друг другу
В таком варианте сам бог велел использовать очереди

Там бывают более извращённые варианты закрытия задач, в случае Queue можешь глянуть на join()/task_done(), но это имхо для других сценариев, когда мастер-процесс есть, который массово кормит консумеров и контролирует, кто сколько сделал, и он же отвечает за то, чтобы отменять консумеров. По мне значение-терминатор самое универсальное решение
Аноним 15/01/24 Пнд 20:25:44 3003958 221
>>3003949
>в случае Queue можешь глянуть на join()/task_done(), но это имхо для других сценариев, когда мастер-процесс есть, который массово кормит консумеров и контролирует, кто сколько сделал, и он же отвечает за то, чтобы отменять консумеров
В принципе именно эта схема приведена в документации
https://docs.python.org/3/library/asyncio-queue.html
но вариант со значениями-терминаторами мне обычно нравится больше.
В примере просто цель такая, чтобы подождать, когда всё выполнится, и только после этого делать что-то дальше.
Аноним 15/01/24 Пнд 23:06:21 3004196 222
image.png 23Кб, 1434x340
1434x340
Сап питонач! Сам я не программист и знаком с питоном очень поверхностно, но появилась необходимость написать функции, при вызове которых понедельник сменялся на вторник, апрель на май и т.д.
Собственно хватило меня на следующий говнокод или его почти полное отсутствие, и не могу понять как подступиться к самой функции, как написать вот эту самую "сменяемость"? Помогите пожалуйста
Код: https://www.online-python.com/CD1F07E8Qb
Аноним 15/01/24 Пнд 23:19:10 3004227 223
Аноним 16/01/24 Втр 02:42:09 3004409 224
Аноним 16/01/24 Втр 22:46:59 3005669 225
>>3004196
это явно не твоё, может лучше устроится на завод?
Аноним 16/01/24 Втр 23:04:32 3005697 226
>>3005669
Может лучше пойдёшь нахуй?

>>3004227
Спасибо анон
Аноним 18/01/24 Чтв 13:29:18 3008223 227
Недавно открыл для себя существование людей которые хейтят f-строки и вместо них .format() используют. Даже линтер на это дело настраивают. Собственно, какие есть объективные причины тряски не любить f-строки?
Аноним 18/01/24 Чтв 15:25:33 3008420 228
>>3008223
options = {"opt1": "foo", "opt2": 2, "opt3": repr(None)}
"{opt1} {opt2} {opt3}".format(options)
Аноним 18/01/24 Чтв 15:26:51 3008423 229
>>3008420
options разыменовывается, редактор разметку съел.
>> options
Аноним 18/01/24 Чтв 15:27:26 3008424 230
Аноним 18/01/24 Чтв 19:17:20 3008688 231
>>3008223
>Недавно открыл для себя существование людей которые хейтят f-строки и вместо них .format() используют
Много хейта было, когда из вводили, потом все привыкли

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

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

В целом думаю, борьба против f-строк сами по себе необоснована, надо бороться с какими-то неправильными паттернами их примерения, а если надо будет вынести строки за код, то рефакторинг в format очень прост.
Аноним 18/01/24 Чтв 19:47:59 3008728 232
>>3004409
>Ну-ка глянь и прокомменти. Тут использована Queue. Можно как-то улучшить?
Смотрится рабочим для данного варианта, но и опасным при этом. Вот это вот прерывание цикла:
> while not queue.empty():

Не в этом варианте, но в аналогичный, более сложных, можно словить race condition

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

Мой совет, используй всегда синхронный вызов
queue.put_nowait()
он работает быстрее, нет рисков описанных. Единственное, он не пригоден, когда у тебя лимитированная очередь, может заполняться и тебе надо ждать, пока место освободится, но так в реальности не пишут.

Второе, представить, что ты используешь эту логику для более сложных случаев. Эту логику в том смысле, что у тебя stage-воркеры заполняют ту очередь, из которой читают потом другие. У тебя stage1 может порождать, скажем, не один объект, а десять. Что вполне себе нормальное поведение. Хотя вот тут как раз могут понадобиться очереди с ограничением.

В этом случае, скажем на первом этапе, у тебя 10 worker'ов, и всего 3 значения исходных в очереди. В результате пока эти три значению будут обрабатываться, очередь опустеет и все незадействованные воркеры будут прибиты. А потом очередь заполнится 30 объектами, на их обработку останется только 3 воркера. Тут put_nowait уже не спасёт

В общем такая стратегия прибития воркеров опасна. Надёжнее их прибивать все вместе после того, как работа будет сделана.
Аноним 18/01/24 Чтв 19:54:34 3008737 233
>>3008728
дополню ещё
очень опасное и сложное поведение, когда у тебя работа одного воркера зависит от результата его же работы

например, когда у тебя воркер читает и записывает в одну очередь, при этом внутри есть блокировки. Можно словить dead lock очень легко

В идеале надо как-то убирать обратные связи, это страхует от dead lock'ов. Тут надо думать про каждый конкретный случай
Аноним 19/01/24 Птн 03:07:16 3009332 234
>>3005697
не, ну если даже с такой хуйнёй не справляешься - может твой папка бы лучше с занавеской справился бы?
Ну не твоё это, брось нафик.
Аноним 19/01/24 Птн 03:11:22 3009335 235
>>3008223
f-строки более нагляднее, для меня имхо. Пусть и приходится применять фигуристые скобки, но видны переменные, и меньше писать кода, с точками и функцией формат.
п.с. Везде их пользую. понимаю и другой формат, но его ненавижу, не знаю почему.
Аноним 20/01/24 Суб 08:19:29 3010800 236
Аноним 20/01/24 Суб 17:51:53 3011168 237
>>3010800
я всё еще рассматриваю ваши предложения.
Аноним 21/01/24 Вск 06:51:19 3012146 238
Аноны, а как можно эту портянку упростить, в части селекта:
(SELECT cp.placeid FROM cpoints cp WHERE cp.id = h.pointid)
?
постгрес БД.


SELECT t.id, t.hw, t.dt_start, t.dt_stop, t.descr,
h.uid, h.model, h.pointid, h.kassid, h.kind,
(SELECT cp.clientid AS _clientid FROM cpoints cp WHERE cp.id = h.pointid),
(SELECT cp.name _cpointname FROM cpoints cp WHERE cp.id = h.pointid),
(SELECT cp.placeid FROM cpoints cp WHERE cp.id = h.pointid),

(SELECT plc.uid FROM cplace plc WHERE plc.uid = (SELECT cp.placeid FROM cpoints cp WHERE cp.id = h.pointid)),
(SELECT plc.name FROM cplace plc WHERE plc.uid = (SELECT cp.placeid FROM cpoints cp WHERE cp.id = h.pointid)),
(SELECT plc.adr FROM cplace plc WHERE plc.uid = (SELECT cp.placeid FROM cpoints cp WHERE cp.id = h.pointid)),
(SELECT plc.comment FROM cplace plc WHERE plc.uid = (SELECT cp.placeid FROM cpoints cp WHERE cp.id = h.pointid))

FROM spr_to t, hardwares h WHERE t.hw = h.uid;
Аноним 21/01/24 Вск 06:57:40 3012149 239
Аноны, как упростить это?
В части (SELECT plc.adr FROM cplace plc WHERE plc.uid = (SELECT cp.placeid FROM cpoints cp WHERE cp.id = h.pointid)

SELECT t.id, t.hw, t.dt_start, t.dt_stop, t.descr,
h.uid, h.model, h.pointid, h.kassid, h.kind,
(SELECT cp.clientid AS _clientid FROM cpoints cp WHERE cp.id = h.pointid),
(SELECT cp.name _cpointname FROM cpoints cp WHERE cp.id = h.pointid),
(SELECT cp.placeid FROM cpoints cp WHERE cp.id = h.pointid),

(SELECT plc.uid FROM cplace plc WHERE plc.uid = (SELECT cp.placeid FROM cpoints cp WHERE cp.id = h.pointid)),
(SELECT plc.name FROM cplace plc WHERE plc.uid = (SELECT cp.placeid FROM cpoints cp WHERE cp.id = h.pointid)),
(SELECT plc.adr FROM cplace plc WHERE plc.uid = (SELECT cp.placeid FROM cpoints cp WHERE cp.id = h.pointid)),
(SELECT plc.comment FROM cplace plc WHERE plc.uid = (SELECT cp.placeid FROM cpoints cp WHERE cp.id = h.pointid))

FROM spr_to t, hardwares h WHERE t.hw = h.uid;

Аноним 21/01/24 Вск 11:11:53 3012237 240
>>3009335
Пиздец как я обожаю f-строки!

1. Вставка значения переменной в строку:
name = "Alice"
age = 25
print(f"My name is {name} and I'm {age} years old.")
# Вывод: My name is Alice and I'm 25 years old.


2. Вычисление выражений внутри строки:
a = 4
b = 6
print(f"The sum of {a} and {b} is {a + b}.")
# Вывод: The sum of 4 and 6 is 10.


3. Форматирование чисел:
pi = 3.14159
print(f"Value of pi: {pi:.2f}")
# Вывод: Value of pi: 3.14


4. Выполнение вызовов методов объектов внутри строки:
message = "Hello, World!"
print(f"{message.upper()} is {len(message)} characters long.")
# Вывод: HELLO, WORLD! is 13 characters long.


5. Использование условных выражений:
is_raining = True
print(f"It's {'raining' if is_raining else 'not raining'} today.")
# Вывод: It's raining today.


6. Использование словарей для вставки значений:
person = {"name": "Bob", "age": 30}
print(f"{person['name']} is {person['age']} years old.")
# Вывод: Bob is 30 years old.


7. Экранирование фигурных скобок:
name = "John"
print(f"{{ {name} }}")
# Вывод: { John }
Аноним 21/01/24 Вск 13:06:33 3012304 241
>>3012237
5 и 6 удобнее через .format
Аноним 21/01/24 Вск 15:34:30 3012479 242
1580552831469.png 2Кб, 208x120
208x120
>>3012237
Самый лучший кейс не написал
Аноним 21/01/24 Вск 15:48:25 3012492 243
>>3012479
Да действительно, спасибо
Аноним 22/01/24 Пнд 17:46:42 3014108 244
Аноны, что почитать, чтобы лучше вкурить управление памятью inb4 нахуй те питон, трюки всякие вкурить?
Джеймс Пауэлл неплохо рассказывает, хочу есчо.
Аноним 23/01/24 Втр 01:53:15 3014898 245
>>3014108
Что ты понимаешь под трюками?
Аноним 23/01/24 Втр 02:32:02 3014907 246
Аноним 23/01/24 Втр 08:44:07 3014979 247
Как вы сдаёте работы на кворке?
Просто .py скриптами с requirements, как на гитхабе или заворачиваете во что то экзешное\эсашное для заказчика?
Аноним 23/01/24 Втр 11:09:50 3015157 248
Посаны, где посмотреть переменные пердона? В смысле, вот эти вот все %venv_dir%, %python_path% и прочее говно, которое используется непосредственно пердоном? Хочу запереть его внутри директории чтобы он не срал больше никуда.

Например сейчас при создании venv я вижу что создается директория pypa не там где я бы хотел ее видеть. И при установке pip (через get-pip.py) директория pip тоже создалась не там куда я хотел бы ее поместить. Или опять же при установке pip я вижу что инсталлятор насрал мне в /appdata/local/temp, чего я хотел бы избежать и заставить срать его в строго определенную директорию.

Нувыпонели о чем я, да?
Аноним 23/01/24 Втр 11:13:50 3015167 249
>>3014108
Не рассказывайте этому про битовые операции, иначе он головой ебанётся.
Аноним 23/01/24 Втр 11:24:45 3015187 250
Привет, вкат в python с нуля норм идея? Будет ли возможность найти вакансию, или лучше искать в шарпах, жабе, петуне?
Мимо неудачный вкатун в android kotlin, вакансий 0
Аноним 23/01/24 Втр 11:34:55 3015196 251
>>3015187
Если есть хоть какой-то опыт, то лучше Java/C#.
Если нет вообще опыта, то вкатывайся куда хочешь, один хуй надо будет конкурировать с такими же тысячами, как ты.
Аноним 23/01/24 Втр 13:33:44 3015395 252
>>3015187
хуёвая идея. вкатись в говнокод на Си, бейсик, ассемблер Z80
Аноним 23/01/24 Втр 13:40:08 3015417 253
>>3014898
Например у вас объекты дохуя жрут, one simple trick и уже терпимо. Продолжение в источнике...
У меня массивы чисел с очевидным нампаем, но до него числа надо доготовить.

>>3014907
Читал гайды про работу питона с памятью, но они довольно поврехностны. Действительно остаётся RTFM.

>>3015167
Плавали, знаем, с интересом читаем про приколы типа обратного вычисления квадратного корня и другой дрочь. В работе не пригождалось.
Аноним 23/01/24 Втр 20:27:36 3016028 254
Привет, питонач.
Подскажите, тут есть помидоры? Или хотя бы прошаренные миддл+?
Я бы был рад, если бы настоящий томат вчитал несколько моих поделок, чтобы обсудить с ним логику и понять, как делать правильно и избавиться от говнокода. Причем, для меня важнее не отрефакторить код, для меня - важно понять, как делать правильно в будущем, так что будет немало вопросов типа "зачем это?" и "почему именно так?"
Готов заплатить, если надо (не сотни нефти, правда).
В общем, кидайте фейкомыльце, я напишу, авось договоримся до чего.
Аноним 23/01/24 Втр 20:56:21 3016054 255
Ну что же вы, пердонисты? >>3015157
У меня embedded python если что, поэтому и хочу заизолировать его в пределах одной директории, да еще и на флешке таскать, для запуска используя batch с назначением переменных в пределах сессии.
Аноним 23/01/24 Втр 22:46:04 3016203 256
>>3016028
Ссылку оставь и всё на репу, кто-нибдуь глянет, если не лень будет.
Никаким прошаренным твои 500 рублей не нужны.
Аноним 24/01/24 Срд 10:22:01 3016680 257
>>3016203
На один реп я выкладывал, но никто не вчитал, там много возни для мимоходом вброшенного поста и он очень учебный.
Второй - не в опенсорсе, на меня по работе повесили не совсем профильную задачу. NDA не строгий: релизы открываются, но релиз отстаёт от репы уже на пару месяцев, а кидать пока ещё закрытый код в паблик - это всё-таки перебор.
> прошаренным твои 500 рублей не нужны.
Ну, такое... Я, конечно, надеюсь, что найдётся тот, кто оценит моё искреннее желание стать лучше и поможет.
Но если нет, то я полагал, что речь о сумме более сопоставимой с ценой, например, бутылки бушмилса, или что такой человек посчитает адекватной наградой.
Аноним 24/01/24 Срд 13:25:26 3016936 258
image.png 151Кб, 600x472
600x472
Анонсы, как раздуплить джойны целиком и полностью? Я не могу понять и всё тут. Смотрю в книгу - вижу фигу. Я понимаю, что это выбор из двух и более таблиц, взять предмет, у которого в таблице "хуи" полк "длина хуя" равно "5см", и при этом в таблице "залупы" поле "цвет" равно "багровый".
Но для чего там аж 7 разных вариаций, ума не приложу.
Аноним 24/01/24 Срд 14:38:56 3017013 259
image.png 24Кб, 621x202
621x202
И еще мне не понятно, как определить, в какой из таблиц поле package_name должно быть fk_package_name и почему?
Аноним 24/01/24 Срд 18:27:54 3017413 260
image.png 493Кб, 1280x564
1280x564
При таком запросе данные в Cards не добавляются, почему?
Надо, что бы при добавлении карты карта добавлялась, а автор, если такой уже есть, пропускался. Как сделать?
Аноним 24/01/24 Срд 18:52:42 3017450 261
>>3017413
Отбой. Нашел косяк. Это я в коде описАлся просто.
Аноним 24/01/24 Срд 19:00:18 3017460 262
Аноним 24/01/24 Срд 20:20:28 3017610 263
За Джангу кто-нибудь шарит? Делаю сайт про походы. Заказчик хочет, чтобы была отдельная страница отчёта для каждого прошедшего похода, как сходили, фоточки, всё такое. В чем проблема. Заказчик хочет, чтобы у него была возможность через админку добавлять фото в статью в ЛЮБОМ месте текста. Памагити пожалуйста.
Аноним 24/01/24 Срд 21:40:55 3017758 264
>>3017610
посмотри на wagtail cms. у них хорошая админка
Аноним 24/01/24 Срд 21:53:36 3017795 265
>>3017460
@спрашиваю про джанго ОРМ (чисто питонячья хуйня)
>джанга говно, чистый скул рулит!
@спрашиваю про чистый скул
>Тред про язык программирования Питон.
И что блять, теперь хэлло ворлд мне писать на питоне?
Аноним 24/01/24 Срд 22:42:18 3017918 266
Аноним 25/01/24 Чтв 05:55:29 3018169 267
>>3016054
Да нахуй ты не нужен со своими тупорылыми вопросами. Открывай документацию на python.org, и вычитывай свою хуету.
> У меня embedded python
Соболезную.
Аноним 25/01/24 Чтв 06:00:05 3018171 268
>>3017795
> спрашиваю про джанго ОРМ
В твоих постах ни слова про этот фреймворк.
> спрашиваю про чистый скул
Какой скул? Ты ебанашка?
> И что блять, теперь хэлло ворлд мне писать на питоне?
Напиши программу, которая заставит тебя съебать отсюда.
Аноним 25/01/24 Чтв 10:30:07 3018311 269
>>3018171
>джанго орм - это не про скуэл
Ты совсем там долбоёб что ли?
Аноним 25/01/24 Чтв 19:51:28 3019268 270
Как ебучий раббит то поставить?
Я вообще нихуя не понимаю, ну прикрутил я к апи типа чтобы запрос шел в сессию рабита, ну увидел этот запрос на дашборде когда его дернул, а как проверить что он на самом деле не параллельно прошел? И в раббит и в бек. Потому что к примеру я когда запрос дергал в постмане обращался по адресу бека, а не раббита. Как это работает? я гуглил, но заебался уже, вдруг тут есть добрые аноны которые подскажут
Аноним 25/01/24 Чтв 20:44:56 3019455 271
>>3019268
Сделай сервис-прокладку, которая будет получать события из кролика, а затем передавать их на бек твоего приложения.
Аноним 25/01/24 Чтв 21:22:22 3019561 272
>>3019455
Блин а есть примеры на гитхатбе где это реализовано примерно простенько? Я найти не могу, гуглю уже неделю....
Аноним 25/01/24 Чтв 21:52:13 3019626 273
image 2196Кб, 464x848, 00:00:12
464x848
Как сделать такие же часы?
Аноним 25/01/24 Чтв 22:11:26 3019681 274
>>3019561
Что именно реализовано? Тебе надо настроить кролика, рядом с ним поставить сервис (асинхронный), который будет по соответствующим роутам принимать от кролика сообщения. Далее этот сервис просто должен постухой отсылать жсончики на твой целевой бек.
Аноним 25/01/24 Чтв 22:25:15 3019728 275
>>3019681
Да я нихуя не понимаю момент что значит поставить "рядом сервис который будет принимать от кролика сообщения"

Это что, типа копия бека, только с mock-запросами? Как оно будет принимать от кролика сообщения и передавать на другой бек?
Аноним 25/01/24 Чтв 22:44:23 3019756 276
Аноним 25/01/24 Чтв 22:48:18 3019767 277
>>3019728
Если ты задаешь такие вопросы, то ты по-моему не выкупил, как работать с кроликом, хотя вроде начал вопрос с того, что уже что-то там прикрутил к апи.

У них прям на сайте все есть:
https://www.rabbitmq.com/tutorials/tutorial-one-python.html
https://www.rabbitmq.com/tutorials/tutorial-two-python.html
https://www.rabbitmq.com/tutorials/tutorial-three-python.html

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

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

Как научить продьюсера класть сообщения в кролика и как из кролика получать сообщения в консьюмере - описано в тех трех линках.
Связь между "первой прилагой" и "второй прилагой" - первая прилага просто вычитывает сообщение из очереди и отправляет POST-запросом на нужный эндпоинт второй прилаги.
Аноним 25/01/24 Чтв 23:48:31 3019915 278
>>3019767
Спасибо что разжевал. Буду пробовать.
Аноним 26/01/24 Птн 00:24:31 3019947 279
>>3019626
берешь абсолютное позиционирование, зная угол и удаление числа от центра, рассчитываешь смещение по х и у через синус и косинус, по координатам ставишь элемент, повторяешь по всей длине каждой стрелки в цикле
Аноним 26/01/24 Птн 00:42:58 3019960 280
Анчоусы, а где можно доступным языком почитать про паттерны? Вот я знаю, например, что существует паттерн MVC. Но как я понимаю, кто-то уже считает его устаревшим. А какие альтернативы тогда существуют вообще?
Я еще погуглил, набрел на https://refactoring.guru/ru/design-patterns - но тут про MVC вообще не упоминается например.
Аноним 26/01/24 Птн 03:03:38 3020019 281
>>3019626
Это хуйня, тут всего 60 возможных углов. Были бы круче, если бы стрелки с большим разрешением двигались не с 1 сек таймером, а постоянной перерисовкой.
Аноним 26/01/24 Птн 03:25:06 3020020 282
>>3017918 спасибо большое. Только я скачал последний, а там нельзя фото по центру выровнять. Случайно не знаешь, в какой версии можно выравнивать?
Аноним 26/01/24 Птн 04:59:27 3020026 283
В джанге применяю тег safe к блоку, чтобы убрать из него символы html, с блока слетает весь css который я ему задал. Как жить дальше?
Аноним 26/01/24 Птн 11:57:18 3020321 284
>>3019455
Выглядит как извращение. RabbitMQ и есть сервис-прокладка. Например, между фронтом и бэком.
Аноним 26/01/24 Птн 12:17:04 3020337 285
>>3020026
Если вы хотите предотвратить экранирование и сохранить стили CSS в вашем блоке, вам может потребоваться другой подход. Один из вариантов - использовать фильтр safe только для содержимого блока, где это абсолютно необходимо, а для остального содержимого использовать экранирование по умолчанию:

<div class="my-block">
{{ my_content|safe }}
</div>
Аноним 26/01/24 Птн 12:55:56 3020377 286
Дебильный вопрос, но почему вечно возникает ошибка: Имя "ххх" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильнос
ть пути, после чего повторите попытку.
И ведь для интерпертатора все ставлю, а оно все равно, как на зло не работает и продолжает выдавать. Каждый раз чисто каким то чудом начинает запускаться все
Аноним 26/01/24 Птн 16:53:23 3020747 287
Анон, у меня нубский вопрос. Есть список, состоящий из строк, допустим a = ('a', 'v', 'b'). Как пройти список так, чтобы только 'v' в середине списка перешло в верхний регистр 'V'?
Аноним 26/01/24 Птн 17:19:07 3020797 288
image.png 36Кб, 612x467
612x467
>>3020747
Способов много разных.
Аноним 26/01/24 Птн 17:26:07 3020816 289
Аноним 26/01/24 Птн 17:59:21 3020908 290
Аноним 28/01/24 Вск 12:57:59 3023275 291
>>3020816
Самый идеологически верный из них - второй, через лист компрехеншн (через компоновку), а третий - вообще наверняка добавлен для юмора и странно, что не в одну строку типа такой:
> list(''.join(['a','v','b']).replace('v', 'V'))
Аноним 28/01/24 Вск 16:56:11 3023756 292
Кто-то верстает фронт на жанге? Эта хуйня хороша только как прокладка между фронтом и БД.
Для фронта есть реакт
Аноним 28/01/24 Вск 17:58:39 3023905 293
>>3023756
Когда верстали фронт на Джанго, ты ещё не родился.
Аноним 28/01/24 Вск 18:12:32 3023928 294
>>3023756
> фронт на жанге
> прокладка между фронтом и БД
> Для фронта есть реакт

Ты откуда такой вылупился? Понахватался умных слов, поросёночек и пришёл елдой махать.
Аноним 28/01/24 Вск 21:32:54 3024355 295
Аноны, хочу наговнякать для себя некоторый софт с gui.
Какой модуль лучше всего для этого взять по вашему мнению в силу вашего опыта, мой же критерий только один - чтобы просто было разобраться с порога, без вычитки мануалов для простейших функций. Встроенный tkinter? Какие подводные камни? Может что-то попроще получше да покрасивее?

Делал софт с gui только однажды для юпитера на ipywidgets но там было полторы кнопки и четыре вкладки так что наверное не считается.
Аноним 28/01/24 Вск 21:38:34 3024363 296
Аноним 28/01/24 Вск 23:08:50 3024501 297
>>3024355
Любой, который отвечает твоим требованиям, которые ты не указал. В любом случае, лучше сразу Pyqt брать, информации по нему море
Аноним 29/01/24 Пнд 00:08:55 3024574 298
>>3016936
> для чего там аж 7 разных вариаций

Ну вот смтори допустим есть две таблицы и в каждой по 1000 записей и они пронумерованы от 0 до 999 и номер записан в поле id. Очевидно есть единственный способ собрать попарно записи с одинаковым номером, их всегда будет ровно две одна с одной стороны и одна с другой.

В общем случае может быть что в одной из таблиц какие-то номера отсутствуют. Или повторяются. Тогда разумных способов собрать вместе записи с одинаковым номером становится несколько. Например мне может быть удобнее чтобы вернулись только пары, где номер нашелся в обеих таблицах. А может быть чтобы вернулись все строки из левой таблицы, и там где в правой таблице совпадающего номера не нашлось чтобы стояло None. То есть зависит уже от логики задачи и смысла таблиц.
Аноним 29/01/24 Пнд 00:44:27 3024607 299
>>3024355
> мой же критерий только один - чтобы просто было разобраться с порога, без вычитки мануалов для простейших функций.

>>3024501
> Любой, который отвечает твоим требованиям, которые ты не указал.
таки указал

>В любом случае, лучше сразу Pyqt брать, информации по нему море
pyqt - ваще не про разобраться с порога.

>>3024355
> Аноны, хочу наговнякать для себя некоторый софт с gui.
бери tk
Аноним 29/01/24 Пнд 01:21:11 3024628 300
>>3024607
>pyqt - ваще не про разобраться с порога.
По нему даже документации нет, хех.
Аноним 29/01/24 Пнд 02:06:36 3024635 301
Аноним 29/01/24 Пнд 09:07:04 3024758 302
Третьего дня взял Питон-3000 и прочитал им текстовый файл размером 45мб. Текстовый файл содержал 500к строк, пути к файлам, длина примерно 100 символов латиницы, utf-8.

От проверенных камрадов слышал, что в Питоне-3000 словари летают как птицы, даже быстрее списков, задыхаясь от жадности немедленно записал каждую строчку в словарь. Ключ: строка из файла, значение - true\false.
Смотрю в память: ну и ну, размер - мое почтение. Сраный текстовый файл занял 200 мб оперативы в форме словаря.

Ну что с этим говном делать? Списки получается надо использовать в таких случаях?
Аноним 29/01/24 Пнд 09:54:08 3024808 303
>>3024758
список кортежей(tuple,named tuple) или datadict со slots. все изменяемые структуры данных - прожорливые. как вариант можешь обрабатывать значения по мере поступления, выгребая итератором
Аноним 29/01/24 Пнд 10:00:02 3024813 304
>>3024808
Надо постоянно чекать какие файлы есть, они все должны быть в памяти.
Аноним 29/01/24 Пнд 10:13:29 3024831 305
>>3024628
Ты ебанутый? Иди нахуй
Аноним 29/01/24 Пнд 11:13:32 3024901 306
>>3024607
>>3024355
бери PySimpleGUI !!
Быстрее и красивее код напилешь по-питонячьи.
не слушай задротов с pyside5(6) и Qt-дезигнеров ёбаных макак!
Аноним 29/01/24 Пнд 15:34:29 3025323 307
>>3024355
Я сейчас Flet раздупляю. После недельного перебора всего, что есть, мне этот лучше всего подходит.
0. документашка имеет тёмную тему
1. нормальная документашка с примерами кода и результата для самых даунов
2. относительно пиздатая мультиплатформенность
Аноним 29/01/24 Пнд 15:36:46 3025327 308
>>3024635
Я заебался придумывать, как свитч в таблицу вставить. Как то урезанно, кастомизируется буквально в 4 более менее современных темы (а разница там между ними в цвете ползунка, синий или зеленый) и точка.
Аноним 29/01/24 Пнд 16:23:35 3025437 309
>>3025323
>документашка имеет тёмную тему
Аргумент, блджад!
Ясен орган - лучшее решение эва.
Аноним 29/01/24 Пнд 17:14:56 3025530 310
У меня есть кусок кода:
> def func(param: str) -> str:
> ....if param = "1":
> ........return f1()
> ....if param = "2":
> ........return f2()
> ....if param = "3":
> ........return f3()
> и т.д., там много опций.
> ....return ""

Хочу его привести к более вменяемому виду, например, как советует пайлинт:
https://pylint.readthedocs.io/en/latest/user_guide/messages/refactor/too-many-branches.html
Что-то типа:
> def func(param: str) -> str:
> ....return {"1": f1, "2": f2, "3": f3}[param]()
Это работает. НО! Я не могу понять, как по дефолту вернуть пустую строку.
Вижу два варианта:
1. Написать функцию, возвращающую пустую строку и передать её как вариант по-умолчанию:
> def empt():
> ....return("")
> def func(param: str) -> str:
> ....return {"1": f1, "2": f2, "3": f3}.get(param, empt)()
2. Ловить эксцепшн:
> def func(param: str) -> str:
> ....try:
> ........a = {"1": f1, "2": f2, "3": f3}[param]()
> ....except KeyError:
> ........a = ""
> ....finally:
> ........return(a)

Оба способа мне не слишком нравятся. Что думаете, как лучше поступить?
Аноним 29/01/24 Пнд 17:48:47 3025596 311
>>3025530
>как по дефолту вернуть пустую строку
return {"1": f1, "2": f2, "3": f3}.get(param, "")
Аноним 29/01/24 Пнд 20:02:17 3025795 312
>>3025596
Видимо, надо было сразу делать:
Оригинальный код:
https://www.online-python.com/uTfKykecax
Через дополнительную функцию:
https://www.online-python.com/41cnHRrj39
Через трай:
https://www.online-python.com/u0m4bsTBgP
Твой же код возвращает не строку, а функцию для тех случаев, которые обрабатываются явно и нормально получается только возврат пустой строки:
https://www.online-python.com/Ao6xJ92cys
А если вернуть скобки, то сломается код на параметрах, обрабатываемых неявно, через другие параметры (например, представь, что параметр "4" есть, но его значение получается вместе со значением параметра 3 в функции f3) потому что "TypeError: 'str' object is not callable":
https://www.online-python.com/wNehPvp6mj
Аноним 29/01/24 Пнд 20:08:02 3025811 313
>>3025437
Я на полном серьёзе рвусь от того, что дауны из стэковерфлоу и хабра до сих пор не добавили ссаную переключалку на дарк тему. У меня буквально всё остальное тёмное и приходится переписывать и подменять локально цсски, иначе глаза выгорают
Аноним 29/01/24 Пнд 20:08:08 3025812 314
>>3025795
Хм-м. А ведь мне необязательно добавлять новую функцию. Ведь есть встроенная функция 'str':
https://www.online-python.com/drOC5tk192
Хотя код получается неочевидным и как работает get в данном случае не слишком понятно с одного взгляда...
Аноним 29/01/24 Пнд 20:09:50 3025816 315
>>3025530
Там в последних питонах свич же для тебя подвезли вроде
Или мне это приснилось?
Аноним 29/01/24 Пнд 20:11:23 3025819 316
>>3025811
На СО есть тёмная тема. Нужно залогиниться просто.
Аноним 29/01/24 Пнд 20:12:31 3025823 317
Аноним 29/01/24 Пнд 20:12:36 3025824 318
Аноним 29/01/24 Пнд 20:16:27 3025828 319
>>3025823
Ух ты бля какая заебатая штученька!
Спасибо, анон.
Аноним 29/01/24 Пнд 20:19:07 3025832 320
Вопрос для вкатунов. Вы бы пошли на работу при условии, что проект не на питоне и по сути надо стек +- с нуля изучать?
Аноним 29/01/24 Пнд 20:24:58 3025841 321
>>3024355
>>3025437
Ладно, вот еще аргумент: Там есть хот релоад прям искаропки.
flet settings.py -d
и ты видишь все изменения сразу при каждом Ctrl+S
при чем параметр -d отслеживает всю директорию
Из минусов - я так понял, что нельзя собрать отдельно кнопку, а потом её импортировать в форму отдельным файлом, типа как в реакте.
Аноним 29/01/24 Пнд 21:17:43 3025919 322
Да, вы тут ткинтер рекомендуете чуваку, а он умеет в асинхронность или окно висит, пока внутрянка работает?
Аноним 29/01/24 Пнд 22:25:03 3025996 323
>>3025795
ты какую-то натуральную хуйнж делаешь чел. Вот твоё уродство, держи и никогда так не делай.
return {"1": f1, "2": f2, "3": f3}.get(param, str)()
Аноним 29/01/24 Пнд 22:31:24 3026004 324
>>3025530
в 1 замени empt на lambda: ""
Аноним 29/01/24 Пнд 22:36:22 3026007 325
>>3025996
лучше лямбду как в следующем посте - более явно. а вообще лучше switch, да
Аноним 29/01/24 Пнд 22:49:51 3026022 326
>>3026007
>switch
Это что? if elif elif elif else, или какой-то новый оператор в последних питухонах?
Аноним 30/01/24 Втр 00:37:24 3026115 327
>>3026022
Хуясе ты герцог. Жопой читаешь тред? Я тебе даже ссылку нашел
Аноним 30/01/24 Втр 12:54:11 3026516 328
Есть демо функция, которая генерирует 10 строк, при достижении определенного симафора - инфинити скролл.

Есть база с 1000 записями.

Как подтягивать вместо сгенерированных строк запрос, точнее, как правильно запрашивать данные из базы, что бы они по порядку по 10 штук запрашивались?
Аноним 30/01/24 Втр 12:55:15 3026519 329
>>3026115
Сейчас бы бредни агрессивного вкатуна дальше первого предложения читать...
Аноним 30/01/24 Втр 13:04:00 3026531 330
>>3025816 >>3025824
Мерси. Перечитаю и примеряю к задаче в этом и других местах, просто вот:
>>3026022 >>3026022
Тащемта матч-кейс это ни хухры-мухры, это вам не банальный свич-кейс, это ниибацца паттерн-матчинг (см. пеп: https://peps.python.org/pep-0622/ ), помню поковырялся с ним, читал пепы, но почему-то пришёл к выводу, что нинужно на подобных кейсах. В основном потому, что он мягко говоря не для того, чтобы сравнивать переменную со значениями, это его побочное умение.
Например, можно посмотреть тут: https://habr.com/ru/articles/585518/
Впрочем, как раз в данной он по крайней мере не агрит линтер, значит разрабы считают его валидным выходом.

>>3025996
> твоё уродство, держи и никогда так не делай.
> return {"1": f1, "2": f2, "3": f3}.get(param, str)()
Это я уже сделал, в том же посте написано, почему мне это не нравится:
>>3025812
> Ведь есть встроенная функция 'str':
> https://www.online-python.com/drOC5tk192
> код получается неочевидным и как работает get в данном случае не слишком понятно с одного взгляда

>>3026004
ВАХ! Спасибо. Первый раз (почти) вижу, чтобы лямбда на живых примерах, а не в какой-то абстрактной задаче так хорошо вписалась в код, спасибо! Пока что этот пример мне нравится больше всего.
Тем более, что собственно суть вопроса к формату сейчас - когда потом в системе появится ещё 100500 параметров, требующих отдельной обработки (а это более, чем возможно) я хочу как можно проще расширять список.
Аноним 30/01/24 Втр 13:27:35 3026562 331
>>3026531
>Это я уже сделал
Это другое, посмотри внимательней там скобочки () после гета, функция передается и сразу вызывается на месте.
Аноним 30/01/24 Втр 13:46:01 3026593 332
>>3026562
>посмотри внимательней там скобочки () после гета
У меня с первого примера кода так:
>>3025530
>> def func(param: str) -> str:
>> ....return {"1": f1, "2": f2, "3": f3}[param]()
Чтобы было именно так:
> функция передается и сразу вызывается на месте.
Аноним 30/01/24 Втр 14:48:14 3026716 333
как установить в домашнюю директорию произвольную версию питона, отличную от тех, что есть в репозитории моего линукса?
Аноним 30/01/24 Втр 14:50:21 3026723 334
Аноны, как лучше разбивать байтовую строку полученную через сокет?
Реализую байтовый протокол и надо разобрать строку - достать значение первое, второе, а потом, в зависимости от третьего, определённое количество следующих.
Помогите пожалуйста.
Аноним 30/01/24 Втр 14:59:26 3026753 335
>>3026716
0. Помни, что верися запускаемого питона зависит от имеющейся в системе версии GLibs и, возможно, чего-то ещё.
1. Скопируй виэнв оттуда, где есть нужная тебе версия.
2. Не забудь зайти внутрь и поправить пути.
3. Активируй виэнв.
Или вместо всего этого:
1. Запускай в докере.
Аноним 30/01/24 Втр 15:10:31 3026782 336
>>3026753
>версия запускаемого питона зависит от имеющейся в системе версии GLibs
Это просто из моих шишек: достаточно современный питон (примерно с версии 3.9) физически не запускается на окаменевшем говне мамонта под названием "CentOS 7", а голимый тырпрайз любит этот недоёбанный копролит!
Аноним 30/01/24 Втр 15:34:04 3026823 337
>>3026753
>>3026782
не ну оно-то понятно, что на его собирать придётся из сырцов. просто пока не понятно с какими опциями запускать ./configure чтоб приблизительно получить такой же питон, как он в дебиане собран. скачал пока себе сорцы пакета python3-minimal, но что-то не нашёл ещё там в каком конфиге он собирается.
Аноним 30/01/24 Втр 16:23:26 3026860 338
>>3026823
Распаковываешь & переходишь в папку соуса, потом так:

./configure --prefix=$HOME/python/Python-3.10.13 --enable-optimizations --disable-test-modules --with-lto

make -j 16

make install
Аноним 30/01/24 Втр 16:27:14 3026862 339
image 82Кб, 1600x900
1600x900
Начал говнякать некоторый софт с gui в tkinter.
Всё-таки встроенная либа, надо как минимум быть в курсе, вот это всё.

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

Т.е. какое-то нелепое нагромождение фреймов ради простой прокрутки.
Аноним 30/01/24 Втр 16:47:58 3026890 340
>>3026862
Спасибо, что поделился столь важной информацией.
Аноним 30/01/24 Втр 16:53:45 3026896 341
>>3026890
Не стоит благодарности. Обещаю и впредь держать тебя в курсе.
Аноним 30/01/24 Втр 22:43:38 3027407 342
>>3027239
19 лет, вкатился на 70к. Вопросы?
Аноним 30/01/24 Втр 23:03:41 3027436 343
image.png 15Кб, 543x484
543x484
Что значит такая форма ROC-кривой?
Аноним 30/01/24 Втр 23:20:15 3027458 344
>>2995509
ты блять импорты нормально описал или чем?
Пинсталлер пихает в экзешник тупо интерпретатор и библиотеки. ВСЕ.
Если у тебя что то не работает то ты библиотеки хуево описал.
Попробуй импортировать полнуюю либо, а не модули из нее
без from mamka import jopa
импортируй сразу import mamka
Жопа без мамки может не сработать, я те говорю.
Аноним 30/01/24 Втр 23:51:18 3027484 345
>>3026823
>чтоб приблизительно получить такой же питон, как он в дебиане собран
Это отдельный вопрос, я однажды собирал руками какой-то то ли 3.8, то ли 3.9 для сраной центоси с дефолтными параметрами, вообще легко в полторы команды и заработало как надо.
Но у меня вопрос встречный: чем тебя докер не устраивает? Если нужна какая-то специфичная среда, то он идеален.
Аноним 31/01/24 Срд 12:10:38 3027952 346
Аноним 31/01/24 Срд 16:48:46 3028407 347
>>3026862
>всё-таки встроенная либа, надо как минимум быть в курсе
Можно смело скипать, как и sqlite3 (всё-таки тоже встроенная либа)
Аноним 31/01/24 Срд 18:51:40 3028576 348
def gen():
....yield from sorted(file for file in lst)
for x in gen():
....print(x)

Аноны поясните, тут суть генератора теряется или нет? Для сортировки же надо знать длину массива или ещё что-то такое, что противоречит генератору. Получается в sorted() возвращается полный список и потом выплевывается в yield, но тогда теряется смысл передачи прав "from". Может тут под капотом какая-то неявная магия? Или как это работает? Поясните блин.
Аноним 31/01/24 Срд 19:27:14 3028605 349
Взял тут кое-что с гитхаба, но при попытке освоить вышла проблема
Command "python setup.py egg info" failed with error code 1 in /tmp/pip-build....
Как это фиксить? В чем причина?
Аноним 31/01/24 Срд 20:16:34 3028732 350
>>3028576
> Для сортировки же надо знать длину массива или ещё что-то такое, что противоречит генератору.
Нинужно, достаточно уметь сравнивать элементы, а их количество неважно. Другое дело, что нельзя отсортировать список не имея собственно всех элементов списка. Заинтриговал. Я елд-фром не пользовал пока.

Итак:
https://www.online-python.com/tQVgmvR69q
То есть генератор с елд-фромом работает.

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

>>3028605
>кое-что
Кое-что, блядь, он взял, как-то запускает, что-то происходит...
Детали, Билли, нам нужны детали!
Аноним 31/01/24 Срд 21:00:35 3028836 351
>>3028732
https://www.online-python.com/SakFRnNudY
Провел тут тест, как и ожидалось сначала все элементы прогоняются в сортеде, потом выплёвываются, генератор тут не ленивый а просто сомнительный элемент синтаксиса. Ещё оказалось что лист компрехенсон вообще с yield from не работает, а вот map работает.
Аноним 31/01/24 Срд 21:13:40 3028853 352
Сап аноны, вопрос новичка

В php я могу узнать, было ли выполнено условие
Например переменной статус присваиваем действие. Например подключение к БД
$status = mysqli_connect(1.1.1.1, root, 123, BD_NAME);
Если подключение удавалось, то переменная статус была True
Если нет, то False
И далее можно было сделать проверку и вывести сообщение об ошибки или успехе

Можно ли так в питоне?
Пробовал как в php, но не получилось. Пытался загуглить, но чет норм инфы нет, через какие-то заебства такое надо осуществлять

Можете накинуть примеров или ссылок?
Аноним 31/01/24 Срд 21:37:57 3028882 353
>>3028853
Ты какой драйвер/библиотеку используешь для подключения к базе? Обычно там отдается объект подключения, и если он не None, то подключение прошло успешно, а если None, то что-то сломалось. Но опять же, в разных либах по-разному может быть
Аноним 31/01/24 Срд 21:40:59 3028889 354
>>3028853
В питоне можно создать соединение через try except чтобы отследить ошибки, а через условие if проверить, что соединение не None

import pymysql

try:
# Подключение к базе данных
conn = pymysql.connect(host='1.1.1.1', user='root', password='123', db='BD_NAME')
print("Подключение успешно")
except pymysql.Error as e:
print(f"Ошибка подключения: {e}")



И так

import pymysql

# Подключение к базе данных
conn = pymysql.connect(host='1.1.1.1', user='root', password='123', db='BD_NAME')

# Проверка статуса подключения
if conn:
print("Подключение успешно")
else:
print("Ошибка подключения")
Аноним 31/01/24 Срд 21:47:11 3028896 355
>>3028882
>>3028889

Спасибо, щас поразбираюсь с кодом. Этого примера достаточно в принципе

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

И вот в пхп об этом думать не надо. Достаточно переменной присвоить этот код и потом через if else проверку сделать, true или false
Аноним 31/01/24 Срд 21:56:48 3028903 356
>>3028896
Ну друже, тебе надо в ООП вникнуть хорошенько. Станет гораздо понятнее хотябы куда смотреть, чтобы найти то, что надо. В пхп все-таки совсем не ООП было. Как попишешь немного на питончике - будет гораздо проще
Аноним 01/02/24 Чтв 01:19:15 3029055 357
image.png 20Кб, 338x349
338x349
>>2981203 (OP)
Здарова дрочеры, поясните мне насколько питон пересахарен говном всяким. Например, в обучалках все любят показывать как декоратор делать. Нахуй его делать через @Decorator, если можно было просто лямбду передать, типа такого кода?
Аноним 01/02/24 Чтв 01:26:17 3029063 358
>>3029055
Можно наслаивать декораторы и это будет красивее. Диф будет красивее. Вместо +1-1 строки будет просто +1
Аноним 01/02/24 Чтв 01:41:51 3029070 359
Аноним 01/02/24 Чтв 01:59:50 3029078 360
>>3027458
* другой
Я вообще ехе собираю через pysimplegui-installer.py, он норм всю ёбань собирает
Аноним 01/02/24 Чтв 02:01:06 3029079 361
Аноним 01/02/24 Чтв 10:36:46 3029218 362
Аноны, кто-нибудь писал для AVR на Python? Понимаю как безрассудно это звучит, но может были прецеденты?
Аноним 01/02/24 Чтв 13:36:12 3029551 363
>>3029218
хуйня, бери с++

ты просто не найдешь библиотеки
Аноним 01/02/24 Чтв 13:42:04 3029570 364
Ребзи интересует курс по SAP, где-то можно найти сливы с udemy или подобное?
Аноним 01/02/24 Чтв 13:57:22 3029616 365
>>3029570
У сапы есть официальные книги https://www.sap-press.com/ Там такие талмуды шо ты проста ахуеешь. По одним только workflow там под тыщу страниц наверно. По финансам только вводная часть - это 500 страниц. Шоп сделать курс по sap, это надо часов 300 ебать начитывать текст. И весить он будет гигабайт сто нахуй.
Аноним 01/02/24 Чтв 15:26:51 3029847 366
Аноним 01/02/24 Чтв 15:51:24 3029892 367
>>3019960
>где можно доступным языком почитать про паттерны?
Гуглишь "software engineering books". Там будет про паттерны.
https://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420
https://www.amazon.com/Righting-Software-Juval-L%C3%B6wy/dp/0136524036/ref=zg_bs_g_491316_d_sccl_34/145-4422778-3236939?psc=1
https://www.amazon.com/Software-Engineering-6th-Ian-Sommerville/dp/020139815X/ref=zg_bs_g_491316_d_sccl_41/145-4422778-3236939?psc=1
Аноним 01/02/24 Чтв 15:54:31 3029899 368
>>3019960
>кто-то уже считает устаревшим паттерн MVC
Динамический одностраничник на реакте, например не MVC
Аноним 01/02/24 Чтв 21:32:51 3030619 369
>>3027239
Ну вкатился, ептыть. Правда проект какое-то окаменелое легаси дерьмецо в виде монолита на фласке из 2016 года.
Хочу перекатиться в молодежные микросервисы на Golang!
Аноним 01/02/24 Чтв 21:54:05 3030653 370
Аноним 01/02/24 Чтв 22:26:19 3030710 371
>>3030653
Ну можно конечно выебнуться, проявить активность и выбить бабла на переписывание этого копролита на go и микросервисы, да вот только я не лид, а сама команда из лоускиллов состоит, которые микросервисов ни разу не видели, как и я собственно.
Получится куда более худшая версия того, что есть сейчас. Поэтому посижу годик и съебу туда, где микросервисы и го есть.
Аноним 01/02/24 Чтв 22:48:35 3030741 372
>>3030710
Галера? Или почему уровень разрабов такой низкий?
Аноним 02/02/24 Птн 00:36:17 3030850 373
>>3030619
>Хочу перекатиться в молодежные микросервисы на Golang!
>>3030710
>микросервисов ни разу не видели, как и я собственно.
Блядь, откуда вы такие альтернативно одарённые лезете?
Схуяли ты взял, что микросервисы будут лучше, если ничего о них не знаешь? Потому что индус на ютубе сказал, что микросервисы это модно-современно?
Аноним 02/02/24 Птн 02:36:24 3030939 374
>>3030850
>Потому что индус на ютубе сказал, что микросервисы это модно-современно?

Кстати, да. Технологии же примерно так и выбираются, лол. Что хайпит - то хорошо, и опыт с такой технологией будет ценнее.
Аноним 02/02/24 Птн 05:20:25 3030972 375
Вопрос к телетонщикам: как реализовать авторегер акков? send_code_request не отправляет смс с кодом. Но всякие комбайны реализуют авторегистрацию аккаунтов. Значит это все таки возможно.
Аноним 02/02/24 Птн 06:28:00 3030980 376
>>3029551
Не знаю почему, но С++ меня накаляет. Делал 20 лет назад лабораторные и благополучно забыл его.
Аноним 02/02/24 Птн 08:01:12 3031000 377
>>3030980
C++ хуйня, соглашусь.
Но какую бы ты не взял библиотеку на питоне, она будет хуйней.
Ты сможешь делать только очень простые вещи на очень ходовых либах.


ну напрмер включитьс ерву по нажатию на кнопку ты сможешь.
А вот передать lora сообщение к другому устройству нет, потому что обасрешься с готовой либой.
Аноним 02/02/24 Птн 08:03:30 3031002 378
>>3031000
Вы тут охели рот на плюсы открывать? Потише!
02/02/24 Птн 08:12:59 3031008 379
Пиздец блять тред даунов
Аноним 02/02/24 Птн 09:08:45 3031034 380
>>3031008
Я вообще с C#, но опускаю питон в сообщениях.
Аноним 02/02/24 Птн 10:25:15 3031112 381
>>3031034
Завидуешь питоногосподам, бомжатина дотнетовская?
Аноним 02/02/24 Птн 10:44:41 3031132 382
>>3031034
Опустил бы лучше какой-нибудь топ прогой собственной разработки, мол на питухоне такое не сделать. А так очень жалко выглядишь со своим ответом
Аноним 02/02/24 Птн 12:46:32 3031304 383
>>3031034
>C#
Это который чуть более, чем весь спиздили у джавы, но с заточкой только лишь под мастдай? Ты жалок и узок.
Аноним 02/02/24 Птн 12:48:39 3031306 384
>>3031002
Речь же не про чистый Си, так что норм.
Аноним 02/02/24 Птн 13:28:15 3031365 385
>>3031304
>>3031132
>>3031112

В этом и прикол.
У меня нет конкурентов я спокойно работаю и никто меня не дергает.
Аноним 02/02/24 Птн 13:57:32 3031417 386
>>3031365
>Я вообще с C#, но опускаю питон в сообщениях.
>Сказали, чтобы не страдал хуйней
>В этом и прикол.
>У меня нет конкурентов я спокойно работаю и никто меня не дергает.

Напомни еще раз, нахуя ты ИТТ? Может тебе лучше в /psy помощи поискать?
Аноним 02/02/24 Птн 14:04:12 3031428 387
image.png 1471Кб, 1024x1024
1024x1024
Шарпомухе по ебалу
Аноним 02/02/24 Птн 14:50:53 3031572 388
Аноним 02/02/24 Птн 14:53:37 3031579 389
>>3031417
Конкурентов нет потому что c# нигде не нужен кроме оборонных госушных заводов сори за факты.
Аноним 02/02/24 Птн 16:05:16 3031721 390
>>3031579
Старшно далёк ты от народа.
Аноним 02/02/24 Птн 23:33:32 3032404 391
>>3031579
Не. Я видел. Хуйню пописывают самописную под себя всякую. Но только до тех пор, пока не сообразят, что проект разрастается и пора бы на линукса перекатывать для надежности
Аноним 03/02/24 Суб 05:49:47 3032589 392
Где узнать какие методы и функции работают быстрее других?
Аноним 03/02/24 Суб 11:35:27 3032691 393
image 32Кб, 701x555
701x555
>>2981203 (OP)
А ты ОП, тупорылая долбоёбина, ставь тег python при создании темы.

Иначе аноны не находят его поиском и долбятся в предыдущий.
Аноним 03/02/24 Суб 11:39:04 3032696 394
>>3032691
ОП не умеет программировать тег
Аноним 03/02/24 Суб 11:56:50 3032712 395
unnamed(1)-Qr0W[...].jpeg 1344Кб, 1800x1800
1800x1800
Прошу помощи с моим говнокодом. Выкакиваются ошибки, но я слишком тупой, чтобы их решить. Если код уродливый — сильно не пинайте.

https://pastebin.com/A8PQ4wCf
Аноним 03/02/24 Суб 14:26:21 3032868 396
>>3032712
https://pastebin.com/VX2Deuv9 на. Только тебе там в функции надо передавать дополнительных два каких-то аргумента (она принимает 4, ты передаешь 2), вообще хз че они делают. Сам подставь. По идее должно быть оставшейся единственной ошибкой
Аноним 03/02/24 Суб 14:45:41 3032893 397
Если я внутри функции 1 определяю еще одну функцию 2, то функция 2 заново переопределяется каждый раз, как вызывается функция 1? Это медленно? Использую вложенные функции для ограничения видимости, насколько это норм идея?
Аноним 03/02/24 Суб 15:57:40 3032958 398
>>3032893
внутри твоей мамки определяю твой эмбрион, который папкина сперма. Это я медленно ищу твой мозг??
Аноним 03/02/24 Суб 16:00:55 3032961 399
.. конечно, фунциональная вложенность - это медленней, чем ассемблер, или си.
Какая проблема-то у тебя, убогенький?
Аноним 03/02/24 Суб 17:20:47 3033081 400
Как решать задачи на рекурсию ппц туплю на них всегда. Иногда нужен базовый случай иногда не нужен. На кодварсе лёгкие задачи рекурсии их не так много чтобы тренировать. И всегда есть соблазн решить читерски
Обучение питону 03/02/24 Суб 21:14:10 3033416 401
всем привет, хочу разобраться в питоне, но не знаю, как подступиться. можете помочь, мб есть какие-нибудь курсы/ уроки и тд?
Аноним 03/02/24 Суб 21:17:58 3033422 402
>>3033416
Тимофей Хирьянов на ютубе или поколение python на степике.
Аноним 03/02/24 Суб 22:09:58 3033514 403
Как перестать тратить время на прокрастинацию на решение задач и начать учить то что надо?
04/02/24 Вск 08:44:35 3033811 404
Тред даунов
Аноним 04/02/24 Вск 18:19:16 3034577 405
>>3033811
>Тред даунов
Шарпей обиделся
Аноним 05/02/24 Пнд 13:34:00 3035779 406
Аноним 05/02/24 Пнд 17:55:05 3036248 407
image.png 37Кб, 753x322
753x322
Бляя, как у меня жопа горит. Как мне этот питон ебаный учить, если половину обучалок делают просто ДАУНЫ ебаные.
У каждого первого асинхронность = параллельность, вы че ебанутые блять? Вы реально настолько тупые сука?! Бляя, идите нахуй со своим питоном, это пиздец просто клоунада, а не коммунити
Аноним 05/02/24 Пнд 18:00:39 3036264 408
>>3036248
А по твоему это че? Не механизм, позволяющий исполнение нескольких задач одновременно? Или что ты считаешь асинхронностью
Аноним 05/02/24 Пнд 18:15:29 3036304 409
>>3036264
Механизм, который позволяет выполнять задачи одновременно - это блять потоки, представляешь? Асинхронность ничего не выполняет одновременно, шизоид поехавший бля
Аноним 05/02/24 Пнд 18:19:24 3036313 410
>>3036304
Так асинхронность-то что такое, ты на вопрос не ответил
Аноним 05/02/24 Пнд 18:27:56 3036324 411
>>3036313
Асинхронность - это когда вызывающий поток засыпает до получения результата. Если поток запускает другой поток и сам продолжает работу - это многопоточность.
Аноним 05/02/24 Пнд 18:35:45 3036335 412
Аноним 05/02/24 Пнд 19:54:00 3036457 413
>>3032893
>Это медленно?
Это нинужно. Так может работать, но ю дуин ит вронг. Используй отдельные классы, наследование с перезагрузкой части методов или приватные методы, смотря по ситуации.
Аноним 05/02/24 Пнд 19:59:53 3036465 414
>>3033416
ОП-пост не читай
@
В тред пиши!
05/02/24 Пнд 20:31:52 3036547 415
1707154312566.jpg 694Кб, 2048x1535
2048x1535
>>3036248
Если хочешь научиться базовым вещам, то тебе придется читать официальную документацию и книги. На Хабре пишут те кто хочет выебнуться
Аноним 05/02/24 Пнд 21:11:37 3036614 416
Сап питонач. Пилю для курсача по проге простенькое приложение на pyside6. Суть его в том, что пользователь вводить в главном окошке различные параметры, кликает "старт" и во второстепенном окне строится несколько графиков в зависимости от того что он навводил.
Я нагуглил, что второстепенное окно можно реализовать через QWidget и QDialog. И не вполне понимаю, какое тут лучше использовать и есть ли смысл тут в QDialog - с пользователем общаться окошко не будет, только выводить матплотлибовскую анимацию. Или тут похуй?
Аноним 05/02/24 Пнд 23:49:45 3036946 417
Аноним 06/02/24 Втр 05:41:53 3037148 418
>>3036614
А чо не просто на PyQt? Вопрос без иронии, просто тоже предстоит сделать gui для одного скрипта.
Аноним 06/02/24 Втр 09:19:16 3037229 419
>>3037148
Ааа просто так, по историческим причинам.
Pyside и PyQt всё равно на 99% одно и то же.

Но с некоторым шансом, если матплотлиб нарушит обещания в своих доках, что работает нормально со всеми свежими реализациями питон-Qt, мне таки придётся переписать всё на PyQt5.
Аноним 06/02/24 Втр 12:31:45 3037414 420
>>3037148
Для тех, кто хочет своё ПО с гуем пилить и официально в мире продавать, надо будет отстёгивать в PyQt, а в пайсайд не надо.
А по факту 99% одно и то же. Я б вкатывался сразу в пайсайд тогда уж.
Аноним 06/02/24 Втр 12:43:15 3037430 421
Джанго. Если я во вьюхе дёргаю объекты с базы данных, а потом передаю их в html шаблон через контекст, и уже в шаблоне перебираю через for, это говнокод? Если я такой сайт при устройстве на работу покажу, меня не обоссут? Просто приходится прямо в самом шаблоне на них css свойства через style вешать, выглядит конечно говняно.
Аноним 06/02/24 Втр 13:33:06 3037513 422
>>3036946
Нечего тебе делать в ИТ, чувак. И даже не потому, что ты не знаешь буржуйсткого (хотя и поэтому тоже), но и потому, что тот совет, который тебя типа устроил - это повтор совета из ОП-поста, который ты либо не прочитал, либо не понял, в обоих сллучаях если ты способен запутаться в небольшом текстике - значит с ИТ не справишься.
>>3037430
>шаблоне перебираю через for, это говнокод?
Нет, это нормальное использование дзиндзи. Например, возьмём карточки товаров: ты запросом получил 10 или 20 товаров и для каждого из них тебе нужна небольшая карточка с фото, наименованием и ценой, соответственно это неизвестное заранее количество дивов. Дивы должны быть только в дзиндзе. Так что обходи циклами реализуется именно в шаблоне. Как вариант ты можешь использовать вложенные шаблоны (те же карточки - хранить в отдельном файле и передавать им входные параметры при генерации), это не особо критично, вроде.
Мимо писал на джанге один раз пару лет назад, но что-то ещё помню.
Аноним 06/02/24 Втр 13:44:43 3037544 423
Аноним 06/02/24 Втр 13:45:04 3037546 424
Аноним 06/02/24 Втр 13:50:03 3037553 425
>>3037544
Теоретически многие могут обойтись вообще без него или тупо заучить пару команд и узбагоидзя. Но в реальной IRL жизни - чем лучше, тем лучше. Иногда знание некоторых очень редких тонкостей позволит тебе легально здорово срезать некоторые углы.
Аноним 06/02/24 Втр 14:22:19 3037575 426
Аноним 06/02/24 Втр 15:20:40 3037624 427
>>3037544
Способность настроить себе окружение + возможность выполнять на нём работу. Вообщем-то этого достаточно.
Если смотреть по ссылке: как выше написали.

По поводу терминалов и команд - какие то базовые надо знать(ну там файлик посмотреть, подключиться к удалённому серверу, ну докеры туды сюды позапускать и тд. - примерно такой уровень.)
Аноним 06/02/24 Втр 16:13:47 3037689 428
>>3037414
Да я не себе, коллегам подсобить взялся, а им надо кнопку, а не "какое-то черное окно".
Аноним 06/02/24 Втр 16:19:51 3037698 429
Аноним 06/02/24 Втр 16:22:41 3037701 430
Screenshot from[...].png 18Кб, 617x136
617x136
>>2981203 (OP)
Что в pydantic означают выражения вроде Field(...) и Field(None)? Вот тут вот в is_active пробрасывается почему-то Ellipsis (троеточие), что оно делает? А вот source с None. Я никогда особо Field в пайдентике и не использовал, просто фигачил поля с тайпингом и все
Аноним 06/02/24 Втр 16:36:50 3037716 431
>>3001687
научи меня
дай не рыбу а удочку, научусь сам, просто скажи что конкретно нужно
Аноним 06/02/24 Втр 18:08:44 3037903 432
>>3037689
Поищи qtdesigner или типа того, это рисовалка под pyQt
Аноним 06/02/24 Втр 18:31:50 3037951 433
>>3037716
Если питон знаешь, просто не парсил никогда, тогда читай этого, он базу даст.
https://habr.com/ru/articles/579336/

Если совсем нубас, придется бабок вкинуть мальца. Пройди например вдумчиво курс https://letpy.com/. Задачи с рисованием можно смело скипать, это хуйня. В конце курса ты будешь уметь собирать данные с простого беззащитного сайта в CSV-файл.

В этом деле, как и во всей технической науке есть три узла: Вход-контроллер-выход.
Вход: целевой сайт, разведуешь его, ищешь, как собрать данные максимально быстрым и стабильным способом. В идеале, родной АПИ сайта, пусть даже платный, далее смотришь XLR ответы, там иногда джейсоны в чистом виде прилетают на халяву, дальше по ухудшению надежности идёт свой скрытый апи, найти можно, поковырявшись в заголовках запросов-ответов, иногда джейсон-данные прячутся в джейсон-коде, прям в теле запрашиваемой страницы, об этом рассказывает тот чувак из хабр статьи. Если же ты нихуя выше не нашел, тогда разбирай бьютифулсупом хтмл-теги, как лошара, осознавая, что если через полгода сайт чууутка подкоректирует разметку, твоему парсеру пизда. Последнее днище - селениум. Это когда совсем уже конкретное одностраничное глухое приложение работает прям в браузере клмента и никакими запросами оно с сервером не меняется и на твоей стороне просто в кашу заобфускированное мясо из джейсона.

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

Выход: Можешь сохранять в CSV (под эксель удобно например кому то), можешь в БД (если база будет храниться локально и к ней подключаться будет один пользователь единовременно, можно прям в sqlite3, похуй), можешь в постгре, можешь в джейсон (это если дальше с ними будет работать какаянить морда напрямую например) для базы в контроллере данные карточки сохраняй в виде кортежа и в базу загоняй их не по одной карточке, а пачкой карточек после прохода по каждой странице

Как то так.
Теперь дай мне съесть наловленную рыбу, просто скажи, куда блять с этим мне теперь сунуться?
Аноним 06/02/24 Втр 18:46:21 3037967 434
>>3037951
Быстрофиксы:
>XLR
XHR
>джэйсон-каша
js-каша
Аноним 06/02/24 Втр 19:06:26 3038011 435
>>3037951
Сайты с авторизацией через Госуслуги как парсишь?
Аноним 06/02/24 Втр 19:34:15 3038058 436
>>3037951
Фриланс. Просто огромное количество заказов на сбор сущностей из какого-нибудь интернет справочник/каталога в эксельку. Я так понимаю тебе написать их будет быстро, а денег нормально иногда предлагают
Еще как вариант существуют инженеры по автоматизации, там как раз парсеры юзаются. Такой работы не то чтобы много, на самом деле, но туда мало кто идет. Можешь поискать по ключевым словам bs4/selenium на всяких сайтах с вакансиями. Придешь туда и будешь апи внутрений дербанить, а не хтмлы.
Аноним 06/02/24 Втр 20:39:07 3038186 437
>>3038058
>Фриланс
Да вот хотелось бы на работу обычным способом устроиться. Почекал я всякие кворки, там тыщу предлагают за трехдневную работу и еще голову всю выебут. У меня не подвешен язык, мне не нравится всяких долбоёбов облизывать за тыщу.
Аноним 06/02/24 Втр 20:43:35 3038198 438
>>3038011
Например?
Сам себе бота, который мне мои штрафы парсит и присылает в телегу я то напишу. А другим людям, это другое.
Аноним 06/02/24 Втр 22:22:00 3038330 439
Аноним 06/02/24 Втр 22:39:00 3038344 440
>>3033416
это не твоё тогда. Ты чё собрался писать??
Аноним 07/02/24 Срд 00:15:55 3038432 441
image.png 145Кб, 758x1069
758x1069
Добрый день. Прошу оценить визуально.
Есть два стула (пик). Делают одно и тоже. В одном случае у меня 12 строк, 3 уровня и 6 бранчей, в другом - 13 строк, 5 уровней и 2 бранча а ещё он не работает на сайте online-python.com потому, что у них питон 3.8, а паттерн-матчинг появился в 3.10 и проявиться это может почти где угодно ещё.
Что вам больше нравится визуально? Как считаете писать правильнее?

Текстом, если что: https://pastecode.io/s/9ga1mmj7

ind4: Есть же специальный модуль для сбора параметров!
Таки да, есть. Чуть не в стандартной библиотеке. Не помню, как называется. Я не смог заставить её выдавать нормальные многострочные подсказки, а там их надо. Вот прям НАДО.
Аноним 07/02/24 Срд 00:33:27 3038450 442
>>3038432
Нахуй ты вообще написал второй вариант? Паттерн матчинг если где-то и нужен, то явно не здесь.
Какой нахуй модуль для сбора параметров?
Аноним 07/02/24 Срд 02:36:31 3038562 443
>>3038450
Выше (>>3025530 и далее) писали про бранчи и свичматч-кейс (>>3025816).
Я потыкал, попробовал. Оказалось, что линтер считает его плоским кодом с нулём ветвлений. Взял кусок, похожий на свичматч-кейс и переписал его. Получилось вот так вот. Странно. Не нравица!
С другой стороны я меняю 4 ветвления (при общей рекомендации - уложиться в 12 это немало) на 1 строку и пару отступов.
Аноним 07/02/24 Срд 04:35:27 3038574 444
>>3038198
Я там не могу понять механизм переадресации. Вроде логин-пароль отправляю, но не вижу куда потом отправлять код подтверждения.
Аноним 07/02/24 Срд 13:53:24 3039057 445
>>3038574
Где там то? Я что, угадал и ты про штрафы?
Но я всё равно скорее всего не смогу освежить воспоминания, я по понятным причинам, удалил акк госуслуг, как только почалось.
Аноним 07/02/24 Срд 14:00:16 3039077 446
>>3038562
Что там ветвления, что там ветвления, только во втором случае отступов больше и код сложнее. Если твоя цель наебать линтер, то пожалуйста. Во всех остальных случаях первый вариант лучше.
Аноним 07/02/24 Срд 14:54:29 3039224 447
image.png 38Кб, 927x668
927x668
Почему я не могу решить эту задачу просто сравнивая сумму значений символов? Ведь в анаграме все буквы одного слова будут использоваться в другом слове без исключения.

сумма АБУ == БУА == УБА == БАУ == УАБ

типа sum(ord(c) for c in s) == sum(ord(c) for c in t)
Аноним 07/02/24 Срд 15:01:30 3039236 448
>>3039224
ВСЁ
разобрался сам
просто сравниваемые слова могут быть разных символов и разных букв которые могут дать равные значения суммы. Но прикол в том что я нашел похожую задачу на кодварсе и....смог решить её через одинаковые значения сумм...
Аноним 07/02/24 Срд 15:21:31 3039294 449
Как устроены тесты на кодварсе? У меня было решение которое не проходило 1,2 ранломных теста на большие массивы. Я пару раз нажимал субмит и каким-то образом все тесты прошлись. Я так понял что просто повезло с рандомом. И они не предоставили тех вариантов где у меня была бы выявлена ошибка. Как тогда вообще быть уверенным в правильности работы своего кода?
Ну например буду программировать кардиостимулятор. И по итогу на большом количестве повторений накопится ошибка, стимулятор заглючит и челу придет кирдык. Не хочется чтобы из-за того что не учел циферку умер человек
Аноним 07/02/24 Срд 17:52:25 3039483 450
>>3039294
Там чисто тесты с рандомными значениями, причем не то чтобы сильно много тестов. В критической инфрастурктуре, типа ПО для самолетов и медицинских устройств работоспособность кода доказывается математически, для этого существуют свои инструменты, типа COQ. Думаю там еще и системные аналитики привлекаются, которые пытаюсь постигнуть, что в системе может пойти не так на уровне железа. В общем, не волнуйся
Аноним 07/02/24 Срд 17:59:34 3039490 451
Аноним 08/02/24 Чтв 04:48:44 3040089 452
>>3038186
Про автотестинг не думал? Тот же самый селениум и дёрганье апишек
А так вроде и отдельные конторы есть, которые парсингом занимаются, и просто в галерах всяких команду иногда держат
Аноним 08/02/24 Чтв 17:27:09 3040619 453
товарищи, ни у кого случайно фото шнобеля не осталось? желательно в виде боевой картинки.
Аноним 08/02/24 Чтв 17:39:12 3040652 454
>>3037951
Ебать годнота, кроме шуток. Это я про статью с Хабра. Спасибо. Другой анон
Аноним 09/02/24 Птн 02:34:05 3041299 455
Регулярки.
Какого хрена в re.findall круглые скобки работают не как в остальных функциях? чем их заменить?
Я хочу чтобы выражение возвращало мне наборы из 6-10 цифр плюс-минус пробелы, скобки или дефис.
r"((\d[\s\(\)\-]*){6,10})\d"

Почему я получаю в ответ кортежи, где есть ненужное значение из одной цифры и как этого избежать?
Аноним 09/02/24 Птн 04:15:43 3041314 456
Аноним 09/02/24 Птн 19:38:12 3042159 457
>>3041299
да потому что ты пидор ёпта
Аноним 09/02/24 Птн 21:32:56 3042319 458
>>3041314
Спасибо большое.
А почему статья по JS ответила на мой вопрос?
Аноним 10/02/24 Суб 01:11:56 3042475 459
a = 'ASSSSSSS'
b = 'ASSSSSSS'
print(a is b)
print(id(a), id(b))

x = 'ХУЙ'
y = 'ХУЙ'
print(x is y)
print(id(x), id(y))

True
1230440834736 1230440834736
False
1230440353392 1230440765744

Почему так? Str кирилицы изменяемые данные?
Аноним 10/02/24 Суб 01:18:18 3042478 460
Аноним 10/02/24 Суб 08:48:27 3042577 461
>>3036248
Тут просто говняк с переводом терминов с русского на английский. Для обывалы параллельное исполнение == английскому concurrency
Аноним 10/02/24 Суб 10:12:58 3042605 462
Аноним 10/02/24 Суб 11:16:28 3042674 463
Стоит ли сеньеру .NET пытаться освоить питон?
Последний раз кодил на питоне - в вузе для диплома.
Суть-то в том, что я всегда питон воспринимал как такой-то калькулятор + прокаченый баш-скрипт.
Но из-за того, что .NET - основной мой инструмент, я даже простые задачки по автоматизации для себя решаю .NET'ом. А это как по мне - оверхед.
Вот и вчера возникла задача - померять, RPS для сервера под большой нагрузкой. Начал писать на .NET'е хуйню для симуляции нагрузки. Но из-за особенностей работы .NET'а, этот тест - жрет больше, чем тестируемая приложуха, понять реальное положение дел с нагрузкой сложно. Думал - как раз взять питон и на нем сэмулировать 100к коннектов и посмотреть RPS и корректность работы. Справится? Или проще попросить вторую машину, на которой будет моя хуйня запускаться, чтобы не мешать серверу.
Аноним 10/02/24 Суб 11:29:56 3042680 464
image.png 194Кб, 513x1751
513x1751
>>3042674
>Стоит ли сеньеру .NET пытаться освоить питон?
Питон, как и джава скрипт, как и С/С++, хотя бы на средне-начальном уровне решения студенческих лаб и литкода должен знать и уметь ЛЮБОЙ, абсолютно любой сеньор. Сюда же в принципе входит SQL, HTML, Excel, git, md, атрибуты расширенного поиска в гугл и яндекс, базовые админские вещи, докер, кубер, может что-то ещё забыл. Наверное, иметь опыт работы в линуксе тоже обязательно. Английский и алгосы конечно же.
Если за твои 5+ лет опыта работы (а иначе какой ты сенька, молокосос накрученный) тебе не понадобились все эти пункты, то ты работал в каком-то закукленном пузыре, и тебе надо срочно менять работы и наращивать насмотренность.
Аноним 10/02/24 Суб 12:08:38 3042698 465
Аноним 10/02/24 Суб 12:11:05 3042700 466
>>3042680
> image.png
круто, по табличке выходит, что я синьёр 300к-наносек.
ну кроме, разве что, отличия декларативного от императивного и эксплейнов любой степени тяжести я видел некоторое дерьмо

мимо-20к-пенсия-по-шизе
Аноним 10/02/24 Суб 13:48:06 3042753 467
>>3042319
Потому что регулярки кросс-язычны, 90% их функций одинаково работают во всех языках.
Аноним 10/02/24 Суб 16:39:08 3042921 468
>>3042680
Питон таки мне кроме лаб в вузе на работе ни разу не пригодился.
Вру. Один раз - когда лень было с Make ебаться - на питоне накидал сборку сишного проекта, и когда очередную квалификацию проходил - чтобы графики нормальные построить с помощью pyplot, но это так. Как и говорю - скорее расширенный баш.
Аноним 10/02/24 Суб 20:04:22 3043174 469
Как научиться программировать. А не тупо пользоваться библиотеками?
Аноним 10/02/24 Суб 20:07:56 3043176 470
>>3043174
Это и есть программирование
Аноним 10/02/24 Суб 20:52:43 3043227 471
Аноним 10/02/24 Суб 23:30:19 3043386 472
>>3043174
>Как научиться программировать.
Начать решать задачи реального мира, научиться в абстракцию и декомпозицию.
Аноним 11/02/24 Вск 08:01:39 3043518 473
Аноним 11/02/24 Вск 08:16:21 3043524 474
>>3043386
На питоне - никак, это не программирование
Аноним 11/02/24 Вск 15:21:11 3043796 475
изображение.png 26Кб, 462x356
462x356
Кто-нибудь обладает опытом написания парсеров ?
Попытался родить свой калькулятор на основе готового PEG-парсера - модуль parsimonious .
Задача выглядит как приключение на 5 минут, но все время какая-то хуета получается.


Что означает такая ошибка?
parsimonious.exceptions.IncompleteParseError: Rule 'user_input' matched in its entirety, but it didn't consume all the text. The non-matching portion of the text begins with '+3' (line 1, column 2).

Это я еще до обработки значений не дошел
Аноним 11/02/24 Вск 15:22:13 3043797 476
Аноны, подскажите по организации внутренней логики софта.

Задача софта "включать" \ "выключать" некоторые файлы в файловой системе. Меняя их свой свойства или имена, например делая их скрытыми в OS Винды или дописывая расширение file.ext._hide_

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

1) Базовая единица группировки файлов это строка с неким названием, назовем её "лэйбл".
2) Пользователь "включает\выключает" файлы кликая именно по "лэйблу".
3) Каждый файл внутри "лэйбла" имеет своё отдельное состояние "вкл \ выкл"

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

Изначально файлы содержатся в такой вот структуре словаря.
Это json, так что есть серьезное ограничение - объект должен быть сериализуем с помощью json. Организацию словаря можно изменять как угодно, если потребуется.

{
"Lable_1":{
...."On" :["/path/dir/file1.ext","/path/dir/file2.ext", ...], #файлы которые не трогаем
...."Off":["/path/dir/file3.ext", ...]}, #файлы которые надо выключить когда пользователь жмет на лэйбл
"Lable_2":{
...."On" :["/path/some dir/file4.ext",],
...."Off":["/path/some dir/file5.ext", "/path/some dir/file6.ext", ...]},
}

Вот сейчас файлы организованы в таком виде. Задача - добавить эту "перелинковку", как-то записать, что "вот этот файл" связан с "тем файлом".

Загвоздка в том, что например "file 1" может быть связан с "file 2" и "file 3"
И одновременно файл "file 257" может быть связан с "file 2" и "file 3"
Если каждый файл сделать ключом словаря и его "зависимости" записать в значение, то получится так, что строки с названием файлов "file 2" и "file 3" будут повторяться в словаре просто миллионы раз. Из за этого словарь станет весить в памяти непомерные значения.

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

Например так
{
"Lable_1":{
...."all files" :["/path/dir/file1.ext","/path/dir/file2.ext", "/path/dir/file3.ext", ...],
....#просто отсортированный список всех файлов
...."idx off":[2,3,156]
....#индексы файлов которые выключаем при клике на лэйбл
...."dependence":[(2,3,4), (156,3,7)]
....#списки, где перечислены все индексы которые связаны
}

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

Как ещё можно организовать такую базу без использования SQLite, PostgreSQL, MySQL, любыми другими вариантами кроме этих. У меня с ними мало опыта, а новую инфу я сейчас не могу осваивать, надо быстро и эффективно сделать с тем что есть.
Аноним 11/02/24 Вск 15:37:03 3043814 477
изображение.png 37Кб, 643x463
643x463
>>3043796
Разобрался. при использовании PEG все зависит от порядка декларации. Такие парсеры задуманы быстрыми и нужно учитывать это.

Короче, если захотите встроить в свою программу какой-нибудь псевдоязычок выражений - рекомендую эту хрень!
Аноним 11/02/24 Вск 16:36:17 3043894 478
Unable to save settings в Джанго это что за прикол? Добавил css свойство, убрал его, а оно продолжает работать, причём в html файле указано строчка, которую я стёр. Это как вообще?
Аноним 11/02/24 Вск 16:54:41 3043913 479
>>3043894
Ещё такой прикол, что когда я запускаю сервер появляется надпись django using settings "project.settings.dev" Я в этот settings. dev зашёл, а там несколько строчек кода. Это не тот файл настроек, который я раньше использовал. Мне нужно просто указать, чтобы Джанго не использовал dev, а использовал тот файл, который раньше?
Аноним 11/02/24 Вск 20:10:48 3044188 480
>>3043796
Парсеры это самое червепидорское занятие
Аноним 11/02/24 Вск 20:47:06 3044215 481
>>3044188
Истинно так.

Но все работает.

Лучше подскажи как в этой PEG-грамматике одним выражением убрать все ненужные пробелы?
Аноним 11/02/24 Вск 20:54:08 3044221 482
dae5b4ca49819e4[...].jpg 147Кб, 441x384
441x384
>>3044188
Ты, кстати, не понял, похоже, что я пишу. Это не парсер HTML.

Создание нового языка программирования - максимально борщехлебское илитное занятие!
В данной ситуации у этого языка будет вполне определенная практичная цель.
Аноним 12/02/24 Пнд 10:54:03 3044616 483
Аноним 12/02/24 Пнд 14:00:27 3045055 484
image.png 14Кб, 939x257
939x257
>>3042674
>Стоит ли сеньеру .NET пытаться освоить питон?
Сеньке поздно что-то осваивать. Для него это просто один из миллиона инструментов, о которых он знает и знает, когда их использовать. Но ведь сеньор не пишет код. По крайней мере нормальный - не пишет. код попроще (которого основная масса) - пишут джуны, код посложнее (его не так много, но он требует менее тривиального подхода) пишут мидлы, а сеньоры - продучмывают, как это будет работать на уровне архитектур, после чего ставят и объясняют им задачи.
Чем больший ты сеньор, тем больше твой вклад выглядит как на пике.
На пике - гитхаб сеньора для сеньоров Бьёрна Трупастрауса.
Аноним 12/02/24 Пнд 16:53:08 3045317 485
>>3042478
Механизм интересный, но почему кириллическая строка не интернируется - непонятно. Есть, правда, ссылка на AST optimizer, но там, видимо, надо курить код критериев (807LOC сишного кода) и делать уже тогда мердж-реквест. Ну или хотя бы ишшу завести.
Аноним 13/02/24 Втр 00:26:57 3046189 486
Сегодня поднял свою зп до 800к как куа, дайте тред для обоссывания пожалуйста.
Аноним 13/02/24 Втр 01:07:12 3046214 487
Какой же чат GPT пидорас, пиздец просто. А это всё свойства нашей психики, когда долго с ним взаимодействуешь может возникнуть впечатление, что ты общаешься с человеком, довольно тупым, но всё же человеком. Отношение к GPT должно быть строго как к поисковику Гугла.

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

О каком применении GPT может идти речь если он даже как справочник и поисковик срет под себя.
Жопа горит, но винить конечно я могу только себя, сликом много я возложил на этот инструмент.
Аноним 13/02/24 Втр 10:25:55 3046490 488
>>3046214
> сликом много я возложил на этот инструмент
Как автоматизатор задач работает реально неплохо, я иногда ему скармливаю классы и пишу что хочу сделать, он выдает мне костяк методов, а дальше я тестирую че он сделал не так, и правлю ручками сам.
Самостоятельно он нихера не может. Писать что-то в чем не разбираешься с помощью гпт - то еще казино
Аноним 13/02/24 Втр 13:57:20 3046795 489
>>3040619
бамп.
что, алды за два года уже повкатывались в ФААНГи на $300k/ns и не сидят в этом треде?
Аноним 13/02/24 Втр 14:12:28 3046808 490
>>3043796
Короче нахуй этот parsimonious.
Студенческая поделуха. Как только классов столько на гитхабе набрала?
Калькулятор со скобками - уже, пиздец как громоздко выглядит.
Пойду лучше ковырять pyparsing.

Или я не разобрался и приоритеты операций в любых грамматиках сложно описываются?
Аноним 13/02/24 Втр 16:31:00 3047017 491
>>3046808
Есть либа, SLY. Ее попроуй, она довольно популярная
Аноним 13/02/24 Втр 19:26:59 3047340 492
5fd4c79e0f41a5b[...].jpg 183Кб, 1024x1024
1024x1024
В общем такый вопрос
Решаю задачки и иногда возвращаюсь к тем, которые уже решал, чтобы перерешать их. Но у меня не получается её сделать, но в прошлом я это упражнение сделал как-то через жопу но сделал. Это нормально?

Другой вопрос. Я смог пару раз решить задачи 4 кю на кодварсе(судя по отзывам легкие) для меня все равно это достижение. Пердел над задачами по 1-2 дня.

ну не сутть. Взбрелось мне глянуть то как эти задачи решают на святом си.....8 кю чтобы просто поосмотреть ....и я нифига даж приблизительно логику понять не смог что они там делают. Постоянно что-то делят берут остатки и инкременты инкременты инкременты.....
Аноним 13/02/24 Втр 19:54:01 3047380 493
>>3047340
>Это нормально?
Да совершенно нормально, ты же задачки решаешь по 2 дня чтобы сдать их и забыть что ты только что делал. В этом и суть.

>Другой вопрос.
>ну не сутть.
>логику понять не смог
Ты вопрос забыл задать. Челозавр, судя по всему ты очень рассеянный, наверное из за этого и все твои вопросы и возникают.
Аноним 13/02/24 Втр 20:01:50 3047398 494
Аноним 13/02/24 Втр 20:08:17 3047412 495
Аноним 13/02/24 Втр 21:31:24 3047522 496
>>3047517
Какой Джун? У меня норм работа есть. Просто кодю ради хобби. Потому что игры что-то не приносят больше радости
13/02/24 Втр 22:06:04 3047564 497
Сделайте кто нибудь грамотный перекат и не забудьте /python/ в теме
Аноним 13/02/24 Втр 22:15:09 3047574 498
>>3047564
Перекатов больше не будет питон мертвый язык. Убит джунами
Аноним 13/02/24 Втр 23:13:14 3047640 499
>>3047412
Конечно сложнее. Питон это как спички, а Си это как трением огонь добывать. Си это счеты, где ты каждый байт видишь, а Питон это калькулятор, нажми на кнопку - получишь результат. Именно по этой причине байтоебы сишники так от Питона горят.
Через 20 лет будет новый язык поргомирования на основе нейросети - "программист" будет просто в микрофон промпты надиктовывать и смотреть что на экране получается, а Питонистов все будут считать настоящимми программистами. А байтоебы и сишники к тому времени вымрут.
Аноним 13/02/24 Втр 23:17:05 3047646 500
>>3047640
Получается сейчас питонщики не настоящие программисты
Аноним 13/02/24 Втр 23:27:05 3047660 501
>>3047646
Конечно, белые вороны, на питониста всегда смотрят как на человека третьего сорта, это дворник от мира программирования. Ещё эти курсы вездесущие, теперь буквально в кого не плюнь он скажет что программист на питоне и может с закрытыми глазами Хэлло Ворлд написать.
Аноним 13/02/24 Втр 23:28:50 3047664 502
>>3047660
Как будто сишники кому-то нужны
Аноним 14/02/24 Срд 03:48:22 3047766 503
>>3047646
>настоящие программисты
Последние вымерли лет 10 назад.
Программист как человек, который создаёт программы больше не существует, вместо него - архитекторы, кодеры, дизанеры и ещё хуева гора людей, вот все вместе они - "программист" (ага, один).
Кодер это не программист вне зависимости от ЯП.
Аноним 14/02/24 Срд 09:10:13 3047829 504
>>3047766
Пушто код усложняется.

Если раньше автомобиль мог собрать один человек, то сейчас уже есть инженер по двигателям, по электронике, по эргономике и так далее. А дальше будет всё сложнее — инженер по карбюратору, по генератору, по поршневой группе (УСЛОВНО).
14/02/24 Срд 09:25:06 3047838 505
Пиздец тред даунов, диванные программисты кодеры архитекторы олимпиадники, коммерческого опыта хуйма, а всё сидят с умным ебалом обсуждают
Аноним 14/02/24 Срд 12:20:04 3048058 506
>>3047838
Коммерческий опыт - это делать никому не нужное говно по приказу туповатого Кабан Кабаныча, бэкенды для банкоматов, приложухи наебывающие простых работяг. А Питонисты это мыслители, фелосафы, филантропы, которые созидают, двигают человечество вперед, делают нейросети, анализ данных для людей. Голы босы, но не сломлены. Настоящие Иисусы. Вот это всё.
Аноним 14/02/24 Срд 12:23:39 3048064 507
>>3047766
>кодеры
Вот это программисты. А архитекторы и дизанеры это чушпаны из смежных областей.
Аноним 14/02/24 Срд 12:59:54 3048108 508
Какие паттерны программирования чаще всего используются в работе? Разобрал Фабрику и MVC, ещё бы парочку разобрать.
Аноним 15/02/24 Чтв 00:58:03 3049093 509
Когда уже эта хуйня перекатиться?? Невозможно смотреть на онлайников-пидарасов, засрали весь тред своими асикками, джангами и фласками. Суки вы откуда берётесь-то??? Размножаетесь почкованием что-ли??
Аноним 15/02/24 Чтв 04:08:44 3049141 510
>>3049093
Так сам засри тред годными темами. Кто я?
Аноним 15/02/24 Чтв 05:12:28 3049152 511
>>3049093
Двачую. Сразу почему-то онлайники вызывают ассоциации с какими-то соевыми педиками чулочниками
Аноним 15/02/24 Чтв 14:35:13 3049524 512
>>3049093
Онлайники? А кто это?
Аноним 15/02/24 Чтв 14:56:11 3049546 513
Аноним 15/02/24 Чтв 14:56:33 3049547 514
>>3049524
Во истину питонисты тупейшие
Аноним 15/02/24 Чтв 19:50:44 3050099 515
>>3049547
А почему онлайники? Какое то странное прозвище для веб-разработчиков
Аноним 15/02/24 Чтв 20:32:25 3050171 516
>>3050099
Это не прозвище, по этимологии похоже на фразеологизм, который высирают школьники, вроде "матеша" или "физра" и так далее. В общем, не обращай внимание, сейчас питон в школе часто преподают, наверное это подгоревший школотун забежал высказать всё что он думает про клятых питонистов с их питоном.
15/02/24 Чтв 21:25:17 3050239 517
>>3050099
Онлайники, что за название такое жидкое? Как будто анальники.
Аноним 15/02/24 Чтв 21:34:54 3050244 518
Братцы анальники, выручайте. Нужно до субботы сделать тестовое. Нужно реализовать телефонный справочник, добавление записей, удаление, стандартная задача. Как это сделать на голом Пайтон? Я создал проект в пайчарме, у меня есть файл моделей, в котором я написал класс и нужные методы, у меня есть БД sqlite. А как мне их подружить, файл моделей и БД, без Джанго, на чистом питоне? Если что, добавление/удаление новых записей должно реализовываться через консоль. С меня как обычно, хуй.
Аноним 15/02/24 Чтв 21:37:43 3050246 519
Аноним 15/02/24 Чтв 21:49:50 3050264 520
>>3050246
Боже, какой же я тупой. Спасибо)
Аноним 16/02/24 Птн 13:44:47 3050903 521
1707936458780.mp4 1169Кб, 848x800, 00:00:07
848x800
16/02/24 Птн 16:04:45 3051143 522
Кто-нибудь создайте бесплатный курс на Ютубе по перекату тредов двача, местный континент не справляется
Аноним 16/02/24 Птн 16:17:41 3051174 523
>>3051143
Питонисты не умеют программировать перекат
Аноним 16/02/24 Птн 16:25:29 3051193 524
>>3051174
Вот бы был фреймворк по перекатам
Аноним 16/02/24 Птн 19:30:01 3051437 525
image.png 12Кб, 735x204
735x204
Помогите разобраться со списковыми включениями.
Как мне в одну строчку записать этот цикл чтобы он распаковал мне элементы списка если они являются списком, и просто добавил числа если это числа
Аноним 16/02/24 Птн 20:31:17 3051545 526
image.png 18Кб, 835x156
835x156
Аноним 16/02/24 Птн 20:35:27 3051551 527
>>3051545
А можно без подключения библиотек?
Аноним 16/02/24 Птн 21:33:06 3051615 528
Аноним 16/02/24 Птн 23:05:57 3051757 529
>>3051551
Рекурсия через генератор.
Аноним 17/02/24 Суб 04:15:08 3051864 530
Аноны, как можно "нормализовать" дату??

ValueError: day is out of range for month

cfg.append( f"{day:02d}.{month:02d}.{year}:22-{(day+1):02d}.{month:02d}.{year}:01" )

вобщем, day+1 выходит за рамки дней в месяце.

# ошибка тут: dts_last1 = datetime.strptime(dts_last, '%d.%m.%Y:%H')
Аноним 17/02/24 Суб 04:48:21 3051865 531
>>3050171
это анальники. Это нормально, все так делают, в попе ковыряются
Аноним 17/02/24 Суб 14:08:54 3052078 532
аноны, реально ли сейчас найти работу без ежедневных митингов/созвонов?
или сейчас это типо норма? до чего мы докатились йопта.
Аноним 17/02/24 Суб 14:57:32 3052101 533
>>3052078
Аджайл блять. Скрам бляяять. Дейли, ретро, демо, тренинг, груминг, планинг, онтуан бляяяяяяяяять
Аноним 17/02/24 Суб 15:04:49 3052111 534
>>3051437
Чел же элементарно, это компрехенсон, база базовая питона, если человек не понимает эту простейшую строку, то боюсь у него нет склонности к программированию...

l = [1, 2, [3, 4]]
l = [lst for lts in l for lst in (lts if type(lts) is list else [lts])]
Аноним 17/02/24 Суб 16:20:12 3052238 535
>>3052101
Срам, каминг аут, орангутанинг
Аноним 17/02/24 Суб 16:24:30 3052253 536
>>3052078
А ты думал тебе дадут макбук и отпустят в свободное плавание, чтобы ты сидел и писал хуйню?
Аноним 17/02/24 Суб 17:26:55 3052456 537
>>3052111
Не работает твоя нечитабельная фигня
Аноним 17/02/24 Суб 19:01:14 3052607 538
image.png 5Кб, 264x176
264x176
Зачем писать

хед = НОДЕ(дата)
ноде = хед

а потом писать

ноде.нехт если можно написать просто хед.нехт?
Аноним 17/02/24 Суб 19:15:28 3052629 539
Аноним 17/02/24 Суб 21:14:33 3052803 540
>>3052111
Хз что ты там нахуевертил никогда таких длинных компрехенсон не писал и скорее всего не смогу. Использую циклы
Мимо анальник 350к
Аноним 17/02/24 Суб 22:23:18 3052933 541
долго до 350 рос? опиши вкратце свой путь.

и у кого зарплата выше 150, тоже отпишите плиз как росла, и примерно какие компетенции на каждом уровне зп.
Аноним 17/02/24 Суб 22:51:16 3053050 542
Стикер 127Кб, 430x508
430x508
>>3052456
Ты. е. вы в школе по информатике ещё print() не проходили?
гой 18/02/24 Вск 00:41:44 3053216 543
посоветуйте расширения для тора чтобы читать в переводе страницы
гой 18/02/24 Вск 00:53:38 3053227 544
поясните дураку, как вставить в определеный символ в коде (x) значение, это вроде бы одночлен или какая то мат. тема 6-7 класса.

помогите(
Аноним 18/02/24 Вск 01:49:34 3053280 545
>>3053227
Символ это например буква "R". Или знак "+".
Как вставить в символ код? Какой-то одночлен, ты пробовал хотя бы один раз перечитать бред, который высираешь?
Аноним 18/02/24 Вск 13:52:43 3053534 546
Аноним 18/02/24 Вск 15:31:27 3053626 547
Анонасы, вашими питонами не занимаюсь, но у меня встал вопрос: какого хуя разрабы питухона ломают обратную совместимость? Я еще могу понять, что некоторые изменения были нужны при переходе с 2 на 3, но зачем дальше продолжать?
Что-то подзаебало искать подходящую версию ко всякой легаси параше, хочется просто накатить последнюю версию и забыть про все эти проблемы с совместимостью
Аноним 18/02/24 Вск 20:10:52 3053913 548
>>3053626
Это наоборот хорошо. Когда учишь питон ты учишь только один язык. А когда учишь яву учишь 20 яв
Аноним 18/02/24 Вск 21:36:28 3053994 549
Аноним 18/02/24 Вск 22:39:39 3054014 550
>>3053994
Нет. Просто выучил 20 яв
Аноним 18/02/24 Вск 22:40:28 3054015 551
>>3052078
За месяц работы в новой компании было четыре созвона, остальное просто текстом в чате, джире или на гитхабе. Гы
Аноним 18/02/24 Вск 22:41:32 3054017 552
Аноним 18/02/24 Вск 22:42:53 3054019 553
image 61Кб, 225x225
225x225
>>3053227
Порой один дурак может задать такой вопрос, на который на ответят и сотни мудрецов
Аноним 19/02/24 Пнд 08:05:16 3054120 554
>>3053227
Иди нахуй, ученик 6-7 класса
Аноним 19/02/24 Пнд 11:27:13 3054227 555
Сап змеюки
Подскажите материал, тренажёр или лекции, по чистоте кода и по "проектированию" чё то я не могу нормально придумывать "архитектуру" получается какое то сопливое говно вызывающее друг друга, друг друга переписывающее и прочее.
Аноним 19/02/24 Пнд 12:09:30 3054280 556
>>3054227
>вызывающее друг друга
И что в этом плохого? У нас есть три святые заповеди ООП - наследование, инкапсуляция, полиморфизм. Если тебе нужно получить атрибут экземпляра, то ты в классе создаешь метод чтобы он это поле возвращал и похуй что будет лишний вызов это канон ООП, а значит так и надо делать.

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

Я вот просто руководствуюсь таким принципом в написании - "ни один блок кода не должен повторяться дважды и всё должно соответствовать заповедям ООП" и в результате код получается дичайше модный, чистый, понятный. Смотрю на него и шишка дымиться.
Аноним 19/02/24 Пнд 15:22:35 3054611 557
>>3054280
Да мне нужно понимание как примерную задачу разбить на такую абстракцию, а то это понимание приходит только вовремя написания, т.е. на практике, а в проектирование и представление всего этого процесса в голове/на бумаге не получается .
Я уверен что есть методика как этот навык задрочить
Аноним 19/02/24 Пнд 15:54:41 3054660 558
>>3054611
Ну так проектируй не проектируй, а когда дело дойдет до текста кода окажется что элементы и данные всё равно нужны то ту то там. Тем более если ты пишешь софт в одно лицо, то в проектировании нет смысла т.к. нет разделения труда ты в своей голове держешь сразу все части. В таких условиях единственно возможный и верный вариант писать мммммаксимально по канонам ООП, чтобы каждый блок кода стал универсальным кубиком чтобы логику софта можно было перестраивать на более поздних этапах.

Я так думаю, ну уверен что есть бесполезные уроки на этот счет. Вообще уроки по проектированию внутренней логики софта это нверное что-то максимально беспредментное. Потому что задачи всегда уникальные.
Аноним 19/02/24 Пнд 17:23:28 3054762 559
>>3054660
>писать мммммаксимально по канонам ООП
вот наверное дроча это можно воспитать в себе понимание как лучше перенести ту или иную задачу на код.
Аноним 19/02/24 Пнд 19:20:13 3054913 560
Как стать программистом за полгода?
Аноним 19/02/24 Пнд 20:18:00 3055006 561
>>3054913
Ну смотря что ты имеешь в виду под стать. Устроиться на работу - чисто на удачу откликаться после 3-ех месяцев и надеяться что тебя возьмут куда-нибудь, вероятность маленькая. Обучиться программированию - поискать инфу в инете, за пол года вполне реально вкатиться в скиллы написания неплохого кода
Аноним 19/02/24 Пнд 23:17:03 3055262 562
Аноним 03/04/24 Срд 08:10:52 3110483 563
Причем тут есть серьезное ограничение по твоему это будет ценнее.
Аноним 03/04/24 Срд 08:14:07 3110485 564
>>2981203 (OP)
Я создал - это про битовые операции, иначе глаза выгорают
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов