Это копия, сохраненная 23 августа 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Для кода https://repl.it/languages/python3
Не скидывайте сложные исходники в тред, у двоща ебанутое форматирование
Книги https://yadi.sk/d/tArKKuQu3Kejuq
В предыдущей серии >>1199534 (OP)
>Лутц
>Самерфилд
>Бизли
>Свейгарт
Решаем какую книгу выбрать для освоения вкатывальщику, после "Укуса Питона"
В прошлом треде мнения разделились на диаметрально противоположные, но при этом все пришли к мнению что Лутц - неактуален, и годен только как справочник.
Аноны, есть нормальные попенсорс проекты CRM/ERP на джанге/другом пайтон-фреймворке(а вдруг)?
Глянул на гит(хабе/лабе) и приуныл. Одна система от индусов, кривая и ущербная. Вторая вроде и нормальная, но выглядит как админка джанговская и т.д.
>Ты там змеиным академиком решил стать?
у меня есть свободное время, хочу изучить достаточно глубоко, а не нахватавшись поверхностно потом тупить с гуглом и стаковерфлоу по каждому простейшему вопросу в нетривиальной задаче.
В любом случаи в прошлом треде прошла забавная ситуация с разделением мнений и надо таки придти к консенсусу КАКОЙ МАТЕРИАЛ НАИБОЛЕЕ ИНФОРМАТИВЕН и более актуальный и усваиваемый для обучения
Тогда тебе нужно учить алгоритмы и компьютер саинтс, а потом просто гуглить, как это реализовать на питоне.
>Решаем какую книгу выбрать для освоения вкатывальщику, после "Укуса Питона"
Пока что никакую, на первое время знаний из укуса хватит сполна. Потом можешь при необходимости читать отдельные главы из лутца, хотя лучше обращаться к официальной документации.
И вообще, в первую очередь надо программировать, а не читать книги. Чтение книг тебя не сделает программистом
>тупить с гуглом и стаковерфлоу по каждому простейшему вопросу в нетривиальной задаче
Прости, но так все и будет, даже если ты наизусть выучишь всего лутца. Научиться чему-то можно только решая проблемы, которые возникают в процессе разработки реального приложения.
он использует моментами литературные обороты, и для человека со средним знанием английского это превращается в попаболь с гугл транслейт
Зависит от человека и опыта работы. Понимаешь, боссу нахуй не нужен человек, который знает змея. Ему надо, чтобы раб умел в какой-то фреймворк, знал шаблоны программирования, соответствующее мышление имел, ну и всякую ебань типа фронтэнда со всеми этими вашими ангулярами/вьюджиси/джейкуери, базы данных с их выборками и сортировками.
Короче, если за год освоишь это все на уровне, что к тебе будут обращаться - ты мидл.
>там как мидл хотя бы?
сейчас бы мерить реальный показатель знаний, шаблонным клеймом продакшен макаки
Odoo тебе не подходит? Она монструозная правда.
Сэр, прошу предоставить убедительные пруфы. Ибо в сети встречал лишь англоязычный вариант
На 3 оппике похоже на взгляд сверху во время опенсорса.
Запоздалый пруф, если кто-то все же не верит. По остальным книгам не в курсе (а есть ли они?).
Минус в одном: это скан книги, поиск по словам внутри Акробата работать не будет, придется по старинке — вчитываясь в оглавление.
Видимо. После собеса вспомнил только, что на втором курсе универа было аж.
Забавно, про рекурсию не рассказал ничего, зато про GIL пояснил.
>После собеса вспомнил только, что на втором курсе универа было аж.
То есть ты не знаешь, что такое рекурсия, и всерьез считаешь себя программистом? А что такое "переменная" у тебя на собесе случаем не спрашивали?
Ну я образно выражаюсь, как бы навскидку просил сказать. Понятное что это все абстрактные величины.
>>10435
Спасибо большое за прямоту.
>фреймворк
Кстати что за фраемворк? И какой именно стоит "знать" ? Я гуглил что это такое, и понял что это примерно что-то между системой и кодом и железом . Но даже текст вики до меня не очень дошел, слова там сложные. Мне интересно что такое фраемворк обычными словами, если кто может своими словами сказать,плиз.
>фронтэнда
Это типо html и прочее? На счет БД да я это сразу понимал, так как бд в любом крупном проэкте есть и используется.
Фреймворк (набор библиотек) — конструктор для построения приложения. В вебе это django. Фреймворк снимает с тебя 95% рутины, правда заставляет выучить правила работы фреймворка и с фреймворком. Например, тебе нужен сайт, который будет выводить некую инфу из БД. Вуаля, джанга тебе в этом помощник. Ибо развернув фреймворк ты уже можешь коннектится с БД, делать выборки, за счет паттерна программирования mvc выводить это все на главную страницу сайта. Сумбурно написал употребив некоторые термины, которые тебе сейчас не понятны, пусть они станут тебе ключевыми словами, это востребованные вещи в современном мире.
Не доходит с первого раза - не беда, у тебя вся жизнь впереди. Не дойдет сейчас отдохни и вернись позже, только не затягивай, а то пропадет интерес. Можешь банально спотыкнуться на какой-нибудь ерунде и потерять иньерес. Пропусти и вернись позже.
Фронтенд - это html+css+js. бекэнд - змей. Опять таки, в фронтэнде свои фреймворки bootstrap или angular например. Это отдельные люди на крупных проектах делают. В мелких фронтом загимаются все подряд.
Анчоус, не хватайся за все сразу в момент потеряешь интерес и желание заниматься. Учи постепенно. И пойми что ты хочешь, ибо вебдев и просио разработка две разные вещи. На змее можно писать кроссплатформенные приложения для каких-нибудь рассчетов, а можно в вебе формочки выводить. Определись что тебе интереснее и ближе и в том направлении копай.
>>10727
>Можешь банально спотыкнуться на какой-нибудь ерунде и потерять иньерес
Ой ну вот это я уже на себе испытал один раз, вот недавно опять вернулся , но уже с иммунитетом на такое.
Фронтенд - это html+css+js
А вот я не понимаю зачем Js тут, если он так же ООП как и змей, или просто js как-то работает с html & css по особенному?
>не хватайся за все сразу в момент потеряешь интерес и желание заниматься
Да уж, ну вот змея я начал учить просто потому что он более менее простой и расспространенный. Я просто подумал что это объектно-ориентированный язык и что он может все что может c++, JS и т.д
Что конкретно меня интересует? Наверное сам кодинг, создавать какой-то софт интересно.
Я хочу уметь и сайты, и графические приложения и просто полезный софт идейный, типо антивирус, помошник какой-то, чит, игрулька, приложение напоминалка, искуственный интелект и т.д , это все было бы интересно создавать, свое же будет.
Неужели что бы зарабатывать обязательно учить JavaSсript и Html?
> А вот я не понимаю зачем Js тут, если он так же ООП как и змей, или просто js как-то работает с html & css по особенному?
Не в этом дело. Дело в том, что змей выполняется на стороне сервера, а вся графическая срставляющая — это уже браузер делает. Для отображения форм — html, css для красоты этих самых форм, а js для «свистоперделок» и не только. JS в фронтэнде единственный ЯП, есть куча диалектов и фреймворков, но увы это стандарт для взаимодействия между юзером и сервером. Асинхронный запрос между сервером и пользователем не возможен без js. Так что он нужен в обязательном порядке.
> Что конкретно меня интересует? Наверное сам кодинг, создавать какой-то софт интересно.
> Я хочу уметь и сайты, и графические приложения и просто полезный софт идейный, типо антивирус, помошник какой-то, чит, игрулька, приложение напоминалка, искуственный интелект и т.д , это все было бы интересно создавать, свое же будет.
Это конечно хорошо, но изучение вот этого всего у тебя уйдет вся жизнь. Ну и антивирус ты не напишешь на змее. Что-то типа анализатора с базой сигнатур, остальное уже байтоебство и низкоуровщина, которую можно на ассемблере и си реализовать только.
> Неужели что бы зарабатывать обязательно учить JavaSсript и Html?
Посмотрим правде в глаза, если у тебя нет престижной вышки в области программирвоания, то вебдев вполне себе реальная ниша подзаработать. Слишком низкий порог вхождения и слишком большая конкуренция. Работы будет предостаточно, а вот оплата будет зависить от места.
Да уж, ты сейчас прямо огорчил немного меня.
Получается Js нужен для работы, если я хочу делать web, но что касается приложений на смартфон? А конкретно Js обязательно всего учить для этих "свистоперделок" или лишь какой-то фраемворк? Кстати почему Jython не справляется с этим всем?
Еще вроде есть какой-то фреемворк, который позволяет на питоне писать код Js..
> JS в фронтэнде единственный ЯП
Что такое Яп?
Вообще если честно, я не ищу работу именно в веб-программировании. Я все таки продолжу учить змея, только потому что мне он нравится.
Но пожалуй Js придется в будущем начать учить, раз для создания сайтов он так нужен.
Спасибо тебе большое, что столько разжевал мне тут.
Никак не сделать так.
можно поебаться с разными терминалами. Стандартный терминал юзай для работы с змеем2, а fish, например, для змея 3. Только в конфиге фиша создай алиас python=путь до змей3
А как мне обновить скачанный с сайта питона питон? Или проще снести его нахуй и поставить через homebrew?
Либо качаешь каждый раз обновления с сайта питона, либо хоумбрю.
Да
> что такое яп
ебать, уебывай нахуй из треда, над тобой даже рофлить не сгорев невозможно. Пиздец, 'хочу уметь все' - начни с изучения поисковых запросов, больше половины говна что ты спрашиваешь можно найти первой же ссылкой в гугле
Постой. То есть ты говоришь о том, что если и залезать в веб, то только со знаниями джанги, ЖС, хтмл, цсс?
Яп - яплакал. ру :3
Хватит агриться, ночью писал. Голова не сооброжала. Только сейчас понял,что это язык прог.
а если начал с лутца?
Ну так а как ты хочешь?
Даже в парсинг без понимания хтмл не влезешь нормально.
Никто не говорит зубрить, но понимание должно обязательно быть.
Из js хватит jQuery, а для верстки простой почитай примеры для bootstrap3/4.
Мимодругойанон
Нахуй ты сракой читаешь и ещё только последний пост? Я с самого начала писал, что выбор стека зависит от типа работы. Где-то будет достаточно знания джанги и азов верстки , а где-то придется писать модули под собственную cms/crm с применением всяких других фреймворков. И да, в вебе знание и умение в html+css+js обязательно.
Я себе не представляю бекэндщика, который напишет парсер или шаблонизатор не понимания как устроены эти самые html/css/js.
Спасибо.
Что плохого в том, что новичок интересуется по поводу языкав треде с данным сабжем?
Абсолютно ничего.
Я поставил себе miniconda3, в терминале питон просто заменился на последний, а сама conda мне кажется очень удобной, чтобы библиотеки устанавливать и обновлять
на питоне нет, кури тему с GIL. Доебал си - бери раст.
Это из-за динамической типизации. С этим ничего не поделаешь, разве что аннотации к каждой переменной дописывать.
мимо с такой же проблемой
Для приложений на смартфоне - java.
Бамп, помогите пожалуйста
Работать после прочтения 150-страничной книги ?
Это нереально, вот что нужно знать недо-джуниору помимо всего что написано в "Изучаем Python-4" Марка лулза
1. Стандартные типы данных
2. Разница между туплами и листами
3. Множества (set)
4. Стандартные библиотеки (sys, os, re, datetime)
5. PEP8
6. variable swap (x, y = y, x)
7. Разница между range() и xrange()
8. Минимальное значение в листе
9. Удалить повторяющиеся элементы в листе
10. str.split()
11. Mutable and immutable types
12. Менеджеры контекста
13. Итераторы и генераторы
14. yield
15. lambda functions
16. Разница между методом класса и статическим методом
17. Анонимные функции
18. Шаблоны проектирования (Singleton, Decorator, etc)
19. Магические методы
20. Sync and wait (python 3.5)
21. Плюсы и минусы множественного наследования (это зло)
22. New style and old style classes
23. MRO
24. _slots_
25. Дескриптор протокола
26. Multiprocessing and threading
27. Metaclasses
28. Функция type()
Это с собеседования на жуна
Работать после прочтения 150-страничной книги ?
Это нереально, вот что нужно знать недо-джуниору помимо всего что написано в "Изучаем Python-4" Марка лулза
1. Стандартные типы данных
2. Разница между туплами и листами
3. Множества (set)
4. Стандартные библиотеки (sys, os, re, datetime)
5. PEP8
6. variable swap (x, y = y, x)
7. Разница между range() и xrange()
8. Минимальное значение в листе
9. Удалить повторяющиеся элементы в листе
10. str.split()
11. Mutable and immutable types
12. Менеджеры контекста
13. Итераторы и генераторы
14. yield
15. lambda functions
16. Разница между методом класса и статическим методом
17. Анонимные функции
18. Шаблоны проектирования (Singleton, Decorator, etc)
19. Магические методы
20. Sync and wait (python 3.5)
21. Плюсы и минусы множественного наследования (это зло)
22. New style and old style classes
23. MRO
24. _slots_
25. Дескриптор протокола
26. Multiprocessing and threading
27. Metaclasses
28. Функция type()
Это с собеседования на жуна
>Слушайте, можно ли нормальные игры пилить на питоне?
Движок юнити и визуальный новеллы.
Ну или можешь изобрести "велосипед".
Помнишь вчерашнюю очередь мужиков с оголенными хуями к тебе? Так вот, каждый пояснявший тебе за зеку — это поток. А вот когда в тебя 2-3 хуя одновременно пихали — это многопоточность.
Я тоже примерно 300стр прочел, та же проблема.
Но ты не парься. Я понял одну фишку.
Все не надо запоминать это, просто "ознокамливайся" как можно. Запоминай только самые нужные в практике темы, как "функция" например, или классы
?
Мьютабеллность дефолтных аргументов зависит от типа данных которые в них запишешь. Как раз по этой причине принято не использовать как аргументы по умолчанию списки и словари, потому что на все вызовы такой функции они будут общие.
Можно писать что угодно на чем угодно. gil не проблема. Проблема только в том с использованием чего писать. Тот же самый популярный pygame годится разве что для простеньких 2д, а для разных графических красивостей тебе так или иначе потребуется какая-нибудь opengl.
То есть проблема в отсутствии нормальных фреймворков, потому что на питоне мало кто пишет игры. Если собираешься делать 2д - вперёд, pygame
первое что в голову пришло sparse matrix а дальше идешь по элементам и смотришь рядом они или нет
А если это видео/аудио? Как проверять, что файл проигрался, прежде чем переходить к следующему?
классик но я туп для туториалов хотелось бы наглядный код увидеть с подробными коментами
Ищи в гугле глорихолв в своем городе.
https://www.tutorialspoint.com/python3/python_multithreading.htm
Я гуглил. Мне предлагали использовать методы из pygame или os.
В первом случае вылезала ошибка, во втором проигрывался только первый файл списка.
Playsound я нашёл только сейчас.
Если что, совет на будущее: спрашивать здесь не стоит. Тут пидоры, нихуя не отвечают. Лучше на реддите спрашивать.
Подумол, не понял
Спасибо.
>слишком сложные
This. Слишком углубленный. На реддите был только один ответ, не лайкнул никто.
Зато вопросы уровня "Как работают лупы for и while, я нипанимаю я вить прачитал статью!" только в путь апвоатятся.
Он должен брать перые два значения каждой строки из .CSV и прогонять следующую команду: [code] curl -s https://api.github.com/repos/${1 значение}/${2 значение} | jq '.created_at' [/code]
И записывал результат вместе с оригинальными двумя значениями в новый .CSV.
Или альтернативу этой строки на питоне, если возможно.
from contextlib import ExitStack
filenames = ['a.txt', 'b.txt', 'c.txt']
with ExitStack() as stack:
....files = [stack.enter_context(open(fname)) for fname in filenames]
....for lines in zip(*files):
........print(' '.join(lines))
vscode
Необходимо написать мерджер логов для хай-лоад приложения с сохранением временного порядка, возможностью указания лог левела не ниже заданного и создания файла с смержиными логами, оформить в виде модуля, входные данные: список файлов и уровень логов. А так же отдельный скрипт, который позволяет работать с этим модулем через пайпы
Подразумевается, что список файлов может быть очень большим, каждая запись лога занимает одну строку
Логи имеют такой формат
[timestamp] [level] [source] message
например
[Wed Oct 24 2012 14:32:52 +0200] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/test
> Подразумевается, что список файлов может быть очень большим
И о чем это говорит? Как действовать?
Первое что пришло на ум: Создавать очередь из файлов-заданий и выполнять через multiprocessing пачками по n-штук.
>zip
в питони?
>>12251
>Какой сайт?
https://sites.google.com/view/pypry/pytonach
>>12253
>работы завал, как освобожусь, так сразу запилю
мы так и понели кек, уже почти полгода прошло лол, а тем временем слепленное из говна и палок за 30 минут работает и продолжает приносить людям пользу
не смотря на то что ты педрилла выкинул его из моей шапки
>И о чем это говорит?
Значит, что в оперативку все сразу не загрузить
>Создавать очередь из файлов-заданий и выполнять через multiprocessing пачками по n-штук
Излишне, файлы все равно придется читать последовательно и мултипроцессингом ты тут ничего не решишь
>продолжает приносить людям пользу
>Сайт с 3.5 книжками, парой видосиков и форсом всратого вс кода от человека, который знаком с питоном на уровне сортировки шешебок по папкам и который даже о встроенной zip не знает
Все это и даже даже больше есть в факе треда, вот он приносит пользу
Нахуй твой говносайт не нужен, я бы понял, если бы он хотя бы на питоне написан и был бы пособием для вкатывальщиков, но ты решил выебнуться и запилить свое дерьмо на гуглодвижке
>больше
не значит лучше, антошки теряются и тревожно дрочат
в то время как чуть укусив и вправив майндсет уже нужно ебошить говно ибо только так можно научится РАБОТАТЬ, а не читать книжки и много знать != делать
а ты решил выебнутся купил домен и обосрался, и лишь питончиков с человеками постишь как я =)) сученешь без фантаззии блядь
>Излишне, файлы все равно придется читать последовательно
То есть файлов много но они короткие?
Как тогда решить эту задачу максимально качественно?
Ты опять выходишь на связь, мудило?
> мы так и понели кек, уже почти полгода прошло лол
> кек
> лол
Кхем, понятно.
Я уже тебе говорил, и скажу ещё раз: у людей бывают свои заботы.
Мимодругойанон
>То есть файлов много но они короткие?
Нет, они вообще могут быть любого размера, суть в том, что ты их в оперативку все не сможешь загрузить для сортировки в памяти
>Как тогда решить эту задачу максимально качественно?
Генераторами
Я создавал структуру дескриптор файла-текущая строка в файле и массив из них
А так же класс, в котором есть:
метод, который чекает лог левел и присваивает текущей строке в структуре, если она соответствует и делает readline дескриптору, если лог-левел ниже до тех пор, пока он не найдет нужный или файл не кончится, в последнем случае он удаляется из массива
метод-генератор, которая берет весь массив и находит минимальное время через min и регулярку (таким образом в памяти в худшем случае хранится только массив из строк и дескрипторов равный количеству файлов)
метод вывода в файл, которая line-by-line заполняет новый файл и использует предыдущую функцию для получения одной строки
Примерно так, вроде оптимальный расход по памяти, можете поправить, если что
Поясните почему если в терминале ubuntu написать: source .env/bin/activate, то я захожу в виртуальное окружение .env
Если то же самое наисать в файл .sh и положить файл туда где это окружение, то эта команда уже не работает.
Тем более, она не работает если в python3 я пишу эту команду через os.system или subprocess.call?
Что сделать чтобы запускать это виртуальное окружение и выполнять нужные мне программы?
вот пример:
import shelve
list = [1, 2, 3]
db = shelve.open('dbname')
for l in list:
....db[str(l)] = l
print(db.keys()) # KeysView(<shelve.DbfilenameShelf object at 0x0341C890>) <--
почему у меня не выводит ключи? читал примеры, делал все то же самое, все равно не выдает ключей
print(list(db.keys()))
Этих ключей может быть миллион и они могут подгружаться в оперативку по мере надобности, а ты ожидаешь что весь миллион тебе на экран сразу высрет. Просто итерируйся по ним for key in db.keys()
если пытаться через список, то list object isn't callable
до итерации не дошел, потому что тупил с получением ключей.
все же как мне получить список ключей?
попробуй в .sh указать абсолютный путь
попробуй .env/bin/python path/to/script.py
Надо ли постоянно открывать/закрывать файл?
linux+i3wm+neovim
То что тебе удобней.
Попробуй всё.
p.s. vscode и pycharm сравнивать не совсем корректно, цели у данных программ разные и назначение.
Бамп
>ведь когда-то мне надо будет становиться фуллстаком
Сейчас бы в говноконторах работать, которые не могут позволить себе разных специалистов на фронт и бек
Ты какие-то задачи нереальные ставишь. У тебя машина спит, а питон работает? Не находишь никаких противоречий?
Язык программирования Pytho
Насколько годная книга для нуба?
> Язык программирования Pytho
Либо ты тредом ошибся, потому что здесь про язык программирования python, либо авторы данной книги настолько не в материале, что пишут даже название языка с ошибкой.
Тебе как новичку любая подойдет, которая была выпущена за последние пару лет. 2016-2018 любую для новичков выбиоай.
Можно хочу написать клиент серерный пет проект.
Со стороны сервера Питон Фласк СКЮЛЬ алхимия, постгресс.
Клиент на андройд студио, под андройд собственно.
Обмен в виде JSON.
Фулл рест апи, кароч. Кто то так делал? Что в таком случае с производительностью?
> Обмен в виде JSON.
> Фулл рест апи
Зойчем тебе тогда Flask?
Бери Falcon, как раз заточен под создание API. Бенчмарки и документацию у них на сайте можешь глянуть.
есть 2 модели(на какую сам сядешь...):
class Article(models.Model):
title = models.CharField(max_length=200)
class ArticleImage(models.Model):
key_article_image = models.ForeignKey(Article, related_name='key_article_image')
Хочу в шаблон 2 эти модели.Что писать во view? Как делать через get_object_or_404 для 2 моделей?
> Как делать через get_object_or_404 для 2 моделей?
Для одной модели, потому для второй и передавай в шаблонизатор данные
> Что писать во view?
То и пиши
Лол, либо это мой список, который я составлял когда ещё на работу не устроился, либо я знаю с видео какого чувака на ютьюбе его переписывали. Так вот - это примерно десятая часть того, по чему меня дрочили на джуниора. Хорошо, что у меня таких списков разных было штук 10 и я за неделю без сна разобрался во всех вопросах. Кстати, почти всё, о чём рассказывал, пригодилось в работе.
>помимо всего что написано в "Изучаем Python-4" Марка лулза
>1. Стандартные типы данных
>2. Разница между туплами и листами
>3. Множества (set)
>28. Функция type()
>11. Mutable and immutable types
Это все в начале у лутца объясняется
>4. Стандартные библиотеки (sys, os, re, datetime)
>26. Multiprocessing and threading
Это ближе к середине-конце книги
>5. PEP8
Ну да, почитать надо дополнительно
>6. variable swap (x, y = y, x)
Ну ахуеть конечно знание, опять же у лутца есть
>7. Разница между range() и xrange()
Можно, но второй питон это моветон уже
>8. Минимальное значение в листе
>9. Удалить повторяющиеся элементы в листе
Есть
>10. str.split()
Раздел про строки
>17. Анонимные функции
>15. lambda functions
Это одно и тоже, опять же есть у лутца
>13. Итераторы и генераторы
>14. yield
Есть
>16. Разница между методом класса и статическим методом
>19. Магические методы
>22. New style and old style classes
>27. Metaclasses
>23. MRO
>21. Плюсы и минусы множественного наследования (это зло)
>24. _slots_
В теме про ооп он про это пишет
>20. Sync and wait (python 3.5)
Книжка про питон 3.4, так что да, нужно
>25. Дескриптор протокола
Про дескрипторы и протоколы отдельная глава есть
>18. Шаблоны проектирования (Singleton, Decorator, etc)
Да, это надо, но еще нужно учесть, что в питоне часть реализована уже в средствах языка, есть спец книги по питоньим паттернам
Лутц даст вам 80% процентов фундаментальных знаний про весь пистон, остается доучить паттерны, асинхронность и пеп8
мимо прочитал лутца
>помимо всего что написано в "Изучаем Python-4" Марка лулза
>1. Стандартные типы данных
>2. Разница между туплами и листами
>3. Множества (set)
>28. Функция type()
>11. Mutable and immutable types
Это все в начале у лутца объясняется
>4. Стандартные библиотеки (sys, os, re, datetime)
>26. Multiprocessing and threading
Это ближе к середине-конце книги
>5. PEP8
Ну да, почитать надо дополнительно
>6. variable swap (x, y = y, x)
Ну ахуеть конечно знание, опять же у лутца есть
>7. Разница между range() и xrange()
Можно, но второй питон это моветон уже
>8. Минимальное значение в листе
>9. Удалить повторяющиеся элементы в листе
Есть
>10. str.split()
Раздел про строки
>17. Анонимные функции
>15. lambda functions
Это одно и тоже, опять же есть у лутца
>13. Итераторы и генераторы
>14. yield
Есть
>16. Разница между методом класса и статическим методом
>19. Магические методы
>22. New style and old style classes
>27. Metaclasses
>23. MRO
>21. Плюсы и минусы множественного наследования (это зло)
>24. _slots_
В теме про ооп он про это пишет
>20. Sync and wait (python 3.5)
Книжка про питон 3.4, так что да, нужно
>25. Дескриптор протокола
Про дескрипторы и протоколы отдельная глава есть
>18. Шаблоны проектирования (Singleton, Decorator, etc)
Да, это надо, но еще нужно учесть, что в питоне часть реализована уже в средствах языка, есть спец книги по питоньим паттернам
Лутц даст вам 80% процентов фундаментальных знаний про весь пистон, остается доучить паттерны, асинхронность и пеп8
мимо прочитал лутца
Норм, но сейчас актуальна джанга 2+, так что если и учить, то её сразу.
В доках всё мммаксимально просто расписано, с примерами.
> но сейчас актуальна джанга 2+
и ты конечно распишешь за существенную разницу в документации 1.9 и 2.0?)
>за существенную разницу в документации
В некоторых местах она и правда существенна и новичок рискует наткнуться на "делаю точно по документации, но ничего не работает".
Уже всё расписано за меня:
https://docs.djangoproject.com/en/2.0/releases/2.0/
В общем, дело-то твоё.
Код клиента:
https://dpaste.de/tdfk
from tkinter import *
def sound1():
from playsound import playsound
playsound('C:/sound/Driver.mp3', True)
playsound('C:/sound/Tokyo.mp3', True)
def quit():
root1.quit()
root1 = Tk()
btn1 = Button(text="Запустить проигрыватель",
command=sound1)
btn2 = Button(text="Выйти", command=quit)
btn1.pack()
btn2.pack()
root1.mainloop()
Обратите взор на функцию sound1, в ней и нужно привязать программу к одной папке, как это сделать?
На "/t" не обращайте внимания, это просто из-за отступов.
Можешь попробовать здесь поискать: https://summerofcode.withgoogle.com/
>желательно игр, с неслишком ебучим кодом
Хотя хуй знает тогда.
path = r'C:/music'
os.chdir(path)
for sound in os.listdir(path):
playsound(sound, True)
или я что то не понял?
Есть гуру wxPython или подобного?
Юзаю одну либу, которая позволяет логиниться на сайте. Тестю в консоли - вроде всегда все работает. Тестю с ГУИ - при логине, прога просто вылетает без каких-либо ошибок, эксепшенов и логов. В чем может быть трабла?
Было бы что дебажить. В логгере той либы ни о каких ошибках нет записей, и сам дебаг толком не говорит какая операция вылетела, при разных запусках - по разному.
Сейчас все-таки словил, что в консоли также бывают такие вылеты без сообщений. Мб проблема в самой либе или в зависимостях, хотя обычно все равно выдается какое-то сообщение. Не понимаю.
Люблю справочник Бизли за интересные и жизненные примеры программ, на которых объясняется изучаемая тема
У меня выдаёт какую-то ошибку отступов в строке os.chdir(path), можешь вставить в мой код свой код?
есть список
arr = ['www', 'www1']
def foo():
# global arr
arr.append(500)
return arr
l = foo()
print(arr , 'в глобальной области') -
почему изменился список в глобальной области?
числа/строки выдают ошибку при попытке изменить без указания в global. А списку похеру. Почему?
print(l)
Да я собственно по этому учебнику и учусь.
Меня именно спискиЮ как изменяемые типы данных смутили.
Да нет ошибки.
Просто есть список, в глобальной области
arr = ['www', 'www1']
есть функция его изменяющая
def foo():
arr.append(500)
print(arr)
foo()
По идее в лексической области функции нельзя изменять переменные объявленные в глобальной лексической области, если они не объявлены в global. Однако foo меняет список arr без обьявления его в global.
Объясните механизм плиз.
>Если предыдущий раздел показался вам запутанным, спешу успокоить – в действительности
все сводится к трем простым правилам. Для инструкции def:
Поиск имен ведется самое большее в четырех областях видимости: локальной,
затем в объемлющей функции (если таковая имеется), затем в глобальной
и, наконец, во встроенной.
• По умолчанию операция присваивания создает локальные имена.
• Объявления global и nonlocal отображают имена на область видимости вмещающего
модуля и функции соответственно.
Ты жопочтец просто
>>Ты жопочтец просто
Не исключаю.
Если в моем примере будет не список
arr = ['www', 'www1']
а допустим строка
x = 'www'
то если я внутри функции foo попробую сделать
x+='qqq'
То выпадет ошибка. Что логично. Так как изменять без обьявления в global и nonlocal нельзя.
Но вот список из функции меняется. Это потому что это изменяемые объект?
Короче, без global ты можешь смотреть переменную, но не изменять ссылку на нее, в случаи append ты не меняешь ссылку на лист, а изменяешь содержимое листа
Тут написано, но из-за всратого перевода это утеряно
Другими словами, все имена, которым присваиваются значения внутри инструкции
def (или внутри выражения lambda, с которым мы познакомимся
позже), по умолчанию являются локальными; функции могут использовать
имена в лексически объемлющих функциях и в глобальной области видимости,
но чтобы иметь возможность изменять их, они должны быть объявлены
нелокальными и глобальными
>>13581
А, лол, ты про это
В случаи с сокращенными операциями происходит x = x + 'qqq' для иммутабельных объектов, и он ломается. Производится попытка использовать х из функции, т.к. ты его объявил, а он еще неопределен
>для иммутабельных объектов
Так, вроде для всех встроенных, а не только иммутабельных, не помню точно
вот. тот пример скорее всего не будет работать, потому что в функцию должен передаваться путь к файлу, и мой способ некорректен, я не шарю в playsound
>какую-то ошибку отступов
какую? скорее всего ты просто не использовал сырой путь к файлу, как у меня >path = r'C:/music'
Ок, вроде понял. Нельзя изменить саму ссылку. Но содержимое ссылки, если оно мутабельно, внутри функции можно изменить.
если я делаю
arr.append('что то') - я меняю объект по сылке.
если
arr = 'что то '
то внутри лексического окружения функции я создаю новую переменную.
А вот что бы изменить arr в глобальной области, lдопустим на число - нужно arr обьявить в global.
Еще б и шифровать их при этом, что бы никто, кроме автора не смог их увидеть, даже на сервере.
Я только додумался до хранения в base64+соль и выдаче тоже как base64(на фронте/мобилке декодировать) но уже без соли.
Хранение целым файлом в папке, в ОС не рассматриваю, т.к. не представляю как зашифровать, да и пересылаться дольше будет.
Ты же понимаешь что твой жпг и строка в base64 это одно и то же с точки зрения хранения информации, просто разное кодирование? И "файл" кодируется и пересылается точно как строка.
Для шифрования используй нормальные алгоритмы вроде RSA.
TypeError: playmusic() missing 1 required positional argument: 'path'
Теперь вот эта ошибка. Взял код из твоего пика.
>TypeError: playmusic() missing 1 required positional argument: 'path'
>Теперь вот эта ошибка. Взял код из твоего пика.
Какой же ты тупой, иди хоть про функции и аргументы в питоне прочитай, плеер он пишет
чел, ты рофлишь что ли? в playsound в скобочки путь к папке с музыкой вставь.
А лучше иди почитай Лутца "Программирование на Python" или "Автоматизация рутинных задач при помощи Pytohn" Свейгарта
Ну да, ошибся, помню по этому поводу срался с анонами о том, что питон при своей философии явности не совсем явно реализует сокращенные выражения
Как пофиксить? Мне не нужны кавычки в параметре, из-за этого нихуя не рабоатет
пофиксил, у меня неправильно вызывалась программа
гайз как подключиться к бд которая уже связана с сайтом ? подключаю через mysql.connector
если подключаюсь как по гайдам то вылетает куча ошибок
Скажем у меня в бд есть 2 сущности, под которыми можно оставлять коменты, коменты полностью одинаковые. Правильно сделать 2 таблицы с коментами к каждой сущности, или одну таблицу с 2 foreign key и позволять отправлять только одно из этих 2 значений?
Какие ошибки? Как подключаешься? Где код с трейсбеком?
Так я всё вставил, ошибка есть.
Так, сука, я сразу прописал патч и в функции, не работает,
def sound1(path):
path = r'C:/music'
for sound in os.listdir(path):
playsound('%s/%s' % (path, sound))
>Так, сука, я сразу прописал патч и в функции, не работает,
>TypeError: playmusic() missing 1 required positional argument: 'path'
>Я УМНЕЕ ИНТРЕПРЕТАТОРА, Я СКОЗАЛ
Скинь весь код и трейсбек через пастебин
блять, ты должен прописывать не в функции, а ПЕРЕДАВАТЬ функии свой путь. А ты хуету какую-то делаешь
должно быть playsound('твой ебаный путь')
>path = r'C:/music'
зачем ты переопределяешь переменную? я тебе скинул 2 рабочих функции, просто скопируй. в твоей нихуя работать не будет хотя бы потому, что у тебя рабочая дериктория в пизде, а не в папке с музыкой
ой, я идиот, в этой функции не нужно менять рабочую директорию.
>Так я папку давно на sound поменял
молодец. я тебе выше написал что ты не так делаешь. если хочешь по своему, убери аргумент path из твоей функции, и все заработает
Я всё-таки сделал рабочий код,
from tkinter import *
import os
from playsound import playsound
def sound1():
path = r'C:/sound'
for sound in os.listdir(path):
playsound('%s/%s' % (path, sound))
def quit():
root1.quit()
root1 = Tk()
btn1 = Button(text="Запустить проигрыватель", command=sound1)
btn2 = Button(text="Выйти", command=quit)
btn1.pack()
btn2.pack()
root1.mainloop()
Просто затупил с функцией, давно очень ничего нормального не кодил, хотя вроде базу я хорошо знаю и про функции тем более, раньше много задач по ним решал. По сути, что я не смог сам запилить - это только цикл for, а с функцией и аргументом path - банальный косяк.
Потому что документация изложена по примеру лутца - подробное расписывание каждого объекта, каждой структуры, нет общего комплексного подхода, в котором ты успеваешь усвоить общий материал и не забыть применение первой выученной структуры после 1000 страниц после неё.
Аноны, что по этой книге?
Да, aiohttp его неслабо побил. По крайней мере я уже давно на джанге ничего не делал.
У вас просто стильная-модная-молодежная команда, мы джангу, как использовали, так и используем, только версии обновляем
А все потому, что у нас логика на микросервисах, а джанга только из базы данные дергает, ее для этого достаточно
kivy
папалса)
Насчет кодирования в системе я понимаю. Вот предположил, может быстрее будет самому кодировать 'файл' в нужный 'формат' что бы потом его только отправить, без предварительной магии и таким образом выиграть немного в скорости.
За RSA спасибо.
Antonio Mele (если мне не изменяет память) + документация.
Желательно накатить Unix ось, но можешь и без нее ебаться.
Благодарю!
Прохоренока не предлагать, у него вместо классов все сплошняком в одном конструкторе.
Владимир Дронов, Николай Прохоренок - Python 3 и PyQt 5. Разработка приложений
Только чётко смотри 2017г, а не более ранний
объявить её глобальной?
>Соседние веб студии ушли с джанго
А что нибудь кроме личного опыта есть? И на что ушли и почему, это важно
А то возникает ощущение, что это очередные смузихлебы, которые гонятся за новыми технологиями непонятно зачем
>А то возникает ощущение, что это очередные смузихлебы
Смузихлёбы собственно и двигают фреймворк, устраивая ему хайп, думаю это показатель.
Заметно что интерес к нему за последний год серьёзно угас.
Это всё конечно имхо
Я же написал. У него нет нормальных примеров: только вырванные из контекста. Ни одной целиком написанной программы.
Ты не ответил
>И на что ушли и почему, это важно
Чем еще можно быстро сайт накидать не ебясь не с чем используя готовые модули, были рельсы, но они ВСЕ
720x464, 0:24
Учи джангу, aiohttp это потом, хотя, раз ты про связи в моделях не знаешь, то лучше теорию по базам
Вбей в поисковике гита "учебные программы qt" ну и поэксперементируй с поиском, их всегда много от всяких курсов и универов
1. Как шарить дату в pytest между степами через self?
В данный момент self в одном и том же тестовом классе в разных его методах ссылается на разные инстансы я был удивлен когда увидел, не ожидал такого
Например:
class TestSomething:
def test_request(self):
self.response = requests.get("https://www.google.com")
def test_response(self):
assert self.response.status_code == 200
Получаем:
AttributeError : object TestSomething has no attribute 'response'
Теперь встает другой вопрос: как мне загрузить этот файл через open()? Я пытался писать open('myproject/myfile.txt'). До установки (из папки с проектом) — все работает. После — No such file or directory.
Может, я могу как-то узнать путь, по которому находятся установленные файлы моего пакета?
Если я не ошибаюсь, при использовании pytest функции надо класть на самый верхний уровень. Он работает не с классами типа TestX, а с функциями типа test_x.
Вообще, почитай их доки, они охуенны: https://docs.pytest.org/en/latest/
Вроде все пользовательские объекты после каждого теста уничтожаются. А вообще шарить в разных тестах один объект, если это делается не через setUp\setUpClass, моветон, по крайней мере в unittest так
Классы в пайтесте не более чем скоуп. Они никакого особенного функционала не дают. Пайтест тупо каждый раз инстанцирует класс и вызывает один из его test_ методов.
Не делай никогда open в таких случаях. Делай pkgutil.get_data(__package__, 'myfile.txt').
Так у тебя даже если в zip архиве пакет будет лежать всё подгрузится как надо.
Спасибо, анон, ты охуенен.
> Правда ли, что серпентарий под названием "Джанго" умирает?
Нет, как пилили на нём сайты так и пилят
>>14018
> aiohttp его неслабо побил
И много ты на нём написал сайтов, сложнее пары страниц?
В питоне ещё ничего лучше не придумали. И тем более ещё ничего не обросло таким комъюнити и набором библиотек и готовых решений для разработки.
Aiohttp безусловно отличная библиотека, но немного для других целей и сравнивать их, как по мне, не совсем корректно.
Ну а вдруг придумаю ЯП, в который действительно стоит вкатываться. Или начнется ядерная война, и мне уже не пригодится пайтон.
>Вообще, почитай их доки, они охуенны
Первая строчка
>The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries.
говорили они
>>14137
>если это делается не через setUp\setUpClass, моветон,
проблема в том что у них бага https://github.com/pytest-dev/pytest/issues/517 2014 года, лол а у меня фикстуры есть в скоупе session которые должны срабатывать перед setup_class. Только что попробовал через setup_class, шарятся только те, которые были определены в нем же, это не очень удобно на мой взгляд. Через фикстуры как засетапать я тоже нашел https://computableverse.com/blog/pytest-sharing-class-fixtures но там все та же самая проблема, шарятся только задефайненые в нем, придется присваивать None куче переменных, что не очень гибко
>>14141
да, да, я об этом и говорою. Сейчас я юзаю хук, через который я могу шарить все что угодно, но хотелось бы по человечески через self
Зачем ты тащишь unittest в pytest? Нафига тебе self когда есть божественные фикстурки?
>Зачем ты тащишь unittest в pytest?
В каком это месте?
>Нафига тебе self когда есть божественные фикстурки?
Да потому что что такое класс?1! Это пространство имен (пакеты перменных) и это пространство должно оставатся единым.
Я еще раз говорю у меня есть хук-фикстура, которая это решает, но это это не то, что я хотел потому что из-за этого автодополнение в пайчарме не работает, хнык-хнык
Писать без подсветки синтаксиса это есть кактус, учитывая то, что ошибки в рантайме ловятся, а какой нибудь пайчарм часть из них определяет ещё во время написания кода
>в блокноте без подсветки
Не нужно. К тому же в блокноте не моноширинный шрифт и нет хоткеев для индентов. Попробуй атом, сублайм.
Если ты хочешь именно познакомиться с синтаксисом, то блокнот будет лучше, конечно. Позже, когда ты совсем привыкнешь к нему, возможно, ты заметишь, что тебя отвлекает или тормозит необходимость постоянно вручную править форматирование (те же отступы), в то время когда ты думаешь совершенно о другом (об алгоритме, о какой-то идее). Вот тогда стоит начать использовать что-то посерьезнее.
Меня терзают смутные сомнения. Скопируй содержимое файла на pastebin.com и ссылку сюда.
Ух спасибо анон. Теперь все норм. В учебнике не написано что надо убирать эти стрелочки и все что сверху. Я думал это типо как в html DOCKTYPE
Даже в учебнике те строчки наверху и стрелочки, и нигде там не написано что перед исполнением программы, их надо стирать.
Блэть
Ты невнимательно читаешь. Если копируешь, то копируй всё.
Ты в консоли должен этот код выполнять!
Конкретно тот отрывок что я скинул на скриншоте, да в консоли. Я его скинул, потому что в том коде те лишние строчки которые надо убрать, и стрелочки. На момент проблемы, я выполнял главу 6.4
не подходит
но энивей санкс заработало годно
такая вот аккуратная няшка вышла
теперь вопрос как это выровнять, через table или есть для зипа ключи какие нибудь?
В смысле не совсем явно? А как было бы явно? Что поведение x+=y и x = x + y идентично? С чего бы? iadd это in-place add:
https://docs.python.org/3/library/operator.html#inplace-operators
>Many operations have an “in-place” version. Listed below are functions providing a more primitive access to in-place operators than the usual syntax does;
А += это и есть operator.iadd
То есть, как раз-таки должно быть очень очевидно, что для мутабельных объектов += изменяет его, а не создаёт новый.
панда на его фоне прям 21 век, хотя тоже один хуй ебень, не влазит в терминал, хотя места дохуя и не дает убрать по людски нумерацию строк и столбцов, на стаке какие то адовые портянки под эксельки тем более
кароче реквестирую годноту для табличного вывода без ебания головы
Хорошо.
Джанго и пыхо-фреймворки спиздили все фишечки, а т.к. на руби помимо рельс достаточно мало работы, то они отвалились за ненадобностью
>A table can be created with add_row() or add_column() methods.
после того как я полтора часа потупил в
>TypeError: add_column() missing 1 required positional argument: 'column'
я таки решил почитать мануал чуть дольше чем 30 секунд и внезапно НЯЯЯЯЯ ^___^
Таким людям не нужно отвечать на их вопросы, нужно давать им ссылку на книжку. Вопросы которые они задают ТУПЕЙШИЕ блядь.
Но если брать направления - я хочу в вэб%JS макака же. Писать сервера, парсеры, поисковых роботов, ну и сайты конечно же. Какой вэб-фреймворк нужно выбирать? Выше расписали что Jango уже помирает? Что ему на замену идет?
как ватывальщик сейчас жалею что начал изучения JS , а не с Питона. Питон гораздо шире представление дает о программировании как таковом. В JS можно проебать кучу времени, выучить кучу абстракций, и по итогу уметь списки и менюшки динамически формировать.%%
Обосраля с разметкой.
Питоны, привет. Это я -вкатывальщик из JS. Лутца кое как осилил точнее говоря понял большую часть, но не хуя не запомнил теперь осваиваю "Програмируем на Питон". А "Изучаем Питон" - справочник у меня теперь.
Но если брать направления - я хочу в вэб, JS макака же. Писать сервера, парсеры, поисковых роботов, ну и сайты конечно же. Какой вэб-фреймворк нужно выбирать? Выше расписали что Jango уже помирает? Что ему на замену идет?
как ватывальщик сейчас жалею что начал изучения JS , а не с Питона. Питон гораздо шире представление дает о программировании как таковом. В JS можно проебать кучу времени, выучить кучу абстракций, и по итогу уметь списки и менюшки динамически формировать.
Не умирает, ибо в его нише либо он либо пыха
aiohttp либо для стильный парней с бородами, либо для хайлоада
я тот хер что писал что соседние веб студии отказались от джанго. Не слушай меня, я обосрался короче)
Но в рашке джангу да, не особо любят.
>>14463
>>14464
Спасибо за мнение. Значит топаю в Джанго.
>>ибо в его нише либо он либо пыха
В пыху не хочу совсем. Да и нахера если питон есть.
>>14459
Со спойлерами обосрался. Мод зачистит.
>>И как лутц? Информативно?
Хорошее пособие, но как мне кажется для вкота с ноля - сложновато. Он объемный очень, и очень подробный. Но на мой взгляд ему очень не хватает задачек простеньких на работу с содержанием главы, например. Потому что многие вещи по итогу понимаешь после того как покрутишь сам руками с разных стороннапример я так с итераторами в JS ебался.
Но мне учебник зашел. Со знаниями JS мне конечно же было гораздо проще. Пару глав, типа про try - except я пролистал одну через три - позже вернусь. Так как логику я понимаю, в общем, а вот до деталей дойду как буду что либо писать. 1300 страниц теории - это о я ебу. К финалу забудешь не то что чем tuple от list отличается, забудешь вообще что это такое. Утрирую конечно, но суть ты понял.
Короче если у тебя есть некоторое понимание типов данных, стандартных операций типа циклов и у слови, и ООП - то зайдет учебник. Если нет - я бы не советовал все же.
Но я в теории, практически, полный нуль. Что б такого почитать за сегодня/завтра что бы не ударить в грязь лицом?
На практике я им напишу что-нибудь, но вот рассказать вряд ли смогу.
По телефону спрашивали про ФП, функциональное тестирование и генераторы, а так же фреймворки/технологии и опыт общий.
Если пишет SyntaxError то ты накорявил с кодом.
Вместо doctype было раньше # coding: utf-8 но в троечке это не нужно.
Вот эти >>> штуки показывают как бы интерактивную сессию питона, когда ты запускаешь его без файла для выполнения, так можно вводить руками код прямо в консоли и сразу же выполнять.
Может поток управления у музычки, а не у окна?
Про многопоточность слышал что-нибудь?
Есть функция:
.... def add_to_history(self, name, operation, value, currency):
........# doing something
В общем, я не знаю, какой тип данных для history лучше использовать, чтобы:
1) Был заголовок (name) и по этому заголовку можно было получить остальные данные (operation, value...)
или
2) history была списком, в который можно было бы добавлять кортежи.
У меня первая мысль была о namedtuple внутри единого списка, но это какая-то ебатория и вообще я долбоеб.
Или, может, я не туда смотрю и на самом деле все реализовать можно было гораздо проще?
Ебать я долбоеб.
Переформулируй вопрос, нихуя не ясно.
Ты хочешь это?
history_record = {
....'name': 'name',
....'operation': 'operation',
....'value': ...
}
> .... def add_to_history(self, record):
> ........# doing something
Да я уже понял, что дурак, все в порядке. Можно было просто словарь взять с именем в качестве ключа и кортежем в значении.
Но у меня вдогонку другой вопрос. Насколько это моветон, писать так много аргументов к функции?
В общем-то, у меня, например, name, value и currency на деле наследуются из класса, но тем не менее сама запись def funkcia(argument1, argument2, argument3, argument4) выглядит довольно громоздко. Это плохо, да?
Буду рад, если кто-то поправит меня в терминологии
Если аргументы метода "наследуются" из класса, то и наследуй их, через self.аргумент.
> выглядит довольно громоздко
Обычно, если переменных передаётся больше 3-4(и все всегда задействованы), то это говорит либо о неправильной архитектуре, либо об очень специфической задаче.
Если переменных прям много и все нужны - юзай kwargs.
А иначе - попробуй задачу разнести на мелкие и распределить роли между ними.
Метод -- это все же не функция? Или ты просто на всякий случай акцент делаешь на том, что, мол, не всякая функция -- это метод, но всякий метод -- функция.
Спасибо за ответ. Буду переписывать.
> не всякая функция -- это метод, но всякий метод -- функция.
Ебать как завернул то.
Функции находящиеся в классе называют методами.
try: #код
except IndexError: #другой вариант кода
except IndexError: #третий вариант
except IndexError: #этот код точно сработает
Но после первого исключения код останавливается. ЧЯДНТ?
Сам спросил, сам ответил:
Нужна ебучая лесенка
try
except
....try
....except
........try
........except
у тебя во всех эксцептах один и тот же эксцепшон указан, это не имеет смысла, делай все в первом ветвлением через ифы
Блять, ньюфаг, иди читай про эксепшены, а не пытайся свой синтаксис придумать.
>там try-блок в try-блоке, зачем это?
Чтобы перехватывать исключение, когда ты уже перехватываешь исключение.
А вдруг, пока ты будешь перехватывать исключение, произойдет новое?
Самописные - ещё ни разу.
Если встроенные в либу/фреймворк - юзал довольно часто.
Но у меня опыт небольшой, лишь 1,5 года реальной работы
Часто, у нас через них микросервисы организованы
> лутца кое-как осилил
Я один такой еблан, который читает лутца уже год и прочитал только половину?
>По русски.
чурек ебаный будет так
>по-русски
кароче я уже все послайсил, теперь все нужно фильтрануть и ебануть в списки, ну это хуйня
вопрос в том может ли питоний построить дом ? лол, не выглядий так же убого как ПуЖс
я хуй знает ну в жсон выведу, и с него надо древовидный список построить со стролочками для разворота, ну т.е группы урлов по домену будут, кароче как в файловом менеджере надо сделать воот
>yattag
просто охуенно, мне нужна хуйня которая бы делала охуенно, а не заставляла бы блядь работать в два раза больше
>>15670
похуй нахуй, это поиски, удивлен что для тебя это не очевидно
>>15672
>jinja
ну это уже получше, просто вообще влезать в это говно не хотелось бы, жспараша вот это все нуиво нахуй
>>15671
слышь ты ебать, сажу то прибери аноним хуев сука
>мне нужна хуйня которая бы делала охуенно, а не заставляла бы блядь работать в два раза больше
>>jinja
>ну это уже получше
Проиграл пиздец. Для тебя
<div id='zalupa'>{% text %}</div> лучше чем
with tag(div, id = 'zalupa'):
text(text)
?
Я вообще не пойму хули ты сделать хочешь, поехавший. Делаешь список любым генератором хтмл из листа своего и пишешь на жс пару строчек для скрытия\сворачивания дочерних элементов. Профит, иди нахуй.
Изучаем питоний и обе части Программирования на питонии осилил за 2,5 месяца, помимо всяких курсов. На самом деле просто книжки читать люблю
Пару недель назад (то бишь через пять месяцев с начала вкатывания) взяли стажером-неумехой. Два месяца поработаю у них (за стипендию 150р/час, кстати, лол), возьмут в жуниоры.
Хуй знает, какой-то ты неправильный вкатыаальщик. Зарплатки-то падают.
> Python 3 Module of the Week
> Intermediate Python
> Python Cookbook
> Дочитать доки пайтона по стандартным либам(было начал, но не дошёл до конца)
Всё ли верно/актуально(кроме последнего пункта, с ним и так ясно)?
>>15686
> лучше чем
А разве нет?
Не лучше ли взять нативный ХТМЛьный шаблон и по-человечески вставлять в него данные, нежели взять пайтон-код и через него клепать ХТМЛ?
p.s. Не
> {% text %}
а
> {{ text }}
{% %} - для различных условий и йобо-конструкций юзается
>Не лучше ли взять нативный ХТМЛьный шаблон и по-человечески вставлять в него данные, нежели взять пайтон-код и через него клепать ХТМЛ?
Нет.
Разбирается старая джанга сейчас 2.0 там 1.9 отличия огромные
Поясни за асинхронность таким же примером плз
лови няша, как все прочтешь дальше ебошь код
https://sites.google.com/view/pypry/pytonach
ебошь прямо сразу после укуса разбираясь по ходу
я тут полуркал и вот так выглядит топовый фф для дома, ну хуй знает, что рект что вуй одно говно, так и зачем ебаться с тем что еще более хипсторское?
а жижа твоя питоний транспелит в жспарашу или как? сайт пидорский примеров чето нихуя
Хуй знает. Может, под питон есть что-то вроде Hiccup под кложуру?
сука это охуено анан! то что надо для такого питоаутиста как я ^_^
помню в штымеле еще тогда на сабляйме задрочивал эммет, но все равно какое все бесячее было, недоделанное, хотел сделать лучше, поглядывал на шпитца ебучего, но слава б-гу дропнул это говно, туда же заебанные цески, каждый из себя недоязык корчит, фу блядь, фу нахуй, аж тресет
а тут няяя
скриптуля пашет лак а чарм нахуй :3
>несвязанные методы хуе мое епты))) тянки текут батя грит малаца
>в пайтон 3.0 понятие несвязанные методы ликвидировано))))))
https://stackoverflow.com/questions/30155551/python-in-browser-how-to-choose-between-brython-pypy-js-skulpt-and-transcrypt
>не такой уж
я у мамы максималист, не сегодня завтра васм подвезут, и питончик залейтёхает и тогда дети начнут выбрасываться из окон да и помню как это говно меня выбешивало своей швободкой, часики делать затрахался, не говоря о том что все эти нескушные скобочки.. я уже слишком отвык от этого дерьма
а пока брайтон по смыслу чистый жиквери, на изиче, ивенты хуенты дом добавить удалить, вуй рект тупо нинужны, замусоривать голову йебическими абстракциями, которые через пол года выкину на помойку
тем более я для себя, для души, по кааайфу, а какой нахуй кайф от жспараши!? ты бля видел как создатель на выставочке в 2к18 весь зареванный жаловался мол какое же он чмо, что же он натворил, накормил говном всю планету и уже не вернуть все в зад
тайпскрипт в рантайм браузера от хорошей жизни бы не заталкивали
кароче просвящайтесь змеюки, для бекняш просто лютый мастхев
https://www.youtube.com/watch?v=BcDV9QUium4
Один скрипт посылает в него данные. Другой читает. Или порт занимается каким то одни и для другого он недоступен?
>быстрофикс
Если динамические данные (как вот в поиске подсказки) - то JS юзай.
Если форма с заранее заданным списком выпадающим, то в свою форму class UsersForm(forms.Form): вставляй:
https://pastebin.com/EmnbQPcH
P.s. а вообще гугли, это первая же ссылка, при правильном вопросе
Спасибо!
...try:
......re.search()
......re.search()
...except Exception:
......pass
Почему при первом None он пропускает весь файл? Мол, если в первом случае нашло, во второй - нет, то все, скрипт завершается.
>yattag
ноунейм без комитов и звездочек с ФИЕРИЧЕСКИ блядь пидорскими контрукциями, у брайтона же 2к звезд и ласт комит 5 дней назад
у голого траспайлера траскрипта популярность меньше
Потому что нехуй перекрывать все исключения без разбора. И потому что твоё предположение неверно. Там не происходит break.
stdout → stdin
python a.py | python b.py
a.py:
print('jopa')
print('cyka')
print('blyad')
b.py:
import sys
for line in sys.stdin:
..print('Got line', line)
Васм подвезли, питончик летает, но хуйня в том что рантайм у питончика очень жирный и кастинг типов в жс очень медленный.
Чтобы не страдать от жс пиши через бабель, на ES2018. Настрой линтеры чтобы все жс пиздецы не пропускало, и будет тебе практически тот же питончик. Тайпскрипт да и mypy вещь сомнительная как по мне, как бы там не нахваливали. Аннотации написать хорошо, но ебаться с чекером и тайпшедами то ещё удовольствие.
>пиши через бабель, на ES2018
я как представлю сколько говна и лишних пакетов на системку свалится я ж плохо становится, пока весь пайп настроишь уже забудешь чо хотел
да и в итоге один хер придется майндсет перестраивать, все там по другому, а я уже привык к змиенышу, знаю чо и куда в общих чертах, а там опять вакханалия начнется, ох нет нет
мне чисто список на 2к строк заибашить, 5мс или 500мс - похуй вообще, да и вообще если будет 5 секунд отрисовываться так даже интерснее получится лол, эдакий дебаггер ирл, сидишь и видишь как програмка там ползает, ну круто же ^_^
Я пробовал перекрывать AttributeError (или что там препятствует появлению None), эффекта нет.
> или что там препятствует появлению None
Не понял, при чем тут None?
Вообще, запощенном тобой коде есть только две строки, где может что-то пойти не так. И ты обе строки сократил. Хуй поймешь, что там на самом деле происходит. Пиздуй на http://sscce.org/
class x:
...def met1(self):
......pass
...def __repr__(self):
......return '%s' % self.met1
y = x()
print(y)
почему происходит бесконечная рекурсия?
Закомментируй или убери __repr__ и посмотри, что выводит y.met1
Будет что-то вроде <bound method x.met1 of <__main__.x object at 0x7efbfdfa38d0>>
Вот эта часть, "__main__.x", вычисляется через стандартный __repr__. Когда ты переопределяешь __repr__, рекурсия возникает в этом месте.
Может быть, ты хотел написать self.met1()?
Немного напиздел. Стандартный __repr__ возвращает всю строку <__main__.x object at 0x7efbfdfa38d0>.
пизже роскошного вскодовского тултипа и даже справочного метода
>Удобно
не то слово, я просто наконец то почувствовал себя человеком, а не оператором уебанской системы, которую изобрели дураки что бы специально дрочить меня по хуйне, инсталл любой проги одной коммандой, обновки свежак, если аур и мейнтейнер слоупок, всегда можно пиздануть его палкой и через пару суток он намучивает обновку, прописал обновку в альяс к команде выключения, прожал пошел зубы чистить, пека апнулась и утром за свежак содишься, без дистракшн говна
тут прекрасно абсолютно все, а все что по какой то причине тебе таковым не кажется, ты можешь сделать падсибя, без лишнего неясного говна, голая система 350 пакетов, с кедами под 700, делаешь pacman -Qe и не видишь ни одной незнакомой строчки, это просто охуенно
и чем глубже тем веселее, тебя не только не бьют по рукам, а наоборот, все сделано для мммаксимум френдли пердолинга, арч вики топовая
ну и простые линовые мелочи как установка всех программ одной строчкой, второй строчкой копируешь настроички из бека, и в отлчии от ебаной апп даты и программ даты, тут после аплода дотфайлов и ребута ты тупо попадешь в систему которую оставил до реинсталла
первый месяц после свитча был тяжелый, раз 20 оську переустанавливал, 4 раза по крупному, ну и каждый раз продолжал оттуда откуда начал ^_^
кароче если тебя заебало что кто то говорит тебе как надо жить -- то смело накатывай
будет твоим дейли драйвером, ибо тут все на сишке да на питоне, ковырятся одно удольствие, даже мне не кодеру, по кайфу ковырятся в этом конструкторе
Что про манжаро-бомжаро скажешь? Я поставил в виртуалку арч, но при попытке ставить иксы, здесь шайтан-дела какие-то.
>манжаро
набешься, у них репки свои, там разрабы австрийцы с франками, сделали дистр для белых людей совсем, так что все перепроверяют и только потом добавляют, а по факту только хуже, но если один раз настроить и не трогать может и пойдет
виртуалкопроблемы, ставь на живую
Я про дуалбут, я в виртуалке все дистры тестю после неудачного опыта.
1920x1080, 0:29
Ты кедами хвастаешь?
>траллировал
Я даже генту ставил неделю, просто так заебало, что я стал замахиваться на такие соблазнительные убунту да минты.
>Ты кедами хвастаешь?
таки да, они божественны, вначале держал венды на подстраховку, но вот этот вот ресайз окошек просто киллер фича нахуй ну и охуенный кврайт блокнот, по глазам не лупит, с таким же функционалом как у сабляйма за ебучие 80 баксов, ну и дельфин, точиковый фм, просто вот блять охуенен и расширяем ручками на лету за пару минут
гента для пидоров анима-девочек внутри, без бляд сервера и парка машин -- чистое незамутненное дрочево
>>16570
арчик + кеды + латте док + стоковая обоина
>>16580
внатуре ебать))
У меня в кедах такая хуйня была, что шрифты в приложениях были малы. Сам я кротообразен, поэтому постоянно так сидеть не смог.
>держал венды на подстраховку
мысль улитела лол
и было ужасно туго потом на вендах, не смотря на то что они были по максимому запердолены, таскбар вся хуйня темки которые бсодают систему после луп апдейта туда сюда вот это воот все сидишь смотришь, а тебя кормят блуром и показывают красивые презенташки в тубике, реально прошивка для игр, только сейчас начал понимать всю суть данной фразы
>>16588
есть такая тема, на вендах тоже 150% всегда ставил, нахуй надо напрягаться, а кому то норм
>есть такая тема, на вендах тоже 150% всегда ставил
В хроме и jetbrains продуктах я не мог это настроить.
что стим что уеч две единссвенные софтины которые СТИЛЯТ ФОКУС ! во сука вспомнил еще одно наипидорская вендо фича
на линупсе же никто не смеет прервать тебя пока ты печатаешь ответ на дваче
и вот они тоже хуево скелятся, пришлось поибаться с ключиками да
>>16599
а ну это ты к нам в тредик заходил? чето видел по студии, но я хз, энивей все опенцорцное, все что надо полуркал и подправил, если ни скейл ни фонт дпй не помогли
>а ну это ты к нам в тредик заходил? чето видел по студии
Да, я с кубунту ебался и потом, когда ее сносил удивительным образом затер всю систему и загрузчик винды.
Делаю import database, но у меня 'conn' и 'c' остаются не активированными, как их активировать через другой файл?
ахаха ебать ну это судьба тебе шлет знаки, не иначе
давай свичайся братишка и перекатывайся к нам в чятик
Когда ты импортируешь модуль, выполняется весь код внутри него. Если ты импортишь database, а потом вызываешь create_table, то у тебя соединение уже закрыто в этот момент.
Перемести последние три строки в отдельную функцию и вызывай ее позже, чем create_table.
не тупи анон, все если что дежурные в /s тебе помогут, а я упиздил байки, 66
Все сделал как ты сказал, теперь нормально работает, но есть ли иное решение, более оптимальное?
Забыл сказать спасибо -- спасибо!
1. Не используй глобальные переменные. Передавай cursor в create_table.
2. Используй context manager (через with): https://stackoverflow.com/a/47501337/6879054
Context manager'ы автоматически выполняют действия после конца блока with. Закрывают соединения, файлы, коммитят изменения и все в этом духе.
Еще один момент есть — commit сохраняет новые данные в бд. Если ты не планируешь выполнять много действий с бд за раз, лучше выполнять commit сразу. В твоем случае, в конце функции create_table. Ну или используй context manager.
Большущее спасибо, выручил
А, все, я понял. Он отправляет экзит код по дефолту, сорри, я совсем новичек, хочу по быстрому скрипт накалякать не уча баш
Отправляет, но не на всех системах. Лучше, использовать subprocess.call: https://docs.python.org/3.4/library/subprocess.html#subprocess.call
Спасибо за инфу, но я все равно только у себя буду это использовать, да и мне os.chdir тоже нужен в нем, так что пока на system остановлюсь
окей, спасибо
Ну это понятно, скоро только стабильная версия 3,7 выйдет.
Я скорее обращаю внимание анона на сам факт 4.0 и annotations.
Что "4.0" и что "annotations"?
Пару меняцев назад о чем-то похожем думал. Оно будет работать как радио, если следующий трек будет поститься до конца текущего?
Ну он просто тупо посылает песни, теоретически можно подгадать, но всё равно в чатике придется жать на проигрывание
Да вроде, телега сама на следующий переключает.
Меня тоже на джуна все это спрашивали. Правда, если ты все это знаешь и имеешь немного опыта, ты уже middle считай и можешь спокойно просить 120-160к. Я вот через 5 месяцев джуноебства за 70к свалил на другую работу, где в 2 раза больше дали.
через ос или субпроцесс ты один хуй в терминал будешь команды слать башовые, так что проще все же на баше\фише написать одну строчку чем городить простыню на питоне, сед бат тру
Спасибо за коммиты, добрый человек!
Молю, помогите изменить текст лейбла из функции другого класса, неделю бьюсь и нихуя не понимаю.
https://pastebin.com/VbJWeg9W
Там наверху по кнопке 'download' кликните, сразу весь исходный файл будет, а то комменты поехали малость.
Попробуй вынести label из __init__, а то переменные в нем только при инициализации создаются. А еще ты вызываешь методы из неинициализированного класса window да и вообще код говно, если честно
Бля, первое забудь, в глаза ебусь, суть в том, что ты неицеализированный класс используешь
как видите положняк потиху двигается, и далеко не только меня посещают ебанутые праведные мысли за веб-змея
мозиле надо толкнуть васм, и под растом оно ясень хуй буксует, слишком низко, а как только черти заимплементят питонический интепретатор туда, то сами подумайте что будет
народу на конфе дали зеленый свет
https://www.youtube.com/watch?v=hRt0pjybkQ8
>мозиле надо толкнуть васм, и под растом оно ясень хуй буксует, слишком низко, а как только черти заимплементят питонический интепретатор туда, то сами подумайте что будет
К тормозному педону добавятся тормоза жид-машины и все это вместе приведет к взрывному росту акций интел и продажам топовых процессоров, а мобильный рынок полностью загнется от беспомощности?
>мобильный рынок
устремится ракеттой вверх, 16 ядер и 8 гигов будет не в топовой самсе, а в каждом доме
ты месседж сосвсем проибал
школота не знает х86, но АRМ для нее тот самый ПК, так что все будут качать эту тему, оставляя настоящие рабочие станции проф криаторам
>устремится ракеттой вверх, 16 ядер и 8 гигов будет не в топовой самсе, а в каждом доме
Но ведь в педоне нет многопоточности.
С овер 9000 стоимостью межпроцессного взаимодействия. На немощных армах, которых только кокоядерность и спасает от унижения с их per core performance.
>С овер 9000 стоимостью межпроцессного взаимодействия. На немощных армах, которых только кокоядерность и спасает от унижения с их per core performance.
Ну производительность ведроида спустя два года обновлений же хавают? Хавают. Вот тут точно так же, только мобилу раз в полгода менять.
Создавать класс, наследовать его и внутри родительского класса создавать инстанс наследуемого это пиздец
А как правильно, покажи хоть, а то я тебя не понимаю. Я следую теории и примерам из гугла, они все примерно так и выглядят. За исключением того, что не существует ни одного примера, где бы описывалось, как в одном классе получить значение переменной, сидящей в функции другого класса.
То, что я ничего в этом не понимаю без примеров.
selenium
Сам по такой занимаюсь. Первая часть вроде хорошо изложена, автор разжевывает основы языка и объясняет, что делает каждая строка кодаЮ которую только что наговнокодил. А вот проекты как мне показалось там так себе. 2d игра по сути бесполезная, т.к. на питоне игры делать все равно никто не будет. 2 проект это некий вводный по дата саенс, но опять коротко и не совсем актульно, а про джангу уже ответили, но я до нее еще не дошел. В целом мне понравилась, так там еще кроме языка есть всякая дополнительная инфа по установке\настройке питона, pep8 и тд. В целом для новчика мне кажется хорошая книга, но я и сам новичок и других книг еще не читал.
Операции выполнятся в следующем порядке:
a = xs < 3 # вернет bool (если у xs не переопределен оператор "<")
b = ys[a] # доступ к значению по индексу в списке или по ключу в словаре
c = b - base # если код рабочий, то здесь должен быть переопределен оператор "-", потому что у чисел нет метода std
d = c.std() # просто вызов метода std
std = d
>что за нотация?
Это не нотация.
>рекурсия?
Нет.
>метод std не определен
Что ты имеешь ввиду? Это ошибка, которую ты получаешь или что?
>метод std не определен
Уверен?
https://docs.scipy.org/doc/numpy/reference/generated/numpy.std.html
Explicit is better than implicit, говорили они... Special cases aren't special enough to break the rules, говорили они...
Здравствуйте. Сори за возможно тупой вопрос, но как пользоваться стандартной библиотекой? Есть смысл ее учить (я так понял там в районе 400+ модулей)?
Если не планируешь зарабатывать деньги кодингом, то учить смысла нет.
>как пользоваться стандартной библиотекой?
Через import. Да и не только. Когда ты используешь "a b c".split(), это тоже, по сути, функционал стандартной библиотеки.
import math
print(math.sin(0))
import re
print(re.findall("[А-Яа-я]+", "Съешь еще этих мягких французских булок, да выпей чаю"))
>Есть смысл ее учить
Для начала — вопрос: зачем ты планируешь использовать Питон?
Если для работы, то смысл есть. Если для себя — смотри сам. Если ты планируешь использовать Питон для матана — это вообще другой вопрос, и там применяются другие библиотеки.
Я хочу для начала интернет магазинчик небольшой сделать с несколькими разделами на пару десятков позиций. Набить руку. Но хочу написать на питоне с его стандартными библиотеками, без фреймворков. В будущем, конечно, думаю зарабатывать на этом, но пока хочу начать с чего-то не сильно грандиозного, но и не слишком простого. До этого серьезно не кодил, только решал задачки по алгоритмам и немного задач с codewars.
>Но хочу написать на питоне с его стандартными библиотеками, без фреймворков
Не надо, возьми фласк, напиши в нём и та будет достаточно хардкорно, потом почитай исходники фласка как разберешься с апи
Ниасилишь. У тебя пара лет уйдет только на изучение. Тебе необходимо будет реализовать не только витрину магаза, а срм, шаблонизатор, с бд наебаться вдоволь и многое другое.
на либгене, русрекере и флибусте нет.
Что ты подразумеваешь под "изучением"? Разве придумать проект и начать его постепенно реализовывать, параллельно осваивая матчасть это не изучение?
не слушай старого пидораса, только с реальной четкой задачей и можно чему то научится, ибо фрустум поиска снова и снова будет сужатся до хуйня_нейм, а не томика луца, лишь от взгляда на который уже будет плохо
Ога, а потом будет неочевидные места костылить самым идиотским способом и думать, что все делает правильно, пусть хотя бы книжку на 300 страниц прочитает какую-нибудь, прежде чем за фреймворк приниматься
Пиздец, потому что надо было внимательнее читать. Очевидно, потому что эта функция работает не так, как я ожидал. Но самое забавное, что до сегодняшнего момента всё работало как надо и с этой функцией...
Устранение символов из последовательности с обоих концов. То есть он и с конца проверяет наличие символов из последовательности, которую ты указал и удаляет его, тройка у тебя там есть
Ваш pycharm не работает. Пишет Permission denied
грепнуть на самом деле проще было ну да ладно
еще один, да вашу ж мать, почему ни один малолетний долбоеб не вспомнит, что у него в школе информатика не просто так?
>то есть лучше сразу с фреймворка начинать
то есть начни с computer science ебать тебя в рыло, прочти "информатика" Броя, ну хотя бы первый том, все 4 не стоит (хотя он и вправду интересно пишет), начни читать Кнута, попробуй в высшую математику (при бауманке есть отличный магазин учебных материалов. если ты не в москве живешь, ну найди учебку по вышке), перестань учить код, начни учить программирование, все! это все, что вам нужно, школяры, чего вам еще надо? выглядите как долбоебы, ей богу, вам за 60 лет накинули материала, стандартов, инструкций, сиди да обмазывайся знаниями и применяй их же. нет, нам надо на двачике попиздеть "а с чего начать?", "а какой фреймворк стоит учить первым?", "а почему мой код не работает?", дебилы, блять.
ты что, ебанутый?
это учится все от силы за год, если ты учишься.
естественно, если ты по какому-то блядскому часу в день тратишь на чтение книг, попутно наяривая свой пиструн на два монитора, при этом делая домашку, работая в ворде что бы заранее себе резюме харкнуть, то да, так до 25 и просидишь
по сути это ведь набор скриптов которые нужно проиндексировать через distutils.setup и потом просто положить куда надо, верно?
Права доступа для pycharm.sh расширь.
перекат для тех кто не любит жрать говно
перекат для тех кто не любит жрать говно
>>1218866 (OP) (OP)
>>1218866 (OP) (OP)
>>1218866 (OP) (OP)
перекат для тех кто не любит жрать говно
перекат для тех кто не любит жрать говно
перекат для тех кто не любит жрать говно
перекат для тех кто не любит жрать говно
кидай список
сука, кидай список!
Это копия, сохраненная 23 августа 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.