Это копия, сохраненная 15 ноября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Предыдущий >>1494130 (OP) Там мы встречали официальный релиз 3.8 с долгожданным оператором :=
ЧАВО: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat актуальность примерно 2015 года
Книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem
Очень много книжек: https://drive.google.com/drive/folders/13YaFijvuH4dtv-PjUKVWLQ7ZIqXIfCLK
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/
https://pastebin.com/
https://pyfiddle.io/
https://www.codepile.net/
#######################################
Вопросы-ответы:
А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем - решать тебе, книга вредна не будет, то ты можешь её просто не дочитать и забросить.
Стоит ли читать %книга_нейм%, если там питон версии 2.х? - Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
А что ещё можно читать? - Питон сам по себе очень хорошо задокументирован, и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги. - МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? - очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
А как учить джангу? Нахожу только книги по джанге 1.х - У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой, из официальной документации.
В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать - Вот, пожалуйста, та же самая программа, но переработанная под язык Python http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём - брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
Как вариант идешь на фриланс биржу, смотришь какие задачи народ просит решить. Пробуешь решать. В смысле не беря заказ, просто задание там берешь. Что-то +-серьезное можешь в портфолио положить, никто не будет проверять. Когда ссаться перестанешь начинай заказы брать. Ну или работу ищи.
ну хуй знает. я этот курс пробежал еще в начале сентября и с того момента написал еще пару сайтиков было даже два тестовых лол и покурил sql. в итоге пока что нихуя никому не нужен
мимодругой анон
Ну я про быстроту и лёгкость пути ничего не говорил.
А курс сам по себе совсем простой, реально для полных чайников. После него ещё писать и писать. Там же тонкостей ещё немеряно и всяких бестпрактис которые только на стаковерфлоу и можно прочесть. Короче все от конкретного человека зависит.
https://pastebin.com/6LMkmC7G
Суть проста-выбираю пдфку (используя tkinter) затем с помощью библиотеки PyMuPDF (fitz) ищу значение terms (СМЕТА) в ПДФ и выписываю номер странички где это слово встречается. Затем вывожу в консоль, а затем еще и в .txt документ.
Вопрос как задать несколько значений terms? Пробовал делать
terms =['СМЕТА', 'ВЕДОМОСТЬ'] но тогда вообще все сваливается в ошибку
TypeError: in method 'TextPage_search', argument 2 of type 'char const *'
Вообщем халп
Не могу так сходу сказать. Плохо оцениваю глубину знаний, когда кажется что многие вещи очевидны и понятны, да и само словосочетание "хорошо знаешь" может подразумевать и продвинутую работу и понимание кишков.
Про различные стратегии кеширования и кешехранилища знаю и юзал их. Настраивал сварм для докера через compose и умею работать с контейнерами. Для брокера сообщений юзал RabbitMQ и кафку. C бд работал и с sql типа постгреса и марией и с nosql типа монги, etcd и redis, проблем не возникало.
Ну тогда малаца.
Посоветовал бы учить ГОвно, сейчас довольно много вакансий для свитчеров на ГО или же в паре питон+го.
Нихрена тебя не понял, открывал, не понял зачем этот hit_max нужен, обрати внимание что я в searchFor закидываю переменную, а не конкретно слово "xyi". Мне весь смысл в том чтобы по всему документу найти, и "СМЕТА" и "ВЕДОМОСТЬ" (я потом по этой херне содержание в ворде проставлять буду, это быстрее чем глазами проглядывать). Просто для понимания. Представь что у тебя есть 1000 стр ПДФка, и каждые (как вариант) 10 страниц повторяется "СМЕТА" а за ней "ВЕДОМОСТЬ", а где-то напрмиер ведомости вообще может не быть. Вообщем как мне для этой херни ключевые слова объявить.
Если что в питоне 2ой день, ногами не пинай
Что это для тебя значит? Большой? Сложный? Нелогичный?
Тю ты, ну попробуй тогда чтоль вместо
> if page.searchFor (terms):
Писать
> for x in terms (тут уже будет список твоих слов соответственно):
> ---if page.searchFor (x):
Я так понял он не один хуй много раз ищет, а много разных хуев.
Там же по идее просто перебор словаря
for each in terms:
и тут поиск
Но возможно надо оптимизировать как-то, а то много проходов по файлу может выйти если словарь большой.
мимокрокодил
Да, тоже так подумал и ответил соответственно, выше уже отписал вроде нормальный вариант.
>>02974
У меня на выводе примерно следующее должно быть:
СМЕТА found on page 1
ВЕДОМОСТЬ found on page 2
СМЕТА found on page 228
ВЕДОМОСТЬ found on page 322
а если допустим в ПДФке не будет ВЕДОМОСТЬ то он будет искать сразу по другим объявленным словам в словаре.
Короче https://pastebin.com/5MrtAXad,
если я правильно понял как-то так, впрочем теперь ругается что terms не объявлен как я понял. Но я теперь хз как объявить словарь.
У >>02969-анона словарь прямо в цикле for, но при таком подходе как сам terms то объявить?
Чет я в печали, день ебусь с этим простым скриптом.
Пиздец, да ты и правда второй день в питоне.
На https://pastebin.com/RhzSwVgW , пробуй. Табуляцию сам поправишь
Дружище огромное спасибо. Добра тебе
Ну это же очевидно по твоему посту.
Разную сопутствующую хрень:
брокеры сообщений, RabbitMQ, ZeroMQ и т.п.
менеджеры задач, вроде Celery
базы данных SQL и NoSQL, вроде Redis
инструментарий вроде Git
всякие докеры
asyncio и асинхронное программирование
Ничто из этого не обязательно, даже всё не обязательно, но это из того, что реально востребовано и на что смотрят.
class OpenFile:
"""This class opens file"""
def __init__(self, route, mode):
self.route = route
self.mode = mode
def __enter__(self):
self.file = open(self.route, self.mode)
return self.file
def __exit__(self, type):
if type is Exception:
print('We deal the exception')
self.file.close()
return True
self.file.close()
with OpenFile(r'C:', 'r') as some:
a = some.read()
class OpenFile:
"""This class opens file"""
def __init__(self, route, mode):
self.route = route
self.mode = mode
def __enter__(self):
self.file = open(self.route, self.mode)
return self.file
def __exit__(self, type):
if type is Exception:
print('We deal the exception')
self.file.close()
return True
self.file.close()
with OpenFile(r'C:', 'r') as some:
a = some.read()
Почему же они блядь не придерживаются такого же подхода с моделями? Гораздо же вероятнее что несколько проектов будут работать с одной и той же бд. И тогда начинается адок с поддержкой миграций в разных проектах. Как решать такую проблему?
На стажера, которому перезвонят.
Помоги себе сам
Питон 3.8 - говно.
Петушня ебаная со своими моржовыми хуями и операторами.
Гвидон - пидор.
Сиди на 3.7
>def __enter__(self):
>____self.file = open(self.route, self.mode)
>____return self.file
Вот здесь у тебя ошибка. Метод __энтер__ должен вернуть объект-контекст. А ты его не возвращаешь, у тебя до этого не доходит, ошибка возникает. __выход__ обрабатывает ошибки, которые возникают в теле контекстного менеджера, а у тебя сбой при инициализации.
Всё равно на работе джуна будет какой-нибудь кусок говнокода вообще на втором питоне блядь. Я не знаю, насчёт их нововведений, я пока не уверен в применении f string, вдруг потом найдутся уебаны с 3.4 питоном
while function(a):
n+=1
Он будет увеличивать n пока function(a) не выдаст True? Надеюсь понятно описал. Везде видел только с заданными условиями.
Да, условие пересчитывается каждый раз в начале цикла
С модификацией кода отдельной функции всё предельно ясно. Со всем файлом как такое провернуть?
И ещё вопросик примерно той же степени уебанства: как сделать так, чтобы импортируемый в модуль класс Foo при создании его экземпляра "видел" глобальные переменные этого модуля? Передавать их в качестве аргумента в __init__ видится мне очень некрасивым костылём, а при вызове globals() в теле __init__ она, видимо, возвращает пространство имён импортируемого модуля, а не модуля, в который класс Foo импортируется. Помогите нубу.
Я посмотрел ролик про асинхронность из шапки. Я правильно понимаю, что если у нас будут тысячи новых подключений, которые будут запрашивать по маленькой и не нагружающей цпу задаче а потом отрубаться, то будет быстрее прогонять их через корутины, чем создавать для каждой новый поток?
>2
Почему бы тебе просто не запилить нормальный конфиг и не ебать мозг?
>1
Просто интересно, зачем такое вообще может пригодиться?
Ну они threads называются, а не process. Понятно, что всё в итоге на одном ядре.
>>03500
Да, быстрее будет с корутинами. Ещё зависит от операционной системе, на линуксе точно, на старой винде не факт.
Когда у тебя много тредов, система переключается на каждый из них даже если они заблокированы, ждут данных. Само переключение какие-то расходы ресурсов несёт. А когда у тебя корутины, то переключение идёт только на те корутины, к которым пришли данные и они разблокированы. Внутри это работает на разных системных select/epoll и т.п., качество реализации которых зависит от ОС. В линуксе это хорошо работает, в винде не во всех версиях хорошо было. Но вряд ли кто будет делать серверные задачи на сотни и тысячи подключений на винде.
Через куки это делают. Сервер генерирует какое-то случайное число, uid сессии, и записывает его в куки. А на следующих обращениях эти куки читает и достаёт из хранилища данные сессии.
Так много книг, с какой лучше начать?
1. Харрисон М. - Как устроен Python
2. Д.Бейдер - Чистый Python
3. PEP8
Потом уже начинаешь дрочить веб-фреймворки или машобчик или что там тебе надо, попутно изучая стандартную библиотеку.
Допустим у меня есть txt в котором идут записи,
БМВ, МЕРСДЕС, ПОРШ
Как мне считать эту текстовуху как список. Будто бы я жестко в коде прописал:
wordlist = ['БМВ', 'МЕРСЕДЕС', 'ПОРШ']
Все что ни пробовал выкидывает в ошибку. Хелпуйте
Два пересказа доки и линтер, найс выборка. Главное всю либу стандартную выучить, шоб от зубов отскакивало.
> пересказа доки
Иди нахуй. Свой первый язык тоже по докам учил? В книгах всё разжёвано, как раз для новичков, в отличие от сухой доки.
Да я тут шапку прочел и начал с книги "Укус питона".
Зачем? Все что пишут в тредах есть в документации или тут спрашивают вопросы уровня "как открыть файл?"
например
БМВ
МЕРСЕДЕС
ПОРШ
Так вот вопрос как pandas.read_csv считать этот словарь построчно. Пробовал sep='\n' и delimiter='\t'. Все равно не читает.
Если словарь вида: БМВ,МЕРСЕДЕС,ПОРШ и sep =',' то все работает. Но так не очень читаемый словарь. Какие есть идеи?
Возможно это все нубские вопрос. Недавно в петоне
Прикрепляю строку на всякий:
wordlist = pd.read_csv('wordlist.txt', sep='', encoding='cp1251')
да дело не в том, что он подсказал правильно/не правильно, а том что я сделал по другому, и это работает и все казалось бы хорошо. Но потом я подумал, что лучше в словаре слова разделять не запятой, а новой строкой. А вот как считать данные когда слова построчно?
https://pastebin.com/3gXx2LFr
Проще говоря, что засунуть в sep='' ?
Понимаю, но можно было и не высерать
Иногда бывают интересные вопросы не из доков.
А вообще удобно там было бы шапку треба расширить, расписать.
Какой-то лютый пиздец у тебя в голове. Ты читал хоть что-то про чтение файлов? Нахрена к твоему микрословарю прикручивать артилерию в виде пандас?
все давно разжевано
https://ru.stackoverflow.com/questions/928295/Чтение-файла-построчно-в-python
Мужик, прикинь натыкался на это читал, подумал что у меня какие то проблемы с кодировками, типа не читалась. У меня еще парочка for напичкана в скрипте, вообщем включил голову еще раз осмыслил код, сделал по твоей ссылке. Все заработало. Пандасы уберу из скрипта. Слушай а есть ссылка где прочитать про вывод в csv. Я потом полученные значения хочу разнести в столбик в csv. А затем, уже руками копировать их в word)
> Я потом полученные значения хочу разнести в столбик в csv. А затем, уже руками копировать их в word
Пиши сразу в word, епту
мимо
не подойдет, тут суть в том что в блокноте все выходит одной строкой:
"БМВ найден на странице 2"
"ПОРШ найден на странице 3"
мне же нужно чтобы экспортнуть в эксель (или csv)
в колонке А будут идти
БМВ, ПОРШ а в колонке B номера. Тогда затем я смогу скопировать из колонки B страницы. А колонка А нужна для того чтобы зрительно перепроверить не проебался ли мой скрипт.
У меня еще такой вопрос вот ищет программа БМВ, ПОРШ, строго по словарю, а как задать чтобы искало БМВ и еще несколько символов после этого слова.
Допустим в словаре написано:
БМВ
ПОРШ
а найдет
БМВ м5
ПОРШ 911
Ну вы поняли, слово из словаря+несколько символов после. Хот я бы как это гуглить. Соре за банальные вопросы. Я не кодер по основной профессии. Для работы нужно.
> а как задать чтобы искало БМВ и еще несколько символов после этого слова.
regexp в помощь, если хочешь без костылей.
csv это тот же текстовый файл в котором данные разделяются запятой, педивикия в помощь. Поэтому выходной файл можешь просто назвать "мояхрень.csv".
Ну и в него строки пишешь как-то так:
fout.write(f'{тут текущая переменная из списка},{тут номер страницы}\n')
Ясен хуй что вс] автоматизировано, на селери крутится
Гвидон съебал из-за этой хуйни, так что не надо
На какую позицию идешь? Запомни, на собесах обычно любят поглубже покопать тему, которую ты затронешь. Начнут что-то спрашивать и заденешь хеши - начнут по этой теме спрашивать.
Я так в асинхронность половину собеса увел и хорошо выступил.
Может кто-нибудь объяснить как в этой функции использовать дефолтный параметр для initial ?
Так в твоем примере он и будет пятерку использовать.
А еще ты пидорас с картинкой правда думаешь что я это перепечатывать буду?
Не, что-то я тупанул конкретно. При распаковке initial станет 1.
Тут вообще любое число переданное первым будет ему присвоено.
Правильнее поставить initial между и * аргументами. Тогда будет работать верно.
Блять, двач, помоги. Я заебался пердолиться с модулями на линуксе. Пытаюсь запустить в вскоде - вылезает, сука, ошибка - пик 2. pip3 freeze показывает, что модуль установлен, и более того с консоли работает все нормально. Интерпритатор в вскоде вроде как тоже верный. Сука, что мне делать? Может, ИДЕ посоветуете другой? С моим корытом-ноутбуком сидеть на пичарме невозможно. Или как-то по изьебистому либы ставить надо? ставил через pip3 install telebot
Ладно, походу проще скрафтить env и ебаться уже с ним. В любом случае, я буду благодарен любым советам по менеджменту питона на линупсе.
На нем же только django и flask, нейроночки уже для более менее грамотных спецов. Мне кажется вакансий на джуна-стажера не так мног ои они и так переполнены.
Каждый себя мнит умнее остальных вкатывальщиков. Более другой язык они, конечно, остлить не могут.
Потому что при list += делается extend, а не append
Там же где вводил pip freeze введи which python, полученный адрес введи в вскоде. Так как у тебя линукс, скорее всего у тебя там в одной куче все версии питона, возможно пип показывает модули для интерпретатора второго питона, а ты запускаешь в третьем, может наоборот. Самоё простое -- сделай venv
вот есть у меня к примеру ютубчик (это только нынешняя проблема, а нечто подобное возникает часто). и нужно мне, например, у большого числа роликов написать коммент с, например, его длительностью.
Можно делать это руками и заебаться, можно попытаться разгрести апи от ютуба и, как я понял по краткому прочтению всех этих идентификаций апи заебаться еще больше
но мне эти стулья не по нраву, наверняка есть какая-нибудь возможность это автоматизировать не на уровне апи, а на более, как бы, пользовательском уровне, то есть выдавать скрипту куку, пинать его на определенную веб-страницу, заставлять его парсить ее на, в данном случае, значение ypt-time-duration, вводить это в поле комментария и жмакать кнопочку комментировать?
подскажите какую-нибудь либу к змеюке, которая это сможет и имеет какую-никакую документацию (желательно с примерами)
Спасибо
Я на ДР у двоюродной сестры был, (ей 30 лет, не жената, живет одна с 6 кошками в большой квартире)
встретил там какого-то мужика 25-30 лет, ростелекомщика, он короче питон учит, хочет вайти вайти, говорит, что дошел до классов, а дальше не понимает, и ему практику надо. Ну я про себя порофлил. Сказал, что не питонист, и не могу помочь.
Приятный язык? Что сейчас круче раста среди статически типизированных языков? D не взлетел, go вроде неплох, но на нем все клепают только круды на 20кк рпс.
В этом и смысл. Вкатывальщики успеют побывать самыми первыми джунами в мире, когда количество вакансий вырастет.
> Приятный язык?
Нет. Он очень специфичный. Этакий статический perl.
> круче
С перспективой трудоустройства? Всё не очень, но можешь глянуть на Котлин.
Как лучше изучать aiohttp?
По докам
сам себе сервер?
go lang is better
1280x720, 4:57
Вопрос на собеседовании: в чем отличие потоков от асинхронности?
Ответ: асинхронность работает в одном потоке, но переключает контекст при помощи цикла событий.
Хуя се у тебя текста в игрухе
Если тут имеются отличия между многопоточностью и асинхронностью, то я бы ответил, что это разные типы многозадачности. Асинхронность это кооперативная, а потоки вытесняющая.
Что на ваших проектах юзается из питоновских фреймворков?
Какие проекты пилятся на джанге? И все ли плюшки используются?
Например из юзаются ли стандартные вьюхи для аутентификации или пишутся свои?
Прост, после изучения джанги, кажется , что особо прогать уметь не надо для создания проекта. Прикрутил все дефолтные штуки из джанги и все работает. Так ли это на рил продуктах? И испольхуют ли джангу для сложных проектов?
Зависит от задач. Если ты на каждого клиента будешь стартовать по системному потоку, то ось тебя пошлет нахуй. А вот если ты по корутине на юзера будешь создавать, то сможешь жить и на одном потоке (но при условии, что остальные корутины не будут пытаться внезапно посчитать какую-нибудь еболу на 10 000 лет, многозадачность-то кооперативная).
https://docs.python.org/3/library/asyncio-task.html
Раньше корутины делались на генераторах, сейчас в петухоне для этого завезли отдельный котел. Там немного колдовства с фреймами имеется Не помню точно, различается ли это колдунство для генераторов и корутин, в последний раз сурцы cpython давненько читал.
Если на пальцах. Корутина - это некий особый объект, который можно запускать на выполнение, но при этом он предусматривает возможность приостановки выполнения, чтобы в это время могли выполниться другие задачи.
Самый канонический пример - генераторы. Именно на их основе асинхронность и реализовывалась изначально. Сейчас там сложнее, дальше вообще от этого уйдут.
Совсем на пальцах. Твоя асинхронная функция работает, в какой-то момент эта функция решает, что надо бы и другим дань возможность поработать. Эта функция говорит "так, я отдыхаю, если кому надо, работайте, потом снова я". И система, планировщик задач, переключает задачу.
Вот этот проще и понятнее расписал, чем я, двачую. Дополню, что роль планировщика задач играет asyncio event loop.
При многопоточном выполнении может работать несколько задач одновременно. Они правда могут блокировать выполнение других потоков, как это в питоне из-за GIL. Но сути не меняет. При асинхронном выполнении работает только один поток.
Второе различие в том, что при асинхронном выполнении за точку переключения задачи отвечает программист. В коде явно эти точки указываются, операторы await. Причём только при условии, что ты именно оформленную задачу ждёшь, но это нюансы питона. А вот при многопоточном выполнении переключение задач происходит в произвольный момент времени.
Именно, поэтому лучше в корутинах ничего тяжелого не считать. Пока одна корутина не вернет управление, все остальные ее ждут.
Жестко надеялся на нормальную шаренную память и так же жестко разочаровался. Очень нужно было хранить общий словарик в памяти, чтобы не синхронизировать изменения состояния через сообщения между процессами. Оно, конечно, медленно, но использование manager-а с проксированием словарика в десяток раз медленнее.
Нужно обойтись только стандартной либой, пытаюсь оптимизировать свой фреймворк для акторных вычислений на питоне, с распределенностью и балансировкой нагрузки между ядрами. Не то чтобы он был шибко практичен (пока что), но я в нем просто обкатываю алгоритмы, которые потом тащу в свою виртуальную машину (смесь beam vm и jvm для одной узкой области). А сам фреймворк скрещиваю с asyncio, чтобы можно было из акторов корутины вызывать и вообще сокеты асинхронные использовать, hello-world вроде бы вебный отдает, сложнее пока не пробовал.
Возможно из-за различия лицензий
Пока что изучаю асинк, потому что на хайпе.
Меня на всех собесах на должность питониста с джангой спрашивали максимум "- джангу знаешь?" "-да" "збс". И пару вопросов по sql.
Если сомневаешься, можешь быстро глазами пробежаться по какому-нибудь короткому мануалу да хоть тот же самый джангогёрлз, чтобы понимать, нахуя нужны модели-вьюхи-формы.
Надеюсь что так и будет, с остальными технологиями какие указаны проблем нет, ну если что у меня еще 3 офера от других контор, так что это не мой последний собес если что.
Отпишись потом, как прошло интервью, интересно.
Мы вам перезвоним
Учился тупо документацией питона.
Что дальше?
Что лучше: Прочитать книгу или пройти большой курс?
pip install -r requirements.txt
Почему бы тебе в следующий раз не загуглить "python requirements.txt", например?
а чем отличается, если через python setup . ?
Скачать встроенное видео, поиск по джейсону. Толком без взаимодействия с программой.
Короче, очень простые.
Аноньчики, как парсить все эти сайты с ajax, типо которые при каждом клике порцию фотографий заливают на страницу? Это нужно как-то при первом запросе выловить кукисы, а потом с этими кукисами делать запросы на ссылку на кнопку?
Нет простого способа визуализации текста на нескольких строках в pygame, но эта вспомогательная функция может вам пригодиться. Просто передайте текст (с символами новой строки), x, y и размер шрифта.
def render_multi_line(text, x, y, fsize)
lines = text.splitlines()
for i, l in enumerate(lines):
screen.(sys_font.render(l, 0, hecolor), (x, y + fsize*i))
https://qa-help.ru/questions/otobrazhenie-teksta-s-neskolkimi-strokami-v-pygame
Можно так как ты написал, а можно селениумом просто тыкаттся.
Да, доки и укус питона
Яйца легче отстрелить себе потоками. Там из-за лока нет адекватной и нормальной многопоточности. Потоки просто стараются захватить gil и при удачной попытке остальные ждут. Это пиздец просто. В дополнение, ты не знаешь какой поток захватит управление и что ожидать ты можешь. В асинхронности ты сам переключаешь контекст.
Мне бы самому узнать.
> Есть ли какие-то краткие заметки по особенностям языка и о его работе под капотом?
Fluent Python.
Двачую бро, Modula - охуенный язык.
Вот пишут, что god class это плохо и нужно классы разделять по смыслу и задачам. И че нахуй, без него у меня вообще в каждом классу будет по паре аттрибутов и один метод. Это же блять просто захламление кода. Нахуя это все?
Не проще. Больше бессмысленной писанины, как и в ООП.
Все книги, курсы, гайды и видосы по программированию такие...
Походу их пишут специально чтобы вкатиться сложнее было и больше людей забрасывало это в начале.
Одна вода и никакой конкретики, или другая крайность, ПРОСТО берём и начинаем писать код...
В небольшом проекте нахуй не нужно. В большом же будет не два атрибута, а два десятка, и без классов хуй разберёшь, к чему какие функции относятся.
Это нужно для организации кода. В какой-то момент тебе потребуется, некая сущность содержащая данные и методы для работы с ними.
Если в рамках той же пиццерии. У тебя есть некий класс заказ, который содержит определенные поля, типа время, сумма, айдишка предмета заказа, номер клиента, статус и т.д. (тут уже больше нескольких полей, как видишь) и у так же будут несколько методов, типа сохранения объекта в базу и изменения состояния, так же благодаря инкапсуляции ты можешь жестко задать те действия которые ты можешь сделать с этим объектом, типа запрета на изменения клиента через вынесение его в приватные атрибуты. Так же через наследование и полиморфизм ты можешь гибко их изменять, например сам класс заказа унаследован от класса model какой-нибудь orm в которой уже реализованы методы для сохранения, изменения, удаления и поиска данного объекта в базе.
Предлагаю вашему вниманию криптографию на эллиптических кривых!
https://github.com/username1565/mini_ecdsa - файл ECC.py и tests_ECC.py
Пока что, это - черновой вариант, но он уже рабочий!
Можете погонять, потестить, попытаться оптимизировать ужать код, убрать лишнюю хуету,
а если будет интерес и желание - можете ещё и промасштабировать всё это,
на суперсингулярные эллиптические кривые, а также на кривые Монтгомери.
Хорошего дня.
Всегда считал ооп странным, пока не столкнулся с классами типов в хаскеле -- тогда я вообще понял, что ооп это путь не туда. Какое-то бессмысленное размазывание логики по всей кодовой базе. Нет, серьезно, типизированное лямбда-исчисление -- это наше все. System F с обобщенными алгебраическими типами данных достаточно выразительна, чтобы покрыть подавляющую часть необходимых абстракций. Плюс видел версию System F с сабтайпингом, но это уже какое-то извращение.
ООП - это относительно простое расширение привычного всем структурного программирования. А вот ФП - ебически сложное инопланетное нечто, к которому невозможно привыкнуть. И не надо про "неосиляторов" - индустрия не сдвинется из-за кучки маргиналов, и осливших никогда не будет большинство.
Лучше уж размазанная логика, чем всё в одном месте, переплетённое так, что попытка сделать малейшие изменения всё ломает. Да, ФП-код можно хорошо структурировать. Но что мешает так же хорошо структурировать ООП-код?
А Haskell да, красивый. Но абсолютно нежизнеспособен.
print(строка, значение, строка, sep="")
>понятный новичку
Сложно. ООП реально нужно в больших задачах, а большие задачи новичку понять трудно, не понимая сути технологий.
Мой совет, на примерах с треугольниками и пиццериями абстрагируйтесь от того, нужно ли это в примерах. Врубитесь в технологический смысл, как это использовать.
Наиболее частая схема, это когда в библиотеке реализован какой-то базовый класс, который делает сложный функционал. Но часть вещей не реализованы, их должен дописать тот, кто этим классом будет пользоваться. Тут сразу все три основы ООП используются.
Примеров много в разных фреймворках. В Джанго - так модели, админские модули и другое реализовано, там много применяется. Или класс asyncio.Protocol довольно хороший пример.
ФП не сложное, если потратить минут 10-15 и слегка поменять способ рассуждений о коде в своей голове. Всякие монады, моноиды, функторы -- это уже к хаскелю, он про чистое фп + теоркат. И да, хаскель не жизнеспособен в качестве продакшн языка в большинстве случаев, т.к. хаскель -- это площадка для исследований в области фп и теории типов. И если его использование в проде иногда все же оправдано, то вот тех, кто тащит в прод Agda или Idris, я бы лично обоссал.
Если у тебя функциональный код ломался от малейших изменений, то дело не в парадигме, а в твоих руках, а точнее их неприспособленности, что более вероятно. Про "ломается при малейших изменениях" -- это скорее про императивный код, который часто неявно зависит от совсем неожиданных частей глобального состояния. А вообще, ООП-объекты легко можно имитировать при помощи частичного применения функций.
Касательно структурируемости кода -- да, ООП-код тоже возможно структурировать, однако возможности этого в ооп искусственно ограничены вследствие непонятно зачем сделанного связывания данных с кодом. Более того, тот полиморфизм, который наиболее распространен в ООП языках вроде джавы, шарпа и прочих подобных, сложно назвать полноценным полиморфизмом, по крайней мере, с моей точки зрения по большей части из-за механизма реализации дженериков в джаве, а точнее, из-за слишком костыльного использования type erasure.
Я не против ооп как такового, я против тех, кто пытается использовать одну парадигму везде.
И кстати, обобщенные алгебраические типы данных могут звучать сложно, но если ты потратишь минут 10-15 на чтение статьи на вики с примерами кода, ты потом очень долго будешь удивляться, как вообще возможно построить хоть сколько-нибудь сложную систему без их использования.
> дело в твоих руках
Ага, сишники так же говорят, оправдывая UB, переполнение буфера и прочие преимущества сишки.
Что действительно жизнеспособно - языки, в которых есть элементы как ООП, так и ФП.
> Ага, сишники так же говорят
Из того, что сишники винят твои руки (а не недостаток опыта, как в моем сообщении выше) вместо признания проблем си, не следует, что я не прав, не так ли?
> Что действительно жизнеспособно
Твое "жизнеспособно" это синоним слова "привычно", на самом деле. К тому же, мы говорили про парадигму, а не про языки, не перепрыгивай с темы на тему.
>>08145
Сразу видно человека с аргументированной и логичной позицией и большим опытом, да.
>Сразу видно человека с аргументированной и логичной позицией и большим опытом
Ваши ожидания - ваши проблемы.
Почему для написания программ на одних языках требуется "опыт", а на других вполне можно писать жизнеспособные программы с нуля? Да, это будет быдлокод, но порог вхождения говорит о наличествующих проблемах.
Разница между парадигмой и реализацией - как разница между теорией и практикой. Можно придумать название "гибридная парадигма", но суть не изменится.
Если под жизнеспособными программами ты подразумеваешь абсолютно неподдерживаемое и нерасширяемое говно, то, увы, это не жизнеспособная программа.
Порог входа в языки программирования, как правило, искусственно понижают для большего охвата аудитории, больший охват != лучшее качество Go и JS как пример.
И да, если ты в своем коде отходишь от определенной парадигмы, принятой для данного участка программы, для своего удобства, ты тем самым усложняешь понимание программы не только для себя, но и для своих коллег.
К тому же, для программирования на некоторых языках нужен не "опыт". Нужно банальное умение думать определенным образом. Как правило, развивается путем изучения алгоритмов и математики. Поверь, областей, в которых нужны программисты с уровнем квалификации выше "накидать формочку" и "сделать апишку для выдачи данных из бд", очень и очень много.
И да, ты прав -- слишком низкий порог входа (равно как и чрезмерно высокий) говорит о проблемах языка. Например, в случае питона это низкая скорость исполнения программы и малое количество накладываемых на программиста ограничений. Поверь, если им не следовать, получается очень хреновый код.
В случае того же го это крайняя примитивность языка. Ну а дальше ты сам.
Какой же ты урод.
Анимедебилы уже и сюда просочились, ну пиздец
Можно ли было юзать юникод в идентификаторах? Даже в крестах можно с недавних пор.
Вместо списка можно использовать namedtuple.
А в других языках можно
>областей, в которых нужны программисты с уровнем квалификации выше "накидать формочку" и "сделать апишку для выдачи данных из бд", очень и очень много.
Можно подробнее пожалуйста? И желательно с примерами. А то я на том же хх вижу в основном вакансии именно формочки накидать
Ок, ничто не вечно.
Проигрываю с вкатывальщиков без опыта работы.
А если по делу, открой upwork или аналоги и посмотри, какие задачи там есть. Пойми что ты червячок и выкатывайся.
Хочу вкатиться в анализ данных (работаю в консалтинге бизнес-аналитиком и завидую коллегам из другого департамента-просто охуенно)
Есть лишние деньги, но очень мало времени, поэтому подумываю о курсе от яндекс практикума. Какие подводные камни?
Прошу не гнать ссаными тряпками и пардон за ньюфажество. Спасибо
В джангу залезь, охуеешь
что на счет поинтересоваться у коллег из того самого департамента?
бизнес-аналитик - это начальная позиция, можно ведь попросить перевести тебя на такую же начальную в другом департаменте
если работаешь в big3, то расскажи лучше как вкатился
и как связан яндекс практикум и отсутствие времени, там в сутках даются бонусные часы?
интересовался-вкатывайся в питон, библиотеки и прочий дата сайнс лол. Ну хоть математику знаю. Попроситься перекатиться-идея не из лучших, т.к. мой руководитель сразу узнает, что я смотрю НАЛЕВО, и не хочется напряженных отношений
В своем департаменте у меня средний высокий грейд- я утрировал
Нет, работаю не в б3, а компании уровня IBM/Accenture/Kerney и тд
Я вкатывался ранее в погромирвоание, и у меня уходила тонна времени на гугление инфы или разжовывание. Понимаю, что в этом кроется суть познания, но хотелось бы, чтобы меньше времени на это тратилось.
Спасибо, что уделил время посту
я не датасаентист, поэтому сужу со своей колокольни
проведем небольшой ресерч, типичная вакансия дата аналитика(не саентиста) выглядит вот так:
https://hh.ru/vacancy/33866469?query=Аналитик данных python
ключевые слова - SQL, большие данные (Hadoop, Apache Spark), python
по анализу данных в python на курсере есть масса курсов, в том числе и от яндекса
по SQL информации тоже масса
а вот в фреймворках для работы с бигдата за домашней пекой скорее всего разобраться будет затруднительно
что касается времени, то по моим наблюдениям это около года плотной работы:
курс по базовому пистону - 1-3мес
курс на курсере по анализу - около 6мес
sql с нуля - 1-3мес (подразумевается базовый набор навыков для написания запросов)
самостоятельная практика для своего гитхаба(портфолио) на датасетах с кагла - около 2мес
опционально: подтянуть статистику, тервер, линал. Наверняка есть какие-то пробелы в знаниях с универа
>К тому же, для программирования на некоторых языках нужен не "опыт". Нужно банальное умение думать определенным образом. Как правило, развивается путем изучения алгоритмов и математики.
Это какие языки?
Поясню конкретно - я питоновский мидлосеньор (зависит, наверное? от собеседующего), но в последнее время ощущаю, что если я через год буду так же хуярить круды на рест фреймворке, то просто вскрою себе вены, меня уже тошнит от этого всего. Хочу чего-то достойного, даже не в деньгах дело, ( хотя конечно хочется зарабатывать чем больше тем лучше), а просто чтоб если меня на улице встретит препод по дифурам из универа, чтобы было не стыдно рассказать "я нейросетями занимаюсь" а не "я сегодня писал весь день датамиграцию".
Вот допустим, я такой инвестирую полгода своих выходных и месяц отпуска в этот ваш керас-питорч, что джальше происходит? Я становлюсь интересным специалистом или джуниором-дурачком в 27 лет?
вовсе не обязательно становиться саентистом, можешь просто писать качественный код и быть дата инженером, видео по теме
https://www.youtube.com/watch?v=lDkTNURDIaY&list=PLjmVxPf1NeID3TtbXwglKrhPmwFr_DyqA&index=16&t=0s
Есть матрица произвольного порядка (массив), надо отсортировать.
Например
1 4 8
8 1 3
3 7 9
После сортировки
1 1 3
3 4 7
8 8 9
Уже так и делаю, но всё равно спасибо!)
data science на самом деле рандомное тыкание кнопочками у 90%, к сожалению.
Разработка ядер ОС и модулей к ним.
Разработка распределенных систем.
Научные вычисления.
Ну и т.д. Но я не подразумевал хедхантер и ограничения по питону, так что, если из контекста можно было заключить именно такие ограничения, то извиняюсь, проглядел.
>>08691
Ada, например. Ассемблеры. Скалка там, clojure, erlang, elixir, ...
Дело не в фп-подходе, а в модели акторов, молодой человек. А для программирования с использованием модели акторов все же нужно нарабатывать определенный образ мышления, иначе ты ничего дельного и работающего не сделаешь.
Виртуальная машина эрланга, кстати, весьма интересная вещь. Попробуй ее на досуге поизучать, тебе может понравиться а может и не понравиться, если навыков пока не хватает для изучения кодовой базы beam vm.
И причем тут математика и алгоритмы?
Это выглядит, как куча асинхронных процессов, которые сообщениями обмениваются
Что, дочитал статью на вики про модель акторов?
А теперь иди и сделай на том же условном эрланге распределенную субд реализующую свойства c и p из cap theorem.
Математика же, между прочим, имеет к модели акторов самое непосредственное отношение, т.к. актор - математическая абстракция, никак не завязанная на какую-либо реализацию.
>актор - математическая абстракция
>Актор является вычислительной сущностью, которая в ответ на полученное сообщение может одновременно:
>отправить конечное число сообщений другим акторам;
>создать конечное число новых акторов;
>выбрать поведение, которое будет использоваться при обработке следующего полученного сообщения.
Математики изобретают микросервисную архитектуру со своей виртуальной машиной это называется.
Мальчик, посмотри на дату первой публикации по модели акторов и пересмотри свое утверждение.
http://worrydream.com/refs/Hewitt-ActorModel.pdf
И где там математическая абстакция? Выглядит просто как описание архитектуры программы.
АБСТРАКЦИЯ МАТЕМАТИЧЕСКАЯ
абстракция в математике, мысленное отвлечение, представляющее собой существенную составную часть мыслительной деятельности, направленной на формирование основных математич. понятий.
Никаких математических понятий я в статье не видел. Только зачаток микросервисной архитектуры
Окей, если тебе нужно более формализированное определение, то оно есть здесь
https://www.semanticscholar.org/paper/A-Foundation-for-Actor-Computation-Agha-Mason/1880f0b36a38662ab25b5cf01b2c1688f1789900
Лучше не keras/pytorch учить, а именно теор. базис нейроночек. А потом понимание того же торча само придет, плюс ты будешь намного ценнее, т.к. сможешь по пейперу воспроизвести модель или сделать на ее основе свою. А самый топовый вариант -- не ограничиваться нейроночками и начинать вообще не с них.
Дополню. В двухтысячных Хайкина советовал, но сейчас уже почти 2020 и вроде как на русском вышла годная книга по машинному обучению (с синей обложкой, кажется) и там не требуется особой мат. подготовки, т.к. все прям самое нужное дают в самом начале.
Тыкнул на радномную статью из всей кучи.
Это все справедливо для архитектуры асинхронных микросервисов с очередями. Просто в случае эрланга оно встроено в язык и является основной философией для него. Для использования никакого глубокого знания математики не нужно, это как каждый раз для описания программы использовать знания из университетского курса "Исследование операций". Достаточного прикладного понимания работы и проблем асинхронного программирования и многозадачности.
А я где-то говорил, что нужно глубокое понимание? Я говорил, что математику и алгоритмы нужно изучать. И да, без подготовки программист, скажем, на питоне ничего по-настоящему работающего не выдаст на эрланге, если ему дать знания только о синтаксисе языка. А вот программист, который понимает не только синтаксис эрланга, но и сам эрланг, напишет уже распределенную систему, способную выдерживать нехилые нагрузки. Кстати, в ряде случаев может понадобиться такая замечательная вещь, как CRDT, впрочем, в той же mnesia все уже сделано.
И все-таки, признай, что без определенной подготовки человек не сможет писать на том же эрланге хаскель рассматривать было бы слишком читерно, хотя он иногда все же используется в проде у меня на работе, например, одна из самых жестко контроллируемых систем написана на хаскеле. И уровень этой подготовки требуется несколько более высокий, нежели уровень подготовки среднего JS-программиста.
Забыл, между прочим, самый яркий пример языка с максимально высоким порогом входа -- Malbolge. Он, конечно, Тьюринг-полный, но все-таки на практике неприменим, поэтому вряд ли его можно отнести к нашей дискуссии.
Ты сравниваешь условного погромиста на питоне, который всю жизнь бложики на джанге делал и программиста на эрланге, который писал распределенные системы. Писать примитивные вещи можно на любом языке, для эрланга просто написана система для решения определенных задач. Те же распределенные вычисления и CRDT так же реализуются на питоне и даже успешно используются и при ознакомлении уже формируют понимание проблем и того, как они должны решаться, это не зависит от языка.
>что без определенной подготовки человек не сможет писать на том же эрланге
Человек без определенной подготовки никогда и не напишет хорошую распределенную систему, ты подменяешь понимание задачи и ее решения на понимание языка, так же человек, который писал на эрланге бложики и не знаком с определенными практиками не сможет написать хорошую программу, которая выдержит большую нагрузку.
>нежели уровень подготовки среднего JS-программиста
Потому что фронтам это не нужно и они занимаются другими вещами и решают совершенно другие задачи.
Бамп вопросу.
>годная книга по машинному обучению (с синей обложкой, кажется) и там не требуется особой мат. подготовки, т.к. все прям самое нужное дают в самом начале
Эта?
Соответственно веб-приложение будет. Юзер запускает это у себя на сервере, конектит группу и вуаля.
Собственно предлагаю заинтересованным анонам принять участие.
От вас: желание.
Уровень навыков не важен.
Неплохая, на мой взгляд, возможность наполнить свой гитхаб реальным попенсорс проектом и пройти путь от проектирования и обсуждения структуры приложения до финального запуска.
Оставляйте свое фейкомыло/телеграм и с вами свяжутся.
Ага, удаленно вырежут, ты пост хоть прочитал?
У меня вопрос - на пифионе работа только бэкендом есть?
Меня нашли лол, просто резюме на ххру сделал, обе конторы сами кинули приглашение и на почту скинули контакты, попросили позвонить в рабочее время.
Вангую они просто не смотрели ещё твой "опыт".
Что в вакансии у них указано?
Вообще, довольно часто пишут хрюши и зовут на вакансии где нужен опыт гораздо больше чем имеется, просто потому что они тупые курицы и не понимают нихуя, а ну и им, вроде как, за количество пришедших тоже доплачивают.
В обоих вакансиях опыт не требуется, но я не понимаю как на удаленке без опыта работать.
Так снова я, кароч буквально 10 минут отзвонили, вообщем меня приняли со след недели приступаю к работе, кстати на этой вакансии требовали опыт от 1 года и вышку, а у меня ни того ни другого нет, так что откликайтесь на все вакансии, хоть на сеньоров шанс пройти есть всегда, всем в тредике удачи!
>кстати на этой вакансии требовали опыт от 1 года
так на такие и надо обращаться, они имеют ввиду включая некоммерческий
или по крайней мере удобно считать что они так имеют ввиду
У тебя на 195 скобка не закрыта.
Чому ты тогда в рабочее время в будний день сидишь на харкаче вместо того, чтобы подучивать? Поделом выгонят.
Это тоже было, не спорю. Пилил виртуалку под System FC и jit-компиляцией с преемптивными акторами за счет прерываний и смены контекстов, поэтому думал немного не в том ключе. Заодно часть кода за последние дня два выбросил, там тоже чушь наделал, лол.
У меня щас не рабочее время и я только что доку читал, мне просто интересно, есть тут те кого выгоняли с работы потому что не справляется с задачами.
Собеседования и тестовые не показывают как человек будет работать в общем, может на собесе спрашивали что-то одно поверхностно, а на работе пришлось работать с чем-нибудь еще. Я тоже тупил, когда меня как джуна без взяли и на тестовой неделе говорили тесты писать, а еще через неделю дали задачу связанную с реббитом.
мимо
Буду стараться, фирма то неплохая не хотелось бы вылететь.
Эта чтоль?
Дрочить лучше параллельно с работой, на которой этот матан применяется.
Чтобы теория и практика шли вместе.
Ну там будут те же материалы, что есть бесплатно в интернете, те же задачки тебе будут давать, что ты можешь найти бесплатно, потом выдадут тебе тему для проекта и будешь сидеть и делать его так же, как мог бы сам сесть и делать, потом выдадут сертификат, на который в общем-то всем насрать. После курсов в 90% столкнешься с тем, что знаний нихуя на джуна не хватит, будут такие же проблемы с устройством на работу, как у тех кто ни на какие курсы не ходил.
Покупай, если тебе оно надо, особо многого не жди. Я бы посоветовал если и брать, то какой-нибудь курс с помесячной оплатой, чтобы свалить, если не зайдёт.
Два чая этому шарящему господину.
>>09436
Но пожалуй стоит отметить единственный плюс курсов:
Ты можешь задавать вопросы преподу, который эту хуйню ведёт, и получать ответы.
Правда есть одно но - на 90% вопросов есть однозначные ответы в гугле, а оставшиеся 10% просто не имеют точного ответа и зависят от ситуации.
Небольшой бумп.
Куда копать самоучке без ВО? так много направлений разных, но непонятно, какое можно реалистично освоить из дома до уровня, что чужие люди тебе доверят работать работу?
А, понял, я просто после ответа на вопрос про курсы перепутал вкладки, думал, что в нюфаг треде сижу.
У тебя с питоном вариантов не особо много, есть вэб, есть машоб/бигдата, есть написание скриптов в работе автотестера или сисадмина/девопса.
В принципе всё можно из дома освоить, но учить разные вещи придётся. Работу из этого найти проще всего автотестером, судя по всему
https://www.jetbrains.com/research/python-developers-survey-2018/
Тут статистика по пистону есть
Нужно написать программу которая берёт либо твой текст который ты вводишь, либо она берёт его из .txt файла. И эта программа показывает все слова в тексте в алфавитном порядке и сколько их в тексте.
У меня проблема, при чтении из .txt файла программа не убирает пукнтуацию, хотя если эти же предложение скопировать и вставить с помощь Input, всё отлично работает. Объясните, пожалуйста, почему программа не детектит кавычки и прочие знаки в .txt?
второй скрин когда я скопировал предложение из .txt и вставил его через оболочку, а третий когда тоже самое предложение читается из .txt. Разница очевидна, вот в чём дело?
если ты про ту, что я делал (черное лого питона в белом круге на красном флаге), типа ололо третий рейх, то я всякое 5-минутное говно даже не сохроняю обычно, и очевидно она проёбана
Сделал бы что-то вроде
import sys
_input = sys.stdin
И не морочился с файлами или инпутом, пущай пользователи stdin перенаправляют.
Не надо конечно, он просто повыебываться решил.
Советую никогда не писать
> for i in range(len(itter_obj)): ...
Лучше делай так:
> for index, value in enumerate(itter_obj): ...
Если тебе не нужны сами значения value, то можешь ставить нижнее подчеркивание на позиции второго аргумента в фор-лупе.
вот реально в каком мозгу могла появиться идея что питон это красивый язык, их девиз beautiful is better than ugly звучит издевкой
Тебе тут в целом не нужен инициализировать переменную перед try блоком None’ом, поскольку ты все равно при ошибке завершаешь скрипт кодом 256-1?. Вообще твой код весьма специфический, обычно json загружают через стандартную либу:
> import json
> my_json = json.load(filename)
Как уже написал выше, тебе не нужно делать config_json = None, поскольку это не имеет вообще никакого смысла, но если очень хочется, то можно сделать так:
> import os
> json_config = open(json_path) if os.path.isfile(json_path) else None
И кстати ты в переменную записываешь только указатель на файл, если ты нигде в коде дальше не делаешь json_str = json_config.read(), то толку от него ровным счётом 0
Последняя стабильная версия в Debian репозитории - 3.6.8 вроде как, лучше всего на ней сидеть, эти парни лучше Гвидона знают, какая версия лучше. На самом деле после появления typing и fstrings вроде ничего реально полезного не добавляли, но имхо.
> Он будет увеличивать n пока function(a) не выдаст True?
Нет. Он будет выполнять функцию и инкриминировать n, пока функция выдаёт True. Если функция выдаёт False, то она выполниться 1 раз, но инка на будет.
Лучше вообще не использовать потоки, если нужна производительность, либо процессы, либо корутины.
Ну епта, sep - сокращение separator, по русски разделитель, очевидно, что там должна быть запятая, советую ещё глянуть аргументы пандасовской функции read_csv, там есть аргумент, который автоматически делает strip не записи типа objects, т.е. на обычные строки, это нужно, чтобы убрать пробелы в начале и в конце слова.
Я всякие itertools не курил, по этому советовал, как мог. К тому времени, когда у него будет 10+ слов и процесс будет немного замедляться, то он что-нибудь да и придумает.
Как это не получится??? Получится, было бы желание:
word_list = [word.strip() for word in (lambda f: (f.read().split(","), f.close()))(open("file.txt"))[0]]
Челы, помогите, чувствую себя данном
Нужно накалякать скрипт
Есть словарь формата
А1: {а}
Б1: {б}
Нужно, чтобы изначально скрипт спрашивал меня значение (А1 или Б1), и возвращал соответствующее значение а или б
Без конструкции if
Я бля голову сломал
Подскажите, куда копать
а что делать? сперва переводить файл в память компьютера, а потом уже начинать цикл по отсеиванию пунктации? readlines() ничем мне не поможет?
Сделал похожим образом
При вводе А он мне в ответ кидает пустой вывод
Мб это потому, что у тебя немного не такое соответствие
У меня фигурные скобки, одному значению соответствует список, а у тебя одному значению соответствует одно значение
Но это уже шаг вперёд, перестало ругаться и писать сомнительные выводы
Спасибо!
>input = input
так делать низя, ты переопределяешь стандартные имена
print(имясловаря.get('input') <- тут апострофы лишние
for substr in substr_list: s = s.replace(substr, '')
Можно придумать что-нибудь оптимальнее по времени(очевидно что можно, вопрос скорее в том можно ли существующими средствами это сделать без написания велосипедов)?
Спасибо тебе, добрый человек! Заработало. Хотя выдает результат в фигурных скобках, но это мелочи
Давай ещё раз. Кусочек кода:
abc = input('xxxxxx: ')
print(имясловаря.get(abc))
Получается, что первой строкой мы объявляем переменную abc, которую введем руками, а второй мы применяем делаем get ту самую переменную abc, и выводим результат принтом. Как-то так?
В нашем случае мы можем ввести только А1 или Б1 из-за специфики метода get?
Пара слов о себе: я околосетевой околоинженер (хуй), который решил освоить программирование для своих корыстных целей. Я решил вкатиться в максимально боевых условиях, ставя перед собой практическую задачу и решая её. Насколько это правильно для человека, который не планирует фундаментально связывать свою жизнь с прогерской деятельностью? Все же стоит шлефануть какуй-нибудь базой? Или реализовать практический результат и кайфовать?
Целочисленное деление возвращает меньшее целое. -2 < -1
В abc записывается результат ввода пользователя. get достаёт из словаря значение, которое хранится под ключом abc. Если такого ключа в словаре нет, то он вернёт то, что передано вторым аргументом или None по умолчанию.
Без базы вообще никуда, так что сначала изучи её. По мере продвижения листай доки, там много полезного бывает. Ну и не забывай про самый лучший на сегодняшний день инструмент - Гугл.
другой-анон
Любой язык может быть красивым, ну кроме ебаного js, там уже все, пиздец, пиши пропало. Питон намного красивее крестов, явы и нелепой подтелки явы типа шарпа, но имхо.
Уж лечше тогда исписать кучу строк, чтобы обойтись без лямба функций.
Тут 105 символов, так что в любом случае по PEP8 придется делать перенос, а это уже 2 строки визуально, так что лучше уж with юзануть.
Можно регулярками, но не уверен, что это будет быстрее.
Можно вообще так:
> s = "".join(s.split(substr))
Но возможно будет медленнее, завивисит от длины текста.
А все, вижу, у тебя список подстрок.
> s = re.sub("|".join(substr_list), ' ', s)
Сейчас под рукой нет пистона, но вроде как должно сработать.
Да наверняка эти 105 символов нарушают дзен питона, что уж говорить про PEP8.
Ну вообще эти цифры как бы не с потолка упали. В любой IDEшке у тебя при сплит окне все плохо будет.
Лично я за 80 символов, но не понимаю почему пепка усерается из-за 80-го символа и настаивает на 79. yapf форматирует по 80 из коробки, а pylint чекает 79. Что за чудо неописуемое...
Если это компактный однострочник, то почему бы и нет?
>>10358
Хуйня этот дзен. Этот пеп был принят в 2000 году где-то, когда ещё можно было найти мониторы, работающие в текстовом режиме. Вот вы пионеры смазливые и не знаете, что это такое, а я даже на этом кодил.
Мониторы раньше имели текстовый и графический режим, и реально очень часто работали в текстовом. Там был стандарт 80 символов в ширину, причём это нельзя было изменить. Отсюда и идёт. А если совсем в древность лезть, то были первокарты, в которых тоже было по 80 столбцов, оттуда у старых фортранов было ограничение 80 символов на строку.
Школота ничего не знает и не понимает, и молится на дзен, на эти сраные 79 символов. А для меня это лютый пиздец, когда меня заставляют жить в 20 веке, который ушёл уже 20 лет назад.
Если я поставлю две колонки у себя, у меня и то в каждой будет 100 с копейками. Срал я на этот стандарт. И любой нормальный анон насрёт.
В 3.7 реально довольно много чего появилось. Это в 3.8 довольно символично, почти только один оператор. В 3.9 похоже вообще ничего не будет.
Только пайчарм! Только светлое будущее! Ну можно ещё немного ipython из-под терминала. Вимобляди, сосите бибку!
У меня с пипом на лине нет никаких проблем ровно также как и на винде. Какой у тебя дистрибутив?
Не обязательно. На селенке есть смысл только делать, если сайт вообще адекватно не отображается и не работает без js, а весь контент генерирится рил тайм динамически. На самом деле таких сайтов не так много и это реально надо постараться сделать такую уебищную структуру. Фактически, если если у сайта есть мобильная версия, либо он построен так, что без скриптов функционал не пропадает, то автоматизировать работу можно с requests или aiohttp.
Лучше не понимать классы, чем думать, что понимаешь и пихать их абсолютно везде по поводу и без. Знаю это по собственному горькому опыту. Когда для нескольких классов без общего наследника нужны общие функции, то нормальный человек просто объявит их в отдельном модуле в виде обычных функций, я же буду создавать под них отдельный класс, через метакласс делать его чисто статическим (не давая создать инстанс), все методы в классе оборачивать в декоратор статического метода. Если этого покажется мало, то в метаклассе пропишу, сильвин методы и так статические из коробки для класса без использования декораторов. И вся это дичь, чтобы сделать класс вместо обычного пространства имён - модуля. И вот хер знает кто тут в более выигрышном положении. Ну а вообще не понимать классы, это какой-то пиздец, не понимаю, что там можно не понимать, так что порофлил тоже. К тому же в питоне на один столп ООП меньше, нет инкапсуляции в обывательском понимании, не самом деле есть.
В ты уверен, что количество вакансий вырастит? Я так понял, кроме мазилы никто особо не рвётся его поддерживать и дорабатывать, а это означает неминуемую смерть.
Мне всегда было проще абстрагироваться от корутин, представляя из отдельными потоками с особыми синтаксисом без надобности вникать в реальную структуру. Но после твоей пусты меня прям всерьёз заинтересовало как устроен aiohttp изнутри, надо бы глянуть сорцы. Спасибо, анонас, за привлечение внимания к проблемам насущным.
Небольшое продолжение
Метод d.keys выводит ключи (в нашем примере значения А1, Б1)
Дальше abc = input ('xxxxWx')
Вопрос: как мне подставить результат метода d.keys вместо W? В текст, что сопровождает инпут
И второй вопрос: метод d.keys() выводит мне ключи, но с фигурными скобками. Есть вариант убрать их?
По-царски сижу в виме по ssh.
Метод split по умолчанию использует один символ (пробел если не задан, или тот, который задан) можно ли как-то задать несколько разных символов?
Заработало!!!
Но начинает странно себя вести, если нужно вставить постоянную часть? Ну типа если должно вывести сначала константу, а потом те результаты, которые выдает .join(d.keys())
Как создать словарь с ключом name и значениями X R W, и так естественно со всем
Я думал думал, но придумать не могу, подсказки смотреть в решении не хочу, ибо сразу увижу все решение
У меня пока получилось так: https://pastebin.com/3L45hmqn
не думаю, что это самое лучшее решение, ибо мне нужно проверять значения по ключу на отдельные буквы типо 'X', 'R' или 'W'
Выход:
{'helloworld.exe': ['R', 'X'], 'pinglog': ['W', 'R']
Не
Но я решился на это, для меня это уже больше половины дела
И нашел книгу, искал спецом для питона 3+, хотя с моими задачами мне это вряд ли потребуется
Положил глаз на книгу Федорова "Основы программирования на языке питон", вроде бы как там много внимания уделяется практике, даже программу какую-то пишешь параллельно (хотя это не точно)
С высоты своего опыта скажи, нормальный ли выбор? Что бы ты посоветовал?
Я не разбираюсь в книгах, поэтому не могу ничего сказать по Федорову. Честно говоря, я даже не помню, по какой книге сам знакомился с языком. Тут вроде все советуют "Укус питона", так что посмотри в его сторону, но, опять же, что-то конкретное не могу подсказать.
Как это лучше организовать? Есть какие-нибудь сайты или подборки базовых задачек? Общая ориентация на геймдев.
Спасибо.
Какая ЗПшка у джунов в ДС?
Логи сливать в какое-нибудь хранилище к которому нет асинхронного драйвера
Пожилой говнокодер вкатывает итт. Может ты и стар как мир, но по какой-то причине этим гордишься, но так и не смог усвоить одну простую вещь, стандарты нужны, чтобы у всех код выглядел +/- одинаково и его было удобно читать любому человеку знающему синтаксис языка. Вроде вещь то очевидная, но почему-то не для всех. Могу поспорить, что в твоих проектах куча файлов на 1000к+ строк, и вечно повторяющиеся куски кода то там, то тут, потому что ты срал на всё и всех.
Пайчарм прожорливый, но у него нет конкурентов. Имхо.
Возможно, если ставить 32 битную версию, то она не так сильно нагибает оперативку раком как 64 битная. Лично у меня 24 Гб оперативы на 3 планках, особо не чувствую дискомпофорта при работе в пайчарме, но вот когда было 16, чувствовалось, что не хватает оперативы, особенно кода блядский хром отжирает 6+ ГБ, а ты не можешь перейти на лису, ибо стал заложником и сучкой корпорации добра.
Скорее всего только так.
> input('xxxx{}xx'.format(','.join(d.keys())))
input(f'xxxx{','.join(d.keys())}xx')
Чтобы прям совсем по красоте, звонко и бодро.
И да где-то должны быть кавычки двойные, либо во основном теле текста вставки, либо аргументе форматирования.
у тебя компьютер кривой
Вот у меня:
>[GCC 8.3.0] on linux
>Type "help", "copyright", "credits" or "license" for more information.
> import time
> t1 = time.time(); time.sleep(0.000001); t2 = time.time(); print("{:0.6f}".format(t2 - t1))
0.000096
> t1 = time.time(); time.sleep(0.000001); t2 = time.time(); print("{:0.6f}".format(t2 - t1))
0.000078
> t1 = time.time(); time.sleep(0.000001); t2 = time.time(); print("{:0.6f}".format(t2 - t1))
0.000098
> t1 = time.time(); time.sleep(0.001); t2 = time.time(); print("{:0.6f}".format(t2 - t1))
0.001098
> t1 = time.time(); time.sleep(0.001); t2 = time.time(); print("{:0.6f}".format(t2 - t1))
0.001071
> t1 = time.time(); time.sleep(0.001); t2 = time.time(); print("{:0.6f}".format(t2 - t1))
0.001072
90 микросекунд, но это издержки на вызов функций уже.
time.time() может давать погрешности, хочешь точности - используй time.monotonic()
И еще time.perf_counter() есть
Это не в time() проблема. Если в цикле 1000 раз вызвать sleep(0.001), а в другом цикле 10000 раз вызвать sleep(0.0001), они типа должны выполниться примерно за одинаковое время, но без всяких таймов видно, что первый цикл выполнился примерно секунду, а второй - примерно за 10 секунд.
Так что это sleep выёбывается.
А вообще
> Also, the suspension time may be longer than requested by an arbitrary amount because of the scheduling of other activity in the system.
Ровно в 10 раз?
https://stackoverflow.com/questions/1133857/how-accurate-is-pythons-time-sleep
you are so hot, baby
Это всё зависит от внутренней реализации sleep.
На линуксе сделал контроль по strace, происходит системный вызов select с соответствующим таймаутом. У меня этот вызов занимает под 100 микросекунд (я этот анон >>11535). В винде какая-то своя реализация.
Вообще даже линукс не realtime OS, эти функции и не предназначены для того, чтобы настолько точно откладывать выполнение на микроинтервалы. Они нужны для того, чтобы какие-то большие задержки делать, от десятков миллисекунд до многих секунд, и чтобы высвобождать вычислительные ресурсы при этом для других процессов, чтобы основной процесс именно спал.
Во время выполнения много чего ещё может произойти, сам питон или ОС могут заморозить на какое-то время выполнение, какая-нибудь сборка мусора начнётся, или ОС задачу переключит.
Есть у меня Python-скрипт, моделирующий LTE-канал. И нужно мне по окончании каждой итерации (примерно раз в минуту) отрисовывать график текущей пропускной способности.
При этом не просто отрисовывать график, а так, чтобы не блокировать исполнение собственно расчётного кода. И при этом чтобы окошко с графиком реагировало на изменение размеров окна, сворачивание-разворачивание и иже с ним (то бишь, чтобы у него работала очередь сообщений от GUI).
Классический способ сделать такое – завести QApplication, встроить туда matplotlib-канвас, вынести исполнение расчётного кода в отдельный QThread, обернуть его в QObject и заставить пересылать данные с помощью сигналов в поток с гуями GUI. Но что-то мне подсказывает, что в 2019 году есть способы попроще.
Что присоветуете?
Вот ссыль на неё https://yadi.sk/d/mMrpBr0rVXzXAg
А вот её код
print('Подсчет символов и слов в тексте\n')
text = []
text = input("Введите ваш текст:\n")
print("Символов в тексте:", len(text))
text = text.split()
print("Слов в тексте:", len(text))
input()
Беда в том, что когда код был только в виде .py скрипта, всё шикарно работало, но когда я скомпилировал в exe, при вводе тексте (даже без нажатия enter) прога просто вылетает.
Подскажите, в чем может быть проблема? Уже голову сломал
Сейчас заметил, что такая проблема ТОЛЬКО, если вставлять текст через пикрил. Че с этим делать? Вылетает теперь даже в скрипте. При том, что если писать врчную, то всё в порядке
тьфу блятЬ, ебал эту винду. Заработало всё, отбой тревоги
> скомпилировал
В этом и проблема, ещё ни разу не видел некривых компиляторов питона. Либо юзай интерпретатор, либо не юзай питон.
Я через командную строку всё делал
pyinstaller -F -i "путь на иконку абсолютный" "имя скрипта"
фекалию
щас бы на питоне фронтом заниматься. Для этого есть гипертекстовая разметка и каскадные таблицы
Пишете спецификацию с картинками, фронтенд делает статические html, css, скрипты и отдает тебе, ты нарезаешь их на шаблоны.
Да, локальный сервак для разработки ставится.
> нужно разрабатывать проект уже на хостинге
Так никто не делает. Хоть один сломает что-то - у всех работа ступорится.
Есть ещё другой подход (SPA). Сервер предоставляет API, а при обращении к не-апишным адресам возвращает один и тот же шаблон html-страницы, который уже на клиенте заполняется нужным содержимым через скрипты, глядящие на текущий адрес страницы и обращающиеся к апи.
увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь
пробежит спорсмен за B дней.
https://ideone.com/iTJfN2
Помогите
Такой цикл называется while
Я пытался, но это естественно не работает.. А то что на пикрил3 в оп посте я пока не понимаю
Ну и формулировки у тебя. Можешь более четко сформулировать задачу? Лучше с примером.
Лучше делай strip на строчку.
Cпасибо анончик
y = float()
for i in range(-3,2,0.5):
y = (x+1) / (x2)
print(y)
Почему не работает?
> x = float(input())
Не нужно ничего с клавиатуры вводить, у тебя значение x должно получаться в цикле.
> y = float()
Эта строка лишняя
> for i in range(-3,2,0.5):
Ты от -3 делаешь, а по условию нужно от -2, и с шагом 0.3, а не 0.5. Но в любом случае это не заработает, потому что нельзя нецелые числа в range() передавать. Сделай через while.
Короче:
x = -2
while x <= 2:
__print((x+1) / (x*x))
__x += 0.3
У тебя случайный набор символов, неосмысленный. Зря тебе другой анон помогает.
Подумай, что должен делать твой код. Объясни смысл первых двух строк, объясни смысл переменной i. Так чему-нибудь и научишься.
Содержательная, не позорная, ошибка в том, что range() работает только с целыми числами, ты не можешь использовать float. Надо с циклом while, как тебе анон посоветовал.
Я если честно, похоже очень плохо понял задание. Всегда траблы с матешей были
Спасибо, надеюсь препод не доебется
>>12100
Ты походу из СИ или Паскаля перекатился? В питоне не надо объявлять типы переменных, это можно и нужно делать но в других случаях. Строчка y = float() не имеет никакого смысла вообще, как тебе уже написали. Стандартный питоновский range не может с float шагом, если уж очень нужно, то можно поставить numpy либу, но в твоем случае достаточно просто все значения сгенерить в 10 раз больше, а потом разделить все это добро на 10, а строчка range(-3,2)[0.5] также бесмысленна, ты пытаешься у генератора взять значение по индекусу 0.5, во-первых, индексы целочисленные всегда, во-вторых у генератора коим и является range нельзя взять что-то по индексу, если хочешь вкатится в питон, то почитай про итераторы и генераторы, на собесах это частый вопрос.
Да так и есть перекатился, из-за этого очень сильно туплю. Вот как раз читаю про range. Я просто не до конца понял что и как. Циклы на питоне посложнее будут. Спасибо, анончик. Постараюсь в след раз не тупить. Пойду еще литературу и наверну
Ты не прав. В питоне циклы намного проше чем в СИ из-за того, что все объеты, кстати классы это тоже объекты, хранятся по ссылкам, тебе вообще никогда не нужно перебирать что-то по индексам.
Если нужно достать элемент в итерируемом объекте:
> for element in you_itter_object: ...
Если нужно достать индекс и сам элемент:
> for index, element in enumerate(you_itter_object): ...
Если по какой-то причине тебе нужен только индекс:
> for index, _ in enumerate(you_itter_object): ...
Это гораздо красивее и проще чем в том же СИ, где ты получаешь индексы и должен по ним ссылаться на элементы с бесконечными кастами явными и неявными.
В ошибке пишет что break out of the loop
Ну ты подуймай сам, что будет с функцией, если ты внутри сделаешь return something.
Задаю такой шаблон - elements = soup.select('#search #rso div .rc .r a'), и возвращается ко мне пустота.
Заметил такие странности:
1) Гугл каждый раз меняет название класса на случайный
2) С помощью requests скачал страницу, записал в файл, делаю поиск по файлу, а вышеуказанные теги ни разу не встречаются в файле.
Как быть, что я делаю не так? Спасибо. Думал, что это из-за первом причины, перешел на яндекс, так он меня забанил после третьего запуска программы.
1) Все что после return'а идет уже не выполняется, потому что return возвращает значение функции.
2) Break заканчивает цикл, у тебя в первом условии нет цикла.
3) Вместо type(instance) == 'str_type_name' лучше использовать isinstance(instance, type_name), который возвращает True либо False.
4) Твой проверка в первом if особо не имеет никакого смысла, поскольку arr может быть типа tuple, в этом случае будет ошибка, но это зависит от логики конечно.
5) Как уже писал выше, хватит использовать for index in range(len(itter)), делайте так for index, _ in enumerate(itter) с точки зрения производительности это лучше, да и с точки зрения читабельности тоже, хотя второе уже субъективная вещь.
ладно,сам разобрался
спасибо за инфу
Это я уже не говорю об ошибке, которая у тебя будет из-за того, что ты инкрементируешь индекс внутри цикла.
Какой-то очень странный синтаксис парсинга, насколько я помню у мыла какой-то свой типа объекта, но скорее всего наследуется от dict. Давно уже его не использовал, но там есть метод что-то типа findAll. Тебе наверное нужно найти все классы rc, для каждого из них найти класс r, и взять из них attached. Возможно имеет смысл искать классы r сразу.
Я бы наверное так сделал, если вообще правильно понял логику твоего скрипта.
https://ideone.com/dTI1Eo
В том то и дело, что сохранив страницу в файл .html я открываю его и вижу, что отсутствуют #search! #rso, .rc .r a. Просто не таких элементов в файле.
Да, лаконичнее выглядит. Только мне еще надо одну проверку припилить. Если под условие не попадает оно должно тоже -1 возвращать, а возвращает None. Вот думаю как это реализовать
В конце функции допиши return -1, если в цикл не прервется с возвратом из функции, то значит условие не выполнилось.
да,уже сделал так,заработало
Но тем не менее ссылки там ведь есть, и их можно выдрать регулярками, возможно это проблема мыла, которое не может распарсить по нормальному страницу.
https://pastebin.com/jYSmGQeY
Кодил только в матлабе. Вкатился на вчера, так что...
Опыта у меня немного. Можем вместе учиться, помогать друг другу или следить за успехами. Так же пилить какойто нубопроект. Если кто знает конфы по питону можете добавить.
У меня первая вариация была похожей, только больше в два раза и совершенно нечитаемой, но я решил избавиться от пагубной привычки и научиться раскладывать всё по полочкам. Пока ещё не разобрался во всех фичах питона, так что похожее ещё не скоро смогу писать.
С первым текстом всё отлично работало и сошлось (сверял с сайтом каким-то в гугле), но когда попробовал второй текст, не сошлись значения. Не совсем догоняю, почему. Есть варианты на этот счет?
Зачем тебе класс?
У тебя же нет состояния, у тебя постфиксное выражение на входе и инфиксное на выходе. Если не хочешь засирать модуль, можешь локально определять функции, в Python вроде можно так делать.
Хотел чтоб было по полочкам всё, пытаюсь понять как вообще следует решать подобные задачи. Можно было и без классов делать, так и делал изначально. Но решил сделать по другому, сначала описать алгоритм в общем виде, а потом отдельно расписывать методы. Класс сделал чтоб вместо a = change(a) написать change(a). В сишке через указатели такое можно было провернуть, а как в питоне это реализовать пока не знаю.
Обычно я стараюсь использовать минимум методов как на пиках, но думаю, что это не совсем правильно и спустя какое-то время я перестаю понимать как это вообще работает. Но главное что работает и факапы редко случаются, плюс стараюсь больше комментить и оставлять подсказки самому себе.
В общем, не знаю как лучше реализовывать алгоритмы и зачем нужны эти классы. Решил использовать, почему бы и нет.
В питоне все объекты передаются по ссылке. То есть если у тебя mutable объект, то вызвав
func(a)
ты даёшь функции возможность что угодно сделать с объектом. Считай, что указатель передаёшь.
А ты скажи, почему с моего счетчика слов проиграл. И вообще, я помощи попросил, чтоб доработать его
Забавно, когда я проверял, это почему-то не сработало.
Свои плюсы у такого подхода есть. Например без подобного механизма ты банально не сможешь реализовать словари, чтобы их ключами могли быть разные типы данных. И чтобы они не ломались от неосторожного движения.
На самом деле конечно было бы полезно иметь какие-то специальные типы данных, "регистры", которые бы были прямо реализованы. Пусть с какими-нибудь ограничениями на них, скажем чтобы нельзя было эти регистры в виде ключей словарей использовать и т.п.
Зачем? Можно в single linked list в самой последней ноде сделать следующую ноду равной самой первой.
Только нужно быть осторожнее с функциями вроде вычисления длины.
дается single linked list рандомной длины и circular linked list рандомной длины, а если сделать то, что ты написал, получится circular я так понимаю если следующей после последней первую сделать
Последний элемент должен ссылаться на элемент с индексом =len(singlelist)-len(circularlist)
Класс один по идее.
На кодварсе похожая задача есть.
У меня в папке лежит несколько (много, до нескольких сотен документов xls и немного docx)
Названия документов называется по определенному порядку: а именно: ОС-01-01, за ней идет ЛС-01-01-01, затем ЛС-01-01-02, потом допустим ОС-02-01, ЛС-02-01-01, ЛС-02-01-02, я думаю, что вы уловили суть. Вообщем я переношу в окно PDF Creator документы в перечисленном выше порядке, затем программа конверитрует и соединяет всю эту пачку документов в одну большую пдф. Вопрос вот в чем, когда документов реально много, отсортировать становится довольно трудозатратной задачей, времени и внимания много, а шанс ошибки повышается с количеством документов. Основной вопрос: какими методами я могу отсортировать файлы в нужном порядке а затем передать их в PDF Creator. Я просто не понимаю как это можно реализовать. Я не прошу сам алгоритм сортировки, а именно как передать файлы с "окна" моей программы-сортирвщика, в программу PDF Creator написанной на древней VB 6 (это даже не .NET), вообщем накидайте идей, названий каких-то библиотек возможно. Сам в программировании не силен, но хотя бы пытаться реализовать надо. Буду рад любым здравым идеям.
Не тот скрин, быстрофикс
Пока что я просто сделал отдельную функцию, которая создает объект класса HeroCreator и кладет его в переменную test. Затем в переменную тест кладется поле myself, а затем переменная test возвращается.
увы, нет
Такие инструменты делали, даже в официальных релизах что-то есть:
https://docs.python.org/2/library/2to3.html
Но идеально ты не сделаешь в любом случае. Автоматом можно какие-то базовые вещи сделать, там print, xrange, юникод-строки и т.п., в некоторых случаях же тебе надо в логику кода вникать, чтобы нормально перенести. И не всегда возможно без большого гемора.
Поэтому так долго на третий питон и перекатывались.
Конструктор не должен ничего возвращать. Ты можешь перегрузить метод __call__, который вызывается путём добавление двух скобок к инстансу класса, как у функции.
А да и можете объяснить как мне реализовать эти полоски, чтобы они динамически заполнялись, я так понимаю нужен жс, но не знаю в какую сторону дальше копать.
Учу пистон, по мимо него заю html css. Если выучу джангу можно проситься на бэкэнд галеру с таким стеком? Если я незнаю фронтенд и js конкретно, это проблема?
Это копия, сохраненная 15 ноября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.