24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Тред, посвящённый языку программирования Питон, #77, вечно живому. Встречаем старый новый год и провожаем новогодние каникулы и отпуска. Предыдущий >>1563834 (OP)
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: 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/watch?v=MCs5OvhV9S4
А как учить джангу? Нахожу только книги по джанге 1.х - У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой, из официальной документации.
В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать - Вот, пожалуйста, та же самая программа, но переработанная под язык Python http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём - брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
>>1569408 (OP) >https://dumpz.org/b37erFzCnRmW По этой ссылке исходник шапки. Если кто готов из неё сделать что-нибудь такое, чтобы тни смотрели и мокли, а остальные слезали с джав и вкатывались в питон - You are welcome!
Анон, недавно начал учить питон, есть вопрос касательно синтаксиса. Допустим, есть логическая конструкция, которая должна выполняться, если переменная будет иметь несколько значений (допустим, 1, 3 и 5). Есть ли способ записать такое условие проще, чем перечислять условия навроде: x == 1 or x == 3 or x == 5? По наитию попробовал написать x == 1, 3, 5 и x == (1 or 3 or 5) - ни то не другое не работает. Мой первый вариант - единственный рабочий адекватный способ?
>>1569412 Гуд джоб, Анон. Насчёт одной книги в шапке - видимо никого нет из владельцев крупных хранилищ книг, т.к. ее никто никуда не добавил. Видать придется пилить новое свое хранилище и поддерживать его.
>>1569408 (OP) Заехал в тред на ньюфажий угол. В общем дрочу себе черепашку, по практикуму курса из шапки и дошел вот до задания с правильными многоугольниками. Никак не доеду, как мне добавить угол, что бы все они получились как на пикрл 1., у меня выходит пик 2. Пробовал по всякому, но сейчас мне уже как-то настоебало, листинг пик 3. Кто знает/просто хочет помочь, просветите, в долгу не останусь, с меня нихуя
>>1570072 >>1570073 Мое увожение, после этой >turtle.circle() хуйни пошел в документацию к черепахе, и действительно, там она есть, а в методичке не удосужились поставить почему-то просто пол дня впустую ебался в угадайку с координатами.
а что насчёт GUI. Кто знает в какой среде программировать начинать лучше, где больше уроков по этим GUI? Где проще и быстрее можно создать приложения для PC?
>>1570109 >>1570072 Вот мой код, я считаю, нужно было использовать только то, что было дано в методичке. да, названия в кэмэлкэйзе и я присваиваю делаю странную хуйню с переменными в функции, я был молод, так делать не надо https://pastebin.com/NVvLV9GP
>>1570125 Гуй на питоне пишут редко. Найти иде для питоне, где из коробки есть Qt Designer или его аналог, ты вряд ли сможешь, придётся всё прикручивать самому. Просто и быстро не будет точно. Можно вручную создавать формы через PyQt или Tkinter. Кода придётся писать много, но простое приложение сделать сравнительно несложно. А проще и быстрее делать на плюсах или шарпе. Но они сами по себе намного сложнее питона.
>>1570229 У меня есть класс A, При создании объекта я передаю туда имя файла b = A(2ch.hk) Как переопределить магический метод таким образом, чтобы можно было итерироваться по объекту и выводить информацию, которая есть в файле построчно?
>>1570235 Если у тебя функционал класса ограничивается этим, то проще вместо класса сделать функцию, котора принимает имя файла и через yield выдает строки. Если же нужен класс, то в __iter__ делаешь что-то вроде self.file.seek(0), в __next__ делаешь self.file.readline() и возвращаешь или строку или StopIteration.
Я написал код и не совсем понимаю, как он работает. Можете помочь? n = int(input())
for i in range(0,n): ____lst = list(map(int, input().split())) ____lst.sort() ____ print(lst[1], end = ' ')
Интересует определение lst. Он берет на вход информацию из инпута в виде целых чисел, дальше выполняется split, потом map, потом это все заворачивается в список, так? А что именно тут делает сплит и мап?
>>1570454 input() - на выходе дает строку (тип str), то есть там будет что-то вроде '24 2 10 11' str.split() - берет строку и разбивает по пробелам, получая список '24 2 10 11' -> ['24', '2', '10', '11'] map(f, l) - берет f и для каждого элемента x из l применяет f(x), здесь map(int, ['24', '2', '10', '11']) тоже самое что и: int('24'), int('2'), int('10'), int('11') Но map возвращает не список, а специальный объект, поэтому его превращают в список list
Что быстрей? Получать один кусок данных из бд(монгодб) и сортировать его через пайтон. Или сразу получать несколько но уже отсортированных кусков данных из бд.
Есть желание выучить python. Вернее мне предложили это сделать на работе. Но навыки программирования у меня следующие: 1)Писал что-то для микроконтроллера на си в универе. Писал криво, без каких-либо правил программирования 2) писал скрипты и макросы для эксель 3) написал сайт в универе, который хранил логины и пароли в SQL 4) написал табличку в борлэнд с++ билдер на ~250 строк кода. То есть мне нужно обучаться почти с самого нуля в целом программированию, а не только пайтону. И это вводит меня в ступор. Все ссылки выглядят так будто они уже для тех, кто знает программирование.
Я правильно понимаю, что лекции от мфти будет идеальным вариантом для начала вкатывания? Или лучше какую-нибудь книжку. И где брать практику.
>>1570772 >выучить python Что именно ты под этим подразумеваешь? Веб-разработка, фуллстак, машин лернинг, шкрепты для автоматизации какой-нибудь хуйни на работе?
>>1570854 не лезь блять, дебил сука ебаный. ты чо хуел, я те сказали чтоли. залесь нахрен нахуй обратно блять! Дебил бляять. ОНА ТЕБЯ СОЖРЁТ, БЛЯТЬ! НАХУЙ ТЫ.. ААААААААА БЛЯЯЯТЬ! СС ЁЁЁЁЁ СУКА! ЕБАН (АААААААААА) (кряхтя) блиять ААААААААААААААААААААААААААА ДА БЛЯЯЯЯЯЯТЬ СУКА
>>1570855 Я молод, у меня все в порядке с математикой (знаю хорошо ТОЭ, ТАУ, думаю выучить что-то еще не составит труда, у меня есть желание заниматься чем-то сложным, но хоть на 5% интересным, я думаю, что я буду хорошим и уникальным специалистом если совместить мои знания технологии с навыками работы нейросетей. Но если опишешь подводных медведец то буду рад
>>1570901 Так а зачем тебе питон тогда? Если ты знаешь математику и хочешь чем-то интересным с нейросетями заниматься, тебе скорее нужны алгоритмы и плюсы.
>>1570909 В компании уже с python'ом работают. Да и , вроде, все курсы онлайн школ, что я видел на нем учат с нейросетями работать. Я хочу к этим курсам подготовиться Плюс моя математика не отличная, просто лучше, чем у рядового выпускника тех. вуза по моей специальности. Я же не на примате учился и не в MIT.
>>1570909 Ну я не против начать изучать программирование с азов. Но только не стой скоростью, что предлагают всякие скиллбоксы. Начать я могу и с самообучения, а уже потом думаю взять курс на нетологии по машинному обучению
Это немного не по теме треда, но как вы печатаете? Я сейчас пытаюсь научиться десятипальцевой печати, но прогать ей вообще невозможно, из-за того, что половина символов приходится на правый мизинец, ещё эти постоянные нижние подчёркивания
>>1571085 Как придётся, никогда не заморачивался с этим. Открыл как-то картинку, где было изображено правильное положение пальцев в десятипальцевом, попробовал, не осилил, закрыл. Вот бы хоть один из этих "методов правильного печатания" помогал быстрее переучиваться с одной клавиатуры на другую.
У меня есть большой список из 365 интов. Мне нужно сумму каждых 7 интов в этом списке поделить на первое, второе, третье и т.д. число в другом списке и сложить их в другой список, т.е. грубо говоря: result = [] lst1 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,....,365] lst2 = [5,10,15,.......]
result = [ ((1+2+3+4+5+6+7)/5), ((8+9+10+11+12+13+14)/10), ........ ]
>>1571098 Бежать по первому списку циклом с шагом 7, брать от текущего элемента слайс из 7 элементов и делить на нужный элемент второго списка Например, так: j = 0 for i in range(0, len(lst1), 7): ..result.append(sum(lst1[i:i+7]) / lst2[j]) ..j += 1
Есть файл с n-нным количеством строк, нужно эти строки считать, но так, чтобы все было в одну строчку (без переходов на новую строку). Пробовал replace() заменить все '\n' на ' ', но никаких изменений не произошло. Може кто знает как эти строки из файла соеденить в одну сплошную строку?
>>1571089 У меня как придётся получается 25 слов в минуту, во всяких туториалах не успеваю, за ютуберами, догоняю, пока они пиздят. >>1571097 Посмотрел, реально удобнее выглядит, но надо ещё, наверное, скобки куда-нибудь на левую руку перенести >>1571113 sqlite3? Подавал туда одну переменную, вместо кортежа? Мне хватило минут 15 чтобы понять в чём проблема
import requests import csv from bs4 import BeautifulSoup as bs
headers={'accept': '/', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10 14 2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
>>1571498 Не списывай просто, пока хуй в видосе печатает, ты тоже печатай. Когда он будет пробовать, как работают куски его программы ты тоже пробуй, короче, делай, всё что он делает.
for sent in input_texts: ____input_sentlist = sent.split(' ') ____for word in input_sentlist: ________if word not in input_characters: ____________input_characters.add(word)
Если я заместо nName подставляю какую-то определённую строку, то код выполняется. Но когда я оставляю там переменную, которая должна браться из поля ввода entry
nName = entryRe.get()
то выскакивает ошибка
FileNotFoundError: [WinError 3] Системе не удается найти указанный путь: 'New_Text_3' -> ''
Да, как бы там действительно пусто и я понимаю, почему система не может записать файл с нулевым названием. Но я не понимаю, почему программа заранее считает что в поле ввода entry пусто, ведь команда os.rename идёт уже после получения содержимого поля entryRe
nName = entryRe.get() os.rename(name,nName)
Следовательно сперва должно идти получение содержимого а уже потом переименование
Не могу понять, как мне составить гистограмму с частотой показателей в массиве c числами. Я хочу, чтобы по оси у была указана частота в процентах, сколько у меня встречается это значение, а по оси х - сам показатель, как на первом пикрелейтеде. А выходит у меня второй пикрелейтед, что являет собой полную хуету. Код: https://pastebin.com/UNX3wuNs
Ребзи, я тоже нуфаня, поэтому строго не обоссывайте. Суть: Работаю с джангой, про рест апи почти ничего не знаю. Вообщем появилась задача сделать рест апи сервис для джанго приложения, однако рест джанги (Django Rest Framework) использовать нельзя. Вопрос: где-то можно посмотреть, как это реализовывать? Может туторы/гайды где-то есть, или видео? Подскажите пожалуйста молодому джуну
SELECT song_name FROM Info WHERE id=1 как выполнить такой запрос через sqlalchemy? делаю так: db.session.query(Info.song_name).get(1) выдает: sqlalchemy.exc.InvalidRequestError: get() can only be used against a single mapped class.
>>1569408 (OP) Сап, как крякнуть pycharm про, если 30 дней триала прошло? В инструкции написано зайти в "Configure" или "Help" и зайти в "Edit Custom VM Options..."
А я не могу туда зайти, из-за того что триалка кончилась
>>1571811 Я нашёл только принципы как это работает и небольшие примеры. А мне нужно создание полноценного сервиса, ибо я полный ноль в этом, к тому же время сильно ограничено. Поэтому тут и спросил, мб кто знает.
>>1571877 Это всё каадратно-гнездовой способ преподавания людьми, которые ни дня не работали программистами, но зато "уважаемые профессора, которые преподают больше 50 лет".
>>1569408 (OP) Ребят, подскажите, плиз больше сайтов с задачками, желательно чтобы был раздел с элементарными. Ебусь с обработками массивов по два дня, хочу надрочиться на лайтовых задачках чтобы легче телега ехала
Утро в хату. Есть один скрипт на питоне, который я хочу зараспространить среди свой компании в виде веб-сервиса (доменное имя для меня уже подготовили, нжинкс я поднял). Вопрос в том, как мне запиздрячить на страничку свой питоновский код? Иными словами, хочу поднять на нжинксе страничку, где будет кнопка, например "зделоть пиздато". По нажатии на кнопку запускается мой питоновский скрипт, и юзер получает результат, например выводится сообщение "зделоно".
В идеале мне нужно будет подучить жс, чтобы вывести кнопки к себе на страничку, но в целом, я даже хз, куда копать, что смотреть, какие гайды брать?
>>1571977 nginx - это по большей части либо раздача статического контента (то есть никакого бекенда с логикой), либо прокси, то есть пересылка всех запросов на другой порт, на котором запущено приложение.
>>1572039 >>1572041 Вот я и прошу помощи. Если можно сделать на фласке - есть ли годный гайд, как это все организовать? Особенно по сетевой части, а то я вообще в этом не разбираюсь. Мне вот в нашей корпоративной локалке выдали домен - vpupkin.ln, я смогу на нем захостить свое приложение? Я просто думал, что это ток через веб сервер можно сделать, там резолв просто организуется.
>>1572046 Почитай по фласку пару туториалов каких-нибудь. Там можно на определённый URL (например, /) повесить функцию-обработчик, в которой можно вызвать твой скрипт, например. Фласк сам по себе веб-сервером не является, но с ним идёт сервер для разработки/отладки. Его всерьёз использовать не рекомендуется, но вдруг для нужд вашей организации хватит. Просто повесить в автозапуск скрипт, он будет слушать какой-нибудь порт и вызывать обработчик.
А ещё можно использовать cgi, но там всё несколько сложнее, да и в 2020 никто так не делает.
>>1572046 Хостишь приложение не на домене, а на сервере. Для адреса vpupkin.ln необходимо в A записи указать ip адрес сервера на котором будет твое приложение.
>>1572059 А что такое А запись? >ip адрес сервера Это адрес моего компа в нашей локалке, получается? Доступ к аппликухе будет только из-под нашей локалки.
>>1572071 >А-запись указывает адрес, куда должен ссылаться Ваш домен. Обычно это адрес хостинг-сервера, на котором располагается контент (содержимое) сайта. >Это адрес моего компа в нашей локалке, получается? Если приложение будет на твоем компе запускатся то да, но возможно нужно будет какие-нибудь порты пробросить. Если я ошибаюсь пусть мудрый анон меня поправит
- SELECT song_name FROM Info WHERE id=1 - db.session.query(Info.song_name).filter(Info.id == 1).one() для sql запроса через alchemy это единственный короткий способ? Когда пишу Info.query(Info.song_name).filter(Info.id == 1).one() то арёт на TypeError: 'BaseQuery' object is not callable И стоит ли пользоваться select'ом на чистом sql запрашивать когда есть обертка sqlalchemy
>>1572182 Ты шо, сейчас же модно все докер сунуть, что б было. >>1572153 Сама идея то норм, почему нет? Сунуть в докер возможно не стоило, но ради опыта - ок. Если тебе по работе надо такое, то взгляни на готовые сервисы ибо функционал там шире.
>>1572459 Все так, я почему то забываю про кавычки все время. Книга эта конечно пиздец "Изучаем питон", сначала две три страницы "отборных" данных и прочих примеров, а потом -"Ну если вы новичок можете не акцентировать на этом внимание" В этом плане курсы героиновыеhttps://ru.code-basics.com/ подиничамичнее, поэтому я комбинирую.
>>1572508 Я лично щитаю, что нужно сначала пройти укус питона, получить знания синтаксиса, а потом зная синтаксис сразу в курс хирьянова по алгоритмам, там практики дохуя, как раз надрочишься. А лутц хуета.
Сап, питонач, есть пара полей на форме, и нужно проверить их на содержимое. Надо ли проверку по каждому полю выделять в отдельную функцию а потом вызывать их в рамках ещё большей функции или захуячить в одну большую? Не много if-else'ов будет?
>>1572777 Если пишешь код, который будут читать другие люди то с таким подходом захуячить нужно тебя, то конечно нужно сделать несколько коротких легкочитаемых методов. А еще лучше нати готовое решение для валидации.
Не очень понимаю, что значит stateless. Вот например есть antihammering защита какая-то на сервере, сохраняется некоторый список айпишников или логинов и время, в течение которого от них нельзя принимать попытки войти, это же уже некоторое состояние?
>>1573014 Блядь, ты заебал, какого хуя ты такой тормозной? Не одна у них практика нихуя, я специально зашел, чтобы ещё раз посмотреть. В КУРСЕ ПРАКТИКА ПРОГРАММИРОВАНИЯ НЕТ АЛГОРИТМОВ. В КУРСЕ ПО АЛГОРИТМАМ НЕТ ПРО ГИТ, ПРО ПЕП, ПРО ТЕСТИРОВАНИЕ, МЕНЬШЕ ПРО ООП. Это тупо разные курсы. Может программирование это не твоё, если ты не можешь просто покликать по видосам в разных местах и посмотреть что там?
>>1573015 >это же уже некоторое состояние Да. Но обычно стейтлесс говорят про приложение. Это означает, что любой запрос может быть обработан любым сервером. Т.е. состояние вынесено наружу приложения, например, в бд. Например, сессию хранишь ты в jwt, а его юзеру записываешь в куки, запускаешь 10 копий приложения и теперь сессию берешь из каждого реквеста, т.е. у тебя в приложухе нет состояния сессии, которое надо поддерживать.
>>1573015 Даже Keep-Alive-соединения - это уже atateful в каком-то смысле. Стейтфул изначально подразумевает архитектуру вида "подключился - отправил один или более запросов, получил на каждый ответ - отключился", причём построено всё так, что в общем случае нельзя отправить все запросы в новых подключениях (сессиях), всё обязательно должно идти через одно. Например, FTP или SSH. Стейтлесс же наоборот говорит: можете отправлять запросы в одном подключении, можете в разных, но результат от этого зависеть не должен. В результате, состояние не связывается с конкретным соединением, а гоняется туда-сюда при каждом подключении, как куки.
>>1573021 >Т.е. состояние вынесено наружу приложения, например, в бд. То есть если есть какая-то база данных, к которой все сервера обращаются, то это всё равно stateless приложение? Как я понимаю, сам jwt нужен, чтобы избежать хранения сессий в такой базе данных, но с защитой от брутфорса так не получится, клиент не будет ничего хранить.
>>1573025 Но ведь браузеры на каждый запрос делают новое соединение, тогда получается, что в вебе всё stateless? Или тогда правильно сказать, что сам http протокол stateless, но серверное приложение само по себе может сохранять состояние, а может нет и при этом сохранение состояния в бд != сохранение состояния у приложения...
>>1573026 >То есть если есть какая-то база данных, к которой все сервера обращаются, то это всё равно stateless приложение? Конечно. Суть в том, что конкретный процесс твоего конкретного приложения не имеет внутреннего состояния, от которого завит обработка запроса. Если он это состояния при каждом запросе берет из постороннего сервиса, то это не делает его стейтфул, а наоборот как раз. >Как я понимаю, сам jwt нужен, чтобы избежать хранения сессий в такой базе данных, но с защитой от брутфорса так не получится, клиент не будет ничего хранить. Jwt нужен чтобы хранить сессию на стороне клиента. Да вообще в данном контексте это не важно, главное что ты хранишь состояние не в своем приложении, а снаружи.
Stateless говорится про протокол HTTP, приложение практически никогда не бывает stateless (кроме простейших случаев, где что-нибудь налету считается и сразу возвращается пользователю).
>>1573035 >приложение практически никогда не бывает stateless Да ну ты чего, наоборот же, практически всегда делают стейтлесс приложения, уж в вебе то точно. Иначе очень трудно масштабировать.
>>1573038 Ну, стейтлесс оно может быть в плане того, что не хранит дополнительную информацию в ОЗУ. Но оно же всё равно грузит кучу данных из БД и иногда из файлов. Хотя это скорее философский вопрос, считать ли это частью приложения, или приложение - это чисто логика.
Суп питонач. Вопрос к адептам django по организации БД. Есть достаточно классическая задача. Хочу узнать у семпаев как ее лучше решить в БД:
Есть таблица "Финансовая операция". Операция может быть на положительную или отрицательную сумму, пополнение или списание средств. Для этой операции должна быть причина. Вот собственно вопрос, как должна выглядеть и чем вообще быть эта таблица "причина".
>>1573043 import jopa Импортирует библиотеку с ее неймспейсами. Т.е. вызов метода govno будет выглядеть как jopa.govno() from jopa import govno Импортирует только метод govno в неймспейс проекта, т.е. этот метод ты можешь вызывать просто govno() from jopa import (звездочка блять) Импортирует все из библиотеки в неймспейс проекта, т.е. ты можешь вызвать какой-нибудь fart(), которого в твоем проекте нет, но есть в той библиотеке Будет лучше, если на самом деле разбирающиеся аноны меня поправят и дадут более четкий ответ
>>1573053 Я знаю что различие в сокращенном варианте написания. Будет меньше писанины. Но меня интересует вопрос ресурсопотребления. Есть ли разница или нет?
Просто я как ньюфаг, считаю что мне нужно прописывать полные пути к функциям. А в примерах постоянно импортируют методы и я путаюсь.
Я в начале января говорил, что делаю онлайн магазин и не хочу брать бустрап, буду сам фронт делать. Не делайте так, пацаны, вы погрязните в этой хуете, если вы никаких нормальных курсов по фронту не проходили, вы проебете просто десятки часов дрочась методом тыка, пока не будет красиво. Лучше сделайте супер рест эйпиай, чисто в консоли без фронта, как в демке в этом выступлении https://youtu.be/pZYRC8IbCwk
Анон помоги, где я накосячил? Писал скрипт, считающий хэши файлов и столкнулся со след. проблемой: во время обработки больших файлов (>1gb) рандомно выдаёт другой хэш. Также имеет место высокая загрузка носителя во время работы(наверное это как-то связано)
Ещё один механизм, способный замедлить программу — это оператор точка (.), который используется для доступа к атрибутам объектов. Этот оператор вызывает выполнение процедуры поиска по словарю с использованием __getattribute__, что создаёт дополнительную нагрузку на систему. Как ограничить влияние этой особенности Python на производительность?
# Медленно: import re
def slow_func(): for i in range(10000): re.findall(regex, line) # Медленно!
# Быстро: from re import findall
def fast_func(): for i in range(10000): findall(regex, line) # Быстрее!
>>1573665 Писать на питоне с оглядкой на производительность - пидорская тема. На питоне нужно писать читабельный код, близкий к английскому тексту. Если все работает и хочется быстрее, тогда уже запускаешь профилировщики и переписываешь проблемные методы на сишечке. Оператор точка им, блядь, тормозит. Пиздец просто.
>>1569408 (OP) По какой причине любые дескрипторы надо объявлять как атрибуты класса? Почему если я буду ставить дескрипторы скажем внутри метода __init__ они не будут работать? Что за пидорство?
>>1574732 Быдлокожу именно на Змее уже почти год. Подумал, будет полезным подрочить системное программирование на нем (пусть оно и более каличное чем на любой низкоуровневой ебале вроде того же С)
Что происходит когда я сравниваю результаты функций и почему всегда выдает True? def inta(): a = 1 print(a) def intb(): b = 2 print(b) >>inta() == intb() 1 2 True >>
>>1574755 Не имеет значения, что ты принтишь в функции, важно только возвращаемое значение. Ты ничего не возвращаешь, то есть неявно возвращаешь None. None, очевидно, равен None.
Еще вопрос. Есть декоратор и функция для обертки пусть декоратор . def decor(func): . def wrapper(): . print('govno') . func() . print('mocha') . return wrapper и есть функция hello() которая выводит hello_world и есть функция decor_hello, которая делает тоже самое но обернута в @decor получается @decor каким то образом меняет код функции decor_hello и этот самый decor_hello вместо обычного hello_world выводит >>decor_hello() govno hello_world mocha >> Это значит что каким то образом, не знаю каким, @decor меняет код функции decor_hello и если бы у меня был способ сравнить код, пример code_cmpr(hello, decor_hello) он мне бы выдал False? >>
>>1574796 Действительно, получилось в ручную так сделать, спасибо. Немного непривычно правда, зато понятно как декораторы работают. Получается вот зачем он wrapper() возвращает, чтобы потом его функцией оберткой и активировать.
Какие профиты от тайпинга? Если: >The Python runtime does not enforce function and variable type annotations. They can be used by third party tools such as type checkers, IDEs, linters, etc. Не троллю, просто интересуюсь.
>>1574827 Давнич ты. Я сравнивал не вызовы функций __call__, а сами функции как объекты. Как видишь, оператор == для функций не имеет смысла можно канешн сравнить f == f, но что конкретно ты захочешь этим получить я хз
Есть два питоновских скрипта. В скрипте №1 крутится бесконечный цикл (опрос оборудования), и по сигналу из скрипта №2 этот цикл должен прерываться. Как это можно реализовать? я правильно понял что это можно сделать только с помощью многопоточности и модуля threading
>>1575036 да, запускаешь первый цикл в треде, добавляешь в него опрос переменной типа while not peremennaya:. А потом из второго цикла выставляешь peremennaya в 1, чтобы остановить первый цикл
>>1575036 Можешь при запуске скрипта1 создавать файл и в цикле проверять его наличие. Если файл удален, то завершаешь скрипт. В скрипте2 удаляешь этот файл если надо завершить скрипт1.
>>1575287 Или что-нибудь вроде if error == 'oshibka_1': ... elif error == 'oshibka_2': .... это если возвращаются функциями или ты их сам на генеришь в функции-методе, в которых надо обрабатывать.
или по сути примерно тоже самое, но с механизмом исключений try-except, он более мощный, но для более сложных случаев.
Есть телеграм бот, который задеплоил на сервер pythonanywhere, теперь хочу прикрутить к нему базу данных, скорее всего sqlite3 Подскажите как ее залить на сервер
>>1575497 >f.read().encode('cp1251').decode('cp1252') Ты сначала кодируешь в 51, потом раскодируешь 52. По логике надо всё наоборот. С другой стороны ты уже расписал кодировки когда файлы открывал, так что я не уверен, что это вообще нужно. Хз короче, я у себя не пробовал.
Блять помогите а. Смотрю курс Хирьянова и первая практика задание про Робота я скачал но там задачи а куда ответы то пихать уже решенные что бы видеть как сам робот ходит. Где графен то как на картинке ? Нихуя не понятно
Как просмотреть в консоли от чего зависит конкретный пакет и какие установленные пакеты зависят от него самого?.. Помню, как-то можно было сделать, но хз как
Надеюсь недочеловек не будет опять агриться. Короч нажал что то и теперь pyCharm не дописывает имена которые уже были, а показывает какие то методы или что то типо, не могу найти как вернуть как было. Классека даунизма короч.
В Джанго проектах видел импорт с точкой в начале как: from .models import Post Что это значит?.. Модуля с именем .models нет нигде. Думал что это означает "из той же папки где находится этот скрипт обратись к файлу models.py и импортируй оттуда Post". Пробовал сделать так же в рандомном проекте - вылетает ошибка: ModuleNotFoundError: No module named '__main__.test111'; '__main__' is not a package
>>1576329 Это файл models из твоей директории. Когда делаешь импорт через точку, то импортируешь компоненты из файла своей директории. Например from .urls import urlpatterns
>>1576281 Все ж чотко обьяснил. Дописатор слов не работает. Он работает только на функции, операторы и всякое такое а раньше работал на любые слова(имена) если они повторялись. Можт как настройки можно сбросить к стандартным или чото типо этого
>>1576357 Да забей, ты быстрее переустановишь и настроишь всё заново, чем кто-то тут тебе поможет. Погугли, где пайчарм хранит папку с настройками, и удали её, либо сохрани в другом месте.
If code completion doesn't work, this may be due to one of the following reasons:
The Power Save Mode is on (File | Power Save Mode). Turning it on minimizes power consumption of your laptop by eliminating the background operations, including error highlighting, on-the-fly inspections, and code completion.
Your file doesn't reside in a content root, so it doesn't get the required class definitions and resources needed for code completion.
Refer to Configuring folders within a content root for more details.
A file containing classes and functions that you want to appear in completion suggestions list is marked as a plain text file.
External libraries that contain functions that you want to appear in the completion suggestions list are not added as dependencies or global libraries.
>>1576516 ты про переменные? если они у тебя ранее не определены, определены внутри класса/функции или не импортированы, то дальше по коду они не будут автокомплитится.
вообще скриншот покажи, так проще будет. >мимо нуб
За какое время можно осилить http://composingprograms.com/ , хочу поставить себе рамки самообучения для дисциплины. В день могу тратить 3-4 часа на это.
А есть какой-то грамотный курс, чтобы бэкэндер мог быстро и уверенно вкатиться в современный фронт? Чтобы там было ориентировано на людей, которые уже собирали фронт кусками, парсили html, спокойно пишут на жс и всё такое, но нихуя не понимают, как верстать страницы правильно.
Нашёл проект на жидхабе с django, в файлах пишет шо версия 1.9 Какой вариант проще, создать сразу на версии 3 или 2 lts, или же попытаться запустить под 1.9 (что не получается)?
PyCharm, или VS Code? До недавнего времени я всегда склонялся к PyCharm, потому что я с ним уже 4 года и знаю его довольно хорошо. Но железо (mac pro 2013, 8Gb memory) побудило меня испробовать VS Code. И теперь я сижу только на нем. VS Code ничем не уступает, а работает гораздо быстрее. Рекомендую всем, у кого оперативки менее 12Gb.
В Линуксах начиная с 5.2 появилось улучшение подсистемы PSI, позволяющее определять превышение заданных метрик с использованием epoll().
Первым этапом прелагается вписать строку в дескриптор файла /proc/pressure/memory, и далее проводить опрос с помощью epoll().
На первом этапе возникает проблема.
Открываю дескриптор, получаю его номер, все ОК. Но при попытке записи предлагаемой строки получаю ошибку [Errno 22] Invalid argument. С сишным кодом проблем нет, все работает как задумано.
>>1577573 на винде твой код работает. Только у тебя в коде 2 раза fd вместо fd1 упоминается + в моём модуле os нету os.O_NONBLOCK, а dir_fd=None вабще неизвестный судя-по всему аргумент
Как вообще искать работу в Дата Саенсе на Питоне ньюфагу?.. В бэкенд в портфолио можно представить свои проекты сайтов, которые ты напилил, а с датасаенсом что? Потешные ML-модельки на собес приносить? Там в одиночку ничего существенного родить все равно не выйдет
>>1577599 Ты немного не в тот тред зашел. К МЛщикам иди. У датасаентистов питон просто как инструмент, не более, думаю тебя спросят про научные либы питоновские и все.
>>1577339 if not wall_is_on_the_right(): while not wall_is_on_the_right(): move_right() if not wall_is_on_the_right(): fill_cell() move_down() if not wall_is_on_the_left(): while not wall_is_on_the_left(): move_left() if not wall_is_on_the_left(): fill_cell() move_down() if not wall_is_on_the_right(): while not wall_is_on_the_right(): move_right() if not wall_is_on_the_right(): fill_cell() move_down() if not wall_is_on_the_left(): while not wall_is_on_the_left(): move_left() if not wall_is_on_the_left(): fill_cell() move_down() if not wall_is_on_the_right(): while not wall_is_on_the_right(): move_right() if not wall_is_on_the_right(): fill_cell() move_down() if not wall_is_on_the_left(): while not wall_is_on_the_left(): move_left() if not wall_is_on_the_left(): fill_cell() move_down() if not wall_is_on_the_right(): while not wall_is_on_the_right(): move_right() if not wall_is_on_the_right(): fill_cell() move_down() if not wall_is_on_the_left(): while not wall_is_on_the_left(): move_left() if not wall_is_on_the_left(): fill_cell() move_down() if not wall_is_on_the_right(): while not wall_is_on_the_right(): move_right() if not wall_is_on_the_right(): fill_cell() move_down() if not wall_is_on_the_left(): while not wall_is_on_the_left(): move_left() if not wall_is_on_the_left(): fill_cell() move_down() if not wall_is_on_the_right(): while not wall_is_on_the_right(): move_right() if not wall_is_on_the_right(): fill_cell() move_down() if not wall_is_on_the_left(): while not wall_is_on_the_left(): move_left() if not wall_is_on_the_left(): fill_cell() move_down() move_right()
Заценщи какой я тупой, у меня или так или робот просто убегал за край карты
>>1577653 непонятно, там кароч сложность в том нужно как то повторить функицию нужное количестов раз по отделности, что бы между повтороми делать операцию
>>1572839 Спасибо. Теперь нубовопрос: есть несколько полей, у каждого из которых надо проверить заполнено или нет. Чтобы не писать по функции на каждое поле, надо использовать классы?
>>1578382 Т.е., например, есть поля EditLine1 и EditLine2, мы пишем что-то вроде: def(self, x): --val = self.x.toPlainText() --if val is '': ... Вместо x подставляем эдитлайны?
>>1578388 Если ты проверяешь поля по отдельности, то используешь эту функцию по событию onChanged или textChanged или что там у тебя. Если проверяешь все поля формы вместе, допустим, по нажатию кнопки, собираешь все нужные поля формы и в цикле передаешь значение каждого поля в функцию проверки. На чем ты эти формочки пишешь?
>>1578505 Тутора достаточно будет чтобы хотя бы немного понять как самому делать веб-приложения? Пока нихрена не понимаю зачем нужны эти views, models, urlconf.
>>1578527 Для этого туториалы и существуют, потыкаешь, поймешь что куда примерно писать, какой путь твой запрос проходит, будет хоть какая-то картина происходящего в голове, сможешь конкретные вопросы задавать, а тут мы тебе уже поможем, здесь все твои друзья.
>>1578555 Эта хуйня сработала кроме нижней строки где у. Но в самой функции у не переменная ? Как это называется что ето ? Оно как бы работает а как хуй его знает
>>1578517 >очередная волна читателей книжечек плачется, что программирование не дается О таком обычно любители учиться по видосикам на ютюбчике плачутся.
>>1578589 >I started with Codecademy in 2016-ish when almost everything was still free. I have finished the Python modules of that as well as with SoloLearn. I have read Automate the Boring Stuff and Python Crash Course as well as following along with the examples cover to cover. Now I am re-reading Automate, Crash Course, and Mark Lutz Learning Python, 5th edition. To add to these books I have: Complete Guide For Python Programming Deep Learning with Python, Fluent Python, Learning Python Network Programming, Rapid GUI Programming with Python and Qt, Python High Performance Programming.
>I understand syntax, can usually fix an error and debug, but to actually sit down and program anything of any real value eludes me.
Ну вот человек курсы проходил, книги читал и даже перечитывал. И не может понять что не так.
>>1578595 >Starting to lose hope with learning Python I have been interested in Python for over 7 months. I have read and followed along through Python Crash Course. I felt pretty confident with it. I wanted to learn more so I decided to start following along with Automate the Boring Stuff. Im starting to feel discouraged from learning, when it comes to writing code in the Practice Projects; I am 100% completely lost.
Вот второй такой же. Книжки, курсы. Так может лучше говнокодить тогда, чем книжки просто читать.
>>1578595 >I started with Codecademy Начал с бесполезного дерьма, которое ничему не учит, и каждый новый курс объясняет одни и те же вещи, как будто я двенадцатилетний дебил, в первый раз увидевший компьютер. >>1578600 >Так может лучше говнокодить тогда, чем книжки просто читать Так их и не надо просто читать. Естественно, что практике можно научиться только через практику. Но начинать надо с базы, которая берётся из книг. А потом уже книги используются, чтобы разобрать непонятные моменты. А курсы обычно по-быстрому дают основы, ничего не объясняют, и в конце говорят "всё, вы готовы", что вселяет в человека ложную уверенность.
Я мощно заебался. Если x за пределами функции не робит, если внутри то всегда одно число 1. А мне надо что бы я возвращался к переменной и в ней всегда было на +1 больше
>>1578767 https://python-scripts.com/scope просвящайся (хз, насколько там хорошо объяснено, но там как раз про это). В твоём случае нужно написать: global x над x += 1
>>1578767 В то время как в JS и Lua локальность указывается вручную (иначе интерпретатор ищет переменную во внешних областях видимости), в питоне вручную указывается нелокальность (nonlocal и global).
ты всё равно что написал на JS: function step() { var x += 1 print(x) }
Естественно, получишь UnboundLocalError: local variable 'x' referenced before assignment
>>1578767 Я тебе выше что написал? > Иди читай про функции, передачу значений в функции и локальные переменные. Почему не сделал? Считаешь, что такое должен двачик объяснять?
>>1569408 (OP) В реальных проектах может совмещаться orm и запросы на чистом sql? Или там выбирают только что-то одно? Типо основную crud логику на орм написать, а что-то сложнее писать самому?
>>1578924 Алсо, вот у меня есть 300 строк питоновских функций с sql запросами внутри, мне надо их пытаться как-то в ооп стиле организовать? Выглядит сейчас это говняно, но я не уверен, что ооп много даст
Я просто в ахуе, какие проблемы у вас вылезают при выполнении заданий робота, они блядь на циклы, условия и функции, какие нахуй генераторы, какие классы, чего вы делаете вообще там?
>>1579275 >>1579287 >>1579317 Собственно, эти скрины были к тому, что я год с полного нуля учился делать некоторые штуки с пистоном и алгоритмами, а теперь думаю, что зря потратил это время. Нужно было вротендом заниматься, в моем мухоебинске хоть какие-то вакансии для этого есть. Блин, ещё и не в тот тред похоже написал, простите.
>>1579323 Вряд ли ты напрасно время потратил. Хотя лучше сам питон за год задрочил бы, чем алгоритмы. При этом, если ты был полный ноль, то сейчас уже нет и все твои текущие знания не будет лишними при изучении жс, если уж решил на него перейти.
>>1579440 Ты берёшь каждый элемент первого списка и к нему подставляешь каждый элемент второго. А тебе нужен один цикл, чтобы брать по элементу из двух
Объясните штуку с табуляцией и пробелами. Искал инфу - наткнулся на два лагеря из тех, кто топит за одно или другое. Что, собственно использовать? Читал, что можно сделать автоматическую разбивку табуляции на пробелы. Как реализовать это в PyCharm'е?
>>1579578 Я раньше работал с другими языками, потому и удивился, увидев такой подход к ограничению скоупа. Вспомнил клин код и у меня возник этот вопрос, ведь если кто-то другой будет использовать код, всё должно быть чисто в этом плане. Но раз в PyCharm'е с этим всё норм, то ладно. Пожалуй, изучу его получше, дабы таких вопросов не возникало. Спасибо.
Посоветуйте каких-нибудь материалов(лучше курсов) по структурам данных и их представлению в питоновской стандартной библиотеке. Ну и вообще про стандартную библиотеку, про итертулс и всё такое.
>>1579587 1) score1, score2 = 0 не работает. Надо score1, score2 = 0, 0 или score1 = score2 = 0. Второе предпочтительнее, на мой взгляд. 2) такой цикл через while нет смысла использовать, когда можно: for _ in range(100): ("_" используется, когда нам значение не нужно это, как тут) 3) хз, какой лучший вариант для рандома, но точно не твой. Проще random.randint(0, 1). Плюс, если у тебя будет 1.00, то ни одна переменная не получится +1, так и задумано? Переделанный вариант - пикрил. 4) также можно, вообще рандомом сгенерировать себе score1, а затем вычесть из 100 его и это будет score2. Либо score1 можно генератором списка, а не циклом получить, а затем уже опять же получить score2 = 100 - score1: >>> import random >>> score1 = sum(random.randint(0, 1) for _ in range(100)) >>> score2 = 100 - score1 >>> print(score1, score2) 51 49
Сап питонисты. Пишу свой ламповый манга-сайт с помощью джанго. Сейчас на сайте присутствуют следующие адреса: 1. /manga/ -> здесь отображаются все обьекты моей модели MangaList (название манги, описание) 2. manga/<slug:post>/ - детальная страница манги. Здесь указаны название манги, описание и т.д. (т.е например есть манга Naruto, следовательно она имеет адрес manga/naruto-is-cool)
Теперь непосредственно проблема: Бд имеет две таблицы (и связь один ко многим): MangaList(здесь название манги описание и т.д), а также MangaImages(здесь есть поле mangaid = models.ForeignKey(MangaList, on_delete=models.CASCADE, related_name='manga_images') а также после с картинкой). Вроде все работает, картинки сохраняются под айдишкой MangaList. Но у меня вообще нет идей как отображать адрес с картинкой определенной манги. Т.е я в manga/naruto-is-kruto/ должен клацать по "прочитать" и попадать в /manga/naruto-is-kruto/watch/. Но ничего не получается, я и метод absolute_get_url прописывал для второй таблицы и {% url "manga_watch" %} в шаблоне прописывал, но все не получается.
>>1580326 Там хитрая closure функция. Чтоб значения из внутренней записывать во внешнюю. Я просто попытался повторить. Есть у такого подхода перспективы или сразу ясно, что тут такое не сработает? Я не до конца с closure функциями разобрался, поэтому не знаю. В простом примере там просто переменные были, а тут надо еще 3 предыдущих значения запихнуть как-то.
>>1580328 Уточка думает, что нужно в первую очередь понять, как идёт поток выполнения программы. Что меняется, где и когда. Если хочешь, начни с более простого примера.
>>1580338 >>1580333 Если бы я знал, то не спрашивал. Алгоритм сам простой, но закодить я хз как. Причем именно в виде функции. Надо задать первые 3 значения x, y. Дальше x = (a_1 x[i-1] + a_2 x[i-2] + a_3 x[i-3]) % m_1 y = (b_1 y[i-1] + b_2 y[i-2] + b_3 y[i-3]) % m_2 z=(x - y)%m_1 будут давать новые значения. Но вот как записать эти первые 3 значения и куда и как добавлять новые я не знаю.
>>1580342 Уточка имела в виду поток программы здесь >>1580325 описать простыми словами. Тогда можно будет двигаться в более сложную. (Если ты, конечно, хочешь именно через клозуры генератор сделать)
>>1580348 Там lcg генерит новые seed и дает их в seed2. seed2 как бы хранит значения. > (Если ты, конечно, хочешь именно через клозуры генератор сделать) Какие еще варианты? Если там проще, то хорошо. Главное чтоб потом можно было массив сгенерировать длины N rand(N).
>>1580356 Давай ещё подумаем, чем отличается тот алгоритм, что ты сейчас пишешь, от этого более простого примера. Мы начнём с того, что посмотрим, с чего начинаются они. С чего начинается простой?
>>1579915 Долго с джангой не работал, сидел плотно на SQL. Но я бы сделал так: Делаешь связь много ко многим и уже с помощью этой сущности делаешь представление например: (manga_id, manga_pic_url) и от сюда хуяришь url-ки на сайт. Или можно без представление, просто через отношение много ко многим как например в пикрелейтед.
Гайз, а подскажите как создавать обьекты классов с консоли ввода, а не внутри самого кода? То есть чтобы вывести "введите имя, введите номер и т д" и это записывалось в класс. https://pastebin.com/ciJhGrHh
>>1580915 это да, но я хз как этот инпут к конкретному полю класса привязать. И ещё я пока не очень понимаю как сделать так, чтобы с каждого последующего инпута создавался новый экземпляр класса: типа сначала мы вводим х1.имя, х1.номер, х1.ещечтонибудь, а потом то же самое для х2, х3 и до хn
Есть ли способ напрямую получать доступ к областям памяти объектов? (вон на пикриле дефолтное repr-представление объекта) Можно ли: также получить у рандомного у объекта во время выполнения проги область памяти, на которую он ссылается? И можно ли по полученной области памяти получить ссылку на сам объект?..
>>1580969 По хорошему - нет. Но ты можешь написать расширение на сишке, которое будет принимать объект и возвращать адрес, функцию для обращения к адресу и чтения/записи... И получить UB в высокоуровневом и безопасном питоне.
>>1580960 > я хз как этот инпут к конкретному полю класса привязать Можно разбить введенную строку на список, а затем распаковать при инициализации класса, как пример построчно: new_contact_input = 'Alice Unknown,89001234567,01.01.1999' new_contact_list = new_contact_input.split(",") # вернет ['Alice Unknown', '89001234567', '01.01.1999'] в new_contact_list new_contact = FRIEND(new_contact_list) # распаковка списка, то же самое, если передать в качестве аргументов: 'Alice Unknown', '89001234567', '01.01.1999'
> И ещё я пока не очень понимаю как сделать так, чтобы с каждого последующего инпута создавался новый экземпляр класса: типа сначала мы вводим х1.имя, х1.номер, х1.ещечтонибудь Аналогично первому варианту, только аппендить в список: new_contact_list = [] for i in range(3): ....new_contact_list.append(input(f"Ввод поля #{i + 1}: ")) new_contact = FRIEND(new_contact_list)
> а потом то же самое для х2, х3 и до хn Полагаю, что тебе нужно это в список складывать (или словарь). В данном случае это нужно вложить еще в один цикл и, например, спрашивать после создания первого, нужно ли еще одного создавать. Твой код нерабочий, но если убрать numContacts (нейминг тоже неправильный, правильно типа num_contacts), то вот такой пример можешь попробовать, чтобы увидеть как оно работает:
contacts = [FRIEND('Alice Unknown', '89001234567', '01.01.1999'), FRIEND('Suika Ibuku', '8999999999', '09.09.1999')] # два экземпляра класса FRIEND (тоже неправильный нейминг, классы в CamelCase) в списке contacts[0].displayInfo()
выдаст: Создание нового контакта... Создание нового контакта...
Имя: Alice Unknown, Номер телефона: 89001234567, Дата рождения: 01.01.1999.
>>1581215 А зачем тебе сортировать словарь? Это же словарь, он по определению не должен быть сортирован. Может тебе для твоей задачи другая структура данных нужна?
>>1581257 Очевидно, что анон хочет не dict, а что-то подобное с ключами и значениями, но отсортированное. Например, чтобы вывести красивую упорядоченную табличку на экран.
Салют, как сделать чтобы числа выводились до сотых, даже если второе число 0. 8.2 > 8.20 5.0 10 0 > 0.00 4.50 и так далее Считал я перцентиль, среднее, медиану, самое большое число и самое маленькое из файла с числами. Использовал NumPy
Хочу сделать сайт, который будет брать данные из эксель-файла и с ними работать: строить графики, анализировать, выводить данные за год, за месяц, за неделю. Так же хотелось бы добавить возможность самому вводить данные в некую бд, без эксель-файла. 1. Как все это организовать? Нужно ли заставлять пользователя регистрироваться чтобы добавить его в базу, а затем привязать к каждому пользователю его данные или можно без этого обойтись? 2. Что посоветуете почитать помимо тутора с документации по джанге и тутора от мазилы?
>>1581648 Я бы сделал так, но я такой же нюфаг как и ты. Поднял базу, в базу раз в какое то время забирал инфу из экселя через celery, если значения не совпадают - не копировал бы их. Плюс через формы разрешил бы вбивать новые записи уже через саму джангу. Регистрацию бы пилил в случае, если сервер будет смотреть в инет, если он в локалочке, то строго поебать. Ну и графики на фронте отрисовать просто каким нибудь жс фремворком. Хотя, вероятно, думаю, можно и чем нибудь вроде pandas, но мне бы было лень в нем разбираться.
Есть две картинки, нужно наложить маску второй на первую по альфа каналу, дополнительно делаю resize до размера первой картинки. Делаю через pil, создаю пустую картинку и делаю так >new_image = Image.composite(im, empty_image, mask) Все открываю как RGBA. По краям остается слегка заблюренный черный контур при сохранении, когда делаю show, то мне кажется, что этого контура нет (или он просто не виден на этом фоне). Это нужно что-то дополнительно с картинкой/маской делать, что бы его не было?
>>1581686 Понял, что это из-за цвета пустой картинки в которой при применении метода composite почему-то игнорируется выкрученный на полную альфа канал
При этом, наиболее коротким кодом, должно кодироваться значение - с наибольшей частотой повтора.
Поэтому, в dictionary = {'1': '7', '0': '13', '3': '4', '2': '1', '5': '2', '4': '3'} я положил количества повторов этих уникальных символов. Следовательно, стояла задача - отсортировать этот dictionary, и заменить количества повторов на соответствующие коды.
>>1581987 Список таплов, где тапл = (символ, частота) Сортируешь список с ключом lambda x: x[1] Если хочешь чуть более красивый код, можешь ещё про namedtuple погуглить
Ой сложно мне, сложно. Не могу найти как обратиться к значению kolichestvo в цикле. Store={ 'gvozdi':[ {'kolichestvo':27,'cena':50}, {'kolichestvo':30,'cena':50}, {'kolichestvo':40'cena':50}, ], ... ... ... }
>>1582050 Если тебе надо те только гвозди, то for _, l in Store.items(): ..for b in l: ....print(b['kolichestvo'])
Ну и у тебя пиздец, а не структура данных. Игла в яйце, яйцо в дятле. Хотя бы от 'kolichestvo','cena' в каждом кортеже избавься. named tuples тебе нужны.
>>1569408 (OP) >В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать - Вот, пожалуйста, та же самая программа Не та же самая. Собственно и название неспроста поменяли.
>>1581986 Корябаю твою задачу потихоньку, нашёл ошибку. В def how_many_nulls(binary_data) у тебя никак не обрабатываются нули в конце binary_data. Даже если их был десяток, то счётчик про них забывает и они никуда не аппендятся.
Пишу скрапер для внутреннего сайта своей говноконторы. При открытии страницы с браузера html вываливается полностью, а при реквесте с пайтона все, кроме того что нужно. Сам сайт древнее говно мамонта, написанное на пхп. Для загрузки юзаю bs4 + requests. Есть идеи куда копать? Если что я ньюфаг во всем этом.
>>1582339 Да хуй там, гет запрос и все. В ф12 жабаскриптом и не пахнет. Чисто вывалило html и все. Может я совсем даун, конечно, но я никаких упоминаний скриптов, или .js в хтмл не вижу.
>>1582509 Ну, самые основы за день можно осилить и закрепить, наверное. Но это не то же самое, что выучить питон. И если тебя интересуют самые базовые алгоритмы, то есть для чайников книга "грокаем алгоритмы", там примеры на питоне. Наверное, за три дня какой-нибудь выхлоп получишь с этого суммарно. Плюс была ещё какая-то книга, где алгоритмы на разных языках, в том числе и на питоне. В неё тоже, наверное, ты мог бы поглядеть. Но если ты будешь проходить собеседование или что-то такое, то тебя очень быстро раскусят, что ты питон едва знаешь.
При этом ты можешь его сделать словарем dict(c), но все равно порядок элементов тебе питон 3.2 не гарантирует для стандартного словаря, но и не ясно до сих пор зачем тебе это надо. Если же тебе нужно цикл прогнать по его ключам-значениям, то это делается также, как и для обычного словаря и как раз оно будет в порядке убывания, как тебе и надо: for k, v in c.items(): ....print(k, v)
По ссылке https://rextester.com/XSMSF58499 у тебя какой-то треш. Откуда-то точки с запятыми, а еще условные операторы обернутые без необходимости в скоки, что требуется в других языках, но не здесь.
Блэт кто-нибудь объяснит какого хуя строки, в конце которых символ \ не создаются? Я ж блин символ r перед строкой поставил, он означает, что любые специальные и экранирующие символы игнорятся С фига ли не работает?
Я совсем запутался с циклами этими, как эти сраные точки сравнивать? Вершину, допустим, легко найти. Внутри/снаружи я что-то слышал про метод луча, но так и не смог разобраться. А со сторонами вообще не понял. Хелпаните, друзья, хоть направление дайте куда двигаться
>>1582748 Как кстати 3 и 4 делать? Если точка снаружи то можно построить прямые до каждой вершины и измерить угол между этими вершинами и он окажется всегда меньше 180, а если точка внутри то построив прямые до вершин и измерив угол между ними то как минимум 1 будет больше 180 градусов и значит точка внутри? мимо
>>1582733 https://docs.python.org/3.7/reference/lexical_analysis.html > Even in a raw literal, quotes can be escaped with a backslash, but the backslash remains in the result; for example, r"\"" is a valid string literal consisting of two characters: a backslash and a double quote; r"\" is not a valid string literal (even a raw string cannot end in an odd number of backslashes). Specifically, a raw literal cannot end in a single backslash (since the backslash would escape the following quote character). Note also that a single backslash followed by a newline is interpreted as those two characters as part of the literal, not as a line continuation.
>>1582774 Ха ха жду тебя на пятой лекции. Там так и написано как ты хочешь, но попробуй while wall_os_on_the_right() == False and wall_is_beneath() == False
>>1582748 >>1582764 Это твое тестовое задание? Если да, то у меня плохие новости к твоему работодателю У тебя есть диапазон X и Y. Ты смотришь как точки из второго файла относятся к нему: внутри диапазона (2), совпадают с одним граничным значением (1), совпадают с двумя граничными значениями (0), не лежат в диапазоне (4). Сложность уровня школьных задачек по паскалю или что у вас там в школьной программе было.
>>1582017 Благодарю. >>1582187 >у тебя никак не обрабатываются нули в конце binary_data Да, достаточно раскомментировать это после цикла в how_many_nulls: >#array.append(count); #number of nulls in the end >>1582531 Благодарю, так проще даже, и меньше кода.
>По ссылке https://rextester.com/XSMSF58499 у тебя какой-то треш. >Откуда-то точки с запятыми, >а еще условные операторы обернутые без необходимости в скоки, >что требуется в других языках, но не здесь. Я с JavaScript'a в пистон перебрался, пишу коряво, но зато работает кот.
Если чо, пишите пожелания в треде https://2ch.hk/math/res/62709.html , чтобы тут не флудить. Там тоже есть некие наброски черновые, можете глянуть их, чисто по фану.
>>1582777 Рисунок хуевый для пояснения нарисовал. С точкой B я хотел показать что это одна и та же точка (один и тот же случай), в которой одно из значений x1, x2, y1 или y2 совпадает с координатой точки В.
>>1582777 Что за хуйня? И как ты по одной проверке по диапазону узнаешь находится ли точка внутри или снаружи, там же не обязательно прямоугольник параллельный оси Х будет. Кроме как через углы детектить не представляю как.
>>1582783 >>1582790 Звиняюсь, это я дебил и решил что в остальных вариантах, как в примере будут прямоугольники. Тогда положение внутри можно находить методом трассировки луча (дохуя нагромождение на рисунке, но в интернете будет более наглядный рисунок и решение на змеюке). Нахождение точки на линии можно проверить по формуле прямой (можешь выразить коэффициенты k и b, а потом проверять равенство игреков по формуле y=kx+b)
Анон, есть какая-нибудь команда, которая позволяет быстро повторить отдельно взятую строку или несколько строк кода.
То есть у меня есть например
1 бла бла бла 2 бла бла бла бла .... .... ....
Далее в коде я хочу повторить 1 и 2 строки. Я понимаю, что мне ничего не мешает просто их скопировать, но может есть что-то более элегантное типа repeatline(1), чтоб это одним словом можно было сделать.
Вопрос. С аргуметами совсем не дружу. Есть у меня скрипт он читает файлы и делает с ними подсчеты. Нужно открывать скрипт через консоль и аргументом передавать путь к папке с файлами. Как это провернуть?
>>1582817 Видел я про этот метод, но я нихуя не понимаю, как в коде это записать. Есть у меня два списка: список координат четырехугольника и список координат точек. Я элементарно не могу сделать цикл и прогнать, чтобы посмотреть подходят точки или нет. Решал в тетрадки такие задачи раньше, вроде все норм было. Но просто в ебаный код не могу перевести. Сорри, у меня подгорели остатки серого вещества.
допустим я за полгода задрочил на задачках с литкода этот ваш пистон, парочку стандартных либ и умеренно джангу прямо сейчас ковыряю flask и субд, хотя думаю на это забить и обойтись одним orm как теперь вкатится на реальную роботу без опыта? можно ли устроится удаленно за небольшие профиты? интересует только бекенд и чуть-чуть датасаенс но таких вакансий крайне мало и я им точно нахуй не нужен пробовать искать стажировку в говноконторе за еду или заняться пет-проектами (которые ещё нужно придумать)? пока что гитхаб состоит из laba1.cpp и блога для кота
Почитываю Мэтиза ,,Изучаем Питон,, . Не понимаю следующее задание, какое нужно вписать условие завершения цикла? age = input("enter your age: ") age = int(age) while: if age <= 3 : print("Бесплатно") elif 3 < age < 13: print("10 баксов") elif 12 < age: print("15 баксов")
>>1589250 > > я понимаю, что прошло 8 дней,но если тебе надо,просто пропиши while True:, и после каждого ифа поставь break, но как по мне это цикл здесь нахуй не всрался
Предыдущий
ЧАВО: 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 <-- похоже ссылка больше не работает, а жаль
Автоматизация рутинных задач ч.2 - https://anonymousfiles.io/3CBCoy1o/ <-- тут только одна книжка. Ради неё держать ссылку в шапке неразумно.
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
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/ (нужно знать ангельский или уметь пользоваться переводчиком)
Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём - брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
https://dumpz.org/b37erFzCnRmW