Это копия, сохраненная 22 июля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий: >>2661284 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: 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.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
старая версия шапки, треды 90-148 и ранее: https://dumpz.org/bASGKD8cCFDf
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущий исходник: https://goonlinetools.com/snapshot/code/#8gd2g1snu3l8i26k0bc6k9
Конечно, он каличный, но все эти годовые ES прям вправляют по живому.
И я оценил его, делая юзерскрипты. Что-то мне не нравится - можно зделоть юзерскрипт четенько в разумных пределах.
Но с ебаным фронтом свзяываться не хочу. Можно будет делать илитные парсерсы-автоматизации на фоне обсирающихся от любой клаудфлары хуёв или ололо-селениумов?
>Можно будет делать илитные парсерсы-автоматизации на фоне обсирающихся от любой клаудфлары хуёв или ололо-селениумов?
На фрилансе каком-нибудь можно, где от тебя заказчик не требует кода но там миллиард индусов в конкурентах, а на фултайм шансы околонулевые.
Хуйнёй страдаю, конечно же.
https://refactoring.guru/ru/
Сайт ведёт сраное наци-какло, поэтому ходи туда через VPN, а лучше — скачай к себе.
Это не совсем то. Я помню парочку репозиториев находил, про архитектурные паттерны на петухоне, но уже потерял.
Архитектурные паттерны на пистоне ничем не отличаются от паттернов на других языках
Там примеры качественные есть только под жаву и сисярп. Дальше мыколе не хватило чего-то.
Можно полностью на английском.
Это идиотская затея вообще делать что-то такое на телефоне.
Ты щкольник без компуктера штоли? Купи себе за три копейки какую-то мертвечину.
Я ожидал от тебя конкретной ссылки, а не посыла самому искать.
Ладно, иди на гит, вводи там patterns и обрящешь, что надо.
3.8.хх, Windows Installer 64 біта.
Последний. Если у тебя шиндовс 7, то там какая-то версия вроде 3.8 в бинарниках доступна последняя.
Не варта пампаваць апошні, бо бібліятэкі пад яго пакуль не абнавіліся. 3.8-3.9 найлепшы выбар зараз.
Ну ладно, там МОРЖОВЫЙ ОПЕРАТОР уже есть.
3.11.3 Installer под битность своей операционки. 64, видимо.
как я тебе в колонии компьютер достану?
Интересно, когда последний раз обновляли шапку треда и кто это делал? 80% инфы хуйня или безбожно устарело
Сделать свою обертку над типом только, передача по ссылке только для изменяемых значений
Хер забей, делай как делаешь. Это высокоуровневый язык. Ты бы еще спросил как байтики дрочить.
Ты в курсе, что обращение по ключу с О(1) делается?
Хочу написать распознавалку капч, но не пойму, как найти на картинке координаты начала ряда цифр.
Может быть, контуры->np_ones, как на третьей картинке, чтобы найти пять примерно одинаковых пятен и идти от них?
Есть ли способ попроще? Какую теорию почитать?
Хочу написать распознавалку капч, но не пойму, как найти на картинке координаты начала ряда цифр.
Может быть, контуры->np_ones, как на третьей картинке, чтобы найти пять примерно одинаковых пятен и идти от них?
Есть ли способ попроще? Какую теорию почитать?
У меня не раз было, что я ебал такие простые капчи, потом клиенты начинали абузить это и меняли на рекапчу, а там уже только обезьянки платные, лол.
Зависит от капчи. Но вообще в нашем нейронном цеху, мы сначала локализуем самые крайние сигнатуры. Делаем обрезку, какаем паддингом, если надо, ну и потом в несколько слоев идентифицируем вижуал токены разной сложности.
В твоем случае проще просто локализовать все цифорки.
гугли captcha segmentation
Как я понял, я могу создать соединение с базой при помощи engine из либы sqlalchemy (причем разными способами):
engine = create_engine("postgresql://scott:tiger@localhost/mydatabase")
engine = create_engine("postgresql+psycopg2://scott:tiger@localhost/mydatabase")
engine = create_engine("postgresql+pg8000://scott:tiger@localhost/mydatabase")
Либо я могу создать соединение:
conn = psycopg2.connect(database="postgres", user='postgres', password='password', host='127.0.0.1', port= '5432')
А в чем разница и какой метод следует использовать? Я так понимаю, зависит от целей? Но про это нигде не написано.
>работать через алхимию, её систему моделей и т.п
А можешь чуть подробнее объяснить, что там за преимущества в алхимии? Из того, что я знаю, можно писать sql-запросы не самостоятельно, а использовать ORM - писать питоновый код, который формирует sql-запрос. Это оно и есть?
З пункту гледжання простага праграміста SQL Alchemy - перашкода. Запыты пісаць складаней, зручней пісаць напрамкі. ORM дапамаге захоўваць аб'екты ў БД, каб усе палі адпавядалі.
З пункту гледжання ўладальніка прадукта SQL Alchemy надае перавагу, бо абмяжоўвае свабоду праграміста і дадае парадку у камандзе. Дазваляе мяняць праграмістаў і рухавік базы. Трывалы праект патрабуе кантролю версій БД. Такія прылады часта абапіраюцца на Аліхімію.
Калі ты сапраўды хочаш навучыцца працы з БД, пачынай без SQL Alchemy.
Что ты несешь нахуй? Зачем пытаться советовать, если ты сам нихуя не понимаешь?
>>688628
Открой документацию и почитай, у алхимии оч крутая дока
https://docs.sqlalchemy.org/en/20/core/engines.html
Если оч коротко, то движок занимается всей низкоуровневой магией по передаче твоего запроса в виде скуль строки в базу данных и получения результата из бд. Алхимия сверху накидывает верхнеуровневый способ взимодействия с движком, удобную систему сессий и так далее. А еще предлагает ОРМ функционалего использовать не обязательно
>>688657
Если сильно обобщать, то да, алхимия в том числе предоставляет и такие возможности
На самой справе psycopg - гэта драйвэр рухавіка базы дадзеных Postgres. Без яго Пітон наогул не зможа працаваць з ёй. SQL Alchemy ё Пітонавай бібліятэкай, таму таксама ўжывае psycopg.
чё за язiл у тобиеi ? Можно по-русски написать, используй гугл переводчик. Программист который не умеет в перевод онлайн. Где вы такие набираетесь-то??
нет, вы заебали своими онлайн-парашами и вопросами. Что, уже в офлайне никого не стало?
with open(filename, "a", encoding="UTF-8") as f:
Это старый гомосексуалист, охотящийся за молоденькими грязными от гавна жопками питунистов. Опасайся его, если доражишь ачьком.
Потому что ищет в директории запуска? Возьми и распечатай из скрипта текущую директорию — всё поймёшь.
import os
directory = os.getcwd()
print(directory)
Разобрался. С путем нормально было. В pycharm почему то при любом режиме открытия файла он создавался, если его не существует, а тут оказывается нужно определенный выбрать
Она принимает данные, обрабатывает их и на выход даёт тоже данные, либо объект.
Я правильно понял, что замыкания позволяют нам возвращать не только данные, а целые функции?
Стоит ли их использовать или это выглядит непрозрачно для других людей?
Замыкание это область видимости, позволяющая сохранять данные внутри функции. А возврат функции из функции это вообще самая обычная практика, ничего неочевидного в ней нету
Я не питонист, но вообще пишут что замыкание это способ привязать контекст (замкнуть окружение, пространство имен) к функции, для последующей удобной передачи туда-сюда.
То есть это не только область видимости, но сама функция, к которой биндится контекст.
> пишут что замыкание это способ привязать контекст
Кто пишет, где пишет? Ультрапохуй, есть область видимости closure, отсюда название способа сохранения переменных внутри функции появилось.
> для последующей удобной передачи туда-сюда
Это вообще хуйня
> То есть это не только область видимости, но сама функция, к которой биндится контекст.
Да супер похуй, в данном вопросе нужно понимать что такое область видимости замыкания и научиться декораторы делать нормальные. Все
Используй иде, которые сделаны под питон. Нахуя жрать кактус?
Код:
import numpy as np
import matplotlib.pyplot as plt
# Константы
G = 6.67430e-11 # Гравитационная постоянная
Msun = 1.98847e30 # Масса Солнца
# Создание массива случайных позиций звезд
N = 10000000 # Количество звезд
Rmax = 30e3 # Максимальное расстояние от центра галактики в парсеках
R = Rmaxnp.sqrt(np.random.rand(N))
theta = 2np.pinp.random.rand(N)
x = Rnp.cos(theta)
y = Rnp.sin(theta)
# Создание массива случайных скоростей звезд
vmax = 1000 # Максимальная скорость в км/с
v = vmaxnp.sqrt(np.random.rand(N))
# Моделирование движения галактики
tmax = 50 # Время моделирования в миллион лет
dt = 0.01 # Шаг по времени в миллион лет
t = np.arange(0, tmax, dt)
xgal = np.zeros_like(t)
ygal = np.zeros_like(t)
vgal = np.zeros_like(t)
for i in range(len(t)):
# Расстояние от каждой звезды до центра галактики
r = np.sqrt(x2 + y2)
# Суммирование гравитационных сил от всех звезд
ax = -Gnp.sum(Msunx/r3)
ay = -Gnp.sum(Msuny/r3)
# Добавление гравитационной силы от центральной массы
ax -= G4Msunx[0]/r[0]3
ay -= G4Msuny[0]/r[0]3
# Интегрирование ускорения для получения скорости и позиции
vx = vnp.cos(theta) + axdt
vy = vnp.sin(theta) + aydt
x += vxdt
y += vydt
# Перенос центра координат в центр галактики
x -= x[0]
y -= y[0]
# Вычисление положения центра масс галактики
xcm = np.sum(Msunx)/np.sum(Msun)
ycm = np.sum(Msuny)/np.sum(Msun)
# Вычисление скорости и положения центра масс галактики
vgal = np.sqrt(np.sum((v - np.sqrt(ax2 + ay2))2)/N)
# Вычисление радиуса и скорости вращения для каждой звезды
r = np.sqrt(x2 + y2)
vrot = np.sqrt(G*np.sum(Msun)/r)
# Вычисление средней скорости вращения для каждого радиуса
rbin = np.linspace(0, Rmax, 100)
vrot_mean = np.zeros_like(rbin)
for i in range(len(rbin)-1):
idx = np.where((r >= rbin) & (r < rbin[i+1]))[0]
vrot_mean = np.mean(vrot[idx])
# Построение графика кривой вращения
plt.plot(rbin[:-1], vrot_mean)
plt.xlabel('Radius (pc)')
plt.ylabel('Rotation Velocity (km/s)')
plt.show()
Код:
import numpy as np
import matplotlib.pyplot as plt
# Константы
G = 6.67430e-11 # Гравитационная постоянная
Msun = 1.98847e30 # Масса Солнца
# Создание массива случайных позиций звезд
N = 10000000 # Количество звезд
Rmax = 30e3 # Максимальное расстояние от центра галактики в парсеках
R = Rmaxnp.sqrt(np.random.rand(N))
theta = 2np.pinp.random.rand(N)
x = Rnp.cos(theta)
y = Rnp.sin(theta)
# Создание массива случайных скоростей звезд
vmax = 1000 # Максимальная скорость в км/с
v = vmaxnp.sqrt(np.random.rand(N))
# Моделирование движения галактики
tmax = 50 # Время моделирования в миллион лет
dt = 0.01 # Шаг по времени в миллион лет
t = np.arange(0, tmax, dt)
xgal = np.zeros_like(t)
ygal = np.zeros_like(t)
vgal = np.zeros_like(t)
for i in range(len(t)):
# Расстояние от каждой звезды до центра галактики
r = np.sqrt(x2 + y2)
# Суммирование гравитационных сил от всех звезд
ax = -Gnp.sum(Msunx/r3)
ay = -Gnp.sum(Msuny/r3)
# Добавление гравитационной силы от центральной массы
ax -= G4Msunx[0]/r[0]3
ay -= G4Msuny[0]/r[0]3
# Интегрирование ускорения для получения скорости и позиции
vx = vnp.cos(theta) + axdt
vy = vnp.sin(theta) + aydt
x += vxdt
y += vydt
# Перенос центра координат в центр галактики
x -= x[0]
y -= y[0]
# Вычисление положения центра масс галактики
xcm = np.sum(Msunx)/np.sum(Msun)
ycm = np.sum(Msuny)/np.sum(Msun)
# Вычисление скорости и положения центра масс галактики
vgal = np.sqrt(np.sum((v - np.sqrt(ax2 + ay2))2)/N)
# Вычисление радиуса и скорости вращения для каждой звезды
r = np.sqrt(x2 + y2)
vrot = np.sqrt(G*np.sum(Msun)/r)
# Вычисление средней скорости вращения для каждого радиуса
rbin = np.linspace(0, Rmax, 100)
vrot_mean = np.zeros_like(rbin)
for i in range(len(rbin)-1):
idx = np.where((r >= rbin) & (r < rbin[i+1]))[0]
vrot_mean = np.mean(vrot[idx])
# Построение графика кривой вращения
plt.plot(rbin[:-1], vrot_mean)
plt.xlabel('Radius (pc)')
plt.ylabel('Rotation Velocity (km/s)')
plt.show()
Анон, нужен хелп с меня как вегда
У себя в коде я юзаю предикт с помощью yolo. Оно в консоль мне пишет текст по прогрессу. Мне надо как-то этот текст красный спарсить и сохранить в переменную/файл. Я находил инфу как парсить если ты например запустил отдельным процессом через subprocess эту хуйню типа как через cli только в коде. У меня же оно просто как метод вызывается, и надо обязательно чтобы было как метод. При этом это не принт а отдельный процесс всетаки, иначе можно было бы поймать через buffer = StringIO()
sys.stdout = buffer
print_output = buffer.getvalue()
i=0
while i == 3:
i =+ 1
s.write("n")
s = open("s","rt")
print(s.read())
s.close()
почему не выводит "nnn"?
Хуйня какая-то, которая если и взлетит, то на манер кофескрипта. Найдутся извраты, но их будет недостаточно для поддержания популярности и всё естественно отомрёт.
Алсо, название неудачное для поиска.
блять, она возвращает эти значения
не скажу как в восьмерке, но в yolo 5 я вытаскивал значение и прям на видео рисовал кол-во найденных объектов
Так это не кофескрипт, а по сути суперсет Пистона, как Тайпскрипт для ЖСа. Только намного более производительный.
>>691652
Ну хз. Судя по тому, как закон Мура потихоньку подыхает, о производительности написанного всё же начинают задумываться. Mojo тому подтверждение. Тем более, что это тот же Пистон, удобность кода приблизительно такая же.
Я имел в виду историю взлёта и итог кофескрипта, а не суть.
Скорее mypyc какой нибудь взлетит чем это. Ну и позиционирование странное "язык для AI", словно какой то маркетинговый булщит
>как Тайпскґыпт для ЖСа. Только намнава более проызводэцяльны
Як php Swoole, што не мае посьпеху.
>dropmefiles
Пукнутый что ли?? С него половина провов не качает. И нахуя зип?
Бля, вот пастебины . Есть аж с подсветкой синтаксиса. Как раз для передачи кода зделоно, бля.
https://sharetext.me/
https://dpaste.org/
http://linkode.org/
https://justpaste.it/
https://www.toptal.com/developers/hastebin/
https://nekobin.com/
https://pastebin.com/
def sum():
----a=3
----b=3
----return a+b
print(sum())
class Class:
----def __init__(self, h):
--------self.h=h
dec=Class('hellofell111000o')
print(dec.h.encode('utf-16'))
Из одних только функций
Чем такой?
a=5
b=5
print(a+b)
h='hellofell111000o'
print(h.encode('utf-16'))
Из одних только переменных.
Нужно ли постоянно все в функции оборачивать или можно тупо и переменными обойтись? Я могу и так и так, но вроде слышал, что преимущественно функциями лучше.
Функции и классы можно использовать повторно, портянку кода в файле нет. Если простенький скрипт для себя пишешь можешь как угодно писать.
Ясно. Спасиб.
>>691777
Ну, хз. Вот два файла, первый я написал полностью на переменных - 148 строк, второй обернул в функции, вышло - 177.
Хотя я ещё нюфаг в этом деле, может я просто делаю что-то не то.
https://dropall.stream/rm/rm4097;username=Jickuck
PyCharm. Там же даже написано.
Если надобности нету, то не нужно. Не слушай профнепригодных додиков, они даже не понимают о чём идёт речь
>>691758
> Функции и классы можно использовать повторно, портянку кода в файле нет
И что? В вопросе про повторное использование речи не шло. Все вне мейна в функции оборачивают только потому, что весь код в файле выполняется при импорте
> Если простенький скрипт для себя пишешь можешь как угодно писать.
Не неси хуйни
>>691777
А если функций больше 100, что происходит в любом коде? Читай выше додик
Памахите пожалуйста. Чё он хочет от меня?
У тебя Pycharm создает, насколько помню, отдельное виртуальное окружение для проекта, а ты устанавливаешь пакет к своему глобальному интерпретатору. Посмотри в самом pycharm'e на вкладке packages, если ли там нужный пакет и если нет, то во вкладке terminal с командой "pip install ..." установишь его
Где ты зип видишь? У меня там чисто файл .py.
Мог бы просто скопировать всё это и вставить в VS Code. Там всё строчка в строчку. В чём проблема?
Каб працаваць у кансолі трэба актывізаваць там віртуальнае асяроддзе. Штораз калі адкрываеш новую кансоль, выконвай загад:
venv\Scripts\activate
дзе venv - шлях да віртуальнага асяроддзя гэтага праекту.
>Rmax = 30e3 # Максимальное расстояние от центра галактики в парсеках
>R = Rmaxnp.sqrt(np.random.rand(N))
Что такое Rmaxnp.sqrt ? Ты знаки умножения забыл или скобочки?
>они даже не понимают о чём идёт речь
Честно, я сам не до конца понимаю
>функции оборачивают только потому, что весь код в файле выполняется при импорте
Т.е. в функцию оборачивают только для того, чтобы можно было импортировать только саму функцию, вместо импорта файла целиком, я правильно понимаю?
чел я вкурсе что возвращает, это не то что мне нужно. Я хотел парсить этот выдвод с консоли и перекидывать их в другое место налету, но это уже не надо
59 строка vrot = np.sqrt(G np.sum(Msun) / r)
vrot у тебя число float-типа
66 строка vrot_mean = np.mean(vrot[idx])
vrot у тебя список
И несколько раз в 59 строке происходит деление на ноль?
RuntimeWarning: divide by zero encountered in true_divide
vrot = np.sqrt(G np.sum(Msun) / r)
Поставь plt.plot(rbin, vrot_mean) — plt.plot() не может начертить точки, если длины списков X координат и Y координат не совпадают. Ну и координаты у тебя сплошь NaN получились в вычислениях. Рисуется пустой график.
Окей, если хочешь душнить, то в питоне и переменных нету
>>691972
> Честно, я сам не до конца понимаю
Ну так ты задаешь вопрос, а не отвечаешь на него лол
> Т.е. в функцию оборачивают только для того, чтобы можно было импортировать только саму функцию, вместо импорта файла целиком, я правильно понимаю?
Ты не можешь импортировать файл не целиком. А импортировав однажды и исполнив в процессе, не можешь заставить выполнить его ещё раз. Короче, забей и пиши как получится. Программирование про практику, а не про теорию. Если ты не столкнулся с какой-то проблемой, то и инструмент ее решения будет непонятен. Так что как только программа разрастется у тебя и захочешь распилить на модули, чтобы хоть как-то ее понимать, то сразу все поймёшь
Венв активируй лол
>в питоне и переменных нету
Каво? В питоне есть переменные, просто их объявлять не нужно.
>Ты не можешь импортировать файл не целиком. А импортировав однажды и исполнив в процессе, не можешь заставить выполнить его ещё раз
Я это знаю, это базовые вещи. Я спрашивал про то, какой вариант программирования лучше, но уже понял, что писать можно как угодно, пока не возникнет определенная потребность.
>Так что как только программа разрастется у тебя и захочешь распилить на модули, чтобы хоть как-то ее понимать, то сразу все поймёшь
Я тебя понял.
np.where
> Каво?
Таво, в питоне есть имена, которые для удобства называют переменными. https://docs.python.org/3/tutorial/classes.html#a-word-about-names-and-objects
> В питоне есть переменные, просто их объявлять не нужно
Да ты что, и на какую область памяти они указывают, можешь рассказать? Имена в питоне указывают на сишную структуру, которая уже внутри себя содержит переменную, которая указывает на область в памяти. Ну и объявлять переменные нужно, хз с чего ты решил, что это делать не надо. Да, объявление происходит сразу с присваиванием значения, так и что?
> Я это знаю, это базовые вещи. Я спрашивал про то, какой вариант программирования лучше, но уже понял, что писать можно как угодно, пока не возникнет определенная потребность
Да, ты абсолютно прав
Как это сделать корректно? Вынести их по разным файлам? Сделать классы с названием описывающим общую логику типа SomethingResolver и все обернуть в @classmethod/@staticmethod?
> Допустим, у меня есть много фунций в файлике
Много это сколько? Используют ли друг друга?
> они разные, но некоторые можно сгруппировать по логике.
> Как это сделать корректно?Вынести их по разным файлам?
Да
> Сделать классы с названием описывающим общую логику типа SomethingResolver и все обернуть в @classmethod/@staticmethod?
Нет
Но в вакууме это хуйня все
>Много это сколько? Используют ли друг друга?
Штук 20, Некоторые да, некоторые нет, в целом относятся к одной вещи, но их можно сгруппировать еще сильнее
Если 20 штук и ещё используют друг друга, то забей хуй. Если очень хочется и свербит сделать пиздую архитектуру, то почитай про депенденси инджекшн и перепиши код так, чтобы у тебя функции были спрятаны под интерфейс
Ну и да, кстати, классметод и статикметод не надо использовать как штуку для хранения функций в классах. Они не для этого предназначены, используй обычные методы, это намного лучше
client = mqtt_client.Client('mqtt_client_for_ota')
client.username_pw_set(m_user, m_pwd)
client.on_connect = on_connect
client.on_message = on_message
def on_connect(client, userdata, flags, rc):
Задрала ошибка:
client.publish(TOPIC, DATA)
^^^^^^^^^^^^^^^^^^^^
NameError: name 'client' is not defined
Скинь весь код, ты какую то хуйню делаешь. on_connect дёргает либа, ты входные данные не изменишь.
Мне надо расшарить объект клиента mqtt Paho между другими функциями (т.е. сделать его доступным из любого места кода), чтобы отправлять сообщения когда мне надо, а не только в обработчиках, типа on_message, on_connect, on_publish.
Синглтон пили, епта
Ну так сделай класс, в инит передавай клиента извне, а в классе создай методы и в них вызывай свои функции, в чём проблема?
Напиши в телегу @stdenits или дай свою, плез.
Чем?
Я попробую разобраться, но скорее всего жидко обосрусь, т.к. с питоном знаком крайне поверхностно, а сделать надо.
Спасибо и на этом...
Почитал первую попавшуюся статью на хабре. В целом понял, что это, но не понял, в чем заключается преимущество. Выглядит так, что это какой-то супер надежный способ передачи данных, но звучит как оверкилл для питона. Там, где используются такие надежные и безопасные протоколы, уже будет не питон, а какая-нибудь джава. Разве нет?
MySQL працуе зь Пітонам ідэальна. Але большасьць карысных бібліятэк пісаліся для Postgres. Таму, калі ты ня ведаеш наперад якія бібліятэкі будзеш ужываць, Postgres ё найбяспьечным выбарам.
asyncpg
если ввести например python django вакух даж меньше чем php laravel...
я не понимаю, че тогда там такое нужно.
Включи поиск по названию, а не по описанию
А что, есть не бинарные? Всегда думал, что там по сокету хуярит по какому-то своему бинарному протоколу.
И как оно выглядит?
Обычные дата-макаки (шкварные петухи ниже полуджунов-полупокеров) и тестеры для дата-макак (рангом ещё пониже). В ДС/МЛ не просто так загнали огромную массу народа. Размечать данные и подбирать коэффициенты — это тупейшая рутинная работа, сравнимая со стоянием у станка, упаковкой или поломойкой. Кому-то надо её делать. В огромнейших масштабах — кто хоть раз пытался собрать датасет под свою нейроночку, тот поймёт. Вот так много народа и заталкивают пропагандой всякой фантастической реальности, рассказами про передок науки, про прорывы и пролапсы, светлое будущее и прочее говно для подростков.
Возможно, платина нубских вопросов.
Слева код работает как я ожидаю, справа - нет. Различие отметил на скринах, в одной строчке кода.
Слева у меня прибавляется к переменной по 1 каждое прохождение цикла и цикл заканчивается, справа - все время 1 и цикл бесконечный.
Я не поленился, залез в гугл и прочитал статью о различии между a = a + b и a += b.
И оно есть, но там написано, что это актуально для mutable типов, типа списков, что в одном случае создается новый объект с новым поинтером, в другом случае перезаписывается старый объект по изначальному поинтеру.
Но блять, у меня-то не mutable тип, у меня int тип тут данных у переменной.
Так что разницы нет между a = a + b и a += b.
То есть почему-то каждый цикл у меня справа когда, то похоже тупо присваивается переменной значение 1. А какого хуя, она же вне цикла объявлена, scope'ов тут никаких не должно быть, функций тут нет.
То есть словно нет разницы между a = 1 и a += 1 тогда в данном случае. Какого хуя?!
Я понимаю, что не понимаю что-то крайне очевидное, но что
АААА БЛЯЯЯЯТЬ АААА ССССУУУКАА ПИТОН ЧТО Ж ТЫ ДЕЛАЕШЬ
Я короче вместо += изначально оказывается =+ имел там.
И оказывается =+ это тоже легальный синтаксис и питон не выдает ошибку.
Пиздец...
Это = и унарный плюс.
Пиздец, патентуй скорее код, а то украдут и озолтятся.
нахуй не нужны
тут даже когда знаешь, что хочешь, но лень печатать, просишь об этом гопоту, она тебе хуяк весь нужный бойлерплейт ебашит. чуть поправил, и готово
а еще она знает то, чего нет в гугле. просто адаптируя параллельный опыт с похожих проблем. вот с этого я совсем охуел
ахахахахаха
Что не так со скриптом? Он запускается без ошибок, но хэндлер не отрабатывает.
https://pastebin.com/ivNMnCsk
pwd: 2ch
py <название срипта>.py <путь к папке1> <путь к папке2>
так ты просто запускаешь цикл, в котором бесконечно ждешь 1 секунду
бля, я чуть от смеха со стула не упал
Обосрался, значит, работает обсервер.
поэтому всем просто приятного дня, крепкого здоровья и хорошего настроения
Ого, действительно. Проверил и все так и работает. Первый раз на дваче что-то новое узнал. Ну в любом случае, что через pass, что через слип это хуйни. Потоки лучше хранить явно и явно же их ожидатьс тасками вообще пиздец, если из явно не хранить, то их питон может удалить банально
При дебаге проекта всё хорошо, но вот при тестировании меня окружение посылает к чертям с ошибкой AttributeError, говоря о том, что атрибуты None.
Конкретнее:
- в директории tests имеется test.py
- тестирую через pytest tests/test.py
Если я перед pytest явно экспортирую в баш переменные
export login=user \ export password=123, то всё хорошо, но мне хотелось бы, чтобы при pytest он принимал .env файл с уже объявленными переменными. Куда смотреть, помогите, пожалуйста.
ну и капча абу пидор неудивительно что постинг нулевой
Аноны, какой самый простой и быстрый способ округлять числа с плавающей запятой арифметически. Т.е. чтобы .5 > всегда округлялось до следующего числа. Нужен самый быстрый и метод и желательно из встроенных функций.
Охуеваю конечно питон это же скриптовый язык, а округление в нем не человекопонятное а ебанутое, для каких то задач. Обычное арифметическое округдение куда-то в жопу засунули. А должно быть наоборот - это же логически следует из самой философии питухона, по умолчанию должно быть обычное арифметическое округление, а коуму надо пусть лезет в дебри и делает другое.
Ебать ты клоун. Публично обосрался, а когда тебя ткнули носом в твой обосрамс - закатил глаза и начал визжать пр мамку.
Во-первых, это не я, во вторых ceil это как раз арифметическое, хули тебе надо-то?
>чтобы .5 > всегда округлялось до следующего числа
ceil 1.1 округляет до 2, а -1.1 округляет до 1
И вот просто интересно, нахуя ты это пишешь. Ты не знаешь как ceil работает или не знаешь что такое арифметическое\школьное\человекопонятное округление?
Это округление с половины к следующему целому в сторону от нуля.
В английском это округление называется ещё half up в питоне оно доступно через decimal, но это невероятно медленный метод в десятки раз медленнее обычного раунда например.
Всё должно работать.
А хули этот долбоеб домен .ru использует тогда? Переехал бы на .ua
>Арифметическое округление - это когда в сторону большего
А разве в питухоне на так функцией round?
Но не важно. Это ретардное округление. Нормальное округление - округление до четного, вен и даубт.
>округление до четного
Это нишевое округление, нужное для всяких долгих вычислений. Если ты такие делаешь, то полностью должен понимать что у тебя и зачем. А питухон это в первую очередь скриптовый язык для макак, для простых гречневых людей, для школьников, для интерфейсов, для вот этого всего. По всей своей концепции там округление должно быть человеческое. Когда ты в интернет магазине сумму округляешь, или время - ты это всё делаешь именно half up, как в школе учили, а не до четного. Так и должно быть по-умолчанию.
В любом случае какие в питоне есть варианты для этого? Пока использую decimal, но он тормозной.
Языки программирования придуманы чтобы складывать числа сложно, поэтому не вижу проблемы.
>Пока использую decimal, но он тормозной.
Никаких вменяемых. Можно через формат с последующим конвертом во флоат, но это будет еще медленнее.
Можешь написать свое округление на ситоне.
Последний вариант, кстати, вероятно то, что тебе зайдет. Когда нужно было вычислять разные функции быстро, но не обязательно сверхточно, основные операции сделал сайтоновские и проблема решилась.
Формально да. Но тут флоаты в штаны какают. Так что противоречия не чувствую.
импортировал тебе за щеку
Питон даже округлить число не может по человечески. И даже могучая нейросеть какое-то говно советует, которое на 1.5 уже обсирается с порога.
Дожили.
Ты даже задачу поставить не можешь, децл. Не буду увеличивать карбон футпринт твоими хуево поставленными тупыми реквестами.
Исскуственный интелект СУКАААА. Да идите вы нахуй все, долбоёбы вот вы кто.
9 разворовали
Короче, проще написать самому то что нужно, вместо того чтобы ебаться с правильно поставленным запросом. Только если напишешь сам это будет 100%, а если будешь выёбываться и объяснять что нужно, то ещё не факт что получишь результат.
И зачем всё это нужно?
Вы реально копируете данные из одного файла в другой и получаете свои наносеки?
но ведь напечатать пол экрана кода очевидно не проще, чем написать десяток слов. а правильно ставить задачу это хороший скилл, и его нужно качать. как раньше был полезен скилл гугления
Код не надо печатать, можно копипастить и изменять.
А вот правильно ставить задачу может занять пол-экрана.
Ну ты понял мою претензию: зачем мне печатать тупые запросы к ИИ, если я могу сразу напечатать код?
Как выяснить что быстрее и оптимальнее?
А ИИ может так и не понять что нужно даже после пол-экрана простыни.
Скилл действительно хороший. Это просто суперскилл, я им так и не овладел.
Краткость - сестра таланта. Лаконичиность. Тоже надо понимать что это относится только к людям. Люди должны понять лаконичность.
Пусть нейронка напишет админку. Тогда поговорим.
Стоит ли учить питон ради заработка денег и создания собственной игры? Если я начну его учить, то что меня ждёт?
Игры на нём максимально тормозные. Для игорь учи экосистему (Андроид, Эпл). Один сейчас не вытянешь, разве что родишь ультраидею. зайди на какой-нибудь гамез.яндекс.ру — посмотри, что говноигры клепаются тысячами одним только яндексом. А в мире этих игрушек на два-три часа игры выходит миллионы. А ты над такой будешь ебаться год—два в одиночку. Чтобы пройти за два часа.
потралить нас решил? у нас все работает
а, похоже ты пытался изобразить numpy.around.
Даже проверять не буду. И так ясно что это работает быстро
>Игры на нём максимально тормозные
От чего тормоза? Я хочу сделать градострой с элементами экономики и общественного контроля. Cities: Skylines, один из ближайших примеров, теряет производительность от большого количества жителей, потому-что каждый из них материален и регулярно взаимодействует с частями твоего города, строит маршрут, меняет свою статистику.
>Для игорь учи экосистему (Андроид, Эпл)
Естественно, я буду писать десктопную игру. И естественно не для заработка, а для себя. На винде экосистема это uwp, она ультра-тормозная. Или WinAPI, но это отдельный язык который нигде больше не нужен, и не для игр он.
>зайди на какой-нибудь гамез.яндекс.ру — посмотри, что говноигры клепаются тысячами одним только яндексом. А в мире этих игрушек на два-три часа игры выходит миллионы
Именно поэтому я не собираюсь зарабатывать на геймдеве, но собираюсь зарабатывать кодингом, а полученные навыки применить для создания своей любимой игры.
>Если я начну его учить, то что меня ждёт?
всё будешь делать с нуля и решать проблемы движка
хочешь без движка - возьми либу какую-нибудь. хочешь питоноподобное - учи годот. хочешь делать игры - юнити. хочешь пердолить свой бессмысленный говно-движок - добро пожаловать!
ДРУГ умоляю, если доделал до конца - скинь пожалуйста
буду сидеть разбирать, понравилась задумка, сам только только функции освоил
ну есть так есть. тебе виднее. удачи!
да
а там чот старые версии какие то, а мне надо последнюю самую и что бы само обновлялось
А зачем
>От чего тормоза?
От того, что это не компилируемый язык, а интерпретируемый скрипт. По сути. Быстрые модули в нём написаны на C/C++.
>теряет производительность от большого количества жителей
Питон тебе памяти сожрёт миллиард гигабайт. В нём управление памятью не очень. Буквально полтора инструмента, причём один из низ — сборщик мусора gc — работает автоматически и без вызовов.
На Питоне, бывает, пишут прототипы, а потом переписывают на быстром языке.
Я сижу на 2022.1.2 и мне норм, не обновляюсь, всего хватает.
>Да, гои, я сделал ТОП (Не шутка) игру, но тут я понял, что пользователь у которого не установлено JRE просто не сможет в неё поиграть. Это ГГ.
>Да, гои, я сделал ТОП (Не шутка) игру, но тут я понял, что пользователь у которого не установлен NET Framework просто не сможет в неё поиграть. Это ГГ.
>Да, гои, я сделал ТОП (Не шутка) игру, но тут я понял, что пользователь у которого не установлен Microsoft Visual C++ 2015 Redistributable просто не сможет в неё поиграть. Это ГГ.
К сожалению это гойда. Просто запускает cmd на секунду и выключается, а жаль.
А ты пытался дебажить?
ну што поделать. поищи себя в другом
subprocess.Popen(f"shutdown /s /t {int(match.group(1))*60}")
сброс таймера
os.system("shutdown /a")
Простой команды узнать сколько осталось минут до выключения я так понял нет? Как считаете лучше реализовать, при запуске шатдауна сохранять время в переменную и вычитать его из актуального времени при запросе, как-то так?
Сама концепция "вката" порочна. Чтобы хотя бы иметь возможность стать погромистом - нужно изначально любить ковыряться во всем этом говне.
Хорошая аналогия с профессией писателя. Ты можешь например вкатиться в писатели и написать рассказ про попаданцев, но если ты всю жизнь не увлекался писательством, с детства не сочинял хуйню, не записывал её в стол т.е. не любишь это дело, а пишешь просто чтобы заработать - то надолго тебя не хватит и качество твоих фанфиков будет ниже нуля. А через год ты вообще взвоешь.
Вкатывайся если тебе нравится сутками напролет писать и придумывать решения всяким задачам. позабыв про сон и еду.
синьор тимлид 300 наносек
Отчасти чаю, высираю такое же, но как раз с детства дрочил бейсики с паскалями, потом компьютерный класс с уклоном в айти - один день учились в универе, потом вуз.
В ойти то вкатываюсь, то выкатываюсь, сначала нравится дрочиться с решением задачки, а потом на месяцы похуизм. Потом гото1. Ебанутый настрой.
>Чтобы хотя бы иметь возможность стать погромистом
Нет, достаточно выдрочить паттерны, как в любом ремесле. Да, очень хорошим погромистом не стать, но в какой спецухе еще можно быть абсолютной посредственностью и лутать 150к через пару лет веслания.
Очевидно, что это минуты из регулярки умножаются на секунды.
Ну это однострочечники, обычно только начинающие учить Питон выделываются. тут код небольшой, всё понятно, но если будешь это в прод пихать, тебя могут силой (анально) принудить писать просто и понятно.
Это не просто однострочечники - это максимально дегенеративные.
Скопирую свой высер из МВП треда:
>А почему она это просто текстом не написала? Ну или на худой конец словарик не заюзала..
>Все кристально понятно.
>Правда лишние скобки вокруг компрехеншонов для трех примеров - плевать, но как только у сисика-писика будет итерабль на хотя бы пару тысяч элементов, квадратные скобки вокруг выражения прилично удлинят процесс.
>С этой нереальной лямбды (инфо) проигрываю в голосярий.
>Я не знаю, этот пример можно долго разбирать. В своей дегенеративности он хорош.
Моя Нефритовая Башня уже готова заходить в её место работы.
С чего ты взял, что это возможно? У тебя на пикче нативный шиндовый контрол, по-моему.
У тк свой.
Я знаю, что по дефолту одной командой включить нельзя. Я хочу сделать как в винде.
На первом пике неправы оба постера.
Аниме - не права в том что иронизирует, перед ним на самом деле нет ничего непонятного.
Поехавшая селедка - не права в том, что насрала бесполезной хуетой. Т.е. она просто написала строку которая выводит "кудах я виликая праграмист_ка" и для этого нагородила выражений без смысла. Т.е. по её мнению вот эта одна строчка это какой-то высокий уровень кодинга, которым она выебывается публично. Вот это обстоятельство характеризует её с крайне негативной стороны - её уровень низок и она говно как личность, с таким человеком ты дел иметь не захочешь никогда.
Меня устроит даже самый костыльный вариант, с рисованием картинки и смещением, например.
def karasik(self, pook):
....def some_fun(arg):
........pass
Аноны, для функций внутри метода есть какие-нибудь ПЕП8 правила или просто правила хорошего написания таких функций, кроме конечно того, что такие функции вообше лучше не делать.
Случайно линканул твой пост, анон.
Хорошее правило писать их как можно меньше. Так как дебажить сложно, зачастую не теряется ни капли контекста если их вынести за пределы метода и сделать приватными методами в классе и так дальше. Особенно это касается тех случаев, когда функция никак не зависит от подаваемых аргументов или стейта.
Если все-таки ситуация такая, что надо определять, то делай разбивку так, чтобы она возвращала довольно простой объект. У меня на проекте стоял линтер, который контролировал, чтобы выходная аннотация не было слишком сложной. В идеале это должен быть объект с низкой максимальной глубиной доступа.
Если ты пытаешься просто разбить метод на смысловые блоки, то подумай о выносе логики за пределы функции, либо делай функции не очень длинными. Строк 10.
Открывай рот. Псссссс пссссссссссссс.
А что ты будешь делать с этой функцией дальше, зачем она тебе? Прямо внутри метода не знаю, внутри функций привычная вещь, в декораторах например по-определению есть.
На самом деле надо смотреть на архитектуру того, что ты делаешь. Может это не нужно вот совсем, там другие паттерны для этого используются.
Надо ещё не забывать, что по правилам 2.5 округляется к 3, а 3.5 к четырём. В общем в случае, когда ровно половина, округление идёт к чётному.
И это не извращение, а довольно разумная вещь.
реализовывать же такое самому как-то тупо, когда есть уже встроенная функция round(). Просто вот даже пробовать неохота, да ещё чтобы оптимально.
посмотрел, всё это выше даже написали, извиняюсь перед анонами как перед Кадыровым
Ты в штаны насрал, советчик. Раунд округляет к четному, а анону надо к большему от нуля, о чем и была речь. Школьное человекопонятное округление, которое используется в быту, а значит и нужно для любых приложений и интерфейсов в питоне же доступно только в невероятно тормозной реализации через дасимал. Так что написать свою функцию округления должен каждый питухонец, а если ты этого ещё не делал значит ты нуб.
Мне понятно, но это хуйня. Можно вообще на одних байтах писать, но потом сам же будешь во всем этом говне ковыряться если возникнет ошибка, а другой вызвавшийся помочь программист даже читать не захочет.
Саппитонач, numpy.loadtxt отказывается читать больше 750 строк. Maxrows не выставлял, в документации написано что по умолчанию читает всё
numpy.loadtxt по умолчанию должен читать все строки из файла, поэтому ограничение в 750 строк выглядит неожиданным. Однако, возможно, есть другие факторы, которые могут повлиять на это поведение.
Проверьте следующие вещи:
Убедитесь, что файл, который вы пытаетесь прочитать, содержит больше 750 строк. Откройте файл в текстовом редакторе или проверьте его размер.
Убедитесь, что формат файла соответствует ожидаемому формату numpy.loadtxt. Эта функция предназначена для чтения текстовых файлов, в которых значения разделены пробелами, табуляцией или другим разделителем. Если файл использует другой формат или разделитель, вам может потребоваться использовать другую функцию или настроить параметры numpy.loadtxt соответствующим образом.
Проверьте, нет ли в файле строк, содержащих неожиданные символы или значения. Это может привести к проблемам при чтении с помощью numpy.loadtxt. Если есть такие строки, попробуйте удалить или пропустить их, чтобы проверить, как это повлияет на чтение файла.
Если проблема не решается, попробуйте предоставить больше информации о вашем коде и содержимом файла, чтобы я мог помочь вам более точно.
>Так что написать свою функцию округления должен каждый питухонец, а если ты этого ещё не делал значит ты нуб.
бля, я нуб. реально за 10+ лет не приходилось писать конструкцию вида int(x + 0.5)
код: https://onlinegdb.com/pNd0P_Jet
Вкратце: создаём подключение, создаём кластер и коллекцию в монго.
1 тест: Пытаемся заносить значение в коллекцию - тест выполняется вполне себе хорошо.
2 тест: Проверяем, есть ли коллекция 'test_collection' во временной бд - AssertionError, т.к. на момент выполнения теста в бд нет ни одной коллекции.
зы request.addfinalizer(finally_drop) на строке 26 подразумевает, что функция удаления коллекции должна исполняться исключительно после завершения тестов, но у меня подозрение, что функция отрабатывает после первого теста, но это неточно. Помогите разобраться, Аллахом молю.
И вот какая у меня архитектура? БД ведь по сути нет, Json не БД же? Помогите новичку разобраться.
Верагодна чакалі тое што ты кажаш, але больш абстрактнымі тэрмінамі, кшталту MVC/MVP/MVVM. Сутнасць у тым каб падзяліць прыладу на лёгічныя часткі: калі змяняеш від, то не чапаеш дадзеныя.
У цябе json - мадель, а від там, дзе from PyQT5 import ...
Бамп
Ну кажется суть уловил, но до конца так и не понял. Всё таки что за архитектура тогда получается? MVC/MVP/MVVM. Я читал об архитектуре и везде говорят, что она есть только у средних и крупных проектов, я ожидал что мой проект средний, а получается он маленький из-за отсутствия БД (если мы не считаем Json БД). Вот я и не могу понять, а есть ли вообще архитектура в моём случае?
Помню, были какие-то патченные хромиумы, которые не палились.
Калі ты загадзя ня ведаў пра гэтыя канцэпты й не імкнуўся рэалізаваць дакладную архітэктуру, твая прылада не адпавядае ніводнай архітэктуры. Наступным разам для QT абірай архітэктуру MVP.
Ну да, боты в телеге вечно работают и норм, а мой виснет через время или пайчарм вылетает
Понятно, спасибо.
figure(dpi=9000)
Ну и не забудь сделать фигсайз таким, что сможет выдержать всю мощь твоего dpi.
figsize=(13.333, 7.5), dpi=360
Обычно самое то.
Админки к телеграм-ботам. Он-то и был всегда языком для создания телеграм-ботов с рефералками.
Волтс оф Парнас.
В 90-е питона толком не было. У меня в вузеке кореш устроился на только-только вышедшем питоне писать какую-то хуиту бухгалтерскую, за что получил погоняло на курсе соответствующее. Это 97-99 года. Затем он переполз на Джаву, вроде, а потом мы потерялись.
Это был калоязык для чумных фкриков из микрокоммьюнити. Они появился только в 1994–1995 годах.
Вторая ветка (2.0) вышла в 2000 году в конце.
>калоязык для чумных фкриков из микрокоммьюнити
Сейчас только размер коммьюнити поменялся, но если учитывать только IQ > 80, то, да, остался прежним, всё так и посейчас.
>Это был калоязык для чумных фкриков из микрокоммьюнити
Типа раста?
>Вторая ветка (2.0) вышла в 2000 году в конце.
Ну ты же утверждал не то, что Питон стал языком для создания телеграм-ботов в последние годы, а то, что он им был ВСЕГДА, то есть и в 90-е годы, когда он был калоязыком. для чумных фкриков из микрокоммьюнити
Вчера всё работало нормально. Сегодня файлы перестали открываться. Выдаёт такие ошибки: либо invalid argument, либо unexpected character (.py).
Из нескольких вариантов решения проблемы, найденных в гугле, помог только один: переместить открываемый файл чисто в диск C:.
Но затем я провёл эксперимент (пикрелейтед) и охуел:
Сделал три копии этого файла (print.py):
• один поместил на директорию диска C:
• второй — в папку с буквенным названием (abc)
• третий — в папку с цифровым названием (1)
Результат: открывается только первый файл. Ни один файл, находящийся в какой-либо подпапке диска C:, сегодня не открывается (вчера открывался, и после этого никто за компьютером не работал и никаких других манипуляций с ним не производил).
Что за херня? Они будут открываться, как хотят, по настроению? Есть ли в этом поведении интерпретатора какой-то принцип? В чём он состоит?
апча: Аллах
Мы систему биллинга будем на нем пилить
Предлагаю судить о языке по его коммьюнити, а не по длине твоего членика. Даже не по синтаксису. А именно по людям, которые им пользуются как инструментом.
Что это за люди? Каков их уровень в среднем? Какие задачи они выполняют (а не инструмент, которым они эти задачи выполняют, и не какие задачи они МОГУТ выполнять этим инструментом)? Какие задачи выполняли, какие задачи перестали выполнять, куда движется тренд задач? В чём именно суть их задач? Не задач языка, а задач людей, использующих язык, повторюсь.
Задачи на си люди решают скорее вопреки, а не благодаря. Переход давно назрел, но приличной замены не наблюдается. Плюс слишком много возни с перекатом наличной кодовой базы. Возможно, с развитием гопоты это решится.
А какая разница? Если задачи востребованы и за них платят деньги - значит задачи пиздатые.
Вот джаваскриптизеры вообще формы красят - значит ли это, что они не программисты? Нет, не значит, потому что красить формы тоже важная задача.
Дык, наличие библиотек заставляет пользовать ещё Фортран, Аду и Кобол, это известная тема.
Насчёт Си и перехода... В Питоне есть несколько вещей, которые Опоссум не делал ПРИНЦИПИАЛЬНО (типа тернарного оператора, case и так далее). И я вот этой хуйни с принципиальностью не понимаю. Хорошо, что его выкинули на почётную должность — есть шанс на развитие языка. Но не ранее, чем разберутся с управлением памятью и указателями.
>Вот джаваскриптизеры вообще формы красят - значит ли это, что они не программисты?
Да. Они кодеры. Не программисты.
Это как датасайентист-разметчик и математик нейросетей — две кардинально разные профессии, два разных образования, земля и небо, зарплата может отличаться в 1000 раз, но оба, типа, DS/ML.
>>704275
>Нет, не значит, потому что красить формы тоже важная задача.
Не спорю.
А теперь вернёмся к Питону. Что за задачи сейчас на нём решаются и как выглядит их классификация?
Ну так то case уже впилили.
А так, у меня сложилось впечатление, что он очень болезненно относился к расширению синтаксиса, наличные кейворды обвешивали дополнительным функционалом в зависимости от контекста. И это при том, что был принципиально несовестимый переход на 3, там можно было развернуться и дохуя поломать и добавить-исправить, а заметных изменений минимум. Хотя с ленивизацией наличных средств удачно получилось, батя грит малацца.
>А теперь вернёмся к Питону. Что за задачи сейчас на нём решаются и как выглядит их классификация?
Делали Б2Б беттинговую платформу, сейчас перешел в компанию, которая делает биллинг, еще было предложение в место, где систему мониторинга и управления для складских роботов пилят.
мимо
Это замена перла. Решает примерно те же задачи и можно пилить говновеб, если уж совсем припрёт.
Плюс, для него насрали либ учёных, чтобы не заморачиваться с изучениями языка. Сделал полтора хелловорлда и можно идти хуярить свои науки.
>Да. Они кодеры. Не программисты.
Если это принципиально разные профессии, которые так же легко разграничить, как, например, профессию электрика и сантехника, то дай четкое определение для обеих профессий. В чем принципиальное отличие, какой круг задач решают, какой теоретический базис используют.
Иначе это просто словоблудие для оправдание гейткиперства.
Лол, классика: "кто наряд не видит, тот глуп или не на своём месте".
>А теперь вернёмся к Питону. Что за задачи сейчас на нём решаются и как выглядит их классификация?
Ты лучше сначала сам сформулируй, какие задачи стоят перед ИТ в целом, классифицируй их как-нибудь. А уж там можно будет говорить, в каких питон работает, а в каких нет.
Есть масса ниш, где питон в лидирующих позициях
>Есть масса ниш, где питон в лидирующих позициях
Ну да. Блокноты статистиков и анальщиков, а также, скрипт для домашнего применения по всякой текущей рутине.
В его манямирке нет конечно. Бэк на НОРМАЛЬНЫХ языках, девопс на шелле, а тестирование руками.
Люди добрые подскажите пожалуйста.
Мне нужно написать простенький код, который создаёт ГУИ, что бы можно было редактировать файлы экселя. Я хочу замутить привязку сочетаний клавиш к командам, что бы ими можно было пользоваться, даже если окно ГУИ не активно(не главное). Но для того, что бы иметь возможность использовать сочетания клавиш в таком режиме, мне нужно запустить код от имени администратора. И чёта я не могу понять как сделать мой mainloop(), который бы работал в функции, которая запускает код от имени администратора.
В данный момент моя проблема такая - у меня всплывает окно о том, хочу ли я что бы питон вносил изменения в систему, а потом код сразу завершается. Я не могу понять, ЧЯДНТ.
Памагите!
блэт картинка отклеилась
Можешь два процесса
https://pypi.org/project/python-crontab/
А еще можно тред сделать отдельный, который раз в сутки просыпается
Не слушай этого деда >>705490
Сейчас такие вещи делают с помощью SystemD
первый пример из гугла: https://www.airplane.dev/blog/systemd-timer-how-to-schedule-tasks-with-systemd
Но это в любом случае получается 2 разных процесса фактически. Как делать единую точку управления? Если я запустил сервер - я хочу и процесс дампа запустить. Если я остановил - я хочу и процесс остановить. Я хочу, чтобы они работали с одной бд, и настройки задавались в одном месте. Как такое делается?
Может кто подскажет?
Потому что ты проверяешь сначала 1 в любом месте. Там надо endswith или как там. Лучше просто сдеать years % 10 == 1
Алсо, можно искать прямо в рендже, т.е. years in range(5, 21).
И сделай нормальные отступы, что это за каша?
Ну и рейндж надо первым проверять, там есть 11.
Не занимайся этим. Форматирование оставь фронту. Правильнее всего подключить либу, которая правильно умеет склонять слова, а не самому костылять.
>>705811
Не, вот правильный способ. Остаток от деления искомого числа на 10 всегда возвращает последнее число в последовательности этого числа.
Так шо, спасибо за наводочку.
Библиотека выше буквально то, что тебе нужно, запускаешь из мейн треда указывая необходимые аргументы, можешь удалять таску когда угодно.
Или сам запускаешь отдельный процесс и ставишь time.sleep на сутки
Я даже не знаю, как такое загуглить, и какие в принципе существуют способы.
Добра тебе.
Ну на 100 это последних два числа (внезапно), можно зделоть три ветки вместо четырех. Алсо, ввести переменную для одного принта вместо дохуя. Улучшать и улучшать, кароч, лет через десять допилишь до какой-то готовой либы.
И печально, что ты не прислушался про спейсинг, какая-то яндекс-хуита бы тебя уже зарезала по бухтению линтера, как мы выяснили некоторое время назад.
>можно зделоть три ветки
Нет, нельзя, потому что в ноль будет за пределами ранджа.
А как задать переменную для одного принта, в таком случае, я даже не представляю.
В принципе, можно выкинуть 5,10, остальное ты уже покрыл и оно пойдёт в else в любом случае.
С принтом делаешь "за {years} {end}." и в ифах только end присваиваешь.
Читать все-равно буду, но пока сосредоточился в основном на практике и документации, параллельно почитываю Лутца.
О, балдежь. Спасибо.
Привет всем. Блок-схемы вообще актуальны для матёрых программистов? Стоит их задрачивать?
Хз, по-моему устаревшая хуйня для современных реалий. Студней учить сгодится.
такой вопрос.
скоро закончу учить питон, буду знать обычные вещи - django, django REST, fastAPI, MySQL, bootstrap/html/css.
Однако смотрю на вакансии, и ни одной вакансии на джуниора на питоне. Так вот что дальше делать то?
Насколько тупо будет сейчас начать учить PHP/Laravel, сколько времени я на это еще потрачу?
так то я бы хотел начать пилить для стима свою ВН на renpy
Может сначала проверить, нужно ли это кому-то на стиме? Хотя не, сначала сделай, потом провершиь.
может и будет провал, но мне хочется сделать что-то. Я так даже успокоюсь потому что внутри как будто что-то зудит (сделай, сделай)
>ни одной вакансии на джуниора на питоне
Размести объявление на авито и работка сама найдет.
>Насколько тупо будет сейчас начать учить PHP/Laravel
Ты это в любом случае должен знать, особенно если фронтенд.
Быть программистом и не знать как разметки делать?
>сколько времени я на это еще потрачу?
Несколько месяцев, приблизительно.
Так я Python бэкендщик в основном, фронт я знаю только поверхностно, как с бутстрапа кривенько взять кнопки, навбары и прочее. Мне зачем нужно знать php? Тут либо пайтон, либо php. Хотя спасибо за совет с авито
Сделал генератор чисел Фибоначчи. Создал словарь с ними же, присвоил определения "четное\нечетное". Однако при выводе словаря выводятся не все числа, а лишь последнее.
Помогите.
капча: список
https://goonlinetools.com/snapshot/code/#vf6c19ds5zarvln3khyox
>numbers = {n : 'zero'}
такім чынам ты ствараеш новы слоўнік, а не дадаеш да існага. Ужывай numbers [n] = 'zero' ва ўсіх адпаведных месцах.
Радкі 15,16
>numbers = {}
>numbers = fibo
Ты што зрабіць намагаешся? спачатку пусты слоўнік, а потым замест яго ліст fibo. Лайно нейкае. Вось працуце
https://www.online-python.com/yTfhKOaNAr
Обязательно ли становиться линуксодрочером, чтобы душить питона?
Крайне желательно, если ты занимаешься не чем-то, железно завязанным на мс. А ведь даже дотнет уже отвязался, это небольшой намёк.
Но ведь нас уже убила чатжипыты-4, ты что-то путаешь
Типизировай
У тебя иде отбери и ты инвалид, а тут можно хуярить в виме через ссх. Диды так и работали, и принтили вместо дебага.
Если это в кавычках, то стринг, если без, то либо переменная, либо интегер. Чего тут понимать-то?
>>Насколько тупо будет сейчас начать учить PHP/Laravel
>Ты это в любом случае должен знать, особенно если фронтенд.
>Быть программистом и не знать как разметки делать?
Омич полуёбок, скажи ты наркоман? я просто тоже где то там живу, могли бы вместе уёбывать наркотики.
Kivy, я ебал твою маму рот! Нет, фреймворк то пиздатейший, на самом деле (если исключить то, что документация у него говно и чтобы понять что-то надо читать исходник, а еще стандартные виджеты это посос и их надо допиливать до нужного тебе состояния. И что было им сложного написать отдельный класс для числовых полей, чтоб и с прокруткой мыши, а на стрелочки значения менялись, и чтоб с проверками блядь и со всеми ништяками? Он же намного проще чем текстовый).
Использую для Desktop.
Вопрос. Возможно ли как-то снизить нагрузку на процессор от анимаций? Одна ебаная анимашка сжирает под 40% моего ядра (а Python живет в одном из ядер, не распаралеллить). Да и 20 тоже жрут столько же. Как эта хуйня работает вообще, он че, весь экран перерисовывает, а не маленькую область с виджетом? Это ж пиздец.
Закрашиватель формочек, который даже не знает как сайт сделать, спок.
Магчыма распаралеліць. Чытай пра плыні https://docs.python.org/3/library/multiprocessing.html
Да про мультипроцессинг то понятно, но это не тот случай. Хули, мне в одном процессе рисовать, а в другом считать? Фреймворк так не работает.
Ну, почему неоптимальные? Меня устраивает все, кроме того что эта анимация дохуя жрет. Если допилить виджеты как мне надо, то моя программа (а она, блядь, большая) ест что процессора нихуя что памяти мегабайт 150, что сносно. Вот анимация только, сука такая.
Вообще, было бы заебись, будь Python типизированный. А всякая хуйня работающая с разными типами была бы как templates в C++. Да, есть type hinting, но это не совсем то.
А может, мы забиваем гвоздь телескопом? Я вот пишу большую программу графическую на Python. Тут все эти приколы динамической типизации на хуй не нужны и только мешают. А в скриптиках маленьких заебись...
Ты знаешь что такое безумие?
> было бы заебись, будь Python типизированный
Там как раз для тебя Mojo изобретают. Вообще не понимаю чем тебе тайпхинтов мало.
Где
Язык тут причем
Спасибо.
типизация хороша только для простых типов, а вот когда тебе структуры надо делать, то вот нафиг, в традиционных компилируемых языках приходится изобретать адские системы наследований одних данных в другие. Ну его нафиг. Банальные задачи распаковки жсона в структуру превращаются в какие-то танцы с бубнами
Ебля с типами гораздо лучше чем непонимание того, что приходит в в параметры метода, особенно если код писали давно или вообще не ты.
А что непонятного-то? Есть же хинты
Ничего не мешает сделать это же в языке с строгой типизацией. Я ничего о компилируемых языках не говорил.
Капча дьявол
«*» отклеились
Плюсы должны быть на одной строке со звездами, и при этом все должно переносится на следующую строку, если их больше 10
Вообще если это не задания ради задания, то в питоне есть встроенная либа textwrap, которая делает всё это без костылей.
У обих есть jit искаропки + готовые файлы уже в байткоде, бидон же каждый запуск коньпеляет.
>У обих есть jit искаропки
Что не уменьшает его возможности кокомпеляции
>бидон же каждый запуск коньпеляет
Только если файл изменился
Возможность неявного преобразования типов != слабая типизация. Ты же не хочешь сказать, что в Си++ слабая типизация, потому что там можно складывать инт и дабл?
А в Джаве творятся вообще страшные вещи - там можно сложить строку и число - например "Hello" + 123 будет равно Hello123. И ничего, живет как-то до сих пор.
В плюсах литерали слабая типизация
Ты, по-моему, путаешь статику и динамику.
Типизация сильная только в том случае если нет тайпкастинга. Он есть - типизация слабая.
Когда ты складываешь дабл с булем или интом - это литературно лакмусовая бумажка слабой типизации.
Оставим за скобками как таковую адекватность деления типизации на строгую и слабую и отсутствие адекватного определения для оси силы типизации.
Надо вытащить с хтмл кучу данных, выбрал питон и бюьтифулсуп.
Есть блок с тегами <div> и <span>, надо вытащить из них текст.
https://pastebin.com/9BSGFDnk
Проблемы с тем, чтобы вытащить текст из каждого тега по отдельности - не возникло, но мне надо систематизировать информацию. Плюс я не пойму, как мне циклом в цикле пройтись.
Логика такая: нахожу первый тег <div> с классом "col-lg-5", печатаю текст, который он содержит - "Огурцы".
Далее, в этом же теге <div> ищу тег <span> с классом "d-none d-xl-inline", печатаю из него текст, потом ищу в ТОМ ЖЕ САМОМ теге <div> другой <span> и печатаю текст из него.
Затем уже ищу другой тег <div> и повторяю процедуру.
Нужно на выходе получить вот такой текст:
Огурцы
15.80
19.15
Помидоры
17.10
33.51
Буду очень сильно благодарен, если не просто логику написания кода подскажете, а еще и кусками кода угостите
> Далее, в этом же теге <div> ищу тег <span>
Судя по твоему примеру, они сиблинги Где-то ты объебался.
Алсо, делай через селекторы, они универсальны в отличии от суповых велосипедов.
Есть объект, в котором есть данные и ссылка на предыдущий объект. И вот пока в объекте существует ссылка на предыдущий объект, нужно чтобы функция возвращала данные текущего объекта и залазила в предыдущий объект.
Что сделать, чтобы функция get_lst работала правильно? Никак не доходит что я делаю не так.
class A:
def __init__(self, link=None, string=''):
self.data = 'test' + string # данные
self.link = link # ссылка на предыдущий объект
q = A()
w = A(q, '2')
e = A(w, '3')
def get_lst(obj):
if not obj.link:
yield obj.data
else:
yield from get_lst(obj.link)
lst = [x for x in get_lst(e)]
В вашем коде рекурсивная функция get_lst объявлена правильно, но вы забыли добавить отступы (indentation) для определения класса и функции. Кроме того, для работы генератора вам нужно использовать ключевое слово yield вместо yield from. Вот исправленный код:
class A:
def __init__(self, link=None, string=''):
self.data = 'test' + string # данные
self.link = link # ссылка на предыдущий объект
def get_lst(obj):
if not obj.link:
yield obj.data
else:
yield obj.data
yield from get_lst(obj.link)
q = A()
w = A(q, '2')
e = A(w, '3')
lst = [x for x in get_lst(e)]
print(lst) # ['test3', 'test2', 'test']
В этом примере функция get_lst рекурсивно вызывает саму себя, пока в объекте link существует ссылка на предыдущий объект. Когда ссылка отсутствует, она возвращает данные текущего объекта. Затем список lst создается с использованием генератора get_lst, который содержит все данные из объектов цепочки. Результат выводится на экран и должен быть ['test3', 'test2', 'test'].
Если ты не заметил, то
>Сам я не погромист, когда-то в школе немного занимался.
Я, кроме того, что я где-то объебался - ничего не понял. Было бы здорово, если бы ты разжевал
И чё и всё? Никаких вариантов вкатиться даже если очень хочется? Фриланс-то хоть жив?
>>710771
Само понятие джунов расхуярили и размыли двухнедельные курсы подготовки полоумных макак, после которых на рынок стала ломиться буквально толпа идиотов, думающих, что им сейчас по 300кк будут платить за красивые глазки. По сути, эти полупокеры полуджуны просто довели рынок до состояния что нужны либо рабы за еду (в микроколичествах), либо сразу милорды.
Онлифанс какой-то наверное и жив. Хотя может и нет.
Надо съебывать в третиие страны дрочить анус. До чего довели страну.
Бамп вопросу
Твая лёгіка не адпавядае дадзеным у html, бо на тваю думку Агуркі й цана утрымліваюцца ў адным div-блёку, але яны ў усобных.
Огурцы
15.80 Старая
19.15 Новая
Помидоры
17.10 Старая
33.51 Новая
https://www.online-python.com/SGVgfRE5bP
Мне нужно написать тг бота который будет тянуть инфу по апи с софтины. Т.е. много мне не нужно:
Работа с числами и строками
Циклы
Массивы
HTTP-запросы
Работа с json
Работа с файлами
Если есть какой-то мини курс без говняка который охватывает темы выше, а также знакомит с синтаксисом и особенностями языка - поделитесь плиз.
Чел, скажи пожалуйста, ты тупой?
Я тебе в предыдущем посте написал, что деление на строгую и слабую - это крайне условное деление, по которому нет согласия. Позицию на оси строгой и слабой типизации ты как-либо точно определить никогда не сможешь.
Возвращаясь к вопросу по Джаве.
В Джаве типизация не строгая, потому что есть тайпкастинг.
Разрешаю перекрыть статьей в вики, которая говорит, что у джэвокала строгая типизация.
Любой язык где есть тайпкастинг, в особенности неявный - язык нестрогой типизации.
Строгая типизация - это маняфантазия. Языков со строгой типизацией не существует.
Мне змея нужна.
Охуенно, то что нужно. Спасибо!
Двачую профессора
В тредах это побочный эффект, а в асинке это фишка.
Спасибо, анончик!
структура матрицы прилагается к сообщению
вместо звездочек число = 4
кроме диагонали главной, на ней: np.random.rand()*20+4
Наверно корутины в эвентлуп кинуть по расходам гораздо меньше, чем треды плодить, не? Если в твоего телеграм-бота будет долбиться 1000 человек, чтоб к фоточке хуй приделать, на каждый запрос будешь тред отдельный плодить и ждать переключения контекста каждые 5 мс?
Когда тред засыпает во время ожидания данных в сокете, то переключения на него не происходит. Единственная разница, что в случае asyncio они работают в неблокирующем режиме.
Если их не джойнить в основном потоке, то они не блокируют его:
1) если это io-задачи или сисколы (epoll/io_uring/etc), то gil опускается, блокировки нет, но переключения будут, когда данные появятся в сокете/буфере;
2) если это вызовы скомпилированного c/c++/go/rust-кода, то gil также опускается и также не блокирует основной и остальные потоки, кроме моментов исполнения байт-кода по запуску всего этого и сериализации данных в py-объекты при получении ответа;
Если же это приделывание хуя через opencv какой-нибудь, где 50% кода внутри на питоне, то gil не даст им работать "параллельно", будут переключения между ними и будет конкуренция, вплоть до локов.
Если делать всё это через asyncio, то:
1) для io-задач и сисколов вместо 1+n потоков у нас 1 поток с n корутинами, блокировки нет, эвентлуп сам решает, когда ему читать данные из футур;
2) для вызова скомпилированного кода или cpu-задач это надо запускать в отдельном тред/процесс-пуле через run_in_executor, и тут уже в зависимости от ресурсов основной поток с эвентлупом может залочиться, но переключения также будут, если делать через тред-пул, поэтому неблокирующий режим у нас только в 1 случае.
Разве не так?
Вот код:
https://www.online-python.com/pD9XA4NxOn
Почему-то основной цикл даже не выполняется... Что я делаю не так?
наверное root.iter('ItemGroup') создает пустой итератор. попробуй другие методы
https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.iter
>наверное root.iter('ItemGroup') создает пустой итератор
А почему это может быть? Вроде ведь ошибки нет нигде, корректно указано всё...
Через findall заработало, собственно, пикрил. Но почему же root.iter() не работает? Он ведь должен!
Да, что-то количество ньюфагов с копеешными задачками поутихло, негде показать себя. Может на улице выступай с математичискими фокусами?
Господа программисты, нужна ваша подсказка. Мне нужно использовать модуль system-hotkeyhttps://pypi.org/project/system_hotkey/, но он не поддерживает python 3.10+
Есть библиотека system-hotkey310 1.0.5 https://pypi.org/project/system-hotkey310/, но я не могу понять, как её импортировать для использования.
import system_hotkey310 не работает
Это для тех полупокеров, кто генетически не способен осилить божественный Tcl?
ты еще autohotkey не видел
но это же по идее должно вызывать обычный system-hotkey, а не
system_hotkey310
хотя я так подумал, может это вообще не нужно? на самом деле основная ошибка, кторую я пытаюсь исправить - это
AttributeError: module 'collections' has no attribute 'Iterable'
я разобрался, спасибо
если заменить в system-hotkey.py
import collections.abc
всё равно продолжает давать ошибку
AttributeError: module 'collections' has no attribute 'Iterable'
но если оставить import collections
и добавить collections.Iterable = collections.abc.Iterable
то модуль system_hotkey работает
как я понял, это потому что модуль collections.Iterable устарел и нужно использовать collections.abc.Iterable
Единственное, что я не понимаю, как работает эта связка из
system-hotkey и system-hotkey310 1.0.5
Потому что в system-hotkey310 1.0.5 вообще нет .py файлов
Там файлы, расширение которых я даже не могу посмотреть.
Анонимус это объект-заглушка, он реализует интерфейс юзера, но не является его подклассом.
Во-первых у тебя related_name в group некорректно прописано.
Во-вторых ты в if User.is_authoricated проверяешь не объект, а класс.
В-третьих, у Джанго есть встроенное решение для анонимного пользователя.
Никак не могу разобраться как этим пользоваться.
if request.user.is_authenticated:
post.author = request.user
else:
#post.author = User.objects.get(username="anonymous")
post.author =
Хотя чатгпт говорит, что лучше проще написать None, возможно так и есть.
Вместо этого, вы можете установить значение None для поля post.author, чтобы указать отсутствие аутентифицированного пользователя или автора поста.
Таким образом, если пользователь аутентифицирован, мы устанавливаем request.user в качестве автора поста. Если пользователь не аутентифицирован, мы устанавливаем None в качестве автора поста. Это соответствует требованиям модели, где поле author ожидает экземпляр модели User или None.
Шарп это хуевый клон Джавы от майкрософта.
Нет. Подавляющее большинство попыток визуализировать код обвенчались крахом, если это не какая то узкоспециализированная хуйня вроде визуализации AST кода, но там то она сама по себе напрашивается.
Из очевидных примеров, всякие UML визуализации ООП иерархий это говно говна, дети в яме с говном плюются говном, дебилка и дебил-генерал, аниме-манга.
Тут вроде не ООП, но пример иллюстративный.
https://www.youtube.com/watch?v=208K8EnSlB0
просто свёрстано говняно. надо было заказать дизайн у артемия лебедева
хотя даже такая схема может быть полезна человеку, которого интересуют какие-то конкретные ноды
блоу_джон просто старый гумозей и любит покекать над лолами
Очень востребован. Тупо лучший фреймворк для api шлепства. Еще и асинхронный из коробки.
Ну не убивайти!!1
lst2 = ['foo','bar']
lst1 = lst2 # >1<
print ("",f"1 :{lst1}",f"2 :{lst2}",sep="\n")
lst2.append('some') # >2<
print ("",f"1 :{lst1}",f"2 :{lst2}",sep="\n")
lst2 = [] # >3<
print ("",f"1 :{lst1}",f"2 :{lst2}",sep="\n")
Аноны смотрите.
1) Я присваиваю первый лист к другому, окда.
2) Потом изменяю один лист, второй тоже меняется потому что это ссылочка, всё ожидаемо
3) Очищаю зачальный лист, а второй лист не меняется. Давно такое поведение сделали. я отчетливо помню что во втором Питухоне если всё вышеперечисленное повторить, то очистятся оба листа.
Вообще это пиздец, мало того что это неявное и очень важное поведение, так оно ещё и из версии в версию меняется. Сегодня у нас ссылочка. завтра не ссылочка, послезавтра гладиолус.
Сделай .clear(), тогда очистится. Это ссылка на новый второй список, нет никакого изменения.
Алсо, можно полный слайс заменить на пустой список, тогда мутируется.
Ты не очищаешь начальный лист, а присваиваешь переменной lst2 ссылку на другой объект [].
lst1 продолжает ссылаться на ['foo', 'bar'].
пробовал через widget.setAttribute(Qt.NoFocus) - не работает
пробовал через widget.setWindowFlags(QtCore.Qt.WindowDoesNotAcceptFocus) - не работает
при чем оно как-то странно работает. когда курсор захватывает оверлей, он меняет свою иконку с игровой на системную, при этом объекты в игре при таком наведении все равно выделяются. но если нажать лкм, то взаимодействие с объектом не произойдет, вместо этого фокус переключится на оверлей и фпс в игре просядет (что подтверждает смену фокуса)
Берешь и вкатываешься.
Матан нужон или хуйня? Можно и без него маркизом стать?
Новая капча, какая ирония.
Зависит от конкретной работы, где-то нужно где-то нет. В большинстве мест не нужно. Сеньорство это больше про обширность знаний что бы проект с от проектирования бд и архитектуры до деплоя и сбора метрик довести.
Чтобы заниматься, нужно знать, что оно существует, а там уж освежишь память.
Тот же бинарный поиск простенький, но вряд ли ты его сходу придумаешь при решении такой задачи.
>во втором Питухоне если всё вышеперечисленное повторить, то очистятся оба листа.
Никогда так не было. Возможно, ты путаешь с lst2[:] = []
>>717650
То есть, сеньор это в основном тот, кто не может даже банальный дешифратор без подгляделок придумать и написать, но зато знает что нужно делать, чтобы программа делала то, что нужно делать? Я правильно понял? Если так, то я получается тоже уже сеньор.
>>717878
А какой профиль? Я вот тоже, например, получил 5 в четверти по биологии в девятом классе.
>Я правильно понял?
Если сможешь с нуля написать проект выбирая те или иные архитектурные решения и выбор технологий при этом имея достаточно глубокие знания в каждой из затронутых областей, то да, можешь лычку прикрепить.
Проблем гораздо меньше, как компромисный вариант можно в WSL юзать интрепретатор подключаясь к нему из IDE на шинде.
Воспринимать как сишку без скобок, вообще не вижу проблем с этим, хотя и на говяхе писал и на жабе.
нихуя себе ты сравнил. я всю жизнь пишу на cи лайк языках, это говно даже близко не си. оно даже хуже паскаля нахуй
Клиент https://pastebin.com/rbvckRyq, использую ClientSession как и рекомендуется без наследования.
Сам тест https://pastebin.com/FwkM053y. Если без mock, то все проходит. С aioresponses получаю
/tests/test_issues.py::test_get_issue_parameters Failed:
[undefined]aiohttp.client_exceptions.ClientConnectionError:
Connection refused: GET /v2/issues/QUEUEONE-1?page=1&perPage=50
get_client = <aio_yatracker.base.BaseClient object at 0x7fc38f5e7ad0>
get_primary_issue_id = 'QUEUEONE-1'
.
Что-то с URL? Потому что он собирается из ClientSession(base_url="https://api.tracker.yandex.net) и endpoint'a в методе, например .get(url="/v2/issues)
ну так иди пиши на голанг, там и ценники выше и вакансий больше. А если надо задрачивать машоб и нейронки, то се ля ви
https://www.youtube.com/watch?v=g6G6nbbygX8&t=847s
А у тебя есть как монетизировать эти нейронки?
>А какой профиль?
Ну как раз-таки биология и химия.
Сейчас еще на сайд-проекте днокла по конструированию какого-то контура отвода тепла иногда что-то делаю. Но там довольно простые расчеты.
Мусіш разумець, што wheel - гэта бінарны пакет. Калі не супадае аперацыйная сістэма верагодна несумяшчальнасць.
Паспрабуй ruby - гэта як Пітон, але мае end.
from time import sleep
pygame.init()
pygame_icon = pygame.image.load('images/3952554 (2).bmp')
pygame.display.set_icon(pygame_icon)
screen = pygame.display.set_mode((1700,850))
pygame.display.set_caption("game")
player = pygame.Surface((100,100))
player.fill('Red')
player_cords_x = 200
player_cords_y = 200
running = True
while running:
sleep(0.05)
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
elif pygame.event == pygame.KEYDOWN:
if pygame.event == pygame.K_w:
player_cords_x =+ 10
elif pygame.event == pygame.K_s:
player_cords_x =- 10
elif pygame.event == pygame.K_d:
player_cords_y =+ 10
elif pygame.event == pygame.K_2:
player_cords_y -= 10
screen.blit(player, (player_cords_y,player_cords_x))
не работает управление
from time import sleep
pygame.init()
pygame_icon = pygame.image.load('images/3952554 (2).bmp')
pygame.display.set_icon(pygame_icon)
screen = pygame.display.set_mode((1700,850))
pygame.display.set_caption("game")
player = pygame.Surface((100,100))
player.fill('Red')
player_cords_x = 200
player_cords_y = 200
running = True
while running:
sleep(0.05)
pygame.display.update()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
elif pygame.event == pygame.KEYDOWN:
if pygame.event == pygame.K_w:
player_cords_x =+ 10
elif pygame.event == pygame.K_s:
player_cords_x =- 10
elif pygame.event == pygame.K_d:
player_cords_y =+ 10
elif pygame.event == pygame.K_2:
player_cords_y -= 10
screen.blit(player, (player_cords_y,player_cords_x))
не работает управление
Из кода, который вы предоставили, я вижу несколько проблем:
Вам необходимо добавить отступы (табуляцию) для вложенных блоков кода, таких как циклы while и условные операторы if. В Python отступы играют важную роль в определении области действия блока кода.
В строке pygame.event == pygame.KEYDOWN и в последующих строках сравнение не выполняется правильно. Вместо pygame.event вы должны использовать event.type.
При проверке нажатия клавиш вместо pygame.event == pygame.K_w вы должны использовать event.key == pygame.K_w и так далее для остальных клавиш.
Операторы +=, -= используются неверно в строках изменения координат player_cords_x и player_cords_y. Правильные операторы для увеличения и уменьшения значения переменной на определенную величину это += и -=.
вот нерабочий пример: https://www.online-python.com/1OEmUS3pq0
сейчас я делаю так
> а, б, в = функция(...)
потом насираю пустыми аннотациями
> а: Пук
> б: Среньк
и тогда пичарм начинает понимать и подсказывать мне поля
> а.[пук_айди объем_пука химический_состав автор_мелодии ...]
в 3.11 ввели для этих целей TypeVarTuple, а понятно объяснить не объяснили. пайчарм только что обновил на 2023.1.2 (билд от May 17, 2023)
Это действие под капотом сначала проверяет наличие элемента или просто выполняет и всё?
Метод set.add(element) использует хеширование для проверки наличия элемента во множестве. Внутри множества в Python используется хэш-таблица (hash table), которая позволяет эффективно проверять наличие элемента и добавлять новые элементы.
Вкратце, хэш-таблица является структурой данных, которая ассоциирует каждый элемент с его хэш-значением. При вызове метода add, Python вычисляет хэш-значение для элемента element и использует его для определения, в каком слоте хэш-таблицы должен находиться элемент. Затем происходит проверка, есть ли уже элемент с таким же хэш-значением в этом слоте. Если элемент уже присутствует, то он считается дублирующимся и не добавляется повторно.
Я не знаю, как там в ваших модных кьюти, но в ткинтере при инициализации фрейма есть параметр takefocus=False (или 0). Учитывая, что фреймворки не сильно отличаются, почитай документацию.
Пример приведи, всмысле сломали? Сейчас запустил проект на 3.6, в котором много коллекций и всё деплоится вполне.
Сложнейший вопрос, уровня синьора тимлида или даже выше. И я
совершенно серьезно.
Создаем ярлык файла. Он же .lnk в англоязычной среде это называется не язлык, а shortcut.
И вот как этому shortcut добавить thumbnail изображение, а не просто пиктограмму ярлычка.
Сил нет, помогите.
В дсрм и псд, очевидно.
без sudo
~/.local/lib/python3./site-packages
с sudo
/usr/lib/python3./site-packages
а вообще используй venv
Для отдельных проектов юзаю поетри и пипенв. Чаще первый. Если задача сильно мелкая, то и venv пойдет.
Но часто возникает нужда пользоваться средой не для какого-то проекта, а для одного типа задач. Тут два варианта - конда и докер. Докер часто оказывается оверкиллом для прикладных задач, ну и в целом в один момент возникает слишком дохрена раздельных проектов, чтобы докером можно было комфортно пользоваться с бухты барахты.
Конда - другая история. Довольно удобное переключение между средми и довольно быстрый запил енвов с нуля с последующей довольно гибкой конфигурацией. Но разрабы конды - сраные дегенераты, которые годами игнорируют проблемы с дебильным разрешением версий. Плюс челики работают крайне халтурно. Мамба кое-как решает проблему, но поскольку является надстройкой над кондой, иногда упирается в те же проблемы.
В общем, анончик, посоветуй чем сейчас принято менеджить проекты и отдельные среды.
Но не могу додуматься как это можно сделать.
У меня есть два цикла, в первом цикле я вывожу все родительские комментарии, и для каждого родительского комментария вывожу реплаи на него. Но как рядом с реплаями на комментарии вывести реплаи на реплаи?
{% for comment in post.post_comments.all %}
{{comment}}
{% for reply in comment.replies.all %}
{{reply}}
{% endfor %}
{% endfor %}
вот так схематично выглядит код.
Если есть у кого реализации веток комментариев, может покажете свои, был бы очень рад
def __init__(self, chtoto):
self.chtoto = chtoto
Подскажите как в классе объявить переменную и присвоить ей значение chtoto?
class MyClass:
____chtoto = 'nucuTb'
print(f'1 {MyClass.chtoto}')
MyClass.chtoto = 'KaKoTb'
print(f'2 {MyClass.chtoto}')
тебе нужно сходить noKaKoTb, собраться с мыслями, понять, что ты хочешь
Всем привет. На работа попросили сделать бота, а я никогда не занимался не то что ботами, а даже простейшим программированием.
Нашел на ютубе уроки по созданию ботов и все вроде норм но тут потребовали чтобы кнопки были прямо в чате.
Поменял ReplyKeyboardMarkup на InlineKeyboardButton и уже обрадовался но эта хуйня не работает.
Можете подсказать как просто кнопки поменять из меню в чат и все?
TypeError: InlineKeyboardMarkup.__init__() got an unexpected keyword argument 'resize_keyboard'
Я нашёл решение, если кому интересно, то в цикле где отображаются реплаи я сделал рекурсивный include html файла, куда скопировал код для реплаев, и замкнул рекурсию
@bot.message_handler(commands=["start"])
def start(message):
markup = types.InlineKeyboardMarkup(row_width=1)
item1 = types.InlineKeyboardButton('Информация 1',callback_data="0")
item2 = types.InlineKeyboardButton('Информация 2',callback_data = "1")
item3 = types.InlineKeyboardButton('Информация 3',callback_data = "2")
item4 = types.InlineKeyboardButton('Информация 4',callback_data = "3")
back = types.InlineKeyboardButton('НАЗАД',callback_data = "4")
markup.add(item1, item2,item3,item4, back)
bot.send_message(message.chat.id,'Меню:',reply_markup = markup)
@bot.callback_query_handler(func=lambda call: True)
def callback(call):
if call.message:
if call.data == '0':
markup = types.InlineKeyboardMarkup(row_width=1)
item1 = types.InlineKeyboardButton('Информация 1', callback_data="0")
item2 = types.InlineKeyboardButton('Информация 2', callback_data="1")
item3 = types.InlineKeyboardButton('Информация 3', callback_data="2")
item4 = types.InlineKeyboardButton('Информация 4', callback_data="3")
back = types.InlineKeyboardButton('НАЗАД', callback_data="4")
markup.add(item1, item2, item3, item4, back)
if call.data == 1:
bot.send_message(call.message.chat.id, 'Вот файл с базой данных')
if call.data == 2:
bot.send_message(call.message.chat.id, 'Вот файл с базой данных')
if call.data == 3:
bot.send_message(call.message.chat.id, 'Вот файл с базой данных')
if call.data == 4:
bot.send_message(call.message.chat.id, 'Вот файл с базой данных')
bot.polling(none_stop=True)
@bot.message_handler(commands=["start"])
def start(message):
markup = types.InlineKeyboardMarkup(row_width=1)
item1 = types.InlineKeyboardButton('Информация 1',callback_data="0")
item2 = types.InlineKeyboardButton('Информация 2',callback_data = "1")
item3 = types.InlineKeyboardButton('Информация 3',callback_data = "2")
item4 = types.InlineKeyboardButton('Информация 4',callback_data = "3")
back = types.InlineKeyboardButton('НАЗАД',callback_data = "4")
markup.add(item1, item2,item3,item4, back)
bot.send_message(message.chat.id,'Меню:',reply_markup = markup)
@bot.callback_query_handler(func=lambda call: True)
def callback(call):
if call.message:
if call.data == '0':
markup = types.InlineKeyboardMarkup(row_width=1)
item1 = types.InlineKeyboardButton('Информация 1', callback_data="0")
item2 = types.InlineKeyboardButton('Информация 2', callback_data="1")
item3 = types.InlineKeyboardButton('Информация 3', callback_data="2")
item4 = types.InlineKeyboardButton('Информация 4', callback_data="3")
back = types.InlineKeyboardButton('НАЗАД', callback_data="4")
markup.add(item1, item2, item3, item4, back)
if call.data == 1:
bot.send_message(call.message.chat.id, 'Вот файл с базой данных')
if call.data == 2:
bot.send_message(call.message.chat.id, 'Вот файл с базой данных')
if call.data == 3:
bot.send_message(call.message.chat.id, 'Вот файл с базой данных')
if call.data == 4:
bot.send_message(call.message.chat.id, 'Вот файл с базой данных')
bot.polling(none_stop=True)
if not 'hui' and not 'pizda' in nick:
print("true")
Почему условие не выполняется?
Потому что not 'hui' = False. Учись правильно формулировать логические выражения.
Спасибо братик
накидал гуй
как выводить числа? через псевдонимы?
Далбаеб, это белорусский
Это копия, сохраненная 22 июля 2023 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.