Тред, посвящённый языку программирования Питон, #73.Предыдущий >>1512752 (OP)ЧАВО: 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://dumpz.org/ - можно постить листинги, не требует регистрацииhttps://pastebin.com/ - для листингов, регистрация не обязательнаhttps://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудитьhttps://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться#######################################Вопросы-ответы:А стоит ли читать Лутца, том номер 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/ (нужно знать ангельский или уметь пользоваться переводчиком)Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём - брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
>>1521391 (OP)Сколько сейчас пайтон джун со знаниями и парой петпроектов на джанго, но без коммерческого опыта может получать в мск? Хотя бы 50-55 реально выбить? Там где я живу 0 вакансий, думаю переехать ради опыта
>>1521394Двачую вопрос и призываю джуна ответившего мне в прошлом треде.Мой вопрос, что спрашивали на собесе и что он конкретно на работе делает.Нужно ли джуну дрочить синтаксис углубленно и окончательно ломать себе мозги ИЛИ лучше задрочить конкретные конструкции/идиомы тех задач что джун будет непосредственно решать.
Как вообще принято покрывать юнит-тестами функции?Вот, например,если у меня есть функция, которая разбивает строку по запятым на спиок слов,я точно знаю, что этих слов должно быть 3какие тесты я должен для неё прописать ?Допустим:Проверка на правильный тип данных возвращаемого значенияПроверка на правильную работу функции (забить выходной список вручную для небольшого примера)Проверка на правильное количество возвращаемых элементов в спискеЯ немного упростил свою реальную функцию, у меня еще добавятся тесты для разных специфичных случаев,но есть ли еще какие-то основные тесты, которые я упустил?
>>1521512И еще, если,допустим, делаешь собственный парсер и оформляешь его , как питоновский пакет,нужно ли там прописывать собственные исключения, например для случая, когда на вход подана строка неправильного формата?Или достаточно выбрасывать в коде уже существующий тип исключения, например ValueError, написав лишь там своё сообщение ?
>>1521547def walk(top, topdown=True, onerror=None, followlinks=False): """Directory tree generator. For each directory in the directory tree rooted at top (including top itself, but excluding '.' and '..'), yields a 3-tuple dirpath, dirnames, filenames dirpath is a string, the path to the directory. dirnames is a list of the names of the subdirectories in dirpath (excluding '.' and '..'). filenames is a list of the names of the non-directory files in dirpath. Note that the names in the lists are just names, with no path components. To get a full path (which begins with top) to a file or directory in dirpath, do os.path.join(dirpath, name). If optional arg 'topdown' is true or not specified, the triple for a directory is generated before the triples for any of its subdirectories (directories are generated top down). If topdown is false, the triple for a directory is generated after the triples for all of its subdirectories (directories are generated bottom up). When topdown is true, the caller can modify the dirnames list in-place (e.g., via del or slice assignment), and walk will only recurse into the subdirectories whose names remain in dirnames; this can be used to prune the search, or to impose a specific order of visiting. Modifying dirnames when topdown is false is ineffective, since the directories in dirnames have already been generated by the time dirnames itself is generated. No matter the value of topdown, the list of subdirectories is retrieved before the tuples for the directory and its subdirectories are generated. By default errors from the os.listdir() call are ignored. If optional arg 'onerror' is specified, it should be a function; it will be called with one argument, an os.error instance. It can report the error to continue with the walk, or raise the exception to abort the walk. Note that the filename is available as the filename attribute of the exception object. By default, os.walk does not follow symbolic links to subdirectories on systems that support them. In order to get this functionality, set the optional argument 'followlinks' to true. Caution: if you pass a relative pathname for top, don't change the current working directory between resumptions of walk. walk never changes the current directory, and assumes that the client doesn't either. Example: import os from os.path import join, getsize for root, dirs, files in os.walk('python/Lib/email'): print root, "consumes", print sum([getsize(join(root, name)) for name in files]), print "bytes in", len(files), "non-directory files" if 'CVS' in dirs: dirs.remove('CVS') # don't visit CVS directories """ islink, join, isdir = path.islink, path.join, path.isdir # We may not have read permission for top, in which case we can't # get a list of the files the directory contains. os.path.walk # always suppressed the exception then, rather than blow up for a # minor reason when (say) a thousand readable directories are still # left to visit. That logic is copied here. try: # Note that listdir and error are globals in this module due # to earlier import-*. names = listdir(top) except error, err: if onerror is not None: onerror(err) return dirs, nondirs = [], [] for name in names: if isdir(join(top, name)): dirs.append(name) else: nondirs.append(name) if topdown: yield top, dirs, nondirs for name in dirs: new_path = join(top, name) if followlinks or not islink(new_path): for x in walk(new_path, topdown, onerror, followlinks): yield x if not topdown: yield top, dirs, nondirsТут рекурсия, педорас.
Для работы с данными одной программы очень удобно реализован вывод в дата фреймы pandas. В книжке Numerical python познакомился с рядами и массивами numpy. Есть хорошая книга или другая обучающая литература по pandas? Документация разработчика просто пугает объемом свыше 1000 страниц.
В какой области лучше начать делать пет проджект, что бы подтянуть базу знаний на практике? Желательно с минимальным использованием библиотек. Т.е. что бы область к этому располагала.
Write a function count that returns the number of occurrences of target in a nested list аноны, переведите, пожалуйста, задание не понимаю что хотят
>>1522328короче если мои навыки ангельского мне не пиздят то ты должен написать функцию def count которая считает количество вхождений некоторого заданного значения в (nested ?) списке и в следующий раз воспользоваться гугл переводчиком который такие предложения переводить уже умеет
>>1522328Напишите функцию count, которая возвращает количество совпадений (вхождений) в целевом вложенном списке.Вложенный список, это когда внутри списка есть еще списки.a = [['a', 'b', 'c'], [3, 4, 5], ['ji','ri','do']По сути задача на for/ while и if, elif, else, in.
>>1522417нет, спасибо. я знаю что такое вложенныq список и что они хотят рекурсивную программу. я не понимаю вот этого>которая возвращает количество совпадений (вхождений) в целевом вложенном спискея не понимаю что это означает, скажи, пожалуйста. не понимаю смысл
>>1522417что такое вхождения?что такое целевой вложенный список? вернее вложенный знаю, а целевой это как? какой-то определённый. дайте, пожалуйста подробный пример этого всего я не понимаю
>>1522626а понял. спасибо большое. дошло до меня. но последнее уточнениевот [5,3,[3,4]] нужно посчитать цифру три только во вложенном списке или в целом?
>>1518484> олдфажного сокрещенного синтаксисаПиздуй на мою прежнюю работку к дедам, прогающим на asm-е. Тебе там понравится
>>1522626>>1522417>>1522352Последний вопрос и я от вас отстану, обещаю. Вот я сделал это задание как я понял. Правильно сделал?
>>1522671L это списокA это искомое числоc считает кол-во сколько прза случилось число в списке. могу сделать и чисто чтобы во вложеном искал на определённой глубине рекурсии. блять ну почему эти условия заданий непонятные всё время загнут какую-то хуйню типа "сколько вхождений в целевом вложенном списке?" что блядь?
>>1522629Откуда я знаю, смотри примеры, если есть. По идее надо искать во всём списке, нигде не сказано, что только во вложенных.
>>1522673>в целевом вложенном спискеТы побольше переводы местных ретардов, не способных в язык, слушай.
>>1522682ну вот я >>1522671 код написал.Так в том то и проблема блядь в этой книге авторы любят загнуть что-то такое сложное на словах и не предоставить примеры. Там нет примеров, одна строчка текста как задача и всё. Регулярно сюда за помощью обращаюсь. Заебала эта книжка с её охуительными формулировками уже.
Так, котаны. Начал использовать R но проблевался от неконсистентности. Уже было начал учить julia, но эти ваши индексы с 1, ух. Сдался и решил пойти мейнстримным путем. Кодить умеют, монады не пугают. Подскажите какую книжку (на английском) лучше взять? Смотрю в сторону Python for data analysis
>>1522417из условий не понятно, какая у тебя степени вложенность, предположим что первая, это самый легкий вариант:from collections import Counteryour_list = [[1,2],[3,4], [2,3], [2,3,54,1,2,43,12], [3,1]]flatten_list = sum(your_list, [])print(Counter(flatten_list)) # Counter({2: 4, 3: 4, 1: 3, 4: 1, 54: 1, 43: 1, 12: 1})
>>1522856Это считает количество всех элементов во всем листе со вложенными листами, если тебе нужно только в одном из вложенных и там гарантированно нет второго уровня вложения, то просто по индексу делай. Вообще нихуя не понятно из этого условия, что делать, либо ты сам его сам так сформулировал (считай себя составителем задачи и смотри дальше), либо тот, кто составлял задачу - даун.
>>1522671тип надо проверять так - isinstance(instance, type)вместо второго if должно быть elifНу и по условию не понятно, что вообще надо делать, да и по твоему коду тоже не понятно ничего.Приведи пример вводного листа и результат функции, наверняка в твоей книжке это дается.
>>1522062У них довольно неплохая документация на сайте. Для быстрого вхождения в тему можешь почитать это - https://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html, а потом уже гуглить то, что нужно конкретно тебе.
>>1522671https://github.com/30-seconds/30-seconds-of-python/blob/master/snippets/deep_flatten.mdКстати вот универсальный метод сглаживания листа, после этого ты получаешь просто лист со значениями и считаешь там повторы или что тебе нужно. Если ты хочешь пилить свой велосипед и отказываешься юзать collections.Counters, то земля тебе пухом, делай лучше через словарь все это дело. Типа так:counter_dict = dict()for elem in flatten_list:....counter_dict[elem]+=1 if counter_dict.get(elem) is not None else counter_dict[elem]=1count = len([v for v in counter_dict.values() if v > 1])
Решил поизучать питон. Или пайтон. Поставил среду. Запустил. А она как давай память жрать. В программке 10 строк и 600 мб в памяти. Это нормально?
>>1521394>>1521441Отвечаю вам обоим аноны. Вкатился летом в бекенд джуниор питон разработчиком. Работаю уже 5 месяц.Был всего на двух собесах. Надо знать основы языка ну и основы фреймворка который будешь юзать, например Django или Flask. Чтобы меньше было вопросов на собеседовании, лучше иметь какой нибудь проект на гите, ну или хотя бы с собой принести на ноутбуке, но лучше на гите, так как на первом собесе ноутбук не пропустила охрана и тимлид ебал меня вопросами про слои БД и всякую ебалу, на втором собесе показал код и вопросы были по моему коду. ЗП сейчас 50к, не ДС или ДС2, то есть для моего города вполне нормально. Работать в целом не сложно, так как любая задача уже решена на SOF. Сложно когда блять тупой менеджер называет сроки не посоветовавшись с тобой, а потом пытается нагнуть работать в выходные. Со временем научился слать нахуй менеджера, ну или говорю что постараюсь, а сам нихуя не делаю на выходных, напишу пару строк и рассказываю сказки как спал всего 3 часа и спасал мир, в итоге менеджеру приходится сроки подгонять под мои. Проект старый и большой, документации нету, я в нём немного разобрался и поэтому могу диктовать свои условия, несмотря на то что, я нету даже полгода стажа, уже поступают предложения на собес, летом буду искать удаленку, хочу пару лет пожить на море.
>>1523064Спасибо за развернутый ответ. Скажи, можешь ли ты с нуля написать что то сложное, на чистом питоне? Насколько спрашивают основы языка? Можно быть макакой работающей только с готовыми решениями из библиотек?
кто какой редактор/иде использует для питона?попробовал пайчарм,комп чуть не сгорел,вообще не понимаю что он там внутри делает чтоб так память сжирать
>>1523092у вскода иногда не работает автокомплит,он как будто не загрузил еще модуль,то ли что то там внутри ломается, потому что он иногда хорошо автокомплитит
>>1523092Thonny использую, не пишу ничего сложнее парсеров, так что мне хватает, но для каких-то комплексных проектов его будет мало
Я тут работаю над небольшим проектом. По сути это скрейпер, который работает 24/7 и каждые пару минут обновляет базу данных, когда пользовательно открывает главную страничку сайта, информация с бд отоборажается в виде таблицы. Пишу на Python+Flask+PostgreSQL. Возник вопрос. Стоит ли переместить парсер в отдельную программу (пакет)? Хорошая ли это практика? Хуй знает, как такое гуглить.
>>1522877Работа со словарями это какой-то мрак, прочитал в нескольких разных курсах про них так ничего и не понял как это всё синтаксически оформлять, перебирать, юзать в циклах.
>>1523092> вообще не понимаю что он там внутри делает чтоб так память сжиратьИспользует жабу вместо плюсов.
>>1523271По идее словари нужны были не для перебора изначально, но когда начал гарантироваться порядок все немного изменилось. Там вроде все элементарно же, чего не понял то?test_dict = {1:10, 2:2.0, 3:'N'}for element in test_dict:....print(element)# 1 2 3for element in test_dict.keys():....print(element)# 1 2 3for element in test_dict.values():....print(element)# 10 2.0 Nfor key, value in test_dict.items():....print(key, value)# (1, 10) (2, 2.0) (3, N)print(list(test_dict.keys())) # [1, 2, 3]print({v:k for (k,v) in test_dict.items()}) # {10:1, 2.0:2, "N":3}test_dict[2] = 'two'print(test_dict) # {1:10, 2:'two', 3:'N'}test_dict[6] # value errortest_dict[6] = 6print(test_dict) # {1:10, 2:'two', 3:'N', 6:6}
Анонасы, не подскажите, как завести python3.x на notepad++? Чтобы с автодополнением и по красоте было, перепробовал много вариантов, но так и не смог привинтить хоть сколько-то нормальное дополнение.
>>1523091Сложное на чистом питоне? Думаю можно, но зачем? Сейчас куча библиотек, которые облегчают жизнь, не знаю как в крутых компаниях типа Гугл, но по рынку 90% это создание веб приложении, а значит Django/Flask, кое где нужны знания докера или celery + rabbit MQ/reddis, но это уже на мидла, советую потратить время на изучение Django + DRF, толку больше будет, ну и создай себе бложик на Джанго, почти туда чему научился, в итоге и тебя польза и от работодателя плюс Мимо от анон, которому ты отвечал
>>152343095% времени ты просто делаешь аутлайн и вешаешь TODO на итемы, так что не сложнее маркдауна.
>>1523434Там и описания нет. Как можно найти модуль, если знаешь лишь как он вызывается? from commander.commander import CommanderИ что мне качать? commander.commander?
аноны, как распечатать список в таком виде? что бы он был и списком и чтобы каждый элемент столбиком был. заебала эта книга со своими охуительными условиями каждая задача мне мозг пол дня выносит
>>1523447хотя впрочем не нужно. авторы просто мудазвоны. я сделал обычный принт построчный, один хрен в списке слеши адресов удавиваются. не знаю каким местом авторы думали когда подобный высер в условия толкали
>>1523448Я похоже не то находил, извини.Если ты пишешь какого-нибудь ссаного бота для вконтактика, вот какой-то коммандер:https://github.com/AppLoidx/vk_bot
>>1523460How to Think Like a Computer Scientist: Learning with Python 3 Documentation, Release 3rdEdition
>>1523461Блять. Почему нельзя было его закинуть в Pypl или запилить одним файлом. И как теперь эту ебанину заставить работать.
Поясните как работают ограничения рекурсии? Почему при значении 1, происходит ашь 12 рекурсий. В то время как при значении 100 доходить только до 87. Я уже весь мозг сломал.
Сап, анон, помоги построить структуру пикрил. Я смог сделать только Бренд и Товар. Категорию я сделал ручками, то есть при создании нового бренда приходится в url ручками прописывать filter(brand__contains=Apple, например). Как сделать так, чтобы можно было прописать все через слаг и у меня через слаг фильтровались модели конкретной категории? причем чтобы можно было добавить бренд через админ панель и ничего в код не дописывать? получается я могу делать связку ModelListView-ModelDetailView, а как делать связку BrandListView-ModelListView-ModelDetailView.
Предположим мне на сервер надо послать несколько json'ов, один из которых содержит флаг, который должен быть установлен на сервере, а остальные собственно обрабатываемую информацию.Как это смоделировать во фласке?Надо ли под первый тип (установка флага) и второй тип (передача данных) заводить отдельные процессы?Или всё делается в одном?
>>1523538> смоделироватьО, снова ты.Тупо послать несколько жсонов подряд, сервер последовательно их обработает. Наткнувшись в первом жсоне на флаг, он у себя это запомнит. Всё в одном процессе.
>>1523570Да, выхожу на связь.Ну соответственно, на сервере надо будет написать отдельную функцию, чтобы флаг принимала?
>>1523579Можно и не писать. Достаточно условия:mydata = фласк.request.jsonif "flag" in mydata:__store_flag_somewhere(mydata["flag"])...
>>1523538Делаешь два типа данных, один с флагом, другой без, делаешь один общий интерфейс который они имплементируют, делаешь апи эндпойнт который принимает список с типом этого интерфейса, делаешь одну функцию которая обрабатывает тип без флага, вторую - как композицию первого + обработчик флага.
>>1523414Везде примерно тоже самое, описан базовый функционал, но всё равно не понятно как с помощью него решать задачи. В итоге решаю их без словарей, но в этом нету смысла.
>>1523702Ну может быть в твоих задачах словари и не нужны. Либо нужны, но тебе не хватает алгоритмической базы, базы по структурам данным.Словари - это базисная структура данных, позволяющая хранить данные в виде ключ-значение. Вот если тебе нужно хранить данные с возможностью обращения к ним по ключу, значит тебе нужны словари. Всё остальное - дополнительный функционал, чтобы работать было удобнее и чтобы не городить свои велосипеды. Если обращение по ключу не актуально, то и словари тебе не нужны.
>>1523525У тебя же вроде линейная структура. Как товар ссылается на бренд, так бренд на категорию.Другое дело, что это какая-то оторванная от жизни модель. Бренд же явно может не в одной категории встречаться. Или это какой-то особенный каталог?
>>1521391 (OP)Посоветуйте библиотечку для написания ботов в телегу. Ну или перенаправьте в соответствующий тред, спасибо.
Прошу помощи, программа ищет все простые числа до n-го числа, с помощью Решета Эратосфена. https://pastebin.com/PxXW8Si4, думаю на stackoverflow все объяснено , но я не знаю английского, конкретно непонятна вот эта строка.sieve[ii::2i]=[False]((n-ii-1)//(2i)+1)Непонятно, как вообще работает эта строка,разве ясно как вырезка делается , как я понял, сколько вырезка выдает значений , на такое же число мы должны домножить [False], ни больше ни меньше, иначе выдаёт ошибку , механика мне непонятна. Дальше не ясно откуда взялась эта мудреная формула ((n-ii-1)//(2*i)+1), которая угадывает количество чисел, которым надо присвоить False значения, так как они составные.
>>1523820Вот сама программаdef primes(n): """ Returns a list of primes < n """ # (c) Robert William Hanks - https://stackoverflow.com/a/3035188/5741205 sieve = [True] n print("все чётные числа игнорируются и будут пропущены при возврате...\n") for i in range(3,int(n0.5)+1,2): if sieve: print('содержимое решета:\t{}'.format([x for x in range(3,n,2) if sieve[x]])) print(f'i:{i} вычёркиваем все числа кратные "{i}", начиная с "{i}^2": {list(range(ii, n, 2i))}') sieve[ii::2i]=[False]((n-ii-1)//(2i)+1) print(f'sieve[{i}{i}::2{i}]=[False](({n-i}{i-1})//(2{i})+1)') print('содержимое решета:\t{}'.format([x for x in range(3,n,2) if sieve[x]])) print('' * 60) return [2] + [i for i in range(3,n,2) if sieve]
>>1523822sieve[ii::2i] выбирает все числа кратные "{i}", начиная с "{i}^2.((n-ii-1)//(2i)+1) = находит сколько таких чисел в твоем листе.Умножая на [Flase] получаем равенство len(sieve[ii::2i]) == len( [False]((n-ii-1)//(2i)+1) )Дальше на все места sieve[ii::2i] подставляется False
>>1521391 (OP)Сап, я новичок, создал профиль на гитхабе, пощу туда решение задач с курсов, и просто задач. Буду какие то проекты постить. И возник такой вопрос, есть ли смысл допустим просить людей звездочку поставить на мой репрозиторий, или в этом нет никакого смысла?
>>1523913Спасибо, но не совсем понятна откуда взялась эта формула ((n-ii-1)//(2i)+1) , как ее вообще выдумали , я даже подумал проще было бы записать эту строку как sieve[ii::2i]=[False]*len(sieve[ii::2i]) Смотрел , результат получается тот же правильный , но может, так я значительно теряю в скорости ?
>всего ~6300 вакансий для питона на hh>в твоём городе ни одной>удалённых на всю раисю 273>из них для джунов меньше 50Всё тлен.
>>1524052Ну ты глупенький? Никто ждуна брать на удаленку не будет.Лучше пройди собес по скайпу и вкатывайся в ДС. Там джунам платят хорошо, на съем хватит и сверху останется.
>>1524119Оу, что у нас тут? Выученная беспомощность? Прекрасный настрой для начала новой жизни. Продолжай в том же духе.
>>1524154Я в отличии от диванных пиздаболов бывал в мск и знаю что это такое пытаться куда-то там устроится без московской прописки. А потом очередное дерьмо умничающее статейку прочитало от психолуха и давай покровы срывать хочется ему в рожу плюнуть.
Как изменить значение ключа в словаре, но ТОЛЬКО если этот ключ существует?В две строки так:if 'benis' in d: d['benis'] = 'long'А покороче никак нельзя? Думал встроенные методы словаря что-нибудь подобное умеют, но там нет ничего, update и тот добавляет лишние ключи.
сап, програмач. такой вопрос от нюфага вам возник: ищу работу в вебе (по классике вкатывальщик) и в моем зажопье нет никаких галер на питонщиков джунов в вебе. а если и есть это мидлы и сеньоры куда я уже там все отсылал и меня просто продинамили. но при этом дохуя вакансий на пхп джунов и стажеров. так вот вопрос - стоит ли им слать в надежде что придется быстро переучиваться, или же я там даже тестовое не пройду если мне его вообще вышлют?
А подскажите, чем можно сделать следующую штуку:Есть примитивная кроссплатформенная софтина, которая должна определенным образом обрабатывать указанные каталоги. Накидал на Ткинтере форму, сделал кнопку добавления каталога в Listbox и удаление выбранного, плюс кнопка старта.А хочется не простой листбокс, а список с колонками (например, путь к каталогу и статус его обработки), плюс (самое главное!) возможность перетащить в него нужные каталоги мышкой из проводника, а не добавлять каждый раз вручную из диалогового окна. Вот как бы этот драг-н-дроп реализовать правильнее? Ткинтер для таких вещей не особо приспособлен, насколько я понял. Стоит смотреть в сторону PyQt? И если да, то куда копать, а то гуглится не очень пока успешно?
Есть некоторая библиотека, но для моей задачи там может понадобиться всего лишь малая часть тех файлов и функций, которые там присутствуют. Как я могу узнать, какие конкретно файлы и функции используются, кроме как добавлять принт имени файла и функции в каждом файле библиотеки?
>>1524291> else passЗачем эти полумеры? Давайте по-чесному перейдём на перл, раз пишем на питоне, как на перле.
>>1524296Пожалуй, что совсем лаконичного решения нет. Задача нештатная пожалуй.Варианты решения:1) описать свою функцию def upd(dict_obj, key, value)2) унаследовать класс от dict и добавить к нему метод upd(key, value)>if 'benis' in d: d['benis'] = 'long'>d['benis']='long' if 'benis' in d.keys() else pass по сути одно и тоже , первый вариант даже получшеНо мне в них не нравится то, что дублирование ключа идёт, это тут самое некрасивое.
>>1524300Можно поправить исходнички интерпретатора и скомпилировать свой форк с лаконичным однострочным синтаксисом.
>>1524300> совсем лаконичного решения нетПисать свои классы тебя не учили?..метод __missing__ блять, документацию читай>>1524229...
>>1524303Вот мне тоже кажется, что анон спрашивал как попроще, а тут предлагают совсем по-взрослому.Мне вот не нравится "else pass". Хорошо бы чтобы его можно было не писать.
>>1524314Проще всего написать функцию или писать две строки, а не устраивать синтаксические выебоны. Простое лучше, чем сложное.$d{benis} = "long" if exists $d{benis};
>>1524308Анон, радуйся, что ты анон и никто не узнает, что именно ты обделался.Ты прежде чем учить, в доку загляни, что __missing__ делает. И разберись, почему к задаче отношения от не имеет.Вариант решения в том, чтобы унаследовать класс от dict и переопределить метод __setitem__, несложно, но небольшая магия там есть.Но это не очень правильный вариант, обманчивый код получается. Ты присваиваешь значение, а оно не присваивается.
>>1524241КуТэ точно будет приятней и лучше, хотя бы благодаря КуТэДезигнеру, кол-ву юзеров и докам.Драгндроп делается довольно просто на кутэ.>>1524289Открыть исходиники и глянуть?
Забываю все прочитанное в книге даже когда выполняю задания. Мотивации ноль, уже тошнит от погромирования. Чому я такое хуйло ((
Надо взять три пнг, слепить их в один и добавить к ним надписи. Есть что-нибудь проще, чем колхозить imagemagick?
>>1521391 (OP)Как с помощью регулярки разделить на группы?Допустим в строке мне надо найти 'a-=b'. Как это сделать я понимаю, но как мне разделить, что бы было a, -, b
>>1521391 (OP)пытаюсь поставить последний через инсталлер, ругается что нужна win7 sp1 x64.Но у меня именно она и стоит, кто сталкивался?
Как добавить пробел между двумя переменными но ТОЛЬКО если первая переменная существует?s='pisos'print(f'{s} sosi')Если s пустой то принт выдает строку с пробелом в начале, некрасиво.Пока придумал так:print(f'{s}{s and " "}sosi')А лаконичней как-нибудь нельзя?
>>1524782Алсо я думал что через мини-язык формата можно, но там кроме выравнивания нету ничего похожего, и выравнивание это немного не то.https://docs.python.org/3/library/string.html#formatstrings
>>1524314>Мне вот не нравится "else pass". Хорошо бы чтобы его можно было не писать.else pass писать нельзя, это синтакс инвалид.Но можно так: 'benis' in d and d.__setitem__('benis', 'long')
>>1524314Поехавший что ли совсем, по твоей логике там должно быть None, но это не только противоречит здравому смыслу, но и условию, которое тут за каким-то чертом обсасывается.
>>1524353Да хули там, лучше сразу написать дескриптор на value, чтобы 30-ю строчками заменить 2. Все ведь логично?
Пацаны. Вопрос по Джанго. Есть ли какие то рекомендации или случаи когда надо использовать class-based views или def-based views? В проде используются оба варианта?
>>1524920s поступает "снаружи" и может быть пустой. Если тупо к потенциально пустой s лепить пробел то эффект будет такой же как с принтом, лишний пробел в начале.
>>1524925Если писать else pass, то у тебя будет ошибка синтаксиса.Тебя официально затролил макака. Спасибо, Абу.
Пипец я только что сгорел нахер.Почему, блэть, в питоне никто не реализовал нормально Friedman ANOVA с post-hoc тестами? В SciPy и в statsmodels его не завезли...Да, в SciPy есть Friedmanchisquare, но он для k>6. А мне надо для k>=2.Нашёл STAC, импортировал, решил потестить, запускаю обычную anova, а он вылетает с ошибкой синтаксиса, да еще и ограничение зачем-то прикручено на равный объём выборок. Пользоваться не вариант.В общем вопрос...Подскажите, пожалуйста, какие-нибудь хорошие библиотеки со статистическими тестами, на которые можно ссылаться желательно на статьи, опубликованные в научных рецензируемых журналах.Или тут только костыли и придётся вкатываться в R?
Дают ли сертификаты за прохождение бесплатных курсов какие то бонусы при трудоустройстве?Может платных курсов?Как хуйлу без вышки и корочек доказать профпригодность для работы на галере?
>>1525253>как доказать профпригодность для работы на галере?Для этого и создают гитхабы, куда выкладывают проекты свои
>>1525253>Дают ли сертификаты за прохождение бесплатных курсов какие то бонусы при трудоустройстве?Нет>Может платных курсов?Нет>Как хуйлу без вышки и корочек доказать профпригодность для работы на галере?Тебе тестовое дадут
Аноны, что-то я разбирался с Python и приуныл. Есть какие-то интересные проекты, которые делают на нем, или до конца жизни придется клепать типовые бэкенды или, в лучшем случае, чистить данные и играться с коэффициентами, изображая из себя ML-спеца?
>>1525390Недавняя фотография черной дыры обрабатывалась питоном и питоновской библиотекой: https://github.com/achael/eht-imagingА вообще открываешь r/python и r/coolgithubprojects (менее амбициозно) и мониторишь линки на чужие проекты на гитхабе. Полно всякой всячины.
Сап питонисты, есть директория vagina, в ней папки с разными именами, в них ещё папки с названием huy а в них уже лежат текстовики с дохуя строк текста в которых надо найти строки zalupa и вывести их в отдельный текстовой файл. Помогите это все реализовать.
>>1525424Три строчки на баше:for file in vagina/STAR/huy/STAR.txt; dogrep zalupa $file >> result.txtdoneSTAR заменить на звезду.
>>1525484А что там? До ЛТС версии еще долго же, она только 3.3 будет, в Апреле 2021. А я пока на 2.2 переписываю свою поделку.
>>1525487Посмотрел сам - самое крупное изменение это переход на ASGI и Дафну. У меня сервис еще с 1.11 версии на ASGI и Дафне крутится. Все остальные изменения - мелочь.
>>1521296Навскидку, мне кажется, свой собственных класс исключений особенно необходим, когда исключение может нести с собой какие-то параметры. А в случае с парсером таковыми могут являться позиция ошибки в тексте, то есть номер строки и позиция в строке, в которой присутствует ошибка.Ошибки я бы лично поделил на синтаксические и "грамматические", не знаю, может быть неправильно пишу. Но в общем ошибки в структуре отдельных лексем это одно, а ошибки в структуре документа это другой вид ошибок. Плюс уже после обработки текста, во время, так сказать, его интерпретации, могут возникнуть уже ошибки иного порядка.Ну, например, в строке не закрыта кавычка. Лексема (литерал) неправильная. Или кириллица в идентификаторе.Следующий класс ошибок - точку с запятой пропустили, скобку не закрыли, операнд без оператора, оператор без операнда. В общем, текст не соответствует грамматике.И тут хорошо бы не просто вывести позицию ошибки, но ещё и написать, что конкретно ожидается. Ну, например, пишу я: x=5+Парсер знает, что здесь дальше может быть написано число, имя переменной, может быть выражение в скобках... Вот три варианта можно вывести по запросу. Или кратко: «ожидается выражение». Или «ожидается закрывающая скобка». Это так просто (если парсер не вручную костылишь, конечно), но это в стопицот тысяч раз лучше, чем реализовано во многих парсерах, которые просто пишут какие-то нечленораздельные отписки вместо вменяемых сообщений об ошибках.Ну и следующий класс ошибок, который уже парсер определить не может - переменная, например, используется, но не объявлена. Или объявлена, но не определена. То есть она, допустим, должна была появиться в тексте, но не появилась. И здесь опять-таки хорошо бы выдавать вменяемые сообщения с указанием на конкретное место в тексте, на конкретное объявление переменной, а не куда-то в никуда.>>1521295Ну я лично когда тесты писал, они подбирались на основе реальных глюков. То есть, допустим, вижу ошибку. Выявляю минимальный кусок входных данных, которые приводят к ошибке. Исправляю. Получаю правильный результат. И потом пишу тест, который требует из этих входных данных получить этот результат. Потом уже когда код шатаю в другом месте, в этом месте не сыпется, а если сыпется, то я сразу вижу, что поломал, и не надо потом продираться снова к узкому месту. Особенно помогает, когда правильное решение является как бы синтезом двух неправильных. Тогда ты с одной стороны делаешь костыль, а с другой стороны другой костыль отваливается. Потом подбираешься с другой стороны и тоже подпираешь костылём, после чего отваливается первый. А понять, что и то, и другое конфликтует, но должно работать одновременно, у тебя не хватает охвата взгляда. А вот когда ты второй костыль ставишь, а у тебя первый отваливается и ты сразу это видишь - то вот в этот момент ты прямо как будто прозреваешь. Видишь то, чего иным способом ещё долго не увидел бы.Ну вот я так это использую. А каждую мелочь проверять вроде типов данных - ну не знаю... Я как-то привык, что этим компилятор занимается (не в питоне). А если компилятор (интерпретатор) этого не умеет, то на мой взгляд должен быть ещё специальный софт, анализирующий правильность программ. Вручную этим заниматься — какое-то неблагодарное занятие.
>>1525393>Что для тебя "интересный" проект?Что-то инновационное, вроде такого, что >>1525417 анон написал. Везде пишут, что Python очень популярен в научной среде и я купился на это, но при этом он супер-медленный при моделировании по сравнению с тем же Матлабом. Да, иногда можно заюзать numpy, но чтобы получить нормальную производительность даже для задачи n-тел, нужно так хитровыебнуться, что проще уже на C написать.
Как задекорировать функцию из стандартной библиотеки вроде функции print..? Декоратор же приминается только при объявлении функции через def
>>1525578Декоратор - это синтаксический сахарок для этого:func = mydecorator(func)Соответственно, тебе достаточно написать декоратор, а затем сделать так:print = mydecorator(print)
>>1525596Ну да, переход на ASGI. Но его еще с 1.11 юзать можно было, просто он в отдельном проекте находился. Алсо, эталонная реализация, Дафна, пиздец какая тупая и медленная. А uvicorn сыроват.
Что вы можете сказать про вот эту https://novosibirsk.hh.ru/vacancy/34152007 вакансию? Я просто не очень понимаю, чего они хотят, эту вакансию они на хх обновляют уже месяца 4, нахуя им там столько джунов? Если это пистон, но не веб, то какие-то нейронки@машоб, почему они тогда напрямую не пишут, что ждут знаний из той сферы?
Есть написанный с применением aiohttp сервер, который слушает подключения с определенного порта, есть еще требование, регулировать количество одновременных подключений как можно проверить выполняется ли это условие?Как можно подключиться 3мя или 4мя пользователями?
Посоветуйте материалов что б норм въехать в такие продвинутые темы как:multiprocessing,multithreading,асинхронностьЯ так понимаю, что принципы всего этого одинаковы во всех языках, есть лишь ньюансы реализации на определенных технологияхи норм разработчик, который держит руку на пульсе технологий,должен все это знать
>>1525721Для обхода GIL'a используешь мультипроцессинг, для IO трединг или асинк. В 3.9 для обхода GIL'a еще subinterpreters будут, оверхед от них меньше чем от мультипроцессинга.
>>1523419А где ты сервер под питонохостинг взял? (Халява есть?)>>1524749Что-то типа:import rere.findall(r'\d+|[a-z]+|=|-','12qw3vk4=-gjk')# ['12', 'qw', '3', 'vk', '4', '=', '-', 'gjk']
Хочу запарсить css с сайтов.Через asyncio + aiohttp получаю контент сайтов и ищу ссылки на css, но что делать потом?Если запустить сразу так:for future in asyncio.as_completed(urls):_css_links = await future..._for css_future in asyncio.as_completed(css_links):___info = await css_futureтакое ощущение, что второй as_completed блочит первый
Кстати о серверахОракл сейчас все ещё раздает свои продукты бесплатно "на попробовать", а некоторые затем остаются бесплатными навсегда.Среди вкусного для веб-макаки:2 впс с 1гиг рама и 2 ядрами, вроде 40 или 50гигов дискаИз менее интересного:БД оракловая и хранилище данных
>>1525570Так а тебя каким боком касается то, что анон скинул и интересные задачи реш]нные пистоном?Я думал ты хочешь свое что-то запилить.
Вопрос касательно pytest и xdist.Есть куча тестов типа: сначала селениум тычет по вебформам, закрывает браузер, потом 10 минут пинает вебапи, получает ответ или отваливается по таймауту.Можно ли xdist как-то сообщить, что, мол, с этого момента можно запускать следующий тест из очереди?
Очень не нравится отделение блоков пробелами и табуляцией вместо фигурных скобок.Есть ли какое-то расширение или форк где можно писать с другим синтаксисом?мимо люблю фигурные скобки и ;
>>1525898В AWS вроде до сих пор бесплатный впс на год есть. Но там все равно условия анальные и надо кредитку привязывать. Ну, раньше было так.
>>1526059Пиши свою нечитаемую кашу из спецсимволов на перле, говноежка, и не лезь в человеческие языки.
Антоши, я тупойпочему это работает?def modify_list(l): l[:] = [d // 2 for d in l if d % 2 == 0] return lА это нетdef modify_list(l): l = [d // 2 for d in l if d % 2 == 0] return lЧто это за конструкция?
>>1526063с этими отступами не так удобно гонять блоки по степени "вложенности". вместо перестановки скобок приходится гонять каждую строчку. да, можно функцией это ограничить, но не всегда.причем тут перл и спецсимволы?только { } нужны. ; он понимает, остальное и так не сильно отличается от других языков.
>>1526059Наверняка есть специальные препроцессоры для этого, которые конвертируют фигурные скобки (ну или begin/end) в двоеточия и отступы. Но я о таких знаю мало, да и проблем от них много: иде такой синтаксис не парсят + препроцессор нужно тащить везде вместе с системой сборки..
>>1526071Более того, из-за отступов вместо фигурных скобок код на питоне нельзя минифицировать и встроить, как жс в браузере, но кому это нужно?.
>>1526080А, понятно, жсдаун не хочет переучиваться и подтягивает свои дурные привычки. Код ему минифицировать, охуеть. В байткод собери лучше.
>>1526117И поэтому вместо того, чтобы бороться с жсом и сделать для него хоть какую-то альтернативу, ты предлагаешь передавать байт-код на клиент? Охуенное решение.
>>1526123>бороться с жсом и сделать для него хоть какую-то альтернативуWASM. Ты просто отсталая обезьянка.
>>1526128Интересный проект.Жалко только, что нет нигде нативной поддержки питона, а то тут оверхед на трансляцию в JS.
>>1526070Переменные в питоне хранят адреса на какие-то объекты.Когда ты пишешь l = xxxты записываешь в переменную l адрес объекта xxx, после присвоения там будет уже новый объект с новым адресом.А вот когда ты пишешь l[:]то происходит операция изменения списка, элементы списка при этом перезаписываются. Может диапазон указать, в данном случае по-умолчанию значения, от самого первого элемента до последнего. При этом сам объект-список остаётся прежним.
Какие знания нужны чтобы вкатиться на джуниора? Мимо сейчас говнокодю на с#(в основном aspnet mvc) в говноконторе, по случайности начав срочно править баги в проектах, когда предыдщий девелопер оттуда нахуй съебался. В шарпе и 10% возможностей языка не использую, кодревью нет, поэтому всем похуй что там в коде, лишь бы быстрее в продакшн и как-то работало. На питоне писал скрипты какие-то для себя, чтобы автоматизировать рутинные вещи, и планирую в скором времени написать pet project на flask vue.
>>15263471) Открываешь ХХ.2) Выбираешь свой город.3) В строке поиска пишешь "Junior Python Developer".4) Смотришь.5) ???6) Ты восхитителен.
Вопрос по pycharm, почему если я делаю имя файла из <= 2 символов, то pycharm перестает считать этот файл, файлом питона и импорт не работает.
Помогите решить, все остальные вопросы теста сдал правильно, один этот не дается. То что 4ый вариант надо выбрать это понятно, но какие остальные - хз. Сколько гуглил и читал, не помогло Выделить истинные выражения:1) GIL замедляет выполнение главного потока управления в Python3, даже если нет других потоков2) GIL никак не влияет на выполнение отдельных процессов на Python33) GIL запрещает одновременное выполнение инструкций байткода в разных потоках4) GIL нужен для защиты памяти интерпретатора от разрушений
>>1526498Фух, с 100101010100 попытки ответил 2 3 4 и победил.Кстати, насколько вообще современному джуну нужно знать про тот же GIL и блокировки? Нужно ли углубляться в эту тему?
так, аноны, создал бложик по данному видосику вот демка https://www.youtube.com/watch?v=T0Xi8gWDrQ0&list=PLlWXhlUMyooaDkd39pknA1-Olj54HtpjX в связи с этим задам платиновый вопрос: что стоит сюда еще прикрутить чтобы портфолио сделать максимально уникальным+изучить что то новое?
>>1525898Так я не понял по их описанию, там нормально можно сайты держать? А если онлайн игры с небольшим трафиком? мимо нюфаня
>>1526785Сколько хочешь. Мне вот больше интересно, надо ли там при регистрации паспортные данные расписывать, или можно написать фигни
>>1526361А что обычно отноcиться к "Базовые навыки Python"? Может они рассчитывают что инстаграм новый напишу.
>>1526813>Для успешной регистрации вам потребуется номер телефона и действующая банковская карта, с которой будет списан и сразу возвращен 1$ или 1€, если нужной суммы на карте не окажется, то регистрация будет невозможна. Виртуальные карты не принимаются, во всяком случае у нас не получилось зарегистрироваться, используя виртуальные карты ЯндексДеньги и Киви.А нахуя они это делают? Надеются, что я за этот прогиб с нагибанием у них когда-нибудь что-нибудь куплю? Наивные.
>>1526838Только конченные уроды будут ограничивать пользователей в количествах символов в названиях. Это всё равно как если бы ты захотел зарегистрировать ИП, а тебе в налоговой сказали бы, что твоё имя, скажем, Иван, слишком короткое, и в чём проблема сменить его на имя хотя бы из семи букв. К счастью, даже налоговая до такого маразма не додумалась, до которого додумываются некоторые кодовысиратели.
>>1526440Ты просто тупой. Там нет никаких ограничений. Подсказка: НАСТРОЙКИ СУКА ОТКРОЙ. А с того как ты начал аналогии приводить, вместо поиска решения проблемы - я вообще в осадок выпал. Учись гуглить.
>>1526903Да я прекрасно понимаю твоё негодование. Надо ж было ответить хоть что-то. Мне только пару раз за весь практикум надо было создать скрипт с коротким именем <=2 символа.
>>1526900Это тебя верифицируют, защита против злонамеренного использования их сервисов, что ты там какие-нибудь узлы ТОР, какие-то промежуточные прокси или что-нибудь подобное открывать не будешь.
>>1526937Проблема редкая, но решение напрашивается следующее:Копируешь одну или обе сторонние либы в папку /libs/, одну из них переименовываешь из zalupa в zalupa2, готово!В кода пишешь from zalupa import Zalupa from zalupa2 import Zalupa as Zalupa2(Предполагая что в PYTHONPATH у тебя прописан путь до папке libs + либы имеют классы с одинаковыми названиями)
>>1526903>ограничивать пользователейЕсли тебе Папа сказал что нужно так значит делай так ёпт. Дуру не гони
>>1526361окей, а что делать мне если есть знания на джуна чекнул щас вакансии в дс, но в моем зажопье одни мидлы и сеньоры нужны? за 4 месяца поисков так и не встретил ни разу вакансии тупо на джуна про различные специализации я вообще молчу
>>1527092Зачем ты пишешь идентификаторы в одинарных кавычках, будто это строки? Пиши без них:create table publisher (publisher_id ...);
>>1527097Смотрел видос чела, он указывал их, вот я и подумал.Почему так?А так да, спасибо, без кавычек заработало
>>1521391 (OP)Если не могу написать спираль при помощи черепашки, знания в геометрии нулевые, дальше нет смысла учить питон? Сконцентрироваться на школьной математике?
>>1527100Это не ', а ` (та, которая на букве ё). Иногда этот символ ставят вокруг идентификаторов, чтобы MySQL воспринимал идентификаторы именно как идентификаторы, а не совпавшие с ними ключевые слова, несколько слов через пробел и т. д.. Обычно это излишне. В других СУБД может быть двойная кавычка (") или ещё что-то.
>>1527103Не нужны там никакие знания геометрии, просто научись загугленные математические выкладки переводить в код.
>>1527133А вот с n угольной звездой нужна школьная геометрия и тригонометрия, ну если будешь реально для всех n делать. Если не можешь пропускай, задания интересные, но для вкатывающейся макаки не важные.
>>1527112Тупанул, спасибо>>1527123Это просто курс , в любом случае нужно будет после видосов и заданий чекать другие источники, что бы разобраться поглубже.Если есть годные источники по SQL - можете скинуть, почитаю.
>>1526043Я хотел слезть с богомерзкого Матлаба и Пиструн смотрелся хорошей альтернативой. В общем то, он ей и является, если тебе ничего кроме работы с матрицами и не надо. Но вот в остальном - как-то он проигрывает. Из-за этого мотивации что-то на нем делать нет. Вот я и попросил накидать чего-нибудь интересного, чтоб воспрянуть духом.
>>1527229>В чем бля?..Напиши на нем какую-нибудь нестандартную реализацию конечно-разностного метода, например. А как у него с интегрированием уравнений движения? Ну и что синьор Пиструн может предложить для многопоточный вычислений?
>>1527241>нестандартную реализацию конечно-разностного методаЗадротское мурло меня не колышит. Вероятно есть способы, но я не вникал, ибо не было нужды>интегрированием уравнений движенияscipy и sympy тебе в помощь> для многопоточный вычислений1. Интерпретатор PyPy2. Внезапно numpy и tensorflow пиздато справляются с матричным счетом и без многопоточности3. если в лоб - multiprocessing
>>1527243Ну, собственно, по твоему ответу и видна целевая аудитория Python - люди, использующие типовые решения.
Добрые люди, помогите пожалуйста. Пытаюсь начать программировать и вот даже эта простая программа нихуя не хочет работать в vscode. Пишет какую-то ошибку, при этом если открыть файл в консоли, то всё норм будет. Почему так?
>>1527376пиздец я конч, нашел решение проблемы.короче я запускал в vscode только выбранную строчку, а не файл. вот так вот.с этим я разбирался час
>>1527385Таж хуйня сегодня, по туториалу делал проект, дк час бился над ошибкой, из-за того что в одном файле забыл одну маленькую строчку.
>>1527392Да ваще пиздец. Ещё хуйня, когда несколько часов ищешь ошибку в функции, которую забыл вызвать. В такие моменты чувствуешь, будто IQ равен возрасту.
>>1521391 (OP)Как спарсить данные с этого сайта? https://arizona-rp.com/mon/fraction/2/15Через что? Используя просто BS получаю:<strong> Please turn JavaScript on and reload the page./strong>Как я понял, нужно что то с поддержкой JS
>>1527510Ну да, погуглил, подавляющее большинство использует пробелы. А я просто учился и мне удобнее было на таб тыкать, буду переучиваться.Тогда как все табы на пробелы поменять?)
>>1527574Пайчарм тебе автоматом вместо табов пробелы ставит, но если ты импортируешь, то у пайчарма есть функция reformat code, она тебе их заменит.
Чем обусловлены такие вещи как две рекомендованных пустых строки после импорта или пустая строка в конце файла? (по крайней мере пишарп вечно предлагает это исправить). Принятые нормы читабельности кода?
Питонисты, почему я не могу просто взять и стереть с операционной системы ЛЮБОЙ файл посредством Питона? Неужели Питон не всемогущий? Почему он оглядывается на какие-то там permissions файла. Я приказываю - УДАЛИ, и он удаляет! Что может быть проще. Неужели это невозможно?
>>1527721И в чем проблема что каждый настроит ширину табов как ему удобнее? Не будет срача табы/4 пробела/2 пробела/3 пробела.
>>1527096Либо перекатывайся, либо бери другой язык/другое направление/другую специальность.Либо ничего не делай. Авось работа и появится (но это прямо очень не точно)я так в тестирование ушёл кстати. Питон для своих задач юзаю и для проектов в универе, но в работе вообще нахуй не нужен.
>>1521391 (OP)Есть кто деплоил на heroku?Помогите бляять, я уже просто умираю, ничего не получаетсяМои действия:1) Создал проект, там мой файл name.py и chromedriver.exe2) Через терминал в pycharm ввел heroku login, залогинился3) Ввел git init, создал4) heroku git:remote -a vk-ghetto-botgit add .git commit -am "make it better"git push heroku masterПуш идет и выдает ошибку:! [remote rejected] master -> master (pre-receive hook declined)error: failed to push some refs toничего не помогает, просто пиздец, хз что с этим делать
>>1527798И да, в гит bash почему то после heroku login перестают работать команды, просто нихуя не работает что бы я не вводилХз что это за хуйня
>>1527702> две рекомендованных пустых строки после импортаПросто часть стиля, якобы лучше читается.> пустая строка в конце файлаА это издревле принято в unix-like, где считается, что в текстовых файлах каждая строка должна заканчиваться переводом строки, и последняя тоже, если непустая.
>>1527783А удаленной фриланс работы не найти по Питоше? А если свой проект мутить? (Только я не знаю какой, сам недавно вкатился)Типа сделать какой-то супер сайт сервис нужный всем и заработать мильёны.
>>1527711Ты сейчас про линукс? Ну мне с дивана думается что по сути удаление мышкой в корзину или удаление через терминал есть один и тот же процесс в коде, просто в одном случае визуализированный а в другом нет. И там и там нужны sudo привелегии. Python просто инструмент который сделает тот же самый код и естественно нужно будет передать sudo пароль. Python сам ниче не удаляет а лишь обращается к написанной функции удаления черещ код.
>>1527711Ты что-то не так делаешь. Сейчас создал скриптом файлы со всеми возможными разрешениями, затем попробовал удалить через os.unlink(), питон молча удалил всё.
>>1528003Да флаг в руки собственно. Но джуна на удалёнку не возьмут, а в фрилансе большая конкуренция. Просто никто не даст тебе проект. Но попробовать всегда можно, было бы желание.
>>1528003Идея насчёт своего сайта/сервиса очень годная, осталось найти тему.Фейкопочту оставь.На фрилансе работу так же реально найти, но тут придется постараться и гарантий нет.
>>1528145>Идея насчёт своего сайта/сервиса очень годная, осталось найти тему.Пишешь свою имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников и сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
>>1521391 (OP)Как лучше всего обработать если допустим идут запросы от пользователя и там может быть цифра от 1 до 10. И if x == 1: y = 'Name'Не 10 сравнений же писать
>>1528244Почему у тебя вообще возникают такие вопросы? Ты полез в программирование при условии, что даже не знаешь как работает та или иная ОСь?
>>1528266Я думаю многие не знают, другое дело, что он не разобравшись в вопросе нормально лезет сюда и вопрошает, а хули не работает то, должно же, я сказал.
>>1528251Добавлю что если такая конструкция будет в лупе то производительности настанет пиздос. Создание словаря надо выносить. А то я уже видел такой кусок кода, словарь пересоздается сто тыщ раз ради нихуя, просто заменили им портянку ифов и не подумали.
Добрый день. Есть вопрос: для изучения принципов многопоточного программирования достаточно будет примеров на питоне, или же мне стоит изучить с/c++ и рассматривать это все там?
>>1528489Собрался учить другой язык, просто чтобы потыкать потоки?Достаточно ли, зависит от целей. Если разобраться в теории, то хватит. Но имей в виду, что в CPython прироста в скорости от распараллеливания потоков не будет.
>>1528505Зайдёт, но в го потоки (горутины) очень специфичные, такое больше нигде не увидишь. Соответственно, знание горутин поможет только в го.
>>1528516да, мне для того, чтобы разобраться. читаю ос таненбаума и есть желание попробовать на практике
Может кто занимался, но нужна весьма не сложная помощь.Пытаюсь залогинится в вк, но он мне обратно кучу хуйни отправляет с ошибками. Порылся в доках апи вк, но там обратно отправляется юрл капчи и идентификаторhttps://vk.com/dev/captcha_errorПомогите ньюфагу
>>1528576> CONSTASCONSTANTS> vk_api.VkApi('LOGIN', 'PASSWORD')vk_api.VkApi(LOGIN, PASSWORD)> EclipsePycharm
>>1528523>но в го потоки (горутины) очень специфичные, такое больше нигде не увидишьВронг. Субинтерпретатры питона делаются именно с оглядкой на горутины.
>>1528597>CONSTANTSэто ж вроде прост названия файликов, я головой по клавиатуре провел.>PycharmРазглядел у них на сайте либо фри версии, либо триал ПРО. Но поймите меня правильно я из россии, денег нет, а обрезанным продуктом пользоваться не хочется. хотя я может чего-то не знаю>>1528589Я уже пытался гуглить, но конкретно здесь чуваки пишут об обходе появлении капчи, но я полагаю что бы произвести авторизацию она так или иначе нужна
>>1528671>поподробнееВ гугле расскажут, я уже не помню конкретно, давно на VSCode перешел. На лине там два файлика в хоумдиректории удалить надо было.
>>1528627>>1528671>обрезанным продуктом пользоваться не хочется>у VSCode интерфейс страшноватыйТипичный вкатыш.
Аноны, решил вкатиться в одноглазую змею с крестов, подскажите чо лучше из сред разработки: VSCode (рекомендуют в thecode.media от Яндекса) или PyCharm (рекомендуют в гайде из шапки)?
>>1528822из тех, которые были в универе))0)мой максимум написать костыльную йобу на 200-300 строк для курсача, можно сказать начинаю с 0
>>1528812sublime textможно интегрировать IDE. Ахеренно удобновсякие там IDE для слабаков. Пишешь по харду код и запускаешь. Учишься анализировать код сам и не допускать ошибок
>>1527783ну вот видимо так и сделаю. других вариантов не остается. буду учить пыху. спасибо, анон>>1524240 - кун
>>1528835>всякие там IDE для слабаковДля маленьких проектов соглашусь. А на больших ты можешь заебаться с рефакторингом, в то время как пичарм позволяет вынести класс в отдельный файл и переименовать метод в один клик и выстрелить тебе в ногу из дробовика, если ты в моделях джанго определял внешние ключи строками, а не ссылками на объекты.
У меня есть 2 словаря. Мне надо выполнить операцию вроде d1[key] - d2[key], проблема в том что определенного ключа key может не быть в одном или в другом словаре (а может и в обоих), тогда это значение равно 0. Как это реализовать без быдлокодинга?
>>1529161> проблема в том что определенного ключа key может не бытьif d1.get(key, ZaLuPa) != ZaLuPa:...print("key на месте ебать")
>>1529178Сука а если у него вариант 0 тоже может быть? Ебаиь у меня на бесплатных курсах за такое убивают нахер
>>1529161Как вариант, функцию можно написать:def dict_diff(d1, d2, key):....if key in d1 and key in d2:........return d1[key] - d2[key]....else:........return 0> d1 = {"a": 10, "b": 20}> d2 = {"a": 5}> dict_diff(d1, d2, "a")5> dict_diff(d1, d2, "b")0
>>1529161Без быдлокодинга тебе надо писать свой класс контейнер и переопределять у него метод __sub__
>>1527711Ни хрена он не должен удалять, если твоя программа не имеет на это прав.>>1527721Ну и что? Табулировать намного проще, чем отсчитывать пачки пробелов.
>>1521391 (OP)Няши, подскажите мне вот чего про регекспы.Есть входной поток. Есть регекспы, описывающие лексемы во входном потоке.Мы можем выделить лексему из строки с помощью re.search, ну, например, так:re.search(s,'word1|word2|word3|word4|word5')А нет ли способа попутно определить, какая именно из ветвей регулярного выражения найдена во входном потоке?
>>1529320Если тебя устроит такое, но вообще тебе похоже нужен другой инструмент, что-нибудь вроде pyparsing.
>>1529320>А нет ли способа попутно определить, какая именно из ветвей регулярного выражения найдена во входном потоке?Попутно это прямо в самом регэкспе? Хз, сложновато. Лучше сделать поиск а потом проверить if match.groups("named_gr") == None
>>1529505Да не, этот в принципе норм, единственное, красивее было бы разбить дикт компрэхэншэн на несколько строк физических, а не логических. Логически это всё равно останется однострочник
Питоны, помогите разобраться дереву. Есть гуйд в котором вытаскивают данные из форскера и чота сними даелают. Нужно: вытащить их мне, дереву.Профиль, мягко говоря, не мой, понять бы куда их вводить.https://towardsdatascience.com/classification-of-moscow-metro-stations-using-foursquare-data-fb8aad3e0e4
Помогите плз с джангой. Пытался создать в приложухе модуль для импорта в views, но при попытке импорта джанга выдает ошибку (модуль использует модели). Пытался фиксить разными способами, но каждый раз просто получал другую ошибку. Может проще забить и засунуть всё в views?
>>1529509Пост запрос делай с нужными тебе параметрами, в ответ получай, по всей видимости, json с данными
>>1529581Зарегайся на этом сайте, чтобы получить данные для своего клиента, и через реквест шли запросы вида:https://api.foursquare.com/v2/venues/explore?client_id={{client_id}}&client_secret={{client_secret}}&v={{v}}&ll=55.7662,37.5692&radius=1000&categoryId= 4d4b7105d754a06375d81259
Ананасы, помогите с джангой. Платина, наверное, не бейте больно, я ее сегодня впервые увидел.Я хочу передать в метод во вьюхе джанги какой-то параметр, например такdef dummymethod(request,dictionary): <какая-то хуйня>dictionary хочу передавать любым образом через urlpatterns, который генерирую из некоторого конфига. Дальше уже внутри метода разбираться, чего куда надо класть.Как блин это сделать?
>>1529587да блеа, где эту хуйню всю вводить-то? первый раз вкатился в этот ваш питон и нихуя не ебу, ну рилигде это делать шоб было более-менее удобно? через что вводить команды по гуйду шоб все работало?
>>1529613установи модуль requestsчерез него requests.get('url', params={})где url будет https://api.foursquare.com/v2/venues/exploreparams - словарь с параметрами типа {'client_id': '1488322228'}
>>1529618Да блин. Что в запросе передать, в данном случае вторично.То есть я хочу, чтобы у меня за разными урлами стояла одна единая функция,def dummymethod(request, param) которая определяла бы, что ей делать, не из того, что в неё юзер засылает, а из некоего конфигурационного файла.То есть:- где-то есть конфиг, в котором определены урлы. например, определено два урла:- в другом месте есть dummymethod, поведение которого определяется из этого конфига и только из него. в идеале, аргументом этого dummymethod выступает нужный кусок этого конфига (скажем, в конфиге прописано: по урлу huinya-malafya отдавать статический файл, а по урлу mokrie_pisechki отдавать вообще текстовую строку из этого конфига)и все хорошо, кроме одного - я не понимаю, как этот конфиг затолкать в dummymethodСуть в том, что я хочу написать хуйню для мокапов, поэтому нужно максимум всего засунуть в этот конфиг, а количество методов во views свести к минимуму, желательно вообще к одному. Производительность, количество перечитываний конфига и прочее, соответственно, строго идут лесом.
>>15296271. Делаешь один юрл под эту функцию и второй просто для шаблона, в шаблон суешь Ajax запрос на юрл функции. 2. Делаешь конфиг с кортежем из <юрл>: <функция>. 3. Проверяешь есть ли юрл в кортеже.Надеюсь теперь я тебя понял
>>1529623уууу блет. он вообще нихуя не ставит блет.нашел похожий код от автора, запускаю и вот (пик 1). пытаюсь установить второе и пик 2
>>1529661Чел, открой самый базовый тутор по питону. Вот прямо 0-ой урок какой-нибудь, в котором обычно рассказывают, что нужно сначала установить. Вот его посмотри, а потом уже пытайся что-то запускать и спрашивать тут помощи. Без капли негатива говорю, только искренний совет.
>>1529663Зачем ты с ним разговариваешь? Ты чо ебобо? У него нету цели понимать, разбираться или осиливать, он пришел чтобы ему сделали ПРОСТО РАБОТАЕТ, чтобы он решил свою финансовую хуергу, взял бабла и забыл ваш пиздон навсегда. Нахуй его.
>>1529409Это понятно. Но я имел в виду получение номера ветви, а не содержимого лексемы.>>1529445>пикО, я вот чего нашёл:>>> re.search(r'(abc)|(xyz)','abc').lastindex1>>> re.search(r'(abc)|(xyz)','xyz').lastindex2>pyparsingЖутковатая вещь. Нет, ну правда, это же ужас. Бэкус вместе с Науэром наверное в гробах переворачиваются.Глянул ещё ply - он покрасивее.А вот в ply.py я заглянул... Вообще то, что надо.>>1529382Внезапно, в ply.py так и сделано. Видимо, это и правда лучший способ.
>>1529668диплом по социологии пишу и подумалось, что это может быть интересно, учитывая что тут нынче только опросные методы. и да, мне нужно чтобы работало, ибо это небольшой, но важный кусок работы.>>1529663ладн, спасибо. хотелось обойтись малой кровью
>>1529668От тебя убудет, что ли, если кто-то ему подскажет?Вот когда-то, помню, на любой вопрос в сети можно было получить пачку исходников в uue почтой, вытягивать их модемом 2400, разбираться в них, и делать вещи. А потом сеть заполонило псевдоинтеллектуальное быдло и на любой рандомный вопрос всё чаще стали сыпаться ответы «я не собираюсь твою работу делать иди на хуй», даже если ты пилишь какой-то некоммерческий опенсурс или вообще по 14 часов в день работаешь водителем самосвала и просто не можешь по три дня залипать над мануалами, чтобы просто поправить какой-то костыль в чужом коде.Знаешь, вот, в Китае если ты к какому-то мастеру, к любому, подойдёшь и спросишь, как он это делает, он тебе всё расскажет и покажет. Не будет такого, что тебе ответят «ты дурак, а умный и так знает» или «не скажу, коммерческая тайна».Поэтому Китай развивается такими темпами, а ты... ну в общем надеюсь ты понял, что я хотел сказать.
>>1529681Все хорошо, но вот с Китаем ты явно проебался. Всем известен азиатский принцип обучения. Пять лет спишь на циновки возле лачуги Гуру, еще пять лет повторяешь все свои действия за Гуру, а уж потом, если повезёт, Гуру начнет с тобой разговаривать.
>>1529939В Индии не нужно дожидаться Гуру, там Гуру тренирует сразу целые деревни, без задней мысли и без очередей. Студенты после одного урока идут писать энтерпрайз за 300кк рупий/сек.
Луркал гитхаб, наткнулся на очень интересную репу https://github.com/jackfrued/Python-100-DaysАнон, есть что-то подобное, но на ангельском? Ультимативный гайд, так сказать, или перечень всех тем, что нужно знать. вы посмотрите, там даже UML есть, охуеть
>>1530062Зачем тебе ультимативные гайды? Беги гайды для ньюфага, вкатишься, сами поймёшь что тебе нужно. А от этих гайдов со списком всех знаний человечества толку нет.
>>1530070Я уже несколько лет лениво бегал по этим гайдам для новичков. Уже пару проектов написал, разной сложности. Все гайды, как правило, кончаются написанием банальной игры на pygame. Тут же список тем, большинство я знаю. А те, что не знаю, могу с лёгкостью прочитать. Но ебаться каждый раз с гуглопереводчиком не круто.
>>1530072>>1530070Короче, я на том этапе, когда вся база выдрочена, и нужно дальше двигаться Что учить - джангу, фласк, торнадо?
>>1521391 (OP)Tkinter эксперты здесь? Как замутить "дорисовку", а не полноценную анимацию с очищением дисплея? Конкретная задача: построение графика функции, зависящей от времени. Собственно через time.sleep() делаю эти паузы, потом рисую кусок графика, но оно так не работает. Прога тупо виснет, пока не пройдет весь цикл и только потом - рисует.Что для 1, что для 50 "фпс" какие-то внутренние еба-оптимизациии ждут весь цикл.while t <= T_FINAL: t += PERIOD sleep(PERIOD) x2, y2 = d2s(trajectory(t), CANVAS_SIZE) canvas.create_line(x1, y1, x2, y2) x1, y1 = x2, y2
>>1521391 (OP)Постоянно вижу в треде посты о том что работы кроме ДС в россии для пайтон джунов очень малоА как с этим в Новосибирске? Реально найти или придется ехать в дс/работать удаленно? PS На hh вакансий для без опыта мало, да и в реальности думаю все немного отличается от hh
>>1530157https://m.hh.ru/vacancies?text=Python+junior&area=4&st=searchVacancyЯ лично в 2гис отсылал резюме, но мне даже тестовое не прислали. Больше отсылать некуда. Хуй знает, может весной больше будет работы, какие-нибудь новые проекты начнут открывать.
>>1530163Да, именно эту от 2гис видел, подумал что там вообще трейни берут судя по описаниюА что у тебя по уровню? Джун? С опытом?
>>1530164Обычный вкатывальщик без опыта и образования. Хз кого на той вакансии берут, она висит пол года и никакой инфы, что там за работа
>>1530144После двух часов ебли с доками понял, что у ткинтера свой менеджмент задержек и последовательности действий: тупо застопить скрипт - бесполезно, нужно использовать метод "after".
Аноны. В общем задача - нужно узнать температуру ГПУ от нвидия для последующего управления корпусными вентиляторами, но это уже совсем друая история.Самый простой способ, который для этого нашёл - утилита от нвидии, которая поставляется вместе с драйвером: nvsmi. Утилита консольная, запускается с нужными аргументами, ей задаётся loop и она раз в n-времени выдаёт заправшиваемые параметры. Вот тут начались проблемы:Программа предполагается с гуи PyQt5, и открытых консольных окон быть не должно. Раньше для запуска консольных команд без открытия окна я использовал os.spawnv с аргументом os.P_NOWAIT или os.P_DETACH, но тут надо как то перехватывать результаты выполнения команды. И как я понял, в данном случае os.spawnv не подходит. Немного погуглив обнаружил другой способ: subprocess.popen запускающий консольную команду с аргументами в отдельном процессе, с возможностью переназначить для процесса stdout, чем я и воспользовался, получая в последствии из stdout данные выводимые запущеной утилиткой кстати предлагаемая в документации попена команда comunicate работает как то жопно, я так нихуя и не понял как.Проблема в том, что subprocess.popen открвает отдельный процесс в окне командной строки, которого основная гуёвая программа не имеет. И единственным решением, которое я нагуглил, оказалось пикрилейтед - узнать PID открываемого CMD окна и как то хитро его убить (я толком не разобрался - потому как эта задача сильно уходит в дебри от моей основной - знаю только что это частично работает).Так вот почему это работает частично - теперь при запуске моей программы на секунду появляется окно CMD, потом закрывается и уже начинается ГУИ. В целом, по-моему я понаделал жутких костылей, раздел импорт для казалось бы простенькой программы занимает "пол страницы". Есть ли какие-то более правильные решения, чтобы сделать всё по-людски?Или возможно есть какой-то более изящный способ получить температуру ГПУ?Код программы:https://pastebin.com/40pkPPyQ
>>1530240Сам в прошлом месяце ебался с этими окнами, пол дня убил на это говно.Если я правильно помню, то в sp.Popen указываешь shell=True, указываешь какой-нибудь stdout в sp.PIPE и все остальное обязательно в sp.DEVNULL.Я делал в Tkinter и упаковывал с помощью pyinstaller с флагом --windowed. После таких выебонов у меня окон не появлялось.
>>1530262К примеру, ты хочешь что-то вытянуть из stdout, значит ты должен писатьsp.Popen(stdin=sp.DEVNULL, stdout=sp.Pipe, stderr=sp.DEVNULL)И какие-то там свистопляски с communicate, если не получится - могу завтра глянуть на работе.
>>1530266Анон, спасибо. Сегодня я уже умучился с этим, продолжу разбираться завтра с утра. Но если конечно не сложно будет - попробуй глянуть код - там его в целом не очень много
>>1530266communicate я так и не осилил, почему то так как указанно в примерах он не работает, потому я назначил stdout в переменную и в цикле с sleep начал считывать данные уже из этой переменной
>>1530274>>1530275Ты и правда намудрил с убийством проца, я, когда выдумывал костыли, убивал через pid и вполне себе успешно.
>>1529778>Всем известен азиатский принцип обучения. Пять лет спишь на циновки возле лачуги Гуру, еще пять лет повторяешь все свои действия за Гуру, а уж потом, если повезёт, Гуру начнет с тобой разговаривать.Ты разницу между Японией и Китаем понимаешь? Или по-твоему в Азии всё едино, и в Казахстане надо тоже пять лет на циновке спать, чтобы только вопрос задать? Да и в Японии уже давно паровой двигатель изобрели и уже телеграф наверное кое-где появляться начинает. Двадцать первый век всё-таки, а не восемнадцатый.
>>1529778А, я понял. Так ты у нас себя типа гуру возомнил и предполагаешь, что это тебе даёт право относиться к кому-то как к грязи из под ногтей, пока они пять лет не проведут на циновке, ковыряясь в носу в точности так же, как это делает "гуру", и только потом ты перестанешь хамить в ответ на вопросы, которые даже не с тобой обсуждаются?
OpenCV на питонеИнтересует считыватель qr-кодов. Инициализируем с помощью qrDecoder = cv2.QRCodeDetector(), потом вызываем метод detectAndDecode. У меня в коде последовательно обрабатываются несколько картинок. Для первой работает, для остальных -- нет (т. е. я создал объект декодера и несколько раз вызываю один метод, передавая разные qr-коды). В чём я вру?
Хочу сделать ебалу для телеги, которая сохраняет копии сообщений, которые мне прислали и уведомляет меня когда какое-нибудь сообщение удалили. Как правильно такое сделать? Обсудите со мной идею реализации, а то сам только хуйню сложную придумываю
Пацаны, так всё-таки, почему requests повсеместно используются, а об httplib2 мало кто слышал?Читаю сейчас одного хуймана (Марк Пилигрим с его Дайв Инту Питон). Там он довольно убедительно описывает почему не надо юзать requests. Типа они не умеют в кэш, и не умеют еще многое. Так почему же их используют?
>>1530613это понятно, но зачем, если всё уже есть в httplib2. CacheControl просто "передрали" с httplib2 короче ))с того сайта:CacheControl is a port of the caching algorithms in httplib2 for use with the requests session object.CacheControl is relatively new and might have bugs. I have made an effort to faithfully port the tests from httplib2 to CacheControl.
>>1530648>но зачемIt was written because httplib2’s better support for caching is often mitigated by its lack of thread-safety. The same is true of requests in terms of caching.
>>1530317>>1530266>>1530254Анон, спасибо тебе большое. С лёту сделал пикрелейтед: перенаправил ввод/вывод ошибок в DEVNULL, включил SHELL. Выпилил нахуй часть, которая должна закрывать окно. Запилил через пинсталлер с флагом -виндовед. Теперь работает как следует.С лёту такой вопрос для всех - возможно кто имеет представление, в какую сторону копать, чтобы реализовать управление корпусными вентиляторами софтово?
>>1530411Может, так и должно быть? А если ты передаёшь картинку, на которой qr не опознаётся, что происходит? Следующая правильная картинка декодируется или нет?
>>1530731Всегда пожалуйста.> С лёту такой вопрос для всех -Загуглил за тебя, пробуй.https://pypi.org/project/WMI/https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-fan
>>1530880>>1530880У тебя новый питон и старая джанга. Либо откати питон на ДО 3.7, либо обнови джангу на ПОСЛЕ 1.11.16https://stackoverflow.com/questions/51265858/syntaxerror-generator-expression-must-be-parenthesized
>>1530910Да, понял ужеВот сука, проблема в том что на курсере видосы в курсе на django 1.11. Я её поставил, а py у меня 3.7 офк. И хз что теперь вообще делать, ведь все проекты там получается на джанго 1.11, а новая 2.2.7 наверное отличается от старой
>>1530925>скатился>2020 годБратюнь, а где ты был когда ее наглухо сломали между 2 и 3, и пришлось потратить десять лет на переписывание тонн легаси говна?
>>1530933Но ведь переписали же. Зачем опять ломать? Подстраиваются под питон 4, который скоро выйдет?
>>1530921Спасибо, помоглоКстати, не сильно ли отличается 1.11.17 от 2.2.7? А то если научусь по 1.11.17, вдруг потом заново придется все на новой версии изучать
Сайт сервера МИНЕКРАФТ норм делать на джанге? Пездюк племянник хочет свой сервер, думаю помочь ему и запилить проектик, чтобы стричь донат со школоты. Если приложу в портфолию для галеры, меня не засмеют хрюшки?
>>1531195Такой проект норм делать хоть в конструкторе сайтов.В портфолио я бы такое выкладывать не стал, даже если сделать по науке.
>>1530996На сайте джанги есть гайды по апгрейду. Но прям крупные изменения всего и сразу там очень редки. Мне с 1.11 на 2.2 только изменения в роутинге запомнились, остальное мелочь.
>>1531202Сортировку пузырьком, развёрнутую в докер контейнере в виде микросервиса, работаюещего через rest api
Ещё раз для танкистов, гуру фласка.Клиент посылает на сервер поток json'ов.Но перед этим потоком надо передать на сервер тот или иной флаг.Как это сделать?
Этот ваш Лутц с его учебниками какой то графоман поехавший. Сперва "изучаем Python" на 1280 страниц, потом еще 2 тома по >900 страниц "программируем на Python".Просто легкий бомбеж пока тянутся книжки с яндекса.
>>1531323Но но, год назад я "изучаем python" прочел до 314ой, как только что проверил, другое дело почему я бросил не помню.
>>1531313>>1531331Так, если клиент и сервер идут параллельно в потоках, то для отсылки флага нужен отдельный поток? А для приёма флага?if __name__ == "__main__:...__server.start(target=get_json)__client.start(target=send_json)Куда тут функции send_flag и get_flag добавить?
>>1531345Это только твое решение может быть. Только ты знаешь что там за флаг у тебя такой особенный. Послать его можно и отдельно и внутри первого json и даже в заголовках. В зависимости от этого сам реши, нужна тебе функция отправки отдельно или нет. Принять же его можно той же функцией что и json обрабатывает.
>>1531355Если послать отдельно, как это будет выглядеть?В target процесса надо его добавить через запятую?Типа __server.start(target=get_flag, get_json)__client.start(target=send_flag, send_json)
>>1531360Возможно.С функциями ничего сложного нет. На клиенте у тебя будет единственный процесс, в котором будет код вида:отправить флаготправить запросотправить другой запросЭто всё по очереди придёт на сервер, и там обрабатывать.
Чёт посмотрел вакансии джунов-стажёров django/flask, не так уж и много их в ДС. Вкатываться или нет? Знаком на посредственном уровне с питоном (но не веб, а pandas/numpy/scikit-learn) и c .net (wpf). Хуй знает, куда дальше вкатываться только не во фронт-енд...
Хэлп, аноны! Делаю маленький сервис заметок для самообучения. И столкнулся с проблемой хранения форматированного html в модели. Дело в том, что текст заметки у меня в редактируемом div:document.getElementById('editable').contentEditable='true';Форматирование текста легко реализовал с помощью Document.execCommand(). В итоге в теле div я получаю разметку с тэгами <b>, <i> и тд. Вопрос: как это всё сохранять в бд с помощью джанго? С учетом того, что в текстовом поле я могу набрать разметку с клавиатуры и она не должна учитываться, а работать должна только та, которая задается через Document.execCommand()? Не знаю с какой стороны подступиться к этому.
>>1531527Добавлю, что полезно вообще почитать про то, как устроено экранирование и как его лучше использовать.
Всем добрый день. В питон можно зайти при 0 знаниях о программировании? На гидхаб зашел, книгу скачал, темой интересуюсь
>>1531620>>1531629Единственное у меня вопрос естьИзучив содержимое треда на хабре, и попутно информацию в сети так и не пришел к единому мнению, с чего же собственно стоит вкатываться в Пайтон, если навыков, и знаний о программировании нет от слова совсем. Стоит ли начинать с Лутца, или я запутаюсь в терминологии и аобилии информации? Спасибо Есть ли в треде господа, которые вкатились с 0 знаниями о языке программирования в общем
>>1531653Э байт оф пайтон по хардкору для чайников погружает в пайтон. Потом уже что-то более серьёзное листать
Посоны, чем лучше с экселем работать? Во всех туториалах пишут по-рузному.Нужно взять инфу из двух файлов, сопаставить и внести в третюю.
>>1531356Надо знать точно что тебе надо реализовать, зачем тебе этот флаг, но в общем случае будет следующее.У тебя будет одна функция senddata. Если ты знаешь точно когда надо послать флаг, то перед первым json посылаешь флажок. Если нет, то его посылаешь с каждым. Можно и просто с каждым посылать, разницы нет.Принимающая функция принимает флаг и переключает его, если его текущее значение другое. Таким образом сработает только первая посылка.
>>1531653Можно укуса питона, как выше советовали. Я начинал с automate the boring stuff. Очень годная книжка, скоро втрое издание будет
>>1531364Продолжим.Значит флаг можно ввести в функцию отправляющую поток json'ов?Вот только это модель, а деле будет реальный сервер с json'ами, так что флаг лучше слать отдельно.Поэтому вопрос, как это изобразить?
>>1531895Так я не знал, что тебе веб надо с фреймворками. Я тебе просто скинул картинку с полезными проектами. повнимательнее посмотри на варианты с пикчи той. Там много чего из веб есть. Например, стриминговый муз.сервис, где транслируется музон, который загружают пользователи на серв
>>1531919В проекте "реального" сервера нет смысла плодить тысячи однострочных тривиальных функций, там и без того проблем хватает. Вот если бы этот флаг как-то хитро вычислялся и передавался бы на сервер с кучей других данных, то да, смысл был бы.Но это не настолько важно. О субпроцессах можно думать как о точках входа в программу, из каждой такой точки происходит запуск всех остальных функций, напрямую или через другие функции. Поэтому клиенту достаточно одного процесса, из которого он запускает всю остальную логику, вызывая другие функции: одна для "отправки флага", другая для отправки каких-нибудь данных, третья ещё для чего-нибудь. Да и на сервере аналогично, только там уже будет не отправка, а обработка полученного и возврат ответа.
>>1531961Спасибо.>а обработка полученного и возврат ответа.Для обработки флага нужна будет отдельная функция?Или просто сделать условие на является или нет флагом?
>>1521391 (OP)Сап, что нужно знать, что бы пайтон программистом зарабатывать хотя бы 400-500$ в месяц?Учу месяца 3, знаю сам пайтон, sql (на уровне создания/удаления таблиц и разных селектов), гит, основные библиотеки, bs4, регулярки и немного джанго, только учу. Что нужно сюда добавить?
>>1531950Спс в любом случае за картинку, что нибудь я и на чистом питоне запилю. Задач я уже много решил, потихоньку начал врубаться как разбивать проект на подзадачи.
>>1532046Html css javascript jquery angular django, несколько проектов своих, ООП, Лутц, Чистый Код, Красивый кот и мы вам перезвоним
>>1532103Незабываем алгоритмы и структуры данных, шаблоны проектирования, модель mvc, теорию игр, мат анализ, паттерны, Общий курс Computer Science (введение) , обязательно ORM и миграции.
>>1532107>>1532105>>1532103После изучения всего этого и выполнения тестового задания из 50 подзаданий мы готовы рассмотреть вашу кандидатуру на место трейни стажера с зарплатой 300$
>>1530536Такой бот не подойдёт. Надо же сохранять сообщения в чате 1 на 1. Нужно не телеграмовский бот, а какой-нибудь консольный клиент запустить на aws создав для него ещё одну сессию в мой аккаунт и пусть он все сообщения читает и сохраняет. Но тогда прочитанными будут все сообщения помечаться и я онлайн буду 24 на 7. Какой есть способ лучше?
>>1526728Пых сдохн и потихоньку догнивает, вакансии на эту хуету ты сможешь только в снг найти, котора отстаёт от всего внешнего мира лет на 10
>>1527244Трабл в том, что твои кейсы нахуй никому не упали, поэтому оставайся на матлабе, который кроме переумнодения матриц с уебищным синтаксисом паскаля-дельфи больше вообще ничего не может. Если у тебя специфический пул задач о которых 99% вообще никогда не слышали и не задумывались и есть язык который только на них и заточен, то нахрена вообще что-то менять. Правда стоит учесть, что датасаиниисты работают в питоне, а не в матлабе, мне кажется о чём-то это да говорит, возможно ты свернул где-то не там.
>>1527574Практически любой редактор табы заменяет на 4 пробела, если включить в настройках, иде и редакторы для питона вообще всегда это делают, так что нет никакой проблемы в табахВим на линуске может в табыНотпад ++ тоже можетНе вижу ни одной причины вообще вручную ставить пробелы.
>>1527702Потому что тв можешь таким образом через эхо добавить новую строчку в файл не открывая самого файла, это не только на Unix-like, но и в nt.echo “print(‘I like big dick’)” >> my_script.py
>>1527731Так нет никаких срачей, есть люди, которые знают, что таб - 4 пробела, а есть долбоебы, и на последних нет смысла вообще ориентироваться.
>>1528627С учетом того, какие у тебя возникают проблемы, скорее всего тебе ещё долгое время не понадобиться про версия.
>>1530062Ну самом деде там пиздос, я себе в проект скопирнул пару функций в виде тулз, типа рекурсивного сглаживания листа, потом пришлось править этот говнокод, хз почему они так хуево написали.
>>1522417Работает рекурсивно с любой вложенностью, возвращает CounterПервый вариант - слегка замороченный, для твоих задач должен подойти второй.https://pastebin.com/63mkJuSS