Это копия, сохраненная 11 сентября 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
hui.pidr += 1
По дефолту это заменит пидра единицей, а второе инкрементирует его. Хотелось бы, чтобы первая операция тоже мутировала пидра (допустим, это ndarray, и эта операция должна делать все его элементы единицей).
Для второго мейджик метод определяется в классе пидра (адд), для первого в хуе (сетаттр). Как красиво делаются такие случаи? Чтобы всё в одном классе было.
Ты не понял задачи и водишь меня за нос.
Щитаю, что тред не легетимен. Какая-то мышь душит нашего любимого питона.
Только начал изучать и не могу понять, что не так с синтаксисом...Прошу пока не усложнять дополнительным сахаром, просто сказать, что не так.
http://pastebin.com/K3me6puz
Задание:
Создайте программу-калькулятор, которая поддерживает четыре операции: сложение, вычитание, умножение, деление. Все данные должны вводиться в цикле, пока пользователь не укажет, что хочет завершить выполнение программы. Каждая операция должна быть реализована в виде отдельной функции. Функция деления должна проверять данные на корректность и выдавать сообщение об ошибке в случае попытки деления на ноль.
Правильнее будет вернуть их, а не передавать в аргументы. К тому же не уверен, что параметры передадутся по ссылке, а не по значению.
Поясните за хуй, стоит задрачивать?
Как будто если бы они были, то у питона прям не было бы шансов, и сегодня все только и делают, что жрут кактус.
> и сегодня все только и делают, что жрут кактус
Нет, но есть куда расти, даже рабочего jit-интерпретатора все ещё нет, стыд-позор.
Если ты планируешь делать годные API - да
*имелось ввиду блоком
Пробелами.
таб и шифт-таб попробуй
(да, наговнокодил)
Ссылка на приблуду: http://pastebin.com/HPbnmgZf (введите "p1")
Ссылка на текст: http://pastebin.com/VT1jgnKC
РФ кстати тоже не легитимна.
Есть скрипт, который ищет введенное пользователем слово\начало слово в словаре с 100к слов. Поиск делается тредами, количество которых, указывает юзер при запуске скрипта. Собственно, вопрос: можно ли как-то юзеру вводить диапазон поиска вручную для КАЖДОГО треда?
daemonsCount = int(input("Enter daemons count: "))
daemons = []
for i in range(daemonsCount):
daemon = daemonManager(message, 'dictionary.txt', 0)
daemons.append(daemon)
0 - и есть тот самый диапазон, но он вводится мной в коде, и распространяется на все треды. А нужно, что бы можно было вводить свой диапазон для каждого, а не для всех. Спасибо, если кто поможет.
Словарь отсортировать надо и искать одним тредом с O(log(n)), если он нечасто дополняется.
Это понятно, что можно сделать одним тредом. Но суть скрипта в том, что юзер может сам настраивать колво тредов и диапазоны их работы в словаре. Алсо, словарь уже отсортирован в алфавитном порядке и хранится в списке.
Вообще, я уже сделал эти диапазоны, зря в тред написал, лол. Осталось только залочить треды и разлочить их, когда все аргументы будут переданы. А то я задаю диапазоны для первого и он выполняется перед тем, как я успеваю ввести диапазоны для второго, лол.
Что-то ты какой-то велосипед изобретаешь, походу.
Осилил половину укуса питона и вот тут встрял.
"Если приведённая выше программа у вас не заработает, допишите print(zip_command)
прямо перед вызовом os.system и запустите программу. После этого скопируйте вы-
веденную команду “zip_command” и вставьте её в командную строку, чтобы проверить,
работает ли она корректно сама по себе."
Попробовал, выдало следующее:
zip -qr D:\Backup\20160809180811.zip D:\Test "D:\Test 2"
И ещё один вопрос. Стоит ли ради питона наворачивать Линукс?
>Стоит ли ради питона наворачивать Линукс?
Нет. Но благодаря питону легче обмазываться ёбами вроде beagleboard и Raspberry pi
он как бейсик 30 лет назад
>который ищет введенное пользователем слово\начало слово в словаре с 100к слов
используй структуру данных trie
Не Bite, а Byte. Видимо, надо сделать перерыв.
Есть один скрипт, который принимает два текстовых файла, которые содержат какие-то переменные:
файл1:
переменная = значение
переменная2 = значение
файл2:
переменная = значение2
переменная2 = значение
переменная3 = значение
и ищет между ними различия по приоритету (первый входящий файл будет перезаписывать значения второго) или дополняет первый значениями второго, если их нету в первом. Что-то типа merge.
итог скрипта:
переменная = значение
переменная2 = значение
переменная3 = значение
Всё это делается с помощью библиотеки difflib. Вопрос такой. Как добавлять комментарии в этом коде после выполнения скрипта, если были произведены изменения или добавления?
Например:
переменная = значение # модифицирована
переменная2 = значение # без изменений
переменная3 = значение # добавлена
Сам код:
https://ideone.com/WS5Id4
Есть один скрипт, который принимает два текстовых файла, которые содержат какие-то переменные:
файл1:
переменная = значение
переменная2 = значение
файл2:
переменная = значение2
переменная2 = значение
переменная3 = значение
и ищет между ними различия по приоритету (первый входящий файл будет перезаписывать значения второго) или дополняет первый значениями второго, если их нету в первом. Что-то типа merge.
итог скрипта:
переменная = значение
переменная2 = значение
переменная3 = значение
Всё это делается с помощью библиотеки difflib. Вопрос такой. Как добавлять комментарии в этом коде после выполнения скрипта, если были произведены изменения или добавления?
Например:
переменная = значение # модифицирована
переменная2 = значение # без изменений
переменная3 = значение # добавлена
Сам код:
https://ideone.com/WS5Id4
Читай мануал difflib, чо. Хрен ведь его знает, что и как там делается.
Формаьно тебе просто перед присвоением значения переменной проверить, существует ли она уже, и в зависимости от этого изменить текаст комментария, который по-дефолту "# без изменений".
Вопрос только ещё, куда ты комментарий вставить-то хочешь?
> Вопрос только ещё, куда ты комментарий вставить-то хочешь?
В файл, который получится в итоге со всеми изменениями и добавлениями.
Заебок, няш. А я-то думаю, что мне еще делать в таком случае?
Я прочитал, ёбана, и не могу въехать. У меня уже чердак не варит. За советом и пришел сюда.
3.4 встала
Питаны, есть несколько numpy-array в формате opencv-изображения, нужно запилить массив таких изображений, как правильно это сделать?
Если без numpy-array делать, то было бы по идеи просто
arr=[]
arr.append(img)
Но в numpy метод append работает несколько иначе, надо либо заменить его чем-то, либо как-то правильно подгонять размерности массивов arr и img.
бамп
https://docs.python.org/2/library/difflib.html
>class difflib.Differ
>Each line of a Differ delta begins with a two-letter code:
Похоже тебе на основе этих кодов надо посмотреть какой вывод делать, и в строке 25
print line[1:].rstrip("\n")
приписать этот вывод к line
Дошло. Спасибо.
Решил этим летом освоить питон потому как и на работе может пригодиться и вообще полезное это дело.
Нашел эту тему
http://learnpythonthehardway.org/book/index.html
Однако когда начал углубляться осознал что изучаю питон 2, а сейчас как я понял все уже на питон 3. Вопрос стоит ли заканчивать обучение и насколько сложно будет перейти?
да, я совсем совсем нубас
Я тут только вкатываюсь в Пайтон, хотелось бы и на других компьютерах открывать свои программки и фиксить.
Лол, если они уже в листе то только таким способом, что я указывал. Тебе не нужно весь лист проходить.
Правильнее всего установить интерпритатор на второй комп. Для exe использую pyinstaller, но он собирает экзешники для той архитектуры, которой сам питон.
>на других компьютерах открывать свои программки
И для этого виртуалку? Ты бы не шутил про недавно вошел.
То есть система с предустановленным интерпритатором на твой взгляд лучше интерпритатора? Ты поехавший чтоли?
> альфа
Оно все в альфа версии и уже овердохуя лет, в вряд ли оттуда вылезет, вот в чем проблема.
> PyPy 3.3.5
Отлично, лет через 5ть увидим 3.5
А как треды повысят скорость работы? Тут же чисто процессор. Или ты мультипроцессинг имел в виду? Может, тогда лучше просто количество ядер узнавать и на одно меньше нагружать по-дефолту?
А не проще засунуть все в queue, а пусть потоки сами разбирают очередь?
Дело такое:
собираюсь учить Питон (Первый язык) на ПК, который скоро будет без доступа к Интернету.С литературой определился (Доусон и Лутц).Подскажите какие программы и материалы нужно скачать для изучения Питона 3, пока есть доступ к сети.Если что, у меня Windows.
Заранее спасибо.
pycharm (ide), библиотеки скачай популярные, могут пригодиться, тут я не знаю, какие области тебя интересуют, игры/оконные приложения/анализ данных и тд. Еще пригодятся исходные коды для изучения кода.
[Документацию, IDE, все книги по Питону, которые увидишь, и оффлайн англо-русский словарь. Архив стековерфлоу, опционально архив питонотредов. На первое время должно хватить.631877
Блять, на меня какой-то тупняк напал.
как как - рекурсивно: сплитаешь ключи по двоеточию и создаешь внутри соответствующие дикты, удаляя что использовал, потом рекурсивно применяешь к получившимся диктам
Берешь list(sample_data.keys()), далее для каждого делаешь split(":") и сортируешь
>>817344
Я понял, что нужно засплитать, я понял, что нужна рекурсия, но я уже битый час не могу это оформить...
Вот, погуглил за тебя
http://stackoverflow.com/a/6037657/5201699
https://ideone.com/W44yp9 - вот проверил, рабоатет. Немного изменил, чтобы работало с твоим словарем и для python3
Гугли API Python. Если не знаешь, что такое API, то гугли сначала что такое API. Потом гуглишь vkontakte API и requests и sched для python. Дергаешь энд-поинты или анус себе.
Двач. Здесь все твои друзья.
Что для этого нужно уметь и знать? Пока знаю тока html/css/js (весьма поверхностно, честно говоря, но там вроде всё просто) и Питон, но тоже основы.
rows = [tr for tr in table.find('tbody').find_all('tr') if
'indication_gone' not in tr.attrs['class']]
вот зачем так писать?
сам же через месяц не поймешь, что тут происходит
А я не понял, как убрать indication_gone класс, мне так знакомый питонист подсказал написать...
Программировать без интернета невозможно.
>>817497
А что не так-то? Вполне норм.
>>817579
Хорошими, у тебя не получится. Совсем примитив с двумя летающими и ничего не умеющими коробочками, хватит и минимальных знаний OpenGL уровня "туториал pyglet" и tcp-сервера на asyncio (если не виндоблядь, хотя может и туда уже завезли, не в курсе).
>какими знаниями
Никакими. Бери юнити и все.
>на кону моё очече
Не понимаешь своего везения, просто смазки побольше :3
В чём ваша проблема? Только Metal, только Эппл?
Прысчавые не могут в бажесвеные DirectX
Как на idone запустить код с кириллицей?
#!/usr/bin/python
# -- coding: utf-8 --
#coding=utf-8
Не помогают.
У тебя там в re проблема, он не переваривает эту цириллицу, а если сделать u'', то выдаёт
>(u'http://', u'\xd0', u'\xb4\xd0\xb8\xd0\xb7\xd0\xb0\xd0\xb9\xd0\xbd.\xd1\x80\xd1\x84/\xd0\xba\xd0\xb0\xd0\xba\xd0\xb0\xd1\x8f-\xd1\x82\xd0\xbe-\xd1\x81\xd1\x82\xd1\x80\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x86\xd0\xb0')
Что, в принципе, не плохо, но print почему-то этого не понимает и вообще stdout задним числом ломается (почему предудыщие принты-то не выводятся?).
Шли б вы, короче, все нахуй со своей двойкой. https://ideone.com/AbtQGn
> но print почему-то этого не понимает
В смысле, по отдельности. Кортеж выводит, а элементы кортежа нет.
В настройках стоит напрямую сетевой мост, ЧЯДНТ?
127.1 это локальный ип. В твоем случае ты попадаешь на хост. У самой виртуалки обычно какой-нибудь 10.0.1.2
python manage.py runserver
А как точно узнать этот адрес? В настройках нихуя не написано про айпишник.
Я повесил удаление картинок с диска на сигнал pre_delete, все работает, когда я удаляю пост. Но если я удаляю только картинку и пересохраняю пост, то он естественно pre_delete не вызывается и удаляется только ссылка из БД.
Как мне перехватить удаление ТОЛЬКО картинки при пересохранении поста, чтобы удалить ее с диска? Батарейки не предлагать.
+ js и джанга
Повесить удаление на post_save, может быть?
Или добавить к модели метод для удлаения и вызывать его при каждом save() и delete().
Как здесь http://stackoverflow.com/a/32642471/5201699
>Повесить удаление на post_save, может быть?
Это я понял, но как отловить удаление только картинки?
>Или добавить к модели метод для удлаения и вызывать его при каждом save() и delete().
Как-то костыльно.
pre_save
Хотя лучше раз в сутки запускать таск в селери, который будет удалять неиспользуемые картинки.
>Это я понял, но как отловить удаление только картинки?
https://docs.djangoproject.com/en/dev/ref/signals/#django.db.models.signals.post_save
Обрати внимание на update_fields. Он содрежит поля, которые были изменены. Проверяй, если оно там и действуй.
да ты по сравнению со мной: http://pastebin.com/u/Oleg_Kornilov
просто бог! пиши если чо
https://vk.com/id307429755
в сmd сперва запусти команду chcp 65001
Сначала в какую-то маленькую контору в дс2. Год проработал за 40к, потом ушел на большую галеру за 80.
Не первую попал, выполнив тестовое. На второе по собеаедованию и тестовому. Все стандартно в общем-то. Было еще три предложения, так что анон, питонисты нужны.
не хочу на галеру
Курлом же можно будет отправить, нет?
Если на уровне функционала не нужно - то правь модели и существующие вьюшки-шаблоны-формы ибо а нахуй они теперь тебе.
Если для конкретных типов записей - впиздячь в модель чекбокс isvisible и перехуяривай вьюшки-шаблоны
>Сначала в какую-то маленькую контору в дс2. Год проработал за 40к
Это на позиции джуниора? Сколько было опыта до этого? Что пишешь на питоне, веб?
Так-то норм выглядит, мне нравится.
Мне вообще похуй, что там на выхлопе в визуальном плане (нужны кнопочки и выхлоп, чтобы руками не вводить данные в сосноли). Главное, чтобы работал стабильно и без кучи багов. Вот думаю, стоит ли тратить на него время или есть более современные решения?
Там же с какой-то версии есть нормально выглядящий гуй.
Всё остальное - то же самое с разной степенью потребностью дополнительно запердоливаться
Алсоу ткинтер туп как шлакоблок, там нехуй вникать
Есть код типа:
if PY2:
__python2_code
elif PY3:
__python3_code
но при запуске на третьем питоне вылетает SyntaxError в блоке "python2_code", почему?, ведь интерпретатор не должен выполнять этот код
Полно контор было, несколько заданий присылали. В которую взяли было легкое задание. На фласке по одному юрл и пост запросу сохранять данные из поста, а потом с помощью селери их обрабатывать. Ну это утрировано, но суть такая. Другой конторы было - сделать круд на PyQt4.
Хм. Завтра кстати могу стырить их статью на вики, в которой все вопросы для собеседования и все задания. Надо?
>>818082
Конечно на джуна. У меня было 1.5 года фейкового опыта в мамкиной конторе. Но я сделал прогу для этой конторы и помогал им чуть-чуть. И у меня был непустой гитхаб. Ну и тестовое нормально сделал и поболтал по скайпу. Мне кажется от умения говорить немало зависит исход собеседования. Где-то пошутить, где-то быстро что-то найти для ответа. Но я всегда, кстати, старался говорить правду. Когда чего-то не знал - так и говорил.
> И у меня был непустой гитхаб
Какого рода проекты на гитхабе были? Парсер, краулер, сайтик или что-то ещё? Тоже думаю Гитхаб наполнить, только вот вряд ли работодателю будет интересно видеть там парсер ексхентая.
Десктоп приложение на PyQt5.
Сайт для сбора и отображения вебмок.
Заготовка своего сайта.
Одно дополнение для браузера.
И по мелочи всякое.
Насчет парсера - вряд ли они поймут что это парсер именно ексхентая. Хотя если обратят внимание, то будет неловко наверно.
http://www.linux.org.ru/news/opensource/12797696
Ошибка в том что в функции установки значений вроде как не видны переменные значений 1 и 2. Убери функцию присвоить значение вообще, и запиши ее до ифоф. Тоесть вот:
While True:
..value1 = 0; value2 = 0
..Var = input()
..value1 = input()
..value2 = input()
..If var == '1':
....sum(value1,value2)
..Else:
....det(value1,value2)
Сука, нихуя вы тут не знаете, только на себя надейся. В итоге надо было пробить глобальный айпишник по ifconfig, вписать его в параметры рана и по этому же айпишнику заходить с хоста.
виртуалбокс - штука странная и ебанутая
Там, в настройках виртуального адаптера можно настроить параметры сети или таки вырубить её нахуй
Через виртуальный адаптер и нат не работает нихуя, только через мост все завелось.
Раньше было так, что и мост не работал, если физический адаптер был отключен или не активен. Я тогда один в чистом поле был, ни вайфая, ни каких-либо интернетов не было. Неприятная неожиданность. Хз как сейчас.
ну блять короче я видимо тупой пиздец, или склад ума там какойто не такой блять. хуй его знает, есть две книжки, куча видео в сети, казалось бы дрочи и понимай, но нет блять.
чую без гуру не понять больше чем хело ворд и рассылка спама.
это надо с детства дрочить и иметь прыщи и сальную голову?
а как надо? я думаю нужен талант к математике и особое мышление
Как же заебали такие как ты.
Просто берешь и делаешь. Это не сложнее кубиков лего, что ты складывал совсем недавно, просто они теперь в виде слов, а не пластиковой хуеты.
Никакого особого мышления не нужно, просто садись и делай, потом читай теорию, после теории, то что ты делал без нее покажется пиздетски простым. Повторять до просветления.
спасибо, дражайший! мне думается так: вопросы надо решать по мере их поступления. щас вопрос стоит о том, когда нужен класс, области видимости функций и импорт.
>Как же заебали такие как ты.
мы сами себя заебали, такие как мы
Около 2х недель я изучал питон по книжкам, и немного освоился с пакетами, модулями и виртуаленвами. Решил что пора переходить к цели изучения - к вебу.
Я написал небольшой скрипт пикрелейтед, который GET-реквестом собирает рандомные слова q раз, после чего переводит их через API переводчика (взял готовый питоновый вроппер для Я.Апи).
Теперь я хочу перенести все это дело в веб. Пользователь должен через инпут-форму задавать желаемое кол-во слов, после чего шаблонизатор должен отдать .html с вставленным из переменных результатом.
Какой веб-фреймворк окажется здесь наиболее уместным и простым и по каким гайдам его учить? Django я уже пощупал по DjangoGirls, но мне он показался крупноватым и сложным с первого приближения. Flask? Что-то еще?
http://pastebin.com/PKvSWu8Q
я бы выбрал sqlite и postgresql, в последнем и модная nosql-функциональность есть
Я не писал что мне что-то не угодило. Мне нужен совет касаемо наиболее простого фреймворка способного выполнить указанную задачу и наиболее удачные по нему гайды.
Если ты можешь что-то подсказать по Flask, мне это очень пригодится.
>ользователь должен через инпут-форму задавать желаемое кол-во слов, после чего шаблонизатор должен отдать .html с вставленным из переменных результатом.
flask
wtforms для формы
jinja2 для шаблонов
Круто, спасибо.
Может быть ты знаешь какие-нибудь гайды или готовые проекты из открытых источников, которые показывали бы как все это работает в связке?
На данном этапе я лишь абстракто представляю как переменные внутри скрипта будут взаимодействовать с фреймворком и пользователем, это для меня самый непонятный момент сейчас.
>>818425
Спасибо! Иначе и быть не может :)
Только задрачивая поиск.
Найти то, что ты искал, да еще написанное не упоротым индусом родом из китая сложно, но возможно.
З.Ы. желательно что-то приближенное к области big data и data scince
Такой попаболи у меня давно не было.
50-70к для моего зажопинска солидно.
При этом эта сволочь бухает как будто его печень как у Россомахи.
это всего штука баксов анон
это всего 50 часов на самом деле 60 на одеске в месяц с рейтом 20 баксов в час
>это всего штука баксов анон
>это всего 50 часов на одеске в месяц с рейтом 20 баксов в час
фишка в том, что для этого он джва года пробухал в ПТУ с минимальными умственными усилиями, да и сейчас не напрягает череп.
фишка в том, что фрилансер три года просидел за компом, да и сейчас не напрягает череп
Ты хуйню сказал. Учти, что сварщик/токарь постоянную работу имеет.
З.Ы. желательно что-то приближенное к области big data и data scince
Curses
внезапно, после допилки проекта часто идет его сопровождение (добавить то, исправить сё)
>pandas
>numpy
>scipy
спс, но я имел ввиду задачки какие-то и тому подобное где мне подобные библиотеки нужно было бы использовать
Пацаны, ребята, подкиньте задач для практике начинающему погромизду. Ну и чонибудь по алгоритмизации покурить
Python coockbook вроде ничо так
не, просто на днях увидел, показалось смешным
> Django я уже пощупал по DjangoGirls
Норм сайт для изучения? Сейчас примерно на том же этапе, что и ты.
Фрилансер - кот в мешке. Насколько он годен и адекватен познаётся заказчиком за его же деньги.
Скелетик под ридж. Каждая косточка классом.
Если тебе нужно развернуть кастомный блог на коленке - норм. Лично я не нашел для себя полезным его, ибо пресс Х ту вин. По сути ничего не разъяснено, просто даны готовые паттерны. Особенно касаемо моделей, мигрэйшенсов БД. Мне, как новичку, немного прояснилась концепция MVC.
Вообще, там на 30 минут чтения, если брать чисто часть по джанго, так что прочти.
Окей, щас навернём. А то уже видел как-то курсы для девушек. Много часов/страниц воды и "х = 1+1" в итоге.
Тебе же надо откуда-то "запитывать" nginx, либо из TCP порта, либо из сокет файла. Как ты будешь это делать без uwsgi, который как раз это и дает? Чисто в теории можно python manage.py runserver 8081 2>&1 & и натравить реверс прокси нгинкса на 8081 порт. Но это маразм. Если у тебя возникли сложности с uwsgi - поставь gunicorn и проксируй к нему.
Ну например bottle под paste у меня работал без uwsgi. За gunicorn спасибо, сейчас почитаю.
"DJANGO ПОДРОБНОЕ РУКОВОДСТВО" Головатый
ОНА СТАРАЯ КАК СЕМНАДЦАТИЛЕТНЯЯ КОЗОЧКА, ЗАТО ВСЁ ПОЯСНЕНО НА ПРОТИВОПОСТАВЛЕНИИ АНАЛОГИЧНОМУ ПО ФУНКЦИОНАЛУ ПИТОН КОДУ, от создателя самого джанго, и с учётом обратной совместимости в рамках мажорных версий 1.ххх 2.ууу все примеры почти пашут
Читаете её, читаете Django by Example шоб забыть старые подходы и узнать актуальные а потом смотрите на ДЖАНГО ДЕВОЧЕК как на отрыжку касатки и идёте хуярить всё свое рест-солар-раббитэмкю-целлери-веб3.0 говно
От души
тебе по любому нужен будет wsgi-Сервер, кроме nginx
wsgi - это интерфейс между Http и питоноструктурами
Некоторые тестовые по питончику.
http://rgho.st/8ZhwVGBpj
http://rgho.st/8V4sxhy9k
http://rgho.st/875hpy7pD
> Write down a Parametric Singleton using metaclasses
ебануться, пиздец просто, нахуй это вообще нужно
Ну очевидно найти в строке все целые числа (если они есть) и добавить их в список
1) произвольная строка же 2) нужен однострочник
это вообще возможно за менее чем 80 символов в одну строку?
Я думаю, это не на джуна. На миддла скорее.
Работаю в неплохом месте при этом.
это на джуниора задания?
>api/v1/model/{id}/child_model
выдавались все объекты из child_model, у которых есть внешний ключ на model? Например Все книжки одного автора.
>api/v1/author/100/books
Нет бы самому написать класс для рест апи и управлять своим приложением. Нет, лучше скачаю ненужный плагин и буду жрать говно.
Тут такое дело. Написал я скриптик один, открываю его через SSH через Pytty.
Когда ввожу длинные сообщения (символов на 40), питон-3-интерпретатор ругается типа:
Traceback (most recent call last):
File "123.py", line 2, in <module>
print(input("Blah-blah"))
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 40: invalid continuation byte
Сам файл сохранен в UTF-8, инфа 100%.
Бочку делал.
Как починить?
>UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 40: invalid continuation byte
>invalid continuation byte
>continuation
Сап, питоны. Работаю в сфере видеонаблюдения, делаю серверные программы на python+gstreamer+opencv. Недавно сделал rtsp - http прокси, который забирает видео с камер и отдает в mpegts через basehttpserver. В последнее время озаботился производительностью решения: каждый поток для клиента это python thread средствами ThreadedMixIn и бесконечным чтением из сокета gstreamer. Естественно GIL в таком раскладе не дремлет. Пробовал использовать ForkingMixIn, работает как говно. Попробовал tornado, но оно затыкается на единственном потоке с камеры ( по сути это блокирующая операция). Что посоветуете в данном вопросе?
Если используешь ViewSets, то возможно тебе поможет это
http://www.django-rest-framework.org/api-guide/viewsets/#marking-extra-actions-for-routing Тебе нужен @detail_route
Еще взгляни на filtering http://www.django-rest-framework.org/api-guide/filtering/
Наверное, можно сделать что-то типа:
>api/v1/books?author=100
>>> x = [[]]*3
>>> x[0].append('a')
>>> x
[['a'], ['a'], ['a']]
Почему 'a' добавляется ко всем элементам?
потому что выделяется память один раз, а ссылки копируются
Он рандомно валится. Но 100% валится, если в input подать строку, заканчивающуюся на точку.
Тысяча чертей! Я вчера умудрился не заметить этот пост.
Это прямо то что нужно, степ бай степ, спасибо!
>tornado
разве это не предшедственник бажественого asyncio?
https://www.youtube.com/watch?v=KaHHQkT3nHI
Спасибо, анон
ну для начала надо использовать регэкспы
Годно, спасибо.
убери print в сосноль и пиши в файлик
Телепаты заняты, они еще расшивровывают клиентское "сделай заебись"
Изучи, что такое built-in functions
> не нужно вызывать через def
Хуету написал.
Ее не нужно определять, она уже запилена. Как и несколько других https://docs.python.org/3/library/functions.html
Ахах.
В общем, фласк мне уже начинает нравиться, ибо никаких злоебливых моделей. Декоратор объявил и пиши себе ниже код, в простейшем виде.
Вывести аргументы на страницу вышло собственно сразу. Сейчас хочу на коленке сверстать шаблон на skeleton.css или страпе и немного усложнить задачу чтоб были столбцы с переводами и вложенность.
Дальше планирую разбираться с ретривом данных от пользователя через инпуты-сабмиты. Тут пока голяк.
> built-in functions
Вроде понял, эта билт-ин функции уже где-то в глубинах программы написаны, и мы к ним просто сразу обращаемся, так 7
А, забыл добавить, может кто-то знает публичное апи для моей тестовой хуйни: нужно чтоб выдавало json с глубокой вложенностью, чтоб сериализовать учиться, и параллельно учиться выводить это в бутстрап список на фронтенде. На содержание данных поебать.
>>818974
А вообще все так плохо начинали учить языки или я один у мамы молодец ? Мне нужно за несколько месяцев выучить питон до уровня решения олимпиадных задачек 11 класса и на меня нередко накатывает отчаяние.
Сейчас на код академии курс прохожу, полгода назад прочитал книгу "укус питона" и прошел курсик на телефоне забыл название (Из всего этого я плоховато понял ООП), потом забыл про питон на полгода, сейчас вот типа возвращаюсь.
Элементы в списке у тебя - ссылки на словари. Не копии.
В районе 95-97 года я в школе первый раз сел за пекарню и половину урока не мог понять как пользоваться мышкой.
А вот насчет программирования не помню.
Я год читал книжку и только в конце него смог сесть и написать разную НЕХ. Но я никуда не торопился и не шел дальше, пока все не пойму. Больше 15 страниц за день осиливать не удавалось.
> В районе 95-97 года я в школе первый раз сел за пекарню и половину урока не мог понять как пользоваться мышкой.
Ну то были 90-е, сейчас тоже чел сложно поймет, как пользоваться какой-нибудь йобой
>>818986
Мне укус питона очень коротким показался, я тоже очень медленно читал, потому что читал в школе на уроках
А я читал Лутца и охуевал от толщины книги и обилия примеров со всякими штуками, которых я не понимал.
>>819029
Начал на чекио решать, но понял, что всё забыл, поэтому щас пройду код академию и там посмотрим
я в тебя верю, анончик, успехов!
и да, кроме синтаксиса сразу изучи стандартную библиотеку, очень много велосипедов можно сделать по человечески
>стандартную библиотеку
точнее, те ее части, которые тебе понадобятся для задачек (вангую string, collections, functools, array, bisect, math, random, heapq)
Ну фласт далеко не так хорош, как тебе кажется. Пока ты не ушел дальше типичного mvc, то она даёт огромное удобство, да. А если захочется прикрутить например xml-rpc/асинхронный сервер/динамическую генерацию статики, то уже придется ковырять внутренности сильно.
Хз, я начинал с алгоритмов. Паскаль после такого очень бодро зашел. Потом была книжка Структуры данных и алгоритмы на Java Гудрича. Через месяц уже спокойно пилил хелло ворлды всякие на java for fun. Но это было году в 2006, тогда еще и интернета у меня не было.
Я пока на многое и не претендую. По крайней мере, начать с ним оказалось возможно. Жижа пока тоже дается норм, правда никак не могу вставить статики своих бутстрапов, только через модуль flask_bootstrap выходит, на кастомный выдает 404. Подозреваю, для всей этой хуйни нужно присобачивать маршруты или выдавать их через wsgi сервер.
Статику лучше вообще отдавать не приложением, а прокси-сервером. Nginx там, httpd, gin, кому что больше нравится.
Вот как из этой ебанутой строки номальному человеку догадаться, что .precision - не свойство обхекта и вообще слово precision е нужно, а только точка нужна.
в питоне документация встроенная в сами функции.
ты пишешь функцию - и первые три строчки ''' .... ''' хелп что оно такое есть и нахуя
узнавать по
> print foo.__doc__
алсоу не понял что ты не понял в той хуйне что написал (кстати она не питоновская, ::= это смайлик паучка а не часть синтаксиса питона
Даже с такой не слишком привычной нотацией это во много раз лучше, чем документация к Делфи. Вот у что заставляет меня содрогаться в ужасе.
>в питоне документация встроенная в сами функции.
Как-то так это выглядит у питона.
format(value[, format_spec]) -> string
Returns value.__format__(format_spec)
format_spec defaults to ""
Просто сравните с документацией здорового человека. Представьте, что все эти страницы существуют в форме единого chm файла с безупречно работающим поиском http://php.net/manual/en/function.sprintf.php
А вообще, если нужно что-то быстро поглядеть - привыкай читать исходники. В том же pycharm переход к фунции либы делается одним кликом.
> Представьте, что все эти страницы существуют в форме единого chm файла с безупречно работающим
Ты не поверишь...
Ты конечно мне не поверишь, но ни один знакомый из перекатившихся в питон с других языков и проникшийся документацией питона не скучает по не питоновской документации.
Просто попробуй. Хватит тянуть за шкирку старую привычку, она бесполезна в этой ситуации. А то будешь как те уебки что vim под notepad++ комбинации настраивают
Я знаю, что chm по питону есть, но в нем поиск говно и содержание говно.
>pycharm
Кстати о сабже. В бесплатной версии чарма какие ограничения? Дебаггер работает? Я остановил выбор на LiClipse (eclipse+plugin), потому что смутила коммерческая составляющая чарма.
Бро, тебе шашечку или ехать?
Все пользуются пичармом потому что он охуительный и аналогов не имеет в принципе
Нет денег - спизди ключ, найдёшь на 1-3 строке гугла
Вот еще один пример, как нельзя писать нотации:
>In fact, many authors have introduced some slight extensions of BNF for the ease of use:
в шапке пр'а есть книжечки же
Раз зашла речь о pycharm, то я тоже спрошу:
только у меня он тормозит? Не, даже не так ТОРМОЗИТ.
Обычный ноут - рабочая лошадка двухлетней давности, которая всегда с собой. Все работает нормально, кроме пичарма.
Или просто его нужно как-то хитровыебанно настроить?
вин7
и у меня иногда притормаживает
Наверное, если отключить проверку/подсветку синтаксиса, полегчает.
IDLE, pyScripter работают нормально, ничего не лагает.
Тормоза выглядят так, как будто fps проседает. При любом активном действии вроде открытия выпадающего меню, наведения на кнопки и тд.
Никаких ограничений, просто в платной версиии больше фич, вроде поддержки ангулара, css, scss, coffeescript и прочего вебговна, шаблонизатора django, jinja2 и в таком духе.
>>819272
Хз, у меня на openjdk не тормозит, 8гб рам, правда Linux. Мб в винде с этим делом хуже, понятия не имею.
>только у меня он тормозит? Не, даже не так ТОРМОЗИТ.
Только что поставил по совету выше. Действительно люто тормозная зуета после эклипса. И чем он лучше? Все та же хуета: подсветка дебаггер, подсказка кода (многим мешает).
хочу, чтобы шаблон вводил пользователь, то есть есть изначальный текст
text="some text"
reg=input() или reg=str(input()) #здесь ввожу например r'\w+'
yoba=re.compile(reg)
print (yoba.findall(text))
Но выводится только пустой список []
Как я понял, когда к reg присваевается строка r'\w+', то она превращается в "r'\w+'"
Что-то вроде того, хз как правильно тут со строкой работать
питаноны, выручайте нуба
>Хз, у меня на openjdk не тормозит, 8гб рам, правда Linux
На виртуалке
i5-4000Ghz/ 3GB / Linux ubuntu/zorinOS
Oracle Java 8
Pycharm 5 pro ТОМРОЗИТ в сравнении с LiClipse
>питаноны, выручайте нуба
Могу выручить, посоветовав перейти на php. В нем таких проблем не было, перловый regex благодаря его хелпу выучил.
уябывай в свой пыхотред, тут тебе не там
сам решил проблему, вдруг кому надо
при вводе
reg=input()
нужно ввести w+ без кавычек, одинарные сами поставятся, затем ввести
yoba=re.compile('\\'+reg)
дальше все будет работать
Что за черную магию ты там творил, что у тебя такое не работало?
> Дальше планирую разбираться с ретривом данных от пользователя через инпуты-сабмиты. Тут пока голяк.
Там и начнется пиздец на самом деле. Будешь искать неочевидные гайды на прикрутку джаваскрипта.
вот поэтому питон очень плох как первый язык программирования - новичички совсем не понимают, как работать с памятью и пишут полнейшую хуету
кидай свой скриптик сюда, будем оптимизировать
Не ссы, питон сам ограничит. При чем так что еще и мало будет.
У самого припекает от этой нотации. Видимо я просто неосилятор. Хотя я ещё и тупой мудак.
Какие охуенные доки у пыхи всё-таки. Но ты просто гугли нужное, стак помогает лучше доков. Хотя и доки нормальные, как освоишься.
Ограничить как в jvm нельзя. Можно на уровне ос дать потолок виртуальной памяти и все.
Декомпилировал тут один .pyc файл в .py, а там две строчки, на которые ругается интерпретатор (http://www.pythontutor.com/live.html#mode=edit):
inp += ''.join(lambda .0: continue(range(64 - len(inp) % 64)))
ans = lambda .0: continue[ '' for i in .0 ](range(len(inp)))
SyntaxError: invalid syntax (<string>, line 137)
Причем, .pyc работает и не шуршит. В чем проблема то, подскажите?
>lambda .0: continue[ '' for i in .0 ](range(len(inp)))
Бессмыслица какая-то. Ты дал ссылку на редактор какой-то. Там внизу можно сгенерировать пермантент линк, если что.
Так записывай нужные подстроки в другой файл и не храни их все в памяти, хули ты как даун-то какие-то костыли придумываешь.
....super(ClassName, self).__init__()
Поясните смысл этой конструкции в классе.
вызов конструктора базового класса
В общем, хочу учить питон. До этого немного ебался в php.
Поясните за установку - кроме самого питона нужно какой-то локальный сервер ставить? Может что-то еще?
> myvar = None
> myvar.__doc__ = 'myvar description'
> AttributeError: 'NoneType' object attribute '__doc__' is read-only
Почему? Как присвоить описание переменной?
А что так сложно то?
Есть один текстовый файл со строками. Как вывести всю строку, в которой содержится заданная подстрока?
lines = open(r'path\to\file', encoding='utf-8').readlines()
for line in lines:
if substr in line:
print(line)
Те, что спрашивают такое 20 к 1, что не могут сделать cat и grep.
Могу, но зачем? Это же питоно-тред.
Всем пульмонологии семиклассницы пляж дупло (не уверен что это законно).
В общем, продолжаю смотреть Oreilly, точнее заканчиваю. Но пока своими ручками написал немного (принципиально стараюсь не копировать). Сейчас инпут работает, но принимает все что не лень. Следующий этап - валидация через flask-wtf.
Прикрутил git, и даже запушил на всем известный сервис. Ведь с такой огромной кодовой базой мне не совладать, лол.
>>819211
Можешь дать какие-нибудь ключевики чтоб покурить?
with open ('xDDDD.txt',encoding='utf-8') as f:
____for line in f:
________if 'BENISX---DDDD' in line:
____________print(line)
так бидониджнее))
Как-то ебался с трудновылавливаемым багом в with, теперь я этой конструкции не доверяю.
Год работал на Django, но у нас свой копропротивный фреймворк поверх джанги, в итоге я более-менее тесно работал только с ORM, да и то из 1.3.
Меня эти вопросы доебали уже. Это программирование, сука? Пиши свои круды на джанго, блядь! Поди еще sicp прочитали. Бляди! Суки, мудачье!
Алгоритмы Кормена и первый том Кнута (его только на треть осилил в детстве, слишом много было сложной математики) ну и Гудрич упомянутый.
>>819724
>Можешь дать какие-нибудь ключевики чтоб покурить?
А что там курить? Тут логика чистая.
Зачем отдавать статику медленным динамически типизированным языком?
It depends, все что угодно. По питону могут спрашивать типы данных и их работу, ООП (одного анона даже про MRO спрашивали), генераторы. В принципе даже джуна могут спросить, как работает meta и зачем оно нужно. По джанге - кроме ORM, CBV, middleware, signals, content types, context processors, какими библиотеками пользовался. Но тут, опять же, даже джуна могут спросить внезапную хуйню, just for lulz. SQL и индексы, я надеюсь, ты знаешь. Ну и всякая общая хрень - гит флоу, CI, тесты.
А зачем тебе идти на джуна, если ты уже проработал год с django, хоть и легаси? Доучись сам до новой версии и иди на мида/сениора/соло.
>Алгоритмы Кормена и первый том Кнута (его только на треть осилил в детстве, слишом много было сложной математики) ну и Гудрич упомянутый.
Пойду обмажусь, а то у меня ступор какой-то.
> В принципе даже джуна могут спросить, как работает meta и зачем оно нужно.
Из такой конторы надо сразу уходить и никогда про неё не вспоминать?
Не, я про то, что метаклассы слишком адвансед хуйня - про неё нужно разве что слышать где-то что-то.
Питон в вебе используется только с фреймворками?
>>819588
>>819711
Мне для веба. Так кроме самого питона nginx+uwsgi поставить? Больше ничего?
"Встроенный" сервак почти всегда основан на BaseHTTPServer\SimpleHTTPServer или чем-то подобном.
>только с фреймворками
Ну хочешь сам все напиши. Кстати, советую так хотя бы раз сделать, работа фреймворков станет намного понятнее.
Слушай, я тебя не понимаю. Я никогда не работал с питоном.
Вот и спрашиваю, что мне нужно установить, чтобы можно было работать с вебом, ну собственно и учить питон.
Сервер встроен в сам питон или в фреймворки? Я, например, слышал только об одном фреймворке - джанго. Вот и спрашиваю.
И про "хочешь сам напиши" вообще не понял. Сервак сам напиши или как, лол?
тяжело наверное быть пхп макакой
Ну, чтобы учить питон, достаточно установить питон. Батарейки прилагаются.
>сервер встроен
Тот >>819515 - кун несколькими постами выше говорил о dev-сервере, а он почти всегда написан на BaseHTTPServer\SimpleHTTPServer или подобном.
Для обучения вполне хватит.
>И про "хочешь сам напиши" вообще не понял. Сервак сам напиши или как, лол?
Я как-то навелосипедил аналог Flask. Кривовато, медленно, страшно читать, но как рабоате flask стало понятнее.
http://blog.jupyter.org/2016/07/14/jupyter-lab-alpha/
Братан, если тебе нужна просто ИДЕ с встроенной питон соснолью для быстрых тестов - попробуй Exedore. Она условно-бесплатная и нативная под мак.
Какие преимущества перед Жупайтером?
Я как раскурил, теперь чаще из-под него питонирую. А уж прототипировать что-то сперва на нём, чтобы потом переложить на более крупный скрипт - вообще песня. Хотя он не под всё подходит, разумеется. Жаль, конечно, что возможности редактирования текста оставляют желать лучшего.
>Жаль, конечно, что возможности редактирования текста оставляют желать лучшего
Что он тогда вообще дает? выглядит как ничего.
Чтобы инит родителя тоже отработал. Ты обычно хочешь именно этого, сучка.
>>819716>>819720
Вопрос по питону в питонотреде. Ещё и выёбываются, пидорахи.
>>819732
Ты бы ещё циклу for не доверял, и использовал всегда while с каунтером. Есть такие, рили. Хуй знает, откуда они лезут.
>>819812
Зря. Страшно от сишки, питончик очень любит тебя.
>>819845
Двачую вопрос. Что вообще входит в рекомендуемый минимум для парсинга какого-нибудь сервиса? Юзерагент, прокси, куки какие-то, ещё что-то. Походу тут столько специфики, что нужна отдельная профессия - выдиральщик контента.
Запоминает энвайронмент. Можно разделить скрипт на куски и исполнять хули ты исполняешь азаза отдельно. Например, ты хочешь что-то сделать, но пока точно не знаешь, что именно тебе надо и как ты будешь это делать. Импортируешь какие-то модули, начинаешь пробовать. Когда тебя устраивают полученные данные - делаешь следующий целл и работаешь с теми данными без нужды снова и снова их вычислять (читать из кэша). Структура целлов хороша для такого "питонирования". В общем, тут надо попотеть и осилить. Как осилишь, поймёшь сам, почему Жупайтер охуенен.
>отдельная профессия - выдиральщик контента.
так уже давно и есть
пользуйте с тем чуваком selenium + phanom js - это такой невидимый хромиум. Рендеринг всего-всего есть, а ты его не видишь. Юзерагент и вообще что-угодно присущее хромиуму - есть, а что ты на самом деле это говно не смотришь никто никогда не узнает.
соответсвенно думаю авито парсить будет проще.
Что до проксей - мне кажется они просто в каком-то секюрити бан-листе авито
Спасибо, это питон же всё?
>>819961
Это скорее как очень продвинутый пайтон шелл. Тут надо самому распробовать, чтобы понять юзкейсы. Например, ты не сможешь открыть какой-нибудь сорс Жупайтером так, чтобы извлечь из этого какую-то особую выгоду. Но если решил спарсить какой-нибудь сайт и построить графики, то через него это делать чрезвычайно удобно. Итерироваться через код и всё такое. Я всю автоматизацию через него делаю.
Ну типа того, обёрточка на питоне есть
> Сервак сам напиши или как, лол?
Там ничего сложного на самом деле. Для простого сервака достаточно реализовать взаимодействие по интерфейсу uwsgi
Breakpoint'ы это метки, которые ты ставишь для строчек кода при отладке, чтобы исполнение программы прерывалось в этом месте. Это не имеет отношения к jupyter notebook'ам.
Вот пример ноутбука:
http://nbviewer.jupyter.org/url/norvig.com/ipython/Probability.ipynb
Блоки или ячейки кода можно исполнять получая выхлоп кода, выхлопы помечены как Out[1].
На выходе может быть как текст, так и графики или картинки, из-за чего такие блокноты популярны для всякого дата саенс, тащем-то идея откуда-то оттуда и пришла, из Mathematica кажется позаимствовали.
Как выше сказали, это продвинутый шелл для различных языков программирования, не только для питона.
И отсасывать когда надо сто потоков. Оверхед ваших селениумов больше жопы твоей мамаши. Надеюсь решить вопрос с помощью сокс прокси.
В хроме отключил брекпоинты и вроде пошло. Но да, там пиздец, еще проиграл с номера телефона в виде пикчи басе64.
Можно попробовать мобильное приложение потискать, выдрать токен и пихать в апи
И мобильную версию тоже, вполне возможно что она будет отличаться от полной
Тебе нужно учить игровые движки Unreal/Unity
у сварщиков проблемы с глазами. гугли. это вредная работа.
Мимо надсмотрщик над пролетариями вкатывается:
говно у них а не работа. И объёбывают их по-чёрному. И карьерного роста не может быть в принципе.
Лучше уж манагером быть, с KPI и соцпакетом.
>Мне надо просто чтобы скрипт отваливался по достижении меморилимита.
Сделай отдельный тред:
while True:
if resource.getrusage(resource.RUSAGE_SELF).ru_maxrss > MEMLIMIT:
os.sytem('kill %d' % os.getpid())
time.sleep(1)
например есть
for i in c:
c.pop
Но ничего не удаляет.
это платина какая-то, не надо так делать
делай так
spisoque_dva = [predmet for predmet in spisoque if uslovie(predmet)]
После 3 недель с питоном перекатываюсь бажественый c#, ибо не доставляет.
да с итератором у меня получилось, а хотелось именно в таком цикле. Это выходит говнокод и так делать вобще не стоит никогда?
Есть 3 способа:
1. Не изменять список в цикле.
2. Идти с конца списка.
3. Вместо удаления из списка, ты создаёшь новый список с только нужными.
4. Если элементы уникальны, то можно выписать элеметы на удаление, а потом во втором лупе их .remove()'нуть.
5. Итерироваться по копии списка(for i in c[:]: c.pop())
{{{{{{{{{
ветер в сраку
так, на будущее: тебя никто не ограничивает выучить столько языков, сколько пожелаешь - все они просто инструменты под конкретные задачи.
Перекатываюсь в делфи %7%
Niet, на пайтоне/рубях/ноде/го/скале мало работы по сравнению с похапэ, шарпом и явой. {
....def __init__(self):
........self.__value = 1
....def getvalue(self):
........return self.__value
class B(A):
....def __init__(self):
........A.__init__(self)
........self.__value = 2
b = B()
print (b.getvalue() == b.__value)
Как это чинится?
dir(b)
['_A__value', '_B__value', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'getvalue']
>'_B__value'
Магия такая магия
Шутишь, небось? на ноде точно есть работа, руби отмирает, про го и скалу не скажу.
Да, но именно в help так описывается. Вот не понимаю, что это значит.
1. Слеш "переноса строки" в другую сторону.
2. При объявлении аргументов функции можно переносить без слеша, скобки есть.
Видимо это просто последовательные аргументы.
Слэш обозначает окончание позиционных аргументов. То есть, все, что до него - позиционные аргументы.
Но в __init__ на >>820286 пике слэш стоит и перед args тоже. В args входят позиционные аргументы.
выбор из двух и более кандидатов же
>Это выходит говнокод и так делать вобще не стоит никогда?
да и да
это не будет работать так, как ты хочешь
ты в цикле укорачиваешь массив, и поэтому индексы сбиваются
>и так делать вобще не стоит никогда?
наверное, можно, если ты точно знаешь что, как, зачем и почему получается
но в общем случае - нет, не надо так делоть
в основном, наверное, да
плюс всякие парсинги (за меньше денег) и машин лернинг (за больше денег)
Да, верно. Я погуглил, чтобы уточнить. То, что до слэша - positional-only parameters.
https://www.python.org/dev/peps/pep-0457/
https://docs.python.org/3/glossary.html#term-parameter
>>820304
Ладно.
Обучение питону идет неплохо, но есть несколько вопросов.
Никак не могу понять когда в классе используется self. с переменными, листами итд.
И во вторых мне надо будет использовать питон для статистического анализа, что надо учить после того как закончу с курсом питона?
Когда ты пишешь self.value в коде класса, ты изменяешь ClassName.value, то есть ты просто изменяешь параметр класса. Если внутри класса ты не добавляешь self к переменной, то это просто локальная переменная.
Как-то так.
Ты еще стандартные функции вроде replace предложи уебок
beautifulsoup устарел.
К тому же совсем недавно один анон отсюда жаловался, что не смог установить его на python3
>>820432
гугли lxml xpath, css selector
Вот тут еще посмотри https://habrahabr.ru/post/220125/
>где можно почитать про парсинг html-страниц с помощью lxml
гугли xpath
короче, из мешанины тегов создается дерево, при помощи xpath-выражений можно по нему перемещаться, выбирать его узлы (т.е. теги) и их атрибуты
О, спасибо.
>beautifulsoup устарел
>Beautiful Soup 4.5.1 (August 2, 2016)
>К тому же совсем недавно один анон отсюда жаловался, что не смог установить его на python3
А другой анон говорил, что у тебя в голове не говно, а ссанина.
https://pypi.python.org/pypi/beautifulsoup4
текст, выдранный из ворда
Бтв написал парсер авито, который нажимает на кнопку показать телефон, выдирает все данные объявления, делает скриншот и все сохраняет. Данные в csv. На 1 объявление 32с, с учетом задержек на аякс загрузку телефона. Думаю теперь, как подключить асинхронность, список проксей и индусоантикапчу.
Питон 3,5, бьютифулсуп, селениум+фантомджс
мимопарсерметодичек
>селениум+фантомджс
Нет пути. Это инструменты тестирования.
>32с.
Охуеть теперь!
Сколько оперативной памяти и процессора жрёт один таск?
> А пони это декоративные лошадки
Ну 32 сек и хуй с ним. Не самому же выдирать.
Да и авито не настолько быстрое, так что скорость почти в реальном времени. Во всяком случае если брать не дс/дс2, там да, может два раза в день и потоки нужны будут
Есть строка с кодом: color_str = 'Fore.WHITE,Back.BLACK,Style.BRIGHT'.split(',')
Так вот, как перевести строку в объект?
Дай обниму.
Чем рендерить страницу и брать скриншот? Для меня критически важно аналоги для обоснования стоимости в оценке и судебной экспертизе
Делаю так:
code = compile('%s%s%s%s' % (Fore.RED,Back.BLUE,"Dat string",Style.RESET_ALL),'<string>','exec')
Вылетает с ошибкой:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1
Dat string
^
SyntaxError: invalid syntax
Что я делаю не так?
string = 'cp = "%s%s%s%s"' % (Fore.RED,Back.BLUE,"string",Style.RESET_ALL)
exec(string)
print(cp)
Нашёл ошибку.
>Чем рендерить страницу и брать скриншот
Скриншот поможет в судебной экспертизе? Я же могу цену любую в дев консоли поставить и сделать скриншот и фотку с жопой твоей мамаши.
>экспертизе
вон только читал о том что гаи отказывается принимать видеофайлы с регистраторов, но типа готово сделать программу для фиксации всей хуйни с привязкой к сайту госуслуг и таким образом автоматическим деаноном запостившего, приглашением его как свидетеля и прочая ебатория.
я право не думаю что со скриншотами может быть как-то проще и они вообще на что-то годятся в юриспуденции.
Я парсю СЫРОЙ текст в xml, а не наоборот. Исходник - вордовская методичка
>>820686
Поэтому на скрине должен быть телефон, который Авито прячет за аякс. Поэтому недостаточно просто отрендерить, а надо ещё и джс движок
Я особо не шарю в экспертизе, но факт есть факт - один такой скриншот за конкретную дату 500р
Потом по этим всем данным ещё финансовую аналитику строят, которую тож продают
>ещё и джс движок
Поверь мне, телефон можно получить и без js. И не просто картинкой, а прямо текстом.
>Я особо не шарю в экспертизе
>для обоснования стоимости в оценке и судебной экспертизе
Чё бля?! Я тебе ещё раз говорю, можно эти скриншоты клепать сотнями в секунду, можешь даже к инету не подключаться. Кому они, нахуй, нужны?! Аналитику строят по скриншотам? Про что несёшь?!
За 500 рублей / объява все бы прямо в эту аналитическую платформу постили и мозги не ебали
Короче мне все это кажется мутным
Но селениум + фантом одобряю, и похуй на производительность
[code lang="python"]hello world[/code]
Я ебал твое неверие, ты думаешь, мне это просто так в хуй упало? Все мы можем наклепать скриншотов, но там должны быть валидные телефоны. Короче завтра попрошу, чтобы мне по полочкам разложили.
Авито Архив вон уже есть, который тоже за это деньги берет.
Насчет телефона - можешь подсказать, в какую сторону копать? Там такой ебаный джс, что охуеваешь, только понял, что картинка подгружается по запросу.
Ещё: если кто-нибудь работал с селениум - есть возможность скачать исходный код страницы и все связанные картинки и ксс? Мегабайт скриншот одно объявление, месячная база недвижимости моего мухосранска 10гб, как-то не оче
Словно там что-то важное было.
>только понял, что картинка подгружается по запросу.
Пиздец, а что ты до этого делал? там пикчи с номерами можно получать через обычные get запросы хотя может быть выебон с параметрами запроса Вот только тебе же нужен скриншот страницы? ну тогда да, наверно только силениумпараша.
Гет запрос с выебистыми параметрами, это сразу и видно. Но вот именно что картинкой, а не текстом. Другое дело, что это не капча, и распознать картинку будет довольно легко
Чем селениум не угодил то?
Распозновать ничего не нужно, она png и шрифт всегда один. Достаточно хеши цифр посчитать и потом пробежаться горизонтально по пикче.
>Чем селениум не угодил то?
>На 1 объявление 32с
Ты вроде сам ответил. А так через Requests будет пара секунд, ну и потоки можно из прикрутить.
>>820895
Можешь еще это покрутить http://jeanphix.me/Ghost.py
http://ghost-py.readthedocs.io/en/latest
альтернатива силениуму
Потоки без прокси не спасут. А прокси, которые не забанены на авито ещё надо поискать.
>Потоки без прокси не спасут
Лол, это почему? если не ебенить сутню потоков, а пару штук, то авитопараша должна спокойно пропускать.
Ну, они даже в один поток без таймаутов банят. Так что второй поток бесполезен без прокси.
Не уверен, что у них все баны снимаются капчей. Может есть просто по таймауту.
Кому на чём ещё приходиться программировать на работе и досуге? Испытываете ли вы неприязнь?
Есть такое.
По работе доводилось программировать на си и Lua. Первый вполне себе вилка, баттхёрта не замечал (если использовать там, где надо конечно же). Lua — хороший, но теперь есть микропитон и Lua становится не нужен.
Страдаю, когда пользуюсь языками на jvm. Нет удобного pip. иногда раздражает синтаксис.
От жавы баттхёрт очень сильный, согласен.
Библиотека очевидный telnetlib.
read_untill должен смотреть параметр и читать до совпадения, если совпадения нет выводить абсолютно все что вывалилось в телнет. А по факту если совпадение есть - все работает. А если совпадения нет - зависает наглухо.
> read_untill должен смотреть параметр и читать до совпадения
> если совпадения нет выводить абсолютно все что вывалилось в телнет
> читать до совпадения
> выводить абсолютно все
Выбери одно.
но ведь мне в одном случае надо выводить до совпадения, а в другом выводить все. В общем если вторым параметром передать таймаут, то все работает. read_untill вываливает все
pexpect
http://pastebin.com/tNChupY0
def keyPressEvent(self, e):
....if e.key() == Qt.Key_Enter:
.......return self.Foo()
c программной кнопкой
btn.clicked.connect(self.Foo)
man with
Спасибо, анон, добра
>про MRO спрашивали, meta
Я всегда думал, что джуны должны это знать.
>зачем тебе идти на джуна
За всю жизнь год работал, это мало, наверно.
Движок с языком, который есть немного изменённый питон
https://godotengine.org/
data = b''
while True:
temp = conn.recv(1024)
if not temp:
break
data += temp
А может только так.
temp = conn.recv(1024)
А на клиенте работает оба варианта, блядь.
PyPy быстрее обычного python в 8 раз. Потому что используется JIT compiler. Можно уже джангу запускать на pypy. Плюс отцы-основатели питона активно трудятся над pypy.
Страшно, это когда с питона перекатываешься в сишарп и понимаешь, что попал в каменный век
Читай первый ответ.
http://stackoverflow.com/questions/28610372/reactjs-with-django-real-usage
Благодарю.
Объясните поэтапно, как работает данная строка
>print(range(1, int(input())+1), sep='')
а точнее, какую задачу выполняет range и что делает sep=''?
Это ответ на задачу
>Read an integer N.
>Without using any string methods, try to print the following: 123..N
print - выводит на экран аргументы, разделяя их разделителем sep, который по-умолчанию '\n'
range(n) - возвращает итератор. значения внутри [0..n) [0,1,...n-2,n-1] (то есть не включая n)
input - запрос числа с клавиатуры.
да, мне нехуй делать
Макаба съебал знак в строке
Объясни, плез, что делает *range.
читаю, что это unpacking operator, но не могу вкурить
Иди блядь прочти документацию по built-in функциям и не задавай глупых вопросов.
Просто считай что распаковываешь список в аргументы функции
если:
print(1, 2, 3, *[4, 5, 6])
считай это как:
print(1, 2, 3, 4, 5, 6)
Полезно, когда не знаешь точное количество аргументов, которые передадут в функцию.
>Просто считай что распаковываешь список в аргументы функции
Спасибо, доброанон. Я пытался забить в мозг подходящее определение для этой функции, и наконец нашел его.
Когда произошло это разделение?
В чем суть классов нового стиля?
приведи пример того, что ты хочешь сделать
В 3 пайтоне это и есть итератор
Вот что я хочу сделать.
i = random.randrange(8)+1
def bot(k):
bt + k.configure(text = c_side)
bot(i)
Как осуществить эту часть с bt+k?
Нужно обратиться к переменной, зная ее имя. То есть чтобы программа сама это делала. Нет желания делать все через ветвления. Возможно ли это?
Используй массив, мудило.
читал Penetration Testers довольно годная вещица, советую
а чем? я в курсе, что теоретически можно многим заниматься. но на практике...
Не ебашит. По большей части он утверждает правки в язык.
Ты можешь создать игру на питоне, настоящий шутер от первого лица. Как? Очень просто. Ставишь Blender и вот в нем python используется как встроенный язык программирования. Причем, сам Blender написан на питоне :) В самом Blender встроенная функция компиляции игры в exe или в app.
https://youtu.be/v4aGLSe42eM
анон, я знаю, что это возможно. я знаю, что питоном можно сделать многое. но чем де-факто зарабатывают питонисты ИТТ? но все равно спасибо за инфу про блендер)
спасибо еще раз, крутизна-то какая!
v_a_n_r_o_s_s_u_m.jpg
input="23jdsfhsd;32334234"
result=re.findall(r'\d^', input)
print(result)
Что я делаю не так?
Если тебе нужна только "4", то:
result=re.findall(r'\d$', input)
Если "32334234", то:
result=re.findall(r'\d+$', input)
Cпасибо!
Ну то есть твоя ошибка в том, что ты использушь '^', который соотвтсвует началу строки. А нужно '$' - конец строки
К чему эти вопросы? Новичок что-ли?
Через пару месяцев совсем зеленые и еще боле наглые, чем эти полезут, не обольщайся.
Дцп-сенсей я обосрался и проебал полмесяца нихуя не делая, сейчас смотрю курсы и делаю похожие задачи, разжовывая себе на словах ёпты бля что значат и как преминять функции/ключ.слова
Потому что у тебя блокирующий сокет, и твой conn.recv так и будет висеть до скончания веков, пока ему что-нибудь не придет.
https://stackoverflow.com/questions/9770567/python-tcp-socket-blocks-on-recv-method
Нормально же сидим
Не слушай >>822686-дауна.
Как только ты запускаешь тред с этой функией, она выполняет сравнение, которое false, и возвращается и из функции, завершая тред. Вместо return (и нахуя там вообще ноль, не в main'е сишки) сделай continue или вообще pass, а лучше просто нахуй else убери.
=(((
мне нравится питон, но я не хочу быть веб-программером... мне просто не интересно по пути кушать йаваскрипт, пхп, становиться профи-версталой, или что там еще нужно...
да и просто делать сайты.
разве только в бэк-энд забуриваться.
Это копия, сохраненная 11 сентября 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.