Это копия, сохраненная 12 декабря 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
вся эта живность, котики-собачки там мимикательные, даже сраные змеи - и всё с говном блядь. кто в своём уме будет заводить живность что бы за ней говно убирать? нахуй оно надо? фу блядь
а теперь по теме треда:
хочу написать эдакую ленту новостей. добавлять штук 20-30 источников - страниц веб-сайтов с новостями и что бы оно всё вместе выгребало из них и складировало.
Что порекомендуете под эти цели?
Ну и re
интересует именно чем парсить/выгребать заголовки и как/куда/когда их проще складировать
бек буду делать на джанго, тексты статей - мне newspapper понравился, ну или во всяком случае мне его функционала хватит пока.
>>874676
>brain
это ORM какая-то?
ну на реквестах и ре можно конечно, но чёт это муторно как-то звучит. особенно если редизайнут. мне бы что бы по x-path'у или типа того указать что за элементы на странице искать и пусть дальше само как-то.
Три модели, Book, Author, Genre. В Book соответсвенно автору и жанру добавлены по одному ForeignField'у. В Genre и Author такой еболы нет. Есть вьюха, которая
params['book'] = Book.objects.select_related().get(id=book_id),
т.е одним запросом вытягивает все прицепленное к конкретной книге.
Есть еще 2 вьюхи которые выдают книги по Genre и по Author. Но там фокус с select_related не прокатывает, в итоге у меня вот такая срань
params['genre'] = Genre.objects.get(id=genre_id)
params['books'] = Book.objects.filter(genre=genre_id).
Мой вывод - Джанга обратную связь не может прохавать. Как быть?
Чем jp хуже cp?
Увидел в б такой тред, возник вопрос.
>ДОКУМЕНТОВ ИЗ ВК ТРЕД 2
>1) Заходим на пашка.com/docs
>2) Вводим в поиске или >дату(20161112) или стандартный >префикс для фото( DCIM, SRC и >тд)
>3) Просматриваем найденное
>4) Находим интересные фоточки >и кидаем в тред
>4) PROFIT!
>Как узнать id человека по >найденному документу:
>Адрес ссылки: >doc386641432_439078355 id - >386641432
А теперь внимание, вопрос - на питоне можно ли написать программу, которая будет сохранять имена файлов, которые находит по всем возможным запросам, в базу. А в ней уже искать по айди. То есть реально ли спарсить базу имен доков в вк?
У новостных сайтов часто RSS есть. Можешь парсить его. https://github.com/kurtmckee/feedparser Или другие либы поищи.
Как юзать cython? Чем больше читаю, тем меньше понимаю, примеров кода что забавно, дохуя, но что с ним делать? Этот код запускать через сам питон? Его компилировать чем то? Код генерится из питоновского, или учить новый синтаксис? Нихуя не понятно, помогай анон
про фидпарсер знаю, спасибо, даже использовал разок.
Но парсить к сожалению надо не фиды, их у этих сайтов как правило нету.
Вот это господская колбаса! Увожаю! Наверное на джанги кодит!!!
https://gist.github.com/anonymous/96f220c2281c8a9e541d6d313ecf80ee
Зацените чуть более удобный классовый сниппет для Сублима.
params['books'] = Genre.objects.get(id=genre_id).book_set.all()
>>874744
Ну если rss нету и API не предоставляют, то парсить HTML, что еще остается. С помощью BeautifulSoup, например. Придется подзадрочиться.
Удваиваю, чет нихуя не врубаюсь в jpython, cpython, pypy какие-то блять, в чем разница, поясни анон
Вот я и хотел узнать может есть какой-то уже подход к этому всему, что бы я не заёбывался лишний раз. Так-то конечно можно и на re + requests написать было бы, но заебусь же.
Нашёл вот такую плюшку: http://django-dynamic-scraper.readthedocs.io/en/latest/introduction.html попробую её.
CPython - реализация языка Python на Си. То самое, что можно скачать с python.org. Дефолтная версия.
Cython - надмножество Python, которое компилируется в код на CPython C API. Позволяет мешать типизированный код на Си (или С++) и обыкновенный код на питоне. Результат можно скомпилировать в библиотеку для CPython. Так, например, написан numpy.
CPython C API - библиотека на Си для работы с интерпретатором CPython. Может то же самое, что и собственно Python. Используется, когда нужна скорость - можно написать важные места на Си или С++, обернуть их при помощи апи в питоний модуль и вызывать из интерпретатора.
Jython - реализация Python для JVM.
IronPython - реализация Python для .NET
UPD
PyPy - JIT-компилируемая реализация Python на CPython. Позволяет получать прирост производительности из ничего. Из минусов - возникают проблемы с популярными библиотеками CPython (нужно портировать). Часто это не стоит того, поскольку скорость CPython в основном всех устраивает.
>Так-то конечно можно и на re + requests написать было бы
На всякий случай оставлю здесь предупреждение: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags
Если я правильно понял, то коротко все сводится к тому, что если хочешь скорости, по учи с, затем импортируй этот код в питоновский скрипт?
В двух словах так.
0. Ты не начинаешь с Cython.
1. Ты начинаешь с того, что изучаешь написание расширений на Python C API (https://docs.python.org/3.6/c-api/). Пишешь на Си какую-нибудь дурацкую функцию, типа подсчета суммы элементов массива или там среднего значения массива. Оформляешь ее в модуль для питона при помощи API. Если Си тебя не привлекает, то дальше идти не имеет смысла - Cython подразумевает что ты знаешь Си.
2. Изучаешь компиляцию модулей и подводные камни, такие как необходимость под виндой компилировать модули тем же компилятором, что был использован для компиляции интерпретатора.
3. Охуеваешь от замороченности процесса. Начинаешь понимать, какие проблемы решает Cython (инбифо убирает 80% заморочек).
В двух словах на вопросы
> Этот код запускать через сам питон? Его компилировать чем то?
Компилировать в Си при помощи отдельной программы, затем компилировать Си в питоний модуль при помощи обычного компилятора. Питоний модуль вызывать из питоньего модуля при помощи import.
> Код генерится из питоновского, или учить новый синтаксис?
Учить синтаксис Си, учить как синтаксис Си превращается в синтаксис Python. Действительно, простой питоний код можно пропустить через Cython и компилятор Си, но никаких бонусов это не даст. Грубо говоря, нужно сначала простой питоний код наполнить информацией о типах данных, тогда Cython начнет делать нормальные оптимизации и ускорит код.
Да.
>Питоний модуль вызывать из питоньего модуля
Питоний модуль вызывать из питоньего кода
>учить как синтаксис Си превращается в синтаксис Python
учить как синтаксис Си превращается в синтаксис Cython
> если хочешь скорости, то учи с.
Внимание на точку где-то вот тут ↑, которая знаменует конец предложения и означает законченность мысли.
мимо
Тип того. Cython используется скорее для написания оберток и API к коду на Си, чем для самостоятельных оптимизаций.
import random
a = random.randint(0,1)
b = random.randint(0,1) if a == 0 else b = 0
c = 1 if a == b == 0 else c = 1
print (a)
print (b)
print (c)
Ругает пикрил. Чяднт?
> b = random.randint(0,1) if a == 0 else b = 0
b = random.randint(0,1) if a == 0 else 0
>Чяднт?
http://pastebin.com/
Спасибо
Понял, исправлюсь.
А если понадобится, допустим,
Если а==0 б=1 иначе с=1, то придется иф...елс строчить, в одну строчку никак?
>в одну строчку никак?
locals()['b' if not a else 'c'] = 1
Но лучше конечно никогда так не делать, и if...else написать.
Принято. Пойду дальше говнокодить)
Scrapy
СХОРОНИЛ!
.prefetch_related
Типа такого:
{
"key" : {
"subkey" : {
"subkey" : {
...
}
}
}
}
http://pastebin.com/2LBAH15P
list - список чисел в строковом виде, максимальная длина элемента в списке известна.
Как распарсить полученный бинарник, для получения исходных данных?
А как ты делаешь, что у тебя не получается? Делаешь дикт с такой структурой, дампаешь в джейсона.
Как код нормально вставить сюда?
Пытаюсь понять, что я делаю не так. Даже не представляю, как делать потом цикл.
s = {"str" : ""}
sub = {"substr"}
s['str'] = sub
with open('test.json', 'w') as t:
json.dump(s, t, indent=4)
Если не ошибаюсь, твой вариант слепит все биты вместе и потом ты хрен поймешь, где какое число.
Почему бы не попробовать bitstring.Bits(int=int(list), length=MAX_LIST_INT_LENGTH)?
ideone, pastebin
https://gist.github.com/anonymous/1958413d178ac4f2732104e0a79e7461
>sub = {"substr"}
Это вообще set. Или конвертируй его в лист, чтобы в джейсона дампать или лучше дампай в пикуля, заодно и читаться быстрее будет.
>Почему бы не попробовать bitstring.Bits(int=int(list), length=MAX_LIST_INT_LENGTH)?
Избыточность в записи.
Мне нужно как можно меньше битов потратить для записи, поэтому и записываю в бинарник.
Внезапно оказалось что мой говнокод - хуйня и распределяет еденицу между а,б и с с вероятностью 50:25:25. В связи с чем вопрос: назначить еденицу одной из трёх переменных чтобы вероятности для каждой из переменных были равными?
Это понятно, но у тебя каждый раз получается разная длина.
[len(bitstring.Bits(bin=bin(i))) for i in (1, 64, 1023)]
# [1, 7, 10]
Как ты потом будешь определять, где у тебя одно число закончилось, а другое началось?
Лично я вижу несколько вариантов:
1. Какая-то стоп-последовательность, при достижении которой парсер будет понимать, что текущее число закончилось.
[биты_числа]{EOD}[биты_другого_числа]{EOD}
2. Префикс фиксированной длины (>= максимальной длине твоих int), в котором будет указано, какой длины следующее за ним значение.
{PREFIX:7}[bitstring.Bits(bin=bin(64))]{PREFIX:10}[bitstring.Bits(bin=bin(1023))]
3. Не ебать мозг, а прогнать результат bitstring.Bits(int=int(list), length=MAX_LIST_INT_LENGTH) через какой-нибудь алгоритм сжатия.
Disclaimer: Я не битоёб, так что мог знатно обосраться где угодно.
>>874943
>1. Какая-то стоп-последовательность, при достижении которой парсер будет понимать, что текущее число закончилось.
>[биты_числа]{EOD}[биты_другого_числа]{EOD}
В этом случае биты числа надо еще закодировать так, чтобы EOD в них не встречался.
См. https://en.wikipedia.org/wiki/Bit_stuffing
С сервера мне приходит такой ответ, как на пикче.
А чуть ниже как это должно быть распарсено.
Как видите после каждого слова идет байт, говорящий о его уровне вложенности. Причем фишка в том что иногда уровни могут повторятся.
Мне нужно распарсить это, и обойти все возможные значения.
Я уверен что они использовали уже что-то готовое для сериализации/десериализации.
Вопрос как может называться эта хуйбола?
Пишу на питоне, я думаю должна быть либа для этого или еще что. Не руками же они так делают.
>>874935
Наверняка какую-нибудь хуйню придумал. Смотри как надо:
https://gist.github.com/anonymous/05e7762ffb2a49c4943008953f1c9df9
Чтобы выучить стихотворение нужно выучить русские буковы и стихотворение.
>Я уверен что они использовали уже что-то готовое для сериализации/десериализации.
На 99% уверен, что нет.
Как будет парсится строка 'Humans2Man3Hui12cm2Woman3IQ653Tits4Size'
? Возможны , конечно, эскейп-символы всякие.
Но зачем, если есть JSON или MessagePack
>Как будет парсится строка 'Humans2Man3Hui12cm2Woman3IQ653Tits4Size'
>?
Ты внимательно посмотри, там же не числа, а байты. Соответственно твоя строка вообще никак парсится не будет.
Но вот такая будет:
Humans\x02Man\x03Hui12cm\x02Woman\x03IQ65\x03Tits\x04Size
Соответсвенно уровень вложенности, где-то до символа пробела с кодом 0x20, потому что дальше уже начинаются печатаемые символы, которые могут быть использованы
Мне не понятно, как это автоматизировать в цикле.
Другими словами, как создать вложенный словарь в цикле с заданной глубиной вложенности?
Хэллоуворлды:
https://gist.github.com/anonymous/3fc21dc051ebcaf68ae7a5c40bd1f1df
Понги:
https://gist.github.com/anonymous/21827ca804f5976c2663ae09b4b54e30
Он такой красивый, удобный, питоничный. Мой манядвижок.
cgi интерфейсы. orm и sql, хотя бы git и уметь в virtualenv, хорошо понимать как работает что-то в пайтоне. Напишешь callable декоратор - уже хорошо.
Для начала: тебе приходит именно строка в виде 16-ричных значений или как-то иначе?
Хех, только что-то глянул вакансии моего города(картохо-дс), и такого набора не хватит.
з.ы. хотя для фриланса - самое то.
мимо-другой-пистонист
Мне приходит бинарный блоб, который нужно распарсить, выкинуть не нужное, а потом построить граф всех возможных путей.
Сразу скажу что на серверную часть я повлиять никак не могу.
Вот распарсил таким быдлокодом, но мне пойдет.
Вначале просто генерирую список всех возможных путей, вставляя символ '>' между нодами. Но пока неизвестно может ли имя ноды содержать этот знак. Надо тут что-то по-умнее придумать.
На выходе у меня просто лист всех возможных значений, типа:
Food>Fruit>Apple
Food>Fruit>Banana
Food>Vegetable>Carrot
И это хорошо, потому что я могу дальше регэкспом убрать все ненужное.
И только потом строить граф.
Какому типу данных должен соответствовать узел на этой диаграмме - dict, TreeNode?
Какой тип данных у листьев?
Если всё хуячить диктами, то получается так:
http://pastebin.com/yn4eyYPJ
Да, ты прав. Но наличие ограничения на 31 уровень (до 0x20) уже говорит о велосипедо-костыльности этого протокола.
Короч напиши ожидаемый Json для своего примера.
Почитай про hexdump, может поможет тебе(с парсингом).
С а с этим...попробуй подумать над словарём, в который будут вводится значения на соответствующий "уровень"(уровень определяется цифрой после слова), и в ключи к этому слову гонит всё что имеет "ранг" пониже, если встречает такой же уровень - создаёт новый элемент и т.д. и т.п.
Зачем в питоне кортежи?
immutable списки же
Round тут не подойдет, ведь он именно округляет
import re
def solution(n):
pattern = re.compile(",[?!,.]{4}")
if pattern.search(str(n)):
return n
if '<' or '>':
return 4
func_text = raw_input('Vv3dite Funkciju:')
func = eval('lambda x:' + func_text)
for x in range(0, 10):
print(func(x))
мимохозяинпитона
Может кто сталкивался или интересовался подобным?
Я довольно зеленый в Python ,кроме веба ничего не делал. Хотел запросить гайдов или примеров подобного .
Я диванный, но думаю да. Достаточно возвращать вместо рендерреспонса json с контекстом. Дальше клиентсайд будет парсить это дело. В lightweight django было немного про SPA на ресте и AJAX.
Погляди Джанго бай экзампл, там было годно о ресте расписано чё к чему
Еще тебе надо будет написать некоторое количество сериализаторов.
У django rest framework (далее DRF) есть годная фича, называется рендереры.
Среди них есть TemplateHTMLRenderer - рендерит в HTML, используя стандартный механизм Джанго.
Можешь на первых порах его использовать, если не хочешь сразу лезть в JS.
Существующие вьюхи можно не переделывать. Просто пишешь API на DRF, который будет использовтаь твой фронт на жс.
Consolas это всё. Стандартный виндовый моножир.
pysdl2?
про оппик
Посоны, есть небольшое приложение на cgi скриптах. Фронтенд на javascript, backend собственно питон и постгрес. Ну так вот, делаю запрос к базе и мне в консоль браузера приходит строка в escaped unicode
b'\xd0\x9e\xd0\xa8\xd0\x98\xd0\x91\xd0\x9a\xd0\x90: \xd0\xbf\xd0\xbe\xd0\xb2\xd1\x82\xd0\xbe\xd1\x80\xd1\x8f\xd1\x8e\xd1\x89\xd0\xb5\xd0\xb5\xd1\x81\xd1\x8f \xd0\xb7\xd0\xbd\xd0\xb0\xd1\x87\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5 \xd0\xba\xd0\xbb\xd1\x8e\xd1\x87\xd0\xb0 \xd0\xbd\xd0\xb0\xd1\x80\xd1\x83\xd1\x88\xd0\xb0\xd0\xb5\xd1\x82 \xd0\xbe\xd0\xb3\xd1\x80\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x87\xd0\xb5\xd0\xbd\xd0\xb8\xd0\xb5 \xd1\x83\xd0\xbd\xd0\xb8\xd0\xba\xd0\xb0\xd0\xbb\xd1\x8c\xd0\xbd\xd0\xbe\xd1\x81\xd1\x82\xd0\xb8 "polygons_geom_key"\nDETAIL: \xd0\x9a\xd0\xbb\xd1\x8e\xd1\x87 "(geom)=(0103000020E6100000010000000500000001000080AECD4240D8F2D8F65DDD4B40010000007CCB42403D54684298DA4B4001000080BCCE42403CF478FEF0DA4B40010000002DCF42404F1E9642DFDC4B4001000080AECD4240D8F2D8F65DDD4B40)" \xd1\x83\xd0\xb6\xd0\xb5 \xd1\x81\xd1\x83\xd1\x89\xd0\xb5\xd1\x81\xd1\x82\xd0\xb2\xd1\x83\xd0\xb5\xd1\x82.\n'
Как её сделать человекочитаемой?
'ОШИБКА: повторяющееся значение ключа нарушает ограничение уникальности "polygons_geom_key"\nDETAIL: Ключ "(geom)=(0103000020E6100000010000000500000001000080AECD4240D8F2D8F65DDD4B40010000007
CCB42403D54684298DA4B4001000080BCCE42403CF478FEF0DA4B40010000002DCF42404F1E9642DFDC4B4001000080AECD4240D8F2D8F65DDD4B40)" уже существует.\n'
Если в консоль браузера, то тебе в js тред.
Это питонья инструкция же.
from . import views
анон, что за . после Import? для чего служит .?
Я с импортами разобрался, но что за точка и какие функции выполняет разобраться не могу.
goole://python read large file threads
>Я с импортами разобрался
Не разобрался, если у тебя такой вопрос возникает. Иди дальше изучай импорты, особенно в 3-м Питоне.
Скорее всего так и сделаю
google://python web stack
Дано: я учу джангу и одновременно перекатываюсь под линукс, есть 2.7 и 3.5, вся работа с джангой проходит в виртуальном окружении (там стоит 3.5). Для удобства через -update-alternatives поставил дефолтной третью версию питона может это и есть причина происходящего?.
При попытке установки некоторых пакетов (Weasyprint) pip сыпет ошибками, а вот под 2.7 ставиться все нормально.
1) Я правильно понимаю, что у меня сейчас два стула: или мучиться с установкой нужных пакетов под 3.5 или переходить на 2.7?
2) Исходя из такой поддержки 3.5, получается, большинство джангопроектов пишутся на 2.7?
фласк глянь
Гугли пакеты, которые ошибками стреляют. Почти на все есть форк под 3.х.
не понял
pip3 install
Проще говоря, в папках есть файл '__init__.py', преобразующий папку в "пакет", из которого можно импортировать файлы, не пердолясь через 'sys.path.append('. . .')'.
дрочи os из либы питона и windows hooks для винды. Для пинукса не знаю как там это устроено
т.е. как писать в файл то, что я ввожу в командную строку?
http://ru.stackoverflow.com/questions/495848/Перенаправление-sys-stdout-в-файл
Заебали блять немощные. Вы бы хоть перед тем как спросить сходили в гугл.
Под винду есть модуль msvcrt. Под линух есть альтернативы этому модулю.
виз опен("файл.ткст", "в") эс ф: вайл Тру: ф.врайт(мсвцрт.гетч())
>>876515
Господа прошу не бомбить.
Гуглом я пользоваться умею, но видимо задавать вопросы не способен чтоб выразить желаемое.
Имелся в виду не поток, а вообще - всё происходящее в консоли.
Т.е. все выражения, утверждения, трейсбеки, ошибки - весь консольный текст. С потоками давно разобрался. Т.е. есть дохуя способов записывать вывод в файл - через логгер, через всякие модули типа code, через перенаправление потоков. Это всё есть в гуглах и книжках. НО
В качестве подзадачи я хочу логгировать строки, которые посылаются интерпретатору. В том числе - неправильные выражения.
Пишу import msvcrt - и это выражение чтоб записать в строку.
Пишу impoooort Chlen - чтоб это тоже сначала писалось в строку, а потом уже выполнялось интерпретатором. Причем ошибку которую он выдаст я перехватывать умею.
Я пробовал копаться в _io библиотеке, но пока не хватает сноровки разбираться что там к чему.
Пробовал получить доступ к буфферу StringIO и к буферам потока - но тоже не вышло нихуя.
Одно из решений - организовать REPL
типа
иф __нэйм__ = "__мэин__"
вайл тру
консол_инпут=инпут(">>>>>")
exec(консол_инпут)
эксепшены всякие чтоб не слетел цикл если выражение я ввёл неправильно
Но интересует - есть ли другой способ через получение доступа к функционалу самого интерпретатора?
Вот сука есть "файл" <stdin> - я не понимаю как устроена работа с этим потоком.
Читаю Лутца - он приводит кучу способов перенаправления потоков.
Т.е. можно в стдин запихать строки из файла, аутпут из другого процесса.
По умолчанию в стдин пихается поток символов с клавиатуры.
А КАК МНЕ, не создавая полноценный кейлоггер, писать в файл подчеркнутую Оранжевым хуйню?
>>876515
Господа прошу не бомбить.
Гуглом я пользоваться умею, но видимо задавать вопросы не способен чтоб выразить желаемое.
Имелся в виду не поток, а вообще - всё происходящее в консоли.
Т.е. все выражения, утверждения, трейсбеки, ошибки - весь консольный текст. С потоками давно разобрался. Т.е. есть дохуя способов записывать вывод в файл - через логгер, через всякие модули типа code, через перенаправление потоков. Это всё есть в гуглах и книжках. НО
В качестве подзадачи я хочу логгировать строки, которые посылаются интерпретатору. В том числе - неправильные выражения.
Пишу import msvcrt - и это выражение чтоб записать в строку.
Пишу impoooort Chlen - чтоб это тоже сначала писалось в строку, а потом уже выполнялось интерпретатором. Причем ошибку которую он выдаст я перехватывать умею.
Я пробовал копаться в _io библиотеке, но пока не хватает сноровки разбираться что там к чему.
Пробовал получить доступ к буфферу StringIO и к буферам потока - но тоже не вышло нихуя.
Одно из решений - организовать REPL
типа
иф __нэйм__ = "__мэин__"
вайл тру
консол_инпут=инпут(">>>>>")
exec(консол_инпут)
эксепшены всякие чтоб не слетел цикл если выражение я ввёл неправильно
Но интересует - есть ли другой способ через получение доступа к функционалу самого интерпретатора?
Вот сука есть "файл" <stdin> - я не понимаю как устроена работа с этим потоком.
Читаю Лутца - он приводит кучу способов перенаправления потоков.
Т.е. можно в стдин запихать строки из файла, аутпут из другого процесса.
По умолчанию в стдин пихается поток символов с клавиатуры.
А КАК МНЕ, не создавая полноценный кейлоггер, писать в файл подчеркнутую Оранжевым хуйню?
Но это ебаный костыль.
Нужно значит кейлогер ебашить.
Почитай про tee.
Простой вариант решать твою проблему - написать скрипт, который будет работать аналогично tee. и вставить в поток stdin и stdout+stderr.
it -> tee(1) -> process (join stderr with stdout) -> tee(2) -> stdout
Ну или сделай класс потока, который помимо основной задачи ещё и логирует, и заверни в него потоки stdin и stdout.
А ещё есть такая штука как logging.StreamHandler.
Возможно проще всего будет её навесить на потоки.
00000000: 15 03 03 00 30 69 9C 7F FA 5C B7 31 8C 5E 48 D3 ....0i...\.1.^H. /n
00000010: 45 20 4C 8A 9B DB 84 8F 7F 2F 47 3E 6B E4 16 D9 E L....../G>k... /n
00000020: A0 92 6E AB A2 00 72 72 BD E0 DC 4B 64 C2 C2 CA ..n...rr...Kd... /n
00000030: 68 90 30 2C 39 h.0,9
Затем я записываю её в БД и при извлечении получаю строку типа:
00000000: 15 03 03 00 30 69 9C 7F FA 5C B7 31 8C 5E 48 D3 ....0i...\.1.^H. /n00000010: 45 20 4C 8A 9B DB 84 8F 7F 2F 47 3E 6B E4 16 D9 E L....../G>k... /n00000020: A0 92 6E AB A2 00 72 72 BD E0 DC 4B 64 C2 C2 CA ..n...rr...Kd... /n00000030: 68 90 30 2C 39 h.0,9
Опять таки, форматирование сохраняется, всё чотко, НО когда вставляю эту строку в HTML таблицу на сайте - всё идёт по пизде.
Неужели придётся парсить строку,делить её на строки поменьше и выводить их по очереди(или какой-нибудь ещё йобо-метод), неужели нельзя сохранить кашерное форматирование и в вебе?
python 3, flask.
string.replace('\n', '<br>') или <pre>...</pre>
а вообще стыдно должно быть такие вопросы задавать
вот пишу я некоторое говно и замечаю, что
шапка у половины скриптов одна и таже, то
есть нужно как-то там инициализироваться,
сделать препроцессинг и всё такое короче.
и решаю, что всю эту хуйню можно было бы
вывести в отдельный файл, а потом делать
импорт всего этого.
так вот есть два файла:
vsja_huina.py - будет выведенный предпроцессинг
work_work.py - а тут чисто со скоряка ебашить.
vsja_huina.py содержит функцию init()
и в ней уже в переменные, которые были
объявлены раньше в vsja_huina.py должны
заполняться правильными ништяками.
допустим выглядит так:
foobar = []
def init():
foobar=[1,2,3]
а вот в work_work.py я хочу делать вот так
from vsja_huina import *
init()
и уже чисто тут ебашить дальше по хардкору.
мне не нужна всякая ебатьня с классами, у
меня императивно функциональный подход.
но возникает такой конфуз, что я в workwork.py
после вызова init() список foobar ещё пустой.
я уже пробовал и global, но что-то не работает
оно через импорт.
помогай!
вот пишу я некоторое говно и замечаю, что
шапка у половины скриптов одна и таже, то
есть нужно как-то там инициализироваться,
сделать препроцессинг и всё такое короче.
и решаю, что всю эту хуйню можно было бы
вывести в отдельный файл, а потом делать
импорт всего этого.
так вот есть два файла:
vsja_huina.py - будет выведенный предпроцессинг
work_work.py - а тут чисто со скоряка ебашить.
vsja_huina.py содержит функцию init()
и в ней уже в переменные, которые были
объявлены раньше в vsja_huina.py должны
заполняться правильными ништяками.
допустим выглядит так:
foobar = []
def init():
foobar=[1,2,3]
а вот в work_work.py я хочу делать вот так
from vsja_huina import *
init()
и уже чисто тут ебашить дальше по хардкору.
мне не нужна всякая ебатьня с классами, у
меня императивно функциональный подход.
но возникает такой конфуз, что я в workwork.py
после вызова init() список foobar ещё пустой.
я уже пробовал и global, но что-то не работает
оно через импорт.
помогай!
Есть ли тут falcon guru??
очень нужен адекватный применр несложного, но красивого RESTful api, написаного на этом ЧУДО-фреймворке. всем плюсы в карму и звезды на гитхабе
Аноны, меня немного отталкивает отсутствие явной декларации переменных в питоне, есть ли что-нибудь вроде линтера, который будет кидать ошибку, если не увидит переменную в коментарии типа
# variables some_value
?
Как сделать чтобы ОНО : {{ a = input("a = " ); b = input("b = " ); c = (a + b); print(a, b, c) }} считало значение "С", а не тупо выдавало "AB" подряд?
есть например число 0,6311, мы узнаем его квадрат (0,39828721), и берем у него средину - 0,39828721 . Это и будет наше случайное число. ну и так дальше, отталкиваясь от предыдущего числа. Я тут немножко наговнокодил http://pastebin.com/vc7pvRxR , и всё работает нормально, но если генерировать больше тысячи чисел, то начинают вылазить какие-то экстеншены, непонятные мне как новичку. Помогите разобраться пожалуйста.
Спасибо!
30 минут почитал самоучитель и решил сам что-нибудь налепить, но видимо надо еще вникать.
Ты превышаешь лимит на глубину рекурсии. Это значение можно изменить, но лучше переписать код так, чтобы от рекурсии вообще избавиться. Использовать цикл, например http://pastebin.com/Jfr92nwj
>RecursionError: maximum recursion depth exceeded while getting the str of an object
Что непонятного?
Когда ты вызываешь функцию, текущие значения переменных сохраняются, потому что предполагается что ты сюда ещё вернёшься. Поэтому ты не можешь вызвать функцию, из неё ещё одну, из той ещё одну и так до бесконечности - память закончится. Поэтому введено ограничение на глубину рекурсивных вызовов.
Используй цикл вместо рекурсии, или пиши yield.
Нигде
Олимпиадки можешь порешать на питонтутор, поиграться в однострочники на кодварс
Но лучше наверни стандартные укус+синк пайтон и потребность в твоем запросе отпадет
Спасибо.
think для 2.x или только его и стоит дрочить ? или все-таки 3.0 из хипстерского, превратился в рабочую лошадку ?
Я учился на двойке, а писал только на тройке. Двойка с тех пор ни разу не пригодилась, но и мук перехода я не испытывал ни единого раза.
Синк - охуенная и одна из самых полезных книг для вката в питон. Хочешь понять где его использовать и как - читай. А на версию похую.
Ну, я не особо силён в этом.
Но раз вы сильны, тогда ласт вопрос: он ещё и пробелы съедает, что делать?
Условия те же.
нет, так не работает.
>>876745
так работает, но я не хочу неймспейс а,
надо по хардкору так ебашить, без имени.
Именно
Вообще, суть фалкона - это какая-то альтернатива сервлетам из джавы, где ты создаёшь ресурсы, биндишь их на какой-либо урл и обрабатываешь с них определенные запросы по интерфейсу (on_post, on_get, on_delete, етц).
Причем все это одна большая абстракция.
Вообще мне в этом плане больше бутылка нравится.
Можешь расширить
https://docs.python.org/2/library/json.html#json.JSONDecoder
А так наверняка кто-то уже написал подобное.
Тебя перенаправляет на стимовскую авторизацию, там ты авторизируешь, затем тебе приходит токен, и этот токен ты передаешь сайту?
Ну как приложение к JS, может быть, сдается мне что кто-то тут "врете" провоцирует.
Аноны, я девелопер с 5+ опыта и появилось время для изучения 1 нового языка чисто для общего развития. Сижу сейчас на 1 стэке технологий и в принципе python для моих задач в мобильной разработке не подходит но есть желание узнать почему этот язык так хорошо набрал популярность за последние 10 лет ну и вообще расскажите в каких отраслях и сферах python применяется(кроме математики)
PS: в Java стэк ебал я в рот вкатываться
Проебалось само решение. Два принта внутри функции я сам написал, чтобы понять что происходит
съеби зелень
каждый инструмент для своих задач
Теоретически все можно описать и 1-м ЯП но на каких-то языках различные задачи будут реализованы изящнее и читабельнее
Меня этот момент интересует. Что python умеет делать лучше других и в чем конкретно
Не пойму, как фиксить.
%SystemRoot%\System32
%SystemRoot%
%SystemRoot%\System32\Wbem
в path-e прописал помимо пути к самому питону та же хуета
не знаю как насчет лучше остальных, так как знаю только питон, а вот для вкатывания идеален из-за своей простоты и распространенности. могу ошибаться. трогал js, perl, pascal.
Почему не сделать наследование классов, но вместо этого ебаться с двумя подключаемыми модулями ? Просто чем дальше в лес тем охуеешь ты NN модулей для простых функций делать, вместо того что бы уже создать КласНейм(БейзКласс): хочешь те же функции из БейзКласса, хочешь можешь их же переиначить, хочешь можешь через даже после подкрутки вызвать исходную функцию c помощью return super . Просто спрашиваю. Я бомж если что .
вот писал и забыл экранированый \ впаять, тю.
ну это куча системных скриптов, старая школа, ебашу императивно по хардкору, нахуй мне классы, не одноклассники же.
пока работает так, что нужно делать импорт всего, вызывать init() и опять импортировать всё. ну не пиздец ли?
А как оно должно быть ?
Написал from ... import ...
И вауля, пустая функция без объявления данных извне должна дать результат ? Ну сам посуди что нужно как минимум два модуля импортировать, значит проще все это написать в одном в через банальные классы.
Че-то я нихуя не понял в чем у тебя проблема, анончик, но функция же должна возвращать что-то, правильно?
типа
def init():
....foobar=[1,2,3]
....return foobar
и в workwork.py ты типа делаешь
from vsja_huina import *
foobar = init()
не?
нет, функция инициализации, она накидает там в глобальные переменные то, что нужно.
есть файл xxx.py:
foobar = []
def init():
global foobar
foobar = [1,2,3,4]
если теперь импортировать всё
из ххх вот что получается:
>> from xxx import
>> foobar
[]
>> init()
>> foobar
[]
>> from xxx import
>> foobar
[1,2,3,4]
видишь, только при повторном импорте у меня фубар не пустой.
Светлая тема? Ебать ты изващенец
А, кажется понял тебя.
Тогда может быть вот так?
foobar = []
def init():
....global foobar
....foobar = [1,2,3,4]
init()
Во время импорта всей хуйни из модуля, вызывается функция init(). Таким образом, тебе будет доступна уже измененная переменная foobar.
Не заметил сразу. Все в одной папке лежит? Только чоо проверил, у меня работает
это у тебя ификсная запись, привычная человекам, но ты можешь использовать постфиксную [2,2,'+'] или префиксную ['+',2,2] запись. и просто идти по массиву выполняя операции
Не понял, как мне этот лисп поможет совершить операцию, при помощи строки содержащей операцию? Можно примерчик?
Создавать функции безопаснее и эффективнее, но если ты любишь погрязнее то есть функция eval
ну да, так конечно оно будет работать. но меня просто удивило такое поведение. хотелось бы, конечно, иметь возможность вызывать инициализацию по своему усмотрению, иначе можно б было и не заворачивать всё в отдельную фукнцию, а так побросать, хули, не жалко.
Покажи что ли код скрипта из которого ты вызываешь script1
Я написал для тебя охуенный калькулятор. Вот он - https://ideone.com/TVusa5
Остальные операции сам добавь.
> Kirill
> import script1
> python import script1
Блядь, в голос проиграл на всю квартиру.
Показал бате, тот тоже ржет сидит.
До меня только сейчас дошло. Я смеюсь и краснею от своей тупости(я анон который пытался ему помочь)
Ну нахуй ваш лямбда-фанатизм
спасибо, няша!
впрочем, что такого что бы помочь КИРИЛЛУ?
Смотри, вот так работает:
#xxx.py
foobar = []
def init():
....global foobar
....foobar = [1,2,3,4]
#work.py
import xxx
xxx.init()
print(xxx.foobar)
>я ему это еще вчера кинул
А, я не увидел.
>он сейчас закукарекает что не хочет импорт ххх
Ну вообще-то в PEP8 написано, что стоит избегать импортов со звездами. Так что это решение не только работает, как нужно, но еще и PEP8 соответсвует. Что вообще заебись.
https://www.python.org/dev/peps/pep-0008/#imports
>Wildcard imports (from <module> import *) should be avoided, as they make it unclear which names are present in the namespace, confusing both readers and many automated tools.
Избегать не значит не использовать.
С неймспейсами всё предельно ясно,
мне нужен один глобальный.
Хули в Пистоне без изъябств нельзя
нормальное поведение как source в
баше нарулить? Заебали эти ООП
ужимки пидерские.
может быть у него там никнейм, по которму его можно в соцсетях пробить.
Чтобы можно было считать файл, воспроизвести наоборот или как-то изменить сигнал?
Да кому он нахуй нужен
gstreamer для проигрывания, ffmpeg для редактирования
>>877744
> никнейм
Ставлю, что это Kirill
udvaivau
Дошел в учебнике до этих самых вьюшек, а там просто фразочки типа "скопируйте код, вставьте, вот у нас и получилось )000". Во всяких видео и статьях там подразумевается, что я уже должен был настолько задолбаться без них, что благодарить бога за их существование.
Не вздумай читать это говно.Сейчас уже 1.9 вышла, а там все про 1.6 рассказывают.В Djang'е очень много вещей изменилось, так-что лучше ничего djbook нет и русского
Есть код: http://pastebin.com/rwwx8qzV
Не могу допереть, как исправить, чтобы не выходил за рамки списка( ясен хуй in range, но где ). Второй вопрос как поместив переменные, которые имеют числовые значения в список - передавать обновленные числовые значения. Очевидно что если есть List = Yv, где Yv = 0.003, то при print(List) он выдаст 0.003. Однако когда я захочу записать List = 0.004, он нихуя не изменит мне значение Yv, а лишь запишет на индекс i - 0.004. Можно наверное словарь использовать, но чет не ебу как тогда с ним матрицу сделать и переходить по нему к следующему элементу.
почему не так?
print([Elem_list[count+1] for count, value in enumerate(Elem_list) if value != 5000])
Elem_list = [Yv, Y1, C1, C2, C3, L1]
это не список со ссылками на твои переменные, а список со значениями, которые лежат в твоих переменных
pop(i) предварительно, естесно
while i < len(Elem_list):
calc = Elem_list + 1
Elem_list.pop(i)
Elem_list.insert(i, calc)
i +=1
не то?
перепеп8 какой-то
окей. как мне получить список со ссылками на переменные?
Условие: вернуть в словах вводимое значение от 0-9. Типа если ввел 1, вывод будет 'один'.
Как правильно будет вернут значения ключа словаря?
блять точно, это же очевидно. пиздец затупок.
лучше так d.get(number, default_value)
html = urlopen("https://vc.ru/p/why-no-leave-ny")
bsObj = BeautifulSoup(html.read())
allTags = bsObj.findAll("p")
print(allTags)
В общем, он выдает мне простыню типа [<p>, 1бла-бла<a href="http://myday.nyc/ya-ne-uezzhayu/" target="_blank"> 2бла-бла</p>, <p>и далее. Как мне убрать все тэги из текста, чтобы осталася сам текст, то есть 1бла-бла 2бла-бла?
Надо будет зубрить какую-то книженцию по алгоритмам или как?
Pandas
>звездочки на маты и всё такое
>Надо будет зубрить какую-то книженцию по алгоритмам или как?
Ещё один "чтец книг".
{'a': int(), ...., 'z': int()}
И переменная int().
Как найти ближайшее к этой переменной значение из словаря?
A
N
D
A
S
методы: как итерировать словарь, как делать вычитание, как делать сравнение переменных, как присваивать переменной значение.
Шел сегодня по по питон треду и случайно наступил в говно. Пригляделся по-лучше, оказалось что это django.
Спасибо тебе большое. У меня к тебе другой вопрос есть. Используя тот самый, кода как возможно убрать из allTags текст, который находится в div-e, в названии которого фигурирует слово comments?
Вот есть такой див class="b-content-w b-content-w-comments
Я думаю, что сначала выцепить все названия div-ов в лист, затем уже каждый элемент искать на наличие comments и как-то его вырезать из основного текста
*тот самый кусок кода
Ну я хочу научиться думать как программистер. Сам не тупой, но чёт сложно без подсказок решать такое
if not True:
print("1")
elif not (1+1==3):
print ("2")
else:
print("3")
Если тебе нужен только текст статьи без лишней херни, то ищи тег <article>
http://pastebin.com/Kvw3GsyP
if not True - False
(1+1==3) - False
not (1+1==3) - True
Значит,
если не True, пишем 1
или если 1+1 не равно 3 (это True), пишем 2
во всех остальных случаях пишем 3
Но вообще, это хуета какая-то. Тут вообще есть только 2 варианта(True/False) и print('3') не выполнится никогда и потому нахуй не нужен.
Можно было просто
if (1+1==3):
....print('1')
else:
....print('2')
Анон, правильно рассуждаю или у меня тоже логика сбоит?
Как в питоне создавать свои методы? Пишу программку на Qt, хочу для кнопки добавить свой метод. Пока что нагородил костыль http://ideone.com/vjXxtl , который вызывает функцию, которая принимает кнопку как аргумент, но хочется оформить все методом
создаешь класс-миксин, у которого есть этот метод, потом класс миксин миксуешь с оригинальным классом твоей кнопки, потом создаешь кнопку, которая наследует миксин и оригинальный класс твоей оригинальной кнопки. Наверное как-то так
мимо_с_дивана_после_Fluent_Python
Наверное, надо создать свой класс, который наследует все от какого-то родительского класса. Ну и создать там свой метод.
Может что-то вроде такого http://ideone.com/Vkcpd3
ТО что надо, спасибо
Есть вьюха. Назовем её меин пейдж. Вьюха отображает список объектов - постов. У каждого поста есть возможность поставить лайк. Лайк - это другая вьюха, на которую идет другой урл.
Что мне писать в аяксе в урле? Урл главной страницы, или урл вьюхи лайка? Что мне писать в дате?
Завтра ищешь в интернете книжку Django By Example..
Страница 154 - Adding AJAX actions with jQuery. Там как раз пример про кнопку "Лайк"
да там все равно все будет по-другому написано. Мне просто нужна инфа. Что писать в аякс урл, когда у тебя лайк идет через другую вьюху, и как получить дату с сервера.
JS http://pastebin.com/EFGAqyuY
HTML http://pastebin.com/Jar8b5pe
Вьюха http://pastebin.com/hAdztNyt (не орите с + - - знаю, что можно через бул, но я тренировался с использованием чоисов)
>Что мне писать в аяксе в урле?
Урл той вьюхи, которая будет делать лайк. Делаешь POST запрос на этот урл и отправляешь данные (айди поста, действие(лайк/дислайк) или что там у тебя). Во вьюхе делаешь свое дело. Запрашиваешь сегодняшнюю дату и все это дело шлешь обратно. Можешь слать JSON, HTML, plain text. Показываешь на странице.
>>878419 Извини, сложновато разобраться сейчас, плохо соображаю.
Что у тебя конкретно не работает? В браузеры открывал инструменты разработчика и отслеживал че происходит вообще?
Я использую GET реквест, пост здесь не нужен.
Не меняется значение количества лайков после клика.
переписал аякс реквест вот так вот http://pastebin.com/96ZNkfeH Ничего не изменилось.
Хз, в девтулсах копался - он вообще ни на что не ругается. Я тупой пиздец, я ничего не понимаю.
Если своим запросом изменяешь базу данных, то это, все таки, должен быть post.
Если выложишь на гитхаб, то попробую поковырять
Здесь парадокс в том, что саксесс аякс-запроса проходит, но он не меняет значение класса тотал лайкс даже если вбить какой-нибудь левый аргумент вместо полученной даты. Т.е. я вообще хз, в чем дело.
В смысле должен быть пост? Это просто ссылка, которая запускает вьюху, которая сама по себе меняет значение в БД без поста. Я прикрепял код - там видно, как она работает. Зачем здесь пост?
Без аякса с пейдж-рефрешем лайки обновляются нормально
Я хз, обложись принтами и делай console.log(data) в своем жс-скрипте, открывай инcтрументы разработчика и смотри что выводит. Ну или алертами выоди свои данные.
Судя по вьюхе, чтобы получить число лайков в шаблоне тебе надо писать data.data.
Попробуй просто выводить $('.total-likes).text(data.data)
Насчет post vs get
https://ru.wikipedia.org/wiki/POST_(HTTP)#.D0.92.D0.BB.D0.B8.D1.8F.D0.BD.D0.B8.D0.B5_.D0.BD.D0.B0_.D1.81.D0.BE.D1.81.D1.82.D0.BE.D1.8F.D0.BD.D0.B8.D0.B5_.D1.81.D0.B5.D1.80.D0.B2.D0.B5.D1.80.D0.B0
проблема была в том, что this находился в success аякса. вынес за его пределы - все заработало нормально.
энивей, большое спасибо за помощь
Можно так перевести?
если не верно:
пиши 1
илиесли не верно (1+1==3):
пиши 2
иначе:
пиши 3
Т.е. задача найти неверность, она во второй строке, почему тогда 2 а не 1?
'' - пустая строка
....
x1 = ''
x2 = ''
x = [x1, x2]
....
тут операции, изменяющие x1 и x2
x1 += 'str'
....
print (x)
Результат - ['', '']
Какого хуя?
когда ты делаешь x = [x1, x2], то ты добавляешь в список значения переменных, но не сами переменные. Так это работает в питоне.
Нужно делать:
x1 += 'str'
x[0] = x1
(1+1==3) - это ложь - False
То есть, логика такая:
if not True:
print("1")
elif not False:
print ("2")
else:
print("3")
Два Хауди Хо тебе
Ламповая JS-няша, одна из лучших в украине, которая никогда не даст воняющему говном джангисту.
Мимо-ебарь-задавай свои ответы
Верблюд? Ах да, верблюд, ну да. Ну, слон вашему дому
Внезапно, но заработало вот так.
Как же надоедает, что периодически обновления выходят и приходится постоянно заново учить. И логики-то тут особой нет, просто зазубриваешь и всё, ска.
Отклеилось
arr = [[1,2,3],[4,5,6],[7,8,9]]
for i, x in enumerate(arr):
for j, y in enumerate(x):
print('item [{},{}]'.format(str(i), str(j)), '=', y)
http://stackoverflow.com/questions/5416548/mysql-two-column-primary-key-with-auto-increment
А, не, нихуя, он снова перестал работать. Я начал сомневаться в адекватности Pylint'а.
Хочу купить бумажный вариант попроще, но книги сейчас очень дорогие поэтому спрашиваю без задней мысли (пользоваться онлайн-манами я все равно буду, но хочу иметь хорошее в бумаге): покупать Think Python? Или есть вариант лучше по соотношениям Талмуд/Полезность/Практичность?
Еще скажу, что школьную математику забыл, но знал на 5. С английским проблем нет.
Алсо, думаю купить Таненбаума по сетям и архитектуре ЭВМ.
Синк это чисто понять какие у питона есть применения. Не узнать, типа почитать тредики и прикинуть чё из него делать, а вот прям реально на своей жопе выполняя задания вдуплить какие есть либы, куда их пихают и тд. Короче это самая прикладная книжечка по питону, рекомендую если уже знаком с синтаксисом.
Более-менее фундаментальная литература по именно вкату в компьютерные науки это вопрос совсем другого уровня абстракции. Я не знаю что тут рекомендовать, сикп есть и на питоне уже, но его как и Таненбаума можно и не осилить.
Потому предлагаю просто начать с синка а там по мере необходимости уже двигаться дальше
А писать-то простые скрипты для простой жизни и простые программы (например прилепливатель тэгов к файлам, чтобы их можно было легче искать и сортировать, такая на питоне уже есть) эта книга научит? Или если у меня такие потребности, то лучше не заморачиваться покупкой и просто читать Укус Питона? Очень не хочется читать литературу для домохозяек (или чуть выше).
Именно об таких фиговинах она и есть
Укус такой себе на самом деле, годится на мой взгляд разве что после кодекадеми не забыть чё учил вообще.
Можешь ещё automate the boring stuff with python глянуть, но оно нудное как пиздец и точно не вместо синка
на русском есть пдфка кем-то давно переведённая, это чисто FYI
Зависимости посмотри, может (скорее всего) там нужна какая-нибудь ебала типа пакетов python-dev и тд
Но может кому для вката полезно будет. Это доска в трелло.
Пишите мейлы - всех добавлю. В реплаи к этому посту или на m:#?osANUSopV!wenmailboxPUNCTUM\K/org (ответы от меня могут попадать в спам, имейте ввиду, хотя я просто буду кидать инвайт на доску через мейл с трелло)
Ну и не баловаться на доске особо.
псомотри примеры асинкио, там на пальцах показывается как работать севентлупом
Говно все эти ваши курсы-хуюрсы, дайте нормальной литературы по фундаменталу для погромиста. Чему там в ВУЗах учат.
нахуя тебе? кормен Алгоритмы: потсороение и анализ + язык, наиболее подходящий для области, куда ты хочешь вкатиться
Есть крутой курс Harvard CS50 - http://cs50.tv/2015/fall/ - на русском версию тоже где-то видел
А так держи копипаст кого-то из /pr/ с кем я в целом согласен:
В идеале, если ты хочешь не просто полюбопытствовать, тебе нужен полноценнный курс из нескольких смежных областей:
Базовый матан, на уровне первого курса, чтобы понимать математические формулки, алгоритмы на графах, и подобную хуйню. Используй любую пару вузовских учебников поспрашивай в sci, если хочешь, я рекомендую Ильин-Садовничий-Сендов ч.1 матан и Яблонский дискретная математика, можно читать только про алгебру логики, автоматы и графы.
Базовая теория множеств, после первого пункта пойдет на ура. Подойдет Куратовский-Мостовский гл.1-3,6-7, хотя выбор не принципиален, можешь навернуть какой-нибудь видеокурс. Это очень важный пункт, потому что в норм книжках не разжевывают каждую мелочь, а используют терминологию множеств. Поэтому, в частности, ты и охуел от Кнута а от Успенского-Семенова вообще обосрешься.
Теперь ближе к делу. Колмогоров-Драгалин, тут без вариантов и от корки до корки. Можешь порешать задачки из Лаврова-Максимовой, это гораздо полезнее, чем просто зубрить теорию.
На этом этапе ты уже, вероятно, сам поймешь, чего тебе надо. В любом случае, здесь ты уже без проблем осилишь Кнута, Кормена etc. Если же тебя больше увлекает теоретическая сторона вопроса то бишь, построение новых алгоритмов, а не воспроизведение существующих, то наверни Успенского-Семенова, а затем гугли публикации за последние джвадцать лет. Также неплохо обмазаться методами оптимизации, теорией моделей, ну и по своей предметной области всяким. Такие дела
находишь индекс отрицательного числа
делаешь проход от этого числа до индекса первого попавшегося отрциальетного числа
суммируешь, не?
у меня тоже нет. не помешало вкатиться джуном в 27 лет без образования и опыта работы
Никогда :3
Время суток анон_программач. Стал изучать python, написал скрипт для закачки контента с треда двача. Оцените код, дайте советов мудрых как его оптимизировать и распараллелить (сейчас работает в один поток)
http://pastebin.com/RJjVYGnw
pep8 сука
> formatStr = "{0:." + str(decimals) + "f}"
"{argooment:.{decimals}f}"
> int(round
> sys.stdout.write
> os.mkdir/os.chdir
pathlib
> url.split
urlparse
> soup.find_all('div', {'class': 'image-link'}, 'a')
soup.select("div.image-link a")
> list(range
> len(sys.argv)
docopt
Короче, всё плохо.
> распараллелить
asyncio, threading
Спасибо Бро. Буду курить
Сам ты толстячок. Правда, у меня было еще за плечами 4 немаленьких проекта на гитхабе, которые я пилил, пока сидел на шее у мамки :3
Ты неосилятор с профильным во, который не может вкатиться? Ору с таких немощей.
На пайпай написана игра тройки геймз - Temple of Elemental Evil, кстати.
Т.ч. для риалтайма подходит даже.
Хотя консольных игра на питоне я не припомню.
Ну, вернее, есть Severance: Blade of Darkness на Xbox Original, но там с производительностью совсем плохо было.
Азербайджане. Вот и Раиль Каспитский уже очень много лет — житель Донбасса. Здесь отработал всю жизнь на государственной службе, в Перевальском районе и областной государственной администрации, в областной инспекции гостехнадзора. Сын солдата Великой Отечественной, он воспитывался на общих для всех ценностях.
— Мой отец стал настоящим примером для подражания, — говорит Раиль Каспитский. — Я и по сей день стараюсь следовать его наставлениям. Он участник Великой Отечественной войны, прошел всю военную компанию с 1937 по 1946 годы, освобождал Сталинград от немецко-фашистских захватчиков и принимал участие во взятии Берлина. Был тяжело ранен, но остался жив.
Многонациональный Донбасс принял Раиля тепло. Он создал здесь дом и семью, нашел друзей. Любимая жена Наиля, две замужних дочери, 16-летняя внучка — все есть, что надо для счастья, и глава семьи всем близким старается уделить внимание.
— Мои родители и родственники были направлены сюда после Великой Отечественной войны, по программе восстановления Донбасса, — рассказывает Раиль Ханяфович. — Наших соотечественников здесь много. По национальности я татарин, но мои корни в Ульяновской области. Когда-то ещё в советские годы Ульяновская область и Донбасс считались самыми развитыми в отношении братских и производственных связей. Из всех регионов постсоветского пространства десятки национальностей плечом к плечу трудились на Донбассе, духовно обогащали и дополняли друг друга.
Но не только работа и семья наполняли жизнь Раиля Ханяфовича. Размышляя о судьбе своих соотечественников, живущих в Донбассе, он понял: им нужна поддержка.
— Пятнадцать лет назад, перед о мной встал вопрос о поиске общих интересов своих соотечественников и объединении родственных душ, чтобы совместно решать жизненные проблемы. Здесь я должен сказать большое спасибо покойному имаму г.Алчевска Гирфану Абкадировичу Гильдееву, который посвятил вопросу народного единения значительную часть своей жизни. Мы чтим его память и благодарны ему за все, что он делал для объединения всех народов проживающих в Алчевске и Перевальском районе.
День народного единства Раиль Каспитский считает очень важным праздником — особенно в свете того, что нам довелось пережить за последние годы.
— Особенно сейчас стал актуальным вопрос в единстве всех народов, которые проживают на Донбассе, — считает он. — Нужно сплотиться против общей трудности, чтобы пережить это непростое время. Я скажу всем известный афоризм, которому стоит следовать всегда: «Сила — в единстве, единство — в вере».
Мудрый человек, немало повидавший на своем веку, Раиль Ханяфович убежден: интернационализм — не в забвении своей истории, не в отказе от своего народа. Он в дружбе и взаимной поддержке представителей разных национальностей.
— Исходя из своего жизненного опыта, хотелось бы пожелать всеобщего братского единения народов проживающих на Донбассе, — говорит он. — Без единства ни одно общество в современных условиях не сможет выжить и чтобы народности процветали, нужно решать все проблемы совместными усилиями.
Азербайджане. Вот и Раиль Каспитский уже очень много лет — житель Донбасса. Здесь отработал всю жизнь на государственной службе, в Перевальском районе и областной государственной администрации, в областной инспекции гостехнадзора. Сын солдата Великой Отечественной, он воспитывался на общих для всех ценностях.
— Мой отец стал настоящим примером для подражания, — говорит Раиль Каспитский. — Я и по сей день стараюсь следовать его наставлениям. Он участник Великой Отечественной войны, прошел всю военную компанию с 1937 по 1946 годы, освобождал Сталинград от немецко-фашистских захватчиков и принимал участие во взятии Берлина. Был тяжело ранен, но остался жив.
Многонациональный Донбасс принял Раиля тепло. Он создал здесь дом и семью, нашел друзей. Любимая жена Наиля, две замужних дочери, 16-летняя внучка — все есть, что надо для счастья, и глава семьи всем близким старается уделить внимание.
— Мои родители и родственники были направлены сюда после Великой Отечественной войны, по программе восстановления Донбасса, — рассказывает Раиль Ханяфович. — Наших соотечественников здесь много. По национальности я татарин, но мои корни в Ульяновской области. Когда-то ещё в советские годы Ульяновская область и Донбасс считались самыми развитыми в отношении братских и производственных связей. Из всех регионов постсоветского пространства десятки национальностей плечом к плечу трудились на Донбассе, духовно обогащали и дополняли друг друга.
Но не только работа и семья наполняли жизнь Раиля Ханяфовича. Размышляя о судьбе своих соотечественников, живущих в Донбассе, он понял: им нужна поддержка.
— Пятнадцать лет назад, перед о мной встал вопрос о поиске общих интересов своих соотечественников и объединении родственных душ, чтобы совместно решать жизненные проблемы. Здесь я должен сказать большое спасибо покойному имаму г.Алчевска Гирфану Абкадировичу Гильдееву, который посвятил вопросу народного единения значительную часть своей жизни. Мы чтим его память и благодарны ему за все, что он делал для объединения всех народов проживающих в Алчевске и Перевальском районе.
День народного единства Раиль Каспитский считает очень важным праздником — особенно в свете того, что нам довелось пережить за последние годы.
— Особенно сейчас стал актуальным вопрос в единстве всех народов, которые проживают на Донбассе, — считает он. — Нужно сплотиться против общей трудности, чтобы пережить это непростое время. Я скажу всем известный афоризм, которому стоит следовать всегда: «Сила — в единстве, единство — в вере».
Мудрый человек, немало повидавший на своем веку, Раиль Ханяфович убежден: интернационализм — не в забвении своей истории, не в отказе от своего народа. Он в дружбе и взаимной поддержке представителей разных национальностей.
— Исходя из своего жизненного опыта, хотелось бы пожелать всеобщего братского единения народов проживающих на Донбассе, — говорит он. — Без единства ни одно общество в современных условиях не сможет выжить и чтобы народности процветали, нужно решать все проблемы совместными усилиями.
нахуя ты это говно в питонотред принёс, болезненный? попроси модератора пусть удалит
А чё такое? Мультикультурализм. Всё как на Западе.
Подскажите тему, чтобы можно было написать, чтобы: понять как работает ООП в Пайтоне, как-нибудь реализовать присылание СМСок.
По возможности какие-нибудь годные либы, УРОКИ, етц.
Так же хайли интерестед в разных примерах\гайдах\идеях для скриптов.
А то я только Джанго-макака с 0.5 проектами
Уважаемый, а можешь скинуть на гитхаб свой мвнядвижок, мне интересно
Yield yopta
Программа для рассылки смс спама.
Либа - Twillio
Создавай свои классы типа ПартияСпама, наследуйся, автоматизируй. Короче простор для фантазера йоп
Для начала нужно понять как работать с апи ютуба. Для этого используется гугл.
Далее использовать нужно requests и стандартный механизм питона.
В зависимости от формата текста, разбивается массив данных по каналам и циклом по каждому каналу используя апи гугла получаешь нужные данные
Только вот эта либа? Ничего такого, но за неё платить надо, чтобы отображался номер, как я понял. Аналогов нету?
Жаль, но для нормального использования нужно платить
Хотя по-моему бесплатно смс можно отправлять.
Смотри курс на Udacity, называется Python Foundation (в одном из уроков они юзают его)
Должен тебя поздравить, ворнинги типа "переменная объявлена, но нигде не используется" твой организм генерирует отлично.
Душевно благодарю, cударь.
Умение работать с дистрибутивом - с УБУНТОЙ, в основном. Чтобы ты мог сам себе развернуть окружение, настроить
Арихато, милейший
Умочка!
Он под линух вроде как и делался изначально. иде для питона же На винду накатывать раньше было неудобно, была путаница со слешами. И если начинаешь писать, то все возможности Пайчарма тебе пока не нужны. Хватит и Атома\Саблайма.
Так же в настройку окружения входят и тулы для контроля версий, понимание работы веб-серверов, понимание протоколов. Если есть девопс, то об этом думать не надо, но знать как работает HTTP, что такое гит\свн желательно. Имхо, конечно же
Ты умочка!
чет сложна. я жму commit and push - оно само приезжает на гитхаб. Я понял, буду изучать глубже
Всё понял, спасибо.
Воняющий говном джангист порвался
list1=[['OP', 'huy'], ['Abu', 'ohuel']]
Нужно чтобы он записывался в txt файл.
При вызове выводилось что-то вроде
1. OP - huy
2. Abu - ohuel
Помогите пожалуйста.
A можно пожалуйста что-нибудь по конкретнее, а то решение нужно прямо сейчас, а библиотеку изучать займет слишком много времени.
[code]
with open('list.txt', 'w') as f:
for k,v in list1:
f.write("{} - {}\n".format(k, v))
[/code]
слать везде, даже на сеньора. или в пхп укатываться, там куча вакансий для джунов
>>> a='dick'
>>> b='dick'
>>> a is b
True
>>> a='dick dick'
>>> b='dick dick'
>>> a is b
False
Как я понял, этот оператор дает True тогда, когда две переменных ссылаются на один объект в памяти. Вопрос: "дик" и "дик" — это на самом деле один "дик", а "дик дик" и "дик дик" — это уже два совершенно разных "дик дик"?
отличный совет от питониста, укатываться в пхп. Я имею ввиду, почему такая ситуация вообще сложилась? Откуда тогда беруться сеньеры?
Ну пишешь и на гитхаб выбрасываешь всякий охуенчик
А потом говоришь что хочешь быть сеньором помидором, тебе говорят что не тянешь, но записывают в стремящиеся, а потом и берут куда-нибудь
понял, попробую. На гитхабе пока простой блог на джанго и контрибьютинг в API на прошлой работе. Но да, я пиздец стремящийся.
Как я понял, "а==b" сравнивает значения a и b, "a is b" проверяет, ссылаются ли a и b на один и тот же объект в памяти.
Я не понимаю, почему в случае со строкой "дик" переменные ссылаются на один объект, а в случае со строкой с пробелом ("дик дик") на два разных. Как по мне, и "дик", и "дик дик" — это просто строки. Почему пайтон так по-разному их фиксирует?
да от блога зависит
если он во все стороны срёт рестом и мамкешидся через рабитэмкю, авторизирует хоть через ежовуюзалупу_оаутх и свистопердит во все стороны всяким говном - блог так блог, всем похуй
это уже не простой блог
магаз бахни, какой-нибудь новостной сайт, имеющий кучу самых разных фич, бахни какую-нибудь хуйню, аккумулирующую контент с других сайтов (парсеры-хуярсеры). Приеблань чат на торнадо ко всему этому. Все вакансии твои.
надо попробовать, спасибо.
чо питон так обосраться может?
Это питон-двачер.
Тоже самое с интами больше 255 вроде. Короче, проверяй изом только на None или в тех ситуациях, когда ты точно знаешь, что ищешь вот этот инстанс вот в этом контейнере, например. Забудь о том, что питон что-то там оптимизирует и у тебя будут одинаковые ссылки на одинаковые объекты.
Ну типа в Пистоне кешируютсяв результате получается один объект короткие строки, в длинные нет.
Хули тут понимать.
Работает как везде.
Есть объекты - обособленные структуры данных +их методы(функции).
Может быть объект - Ононимус. Структура данных, в которой хранится несколько переменных - пол, имя, возраст, любимый раздел на борде.
Может быть объект - парсер. В нем - структура данных (шаблон для собсна парсинга конкретных сайтов) + методы объекта, реализующие сам процесс парсинга.
Что вообще значит - как работает?
Задан класс (класс - это тоже "объект", по сути - шаблон для создания объектов, форма для отливки, лекало).
Класс это такой способ создания объектов в памяти компа. В частном случае например класс = тип. допустим есть класс(тип) "строка" или "целые числа". Конкретная переменная типа int - это объект.
"ооп" - по сути некий набор правил для создания сущностей/процессов в рамках написания и работы программы.
Ебантяи лепят классы везде где можно, что нихуя не правильно по мнению создателей самого питона. Классы нужны там, где нельзя разумно обойтись тупо функциями. Т.е. нужны они для создания сложных объектов с замороченным поведением.
В идеале при создании классов нужно руководствоваться предметной областью/реальными объектами в гештальте юзера. Класс "окно с кнопачками" в интерфейсе, класс "мобилка" или "транзакция" в интернет-магазине.
https://habrahabr.ru/post/140581/
в питуне причем ООП реализован не идеально. Лично меня при начале изучения питуна выбесило нерациональное использование лексем при задании класса. Эта ебаная ненужная конструкция "def __init__" , self - выражения и так далее. Но люди привыкли.
Лично я предпочитаю смотреть на классы как на шаблон в коде, а на объекты - как на реально развивающийся процесс в оперативке. Процесс физический и информационный. Объект на уровне физики это некий обособленный набор состояний/"квантов энергии ЭМ-поля" в ячейках оперативной памяти компа.
мимо-ньюфажина в программировании
Нет, ёбта, хуя ты затупь ваще васян, структур данных и паттернов не понимаешь, пизда рулю
Читай пикрил станет понятней
ну ты лох внатуре епте бля
urllib + несколько потоков. как обойти капчу хуй знает. найми двачера лучше
ты еблан что-ли? такая хуйня делается очень просто на нативном питоне.
http://pastebin.com/aL341xG9
Я осилил создание словаря, но не могу понять как из этого словаря вытянуть каждый лист и повыкидывать из него stopWords и сократить на noStemWords.
> Додик в треде, нужна помощь анончики. Есть один курсач: программа должна принимать много строчек текста, удалять в нем слова из stopWords и сокращать на -ing , -ed, -ly оставшиеся слова если они не находяться в noStemWords. Потом выводить частоту нахождения слов в тексте в виде: слово : строчка#, строчка#,...
> Я осилил создание словаря, но не могу понять как из этого словаря вытянуть каждый лист и повыкидывать из него stopWords и сократить на noStemWords.
Очевидно Pandas
Тут проблема:
Я только могу использовать split() и strip(),
и стандартные методы для листов и словарей.
Религию сменил, все равно не пашет (дрисня в последнем вложенном цикле)
http://pastebin.com/NtCwsRhK
list1=[['OP', 'huy'], ['Abu', 'ohuel']]
Нужно чтобы он записывался в txt файл.
При вызове выводилось что-то вроде
1. OP - huy
2. Abu - ohuel
Помогите пожалуйста.
Эксперт в треде, я спокоен.
Короче я тот чел который писал что не могу найти вакансию на жуниор питона. Сам написал в пару контор, что мол такой сякой, такое сякое умею, блог вот запилил, апишку на прошлой работе на питоне, с таким работал, возьмите за еду. Так вот, меня тут пригласили на встречу, а я хз что читать. SQL? Django? Требований как таковых нет, я сам написал, вакансий не было. Подскажите, что почитать для такого вот интервью?
Джанго: почти наверняка будут спрашивать про generic views, модели, реляции, миддлвари.
Питон: magic methods (что делают, как использовать), коллекции, декораторы, генераторы и что-то ещё.
SQL: опять реляции, может попросят связать две таблицы many-to-many и т.д.
Полгода назад обошёл очень много контор по Python, но по мидловским вакансиям.
Питухон: ООП, декораторы, лямбды, генераторы, списковые включения, что-то из стандартной либы типа итертулс, функтулс и т.п.
Джанго: База: что такое МВЦ, что такое модель, что такое кверисет, через что джанго пропускает запрос. Сигналы, мидлварь, класс-бейсд вьюхи, менеджеры. Что с Джанго-декораторами. Шаришь ли в рест-апи. Как дела с работой с голыми sql запросами. Q, F функции. Каким образом проводишь валидацию форм. Фабрики форм.
SQL: реляции, в чем разница между реляционными и нереляционными базами данных, мб попросят запилить что-нибудь простое.
А, еще наверняка поебут мозг с Json и Ajax
http://pastebin.com/C2prDXz3
Подскажи пожалуйста как сделать вместо них одну функцию/декорацию.
Я только вкатываюсь в питон, и не совсем понимаю как сделать чтобы он брал разные аргументы и подставлял их в эту функцию.
>через что джанго пропускает запрос
а кстати и правда, через что? Вот есть кверисет у нас, как работает?
в довесок к вышесказанным советам. Я надеюсь, что ты не оподливишься, если тебя спросят, что такое стек, куча, и про сортировку пузырьком? База есть по алгоритмам и структурам данных?
Пытаюсь использовать генератор кортежа в python 2.7 и ни как не могу понять, почему он не хочет работать. В документации написано, что можно делать кортежи из других последовательностей, но получается херня какая-то.
К сути.
Есть список кортежей из которых мне надо вытащить каждое первое значение каждого кортежа в списке.
Делаю вот так:
[code lang="python"]
>>> s = [(1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4)]
>>> t = (i[0] for i in s)
>>> tuple(s)
>>> ((1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4))
[/code]
Как так? Я же просил, только первое значение.
Причём для генератора списков всё ок:
[code lang="python"]
>>> s = [(1, 2, 3, 4), (1, 2, 3, 4), (1, 2, 3, 4)]
>>> l = [i[0] for i in s]
>>> l
>>> [1, 1, 1]
[/code]
Что я делаю не так? Почему со списками всё получается, а с кортежами нет? В принципе-то можно и списки использовать конечно, но хотелось бы разобраться.
стек куча скажу, ну есть мало мальская.
Всё, спасибо, разобрался.
Ужас. Мне стыдно.
Только отправив увидел свою ошибку. Всё работает же, но я (криворукое создание) не ту переменную дёргаю.
Думаю, анон миддлвари встроенные имеет в виду.
пожалуйста
Использую PyCharm. Сделал два файла, функцию из одного импортирую в другой. После того, как редактирую первый, с функцией, у меня во втором запускается старая функция. Помогает перезапуск PyCharm. Что можно сделать, чтобы изменения сразу вступали в силу ?
Оставь так, если срочно. Потом перепишешь.
>Но я вообще не ебу, как это сделать в тэгах
Inclusion tags же, там все просто https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/#inclusion-tags
ImportError: No module named 'fcntl'
пытаюсь работать с heroku
Как обычно сам себе отвечаю. В прокфайле делаем строку
web: python manage.py runserver 0.0.0.0:5000
И все работает.
и не надо обмазываться линуксами
Да ты охуел.
А правда, что Столлман - коммунист?
Фреймворк, который без костылей не может в асинхронность.
Асинхронщина это конечно хорошо, но для кучи хуйни можно обойтись и без неё.
Джанга это способ клепать каштомные обычные сайтики в первую очередь, а уже потом мега-гипер-порталы с 100К посетителей в секунду
Щас бы в наше время не писать асинхронные сайты. Если в 2.0 не завезут нормальную поддержку этого дела - фреймворк сдохнет, фиксируйте.
да сдохнет и хуй с ним, появится что-то другое, я хз на кой чёрт ты вообще об универсальном инструменте на все случаи жизни мечтаешь
потому что нода не меньшее заблуждение чем отсутствие встроенной асинхронщины в джанго, например.
вон брекетс крутится внутри на ноде - и чё блядь, по-твоему это нормально, так пихать херовенько производительный жс во все дыры? тогда ебашь конечно
Может конечно, просто к нам забижал на огонёк восторженный любитель ноды
Это только вопрос времени когда он забежит ещё куда-нибудь, в с++ тред спрашивать зачем плюсы если есть божественная ниспосланная самим совершенством нода
Спасибо, нашёл.
Есть свободное время, хочется потратить с пользой.
UP!
Использую PyCharm. Сделал два файла, функцию из одного импортирую в другой. После того, как редактирую первый, с функцией, у меня во втором запускается старая функция. Помогает перезапуск PyCharm. Что можно сделать, чтобы изменения сразу вступали в силу ?
Что должно происходить: Есть словарь со значениями, по значениям считается магическое число. Далее вычисляется оптимизированное значение и заменяется в словаре. Если магическое число на предыдущем шаге совпадает с числом на данной итерации - усё приплыли, данное значение не имеет дальнейшей оптимизации и нужно переходить к следующему. То есть делать сдвиг в словаре. Я бы сделал всё через очевидный For, но вся эта хуйня зациклена в While как и должна быть. Идей сука пока ноль.
Я вряд ли понял правильно, но попробуй скопировать ключи в кортеж или список и вытаскивать на каждой итерации с помощью pop(), или делай проход по индексу это списка/кортежа.
Fr_g[0] не словарь, а лист. И лист со значениями градиента.
Словарём является очевидный Elems. В Elem_list находятся названия ключей.
Очевидно до ахуения.
Я не подорвался. Я просто пошел в PyCharm сделал два файла. В одном функцию написал, во-втором импортировал её. Запустил файл с импортом - Всё заебись. Заменил функцию во-втором не нажимая ctrl+s и запустил первый файл - новый результат. Очевидно дело не в PyCharm.
Elems = {'Yv':0.00033, 'Y1':0.001, 'C1':3e-6, 'C2':6e-6, 'C3':8e-6, 'L1':5000}
temp_grad = 0
Шаг 1. Строим матрицу используя эту залупу.
Шаг 2. Находим градиент.
Шаг 3. Если grad = temp_grad, значит нужно переключится на следующий
элемент в словаре(изначально Yv) и начать Шаг 4 с новым элементом, Иначе Шаг 4 со старым элементом.
Шаг 4. temp_grad = grad.
Шаг 5. Оптимизируем 1 элемент в словаре - Yv.
Шаг 6. Повторяем всю поебень заново.
Очевидно что нужно пройти все этапы от 1 элемента словаря до последнего. Очевидно что каждый раз матрица будет меняться, поэтому всё это в цикле While. Очевидно, что если матрица меняется, то и градиент меняется.
Если так сильно нравится какое-либо дело - то тебя ждет в нем успех
Благодарою.
Хоть одна из этих штук позволит что-то реальное сделать, что будет дешевле/лучше, чем покупное на нормальном оборудовании?
Как тебя вообще чёрт дёрнул в программинг влазить с таким настроем?
ардуинка это копеечная затычка на тысячу дырок, а уж какие дырки ты себе придумаешь и определишь это дело твоё
Ну, ващет если взять распбери, то это гуд. А вот этот весь ардуино-хлам просто для другой аудитории.
ну да, генильная идея делать включалки кофеварок и выключалки света по хлопку ладоней на рапсберри которое ещё и стоти в разы дороже тех трёх баксов за которые продаются ардуины
Не тот веб, который интернет магазины на джанго, но в широком смысле тоже веб.
Кто сказал, что эту хуйню? Распбери, в отличие от этого говна может делать реальные задачи, потому что линукс есть.
ок, кодь малинку
Делаю одно из первых упражнений из книги Саммерфилда, задача — написать программу, которая будет генерировать компьютерные четверостишия с помощью списков. Вот код (слова в списках заменил на буквы, чтобы не занимать место):
from random import choice
first=['a', 'b', 'c']
second=['a', 'b', 'c']
third=['a', 'b', 'c']
fourth=['a', 'b', 'c']
while True:
for i in range(4):
print (choice(first), choice(second), choice(third), choice(fourth))
choice=input('Enter for another poem, any key to quit: ')
if not choice:
pass
else:
break
Первый стих выводится на ура, но когда я нажимаю Enter, программа ломается вот так:
Traceback (most recent call last):
File "poem.py", line 25, in <module>
print (choice(first), choice(second), choice(third), choice(fourth))
TypeError: 'str' object is not callable
Совершенно не понимаю, что происходит. Добавил после while True строки, которые показывают содержимое и тип first, second, third, fourth, программа нормально показывает содержимое списков и определяет их как class 'list'.
Что это за ошибка?
Делаю одно из первых упражнений из книги Саммерфилда, задача — написать программу, которая будет генерировать компьютерные четверостишия с помощью списков. Вот код (слова в списках заменил на буквы, чтобы не занимать место):
from random import choice
first=['a', 'b', 'c']
second=['a', 'b', 'c']
third=['a', 'b', 'c']
fourth=['a', 'b', 'c']
while True:
for i in range(4):
print (choice(first), choice(second), choice(third), choice(fourth))
choice=input('Enter for another poem, any key to quit: ')
if not choice:
pass
else:
break
Первый стих выводится на ура, но когда я нажимаю Enter, программа ломается вот так:
Traceback (most recent call last):
File "poem.py", line 25, in <module>
print (choice(first), choice(second), choice(third), choice(fourth))
TypeError: 'str' object is not callable
Совершенно не понимаю, что происходит. Добавил после while True строки, которые показывают содержимое и тип first, second, third, fourth, программа нормально показывает содержимое списков и определяет их как class 'list'.
Что это за ошибка?
Какой же я, блять, тупорылый. Спасибо.
Напиши примеры задач, будь добр. Просто не могу понять, что же это за в-каждой-бочке-микросервис-затычки
Ну, например: локатор, который говорит какой сервис где, менеджер базы данных с управлением блобами данных, воркеры с cpu работой, клиенты/операторы, источники данных да кучу всего ещё можно придумать.
мне дико стыдно но я за год изучения питона с твоего поста и четверти не понял
чё почитать по теме?
Так это вроде не к питону относится вообще. Это просто описание узлов, какой что примерно делает. Просто у питона есть asyncio, который позволяет кайфово общаться по сети, а также куча библиотек для всего.
Клиенты, кстати, либо будут веб-мордами, либо десктоп аппами на каких-нибудь шарпах/крестах.
>Просто у питона есть asyncio, который позволяет кайфово общаться по сети
Что ты имеешь в виду? Полагаю, что для связи всех этих микросервисов в макросервис все равно используют всякие queues и rpc.
Всё. Ты прошёл жизнь, поздравляю.
И как это отрицает, что
> Просто у питона есть asyncio, который позволяет кайфово общаться по сети
Вместо потоков используются короутины вот и всё отличие. Ну, ещё отсутсвие части проблем с мутабельностью.
Не нервничай, просто не вполне понятно, что ты имеешь в виду под
>кайфово общаться по сети
применительно к asyncio
Ок, понял.
пошел нахуй. Опять говна навалишь в шапку.
Вот, написано же, что с покупкой про версии открывается доступ к веб девелопменту
Это как донат в ммо-дрочильнях. Труъ-задроты качаются прокачиватся до вебдевелопмента сами.
Все упирается всего-то в предустановленных IDEA плагинах. Пикрелейтед моя профессиональная версия.
В принципе, можно напердолить из комьюнити. Поддержка джанго - всего лишь плагин для автокомплита в шаблонизаторе, быстрый переход от вьюхи к шаблону и к маршруту. Поддержка manage.py команд - суть просто надстройка над рантаймом, но только с автокомплитом команд (удобно кстати). Делается самостоятельно в настройках. Поддержка css фреймворков/базовый JS тоже плагинами делается. Хотя, конечно, удобнее прошка.
Если так уж хочешь пиратку- активируется в один(!) клик.
О, кстати у них сегодня как раз биг апдейт прилетел.
>Terminal with Virtualenv pre-activated
>Database Improvement: Edit many cells at once
Вот это куль.
Зачем тебе изучать питон? Зачем?
кодекадеми наверни
Про blender слышал. К нему можно прикрепить уже готовую программу на питоне без сильного мозгоебства?
типа того, погляди блендер питон апи
Если не смотрел еще, глянь Python Cookbook by David Beazley
И да, чтобы чуть чуть добавить вопросу информативности замечу что сфера не очень важна, любая, главное чтобы не нужны были html css js.
Пиши микросервисы на asyncio, это позволит тебе кайфово общаться по сети.
Открываешь databases, добавляешь источник и в бой. Без задней мысли.
Ну создавай скрипт, который будет пихать рандом через Django ORM. В чем проблема? В Tango with django есть целая глава (populating).
Попробуй fixtures https://docs.djangoproject.com/en/1.10/howto/initial-data/
Можешь сделать дамп существующей базы командой 'manage.py dumpdata' https://docs.djangoproject.com/en/1.10/ref/django-admin/#django-admin-dumpdata - создаст JSON файл с твоими данными
Когда надо загрузить их базу, делаешь 'manage.py loaddata dump.json'
В тестах должно работать такое:
from django.test import TestCase
class MyTestCase(TestCase):
....fixtures = ['/myapp/fixtures/dump.json',]
То есть, когда во время тестов будет создаваться тестовая база эти данные загрузятся.
Очевидную стандартную библиотеку навернуть. Ссх пока что не потянешь написать, но ничего сверхсложного там нету. Научись сначала взаимодействовать с средствами ос, (tcp/ip), фс, процессы-треды, пайпы. Потом прочитай rfc ssh и пиши. Только несмотря на все готовые криптографические функции кое-что все равно надо будет понимать чтоб твой ссх решетом не был, хотя ссх на некомпилируемом языке со сборкой мусора уже слегка решето, если в идеале.
Синк пайтон потом стандарт лайбрери бай экзампл
> Научись сначала взаимодействовать с средствами ос, (tcp/ip), фс, процессы-треды, пайпы.
Вот, у меня даже нет идей, как этому научиться на практике. Равно как и даже сам интерфейс сделать. Пойду повешусь
Чтож ты за аутист блять, ясен хуй что у тебя нет идей если ты не знаешь че это такое. Стивенс - tcp/ip и не благодари. Это если хочешь как батя разобраться. Чтоб простенько воткнуться в протоколы и сокеты можно и какой-нить кратенький гайд на 20 страничек почитать.
эмм, прости, но за сетевые протоколы, маршрутизацию, коммутацию, туннели и прочее говно я сам тебе могу пояснить. Вопрос стоит не "что это такое?", а "как с ними взаимодействовать путем написания говнокода (а другого у меня не получится) на питоне"
Задача простая, и я решил дать питону шанс.
В первый раз я охуел когда сделал sys.getsizeof({}). На моей системе пустой дикт занимает 288 байтов. Дикт с 6 элементами уже 480.
Затем я потестил пустую строку - sys.getsizeof(u''). 49 байтов.
В результате я минимизировал использование диктов в пользу листов, заюзал слоты в объекте, представляющем ноду дерева, и всё равно имею оверхед по памяти в 5-10 раз по сравнению с тем, что имел бы на С.
Нахуй так жить, котаны?
ну и в пизду иди. зато на питоне сайтики делать приятно
Крестьяне набежали.
каким образом ты используешь синхронную либу в асинхронном коде? каждый чих в concurrent.future что ли оборачиваешь?
ты комбо говна на оп-пиках собрать решил?
тебе не жалко жесткий диск? В один файл нельзя запихнуть? У тебя не питон, а файловая система помрет быстрее.
Нет не жалко. ФС это та же БД, пусть трудится.
Запихивать зеркало сайта с кучей контента в один файл противоестественно, потому что иногда хочется докачать новый контент или даже поднять веб-сервер.
Добро пожаловать в интерстелларпретируемый мир. Интересно, а нашу вселенную скомпилировали или мы скрипт?
import sys
from collections import namedtuple
d = namedtuple('Dicty', ['name', 'size', 'meta'])
a = d(name='Name', size=123, meta='Doodle:True')
sys.getsizeof(a) #72
b = {'name': 'Name', 'size':123, 'meta': 'Doodle:True'}
sys.getsizeof(b) #288
Словари, блядь...Слоты, нахуй. "Маааам, ну оверхееед, ну мааам это язык говно, а я молодец"
Установил я последний питон.
Дальше нихуя не понимаю. Одни пишут что надо ставить DE, другие пишут что IDE, другие пишут что перед IDE надо ставить еще что-то (при том каждый своё предлагает установить).
Просвятите пожалуйста.
что нравится тебе, то и ставь, не понимаю в чем вопрос. Поставь какой-нибудь pycharm/sublime text - и делов-то. Я вообще обычно копирую из консоли ipython в блокнотик, как дебил.
virtualenv гугли
>нравится тебе, то и ставь
Спасибо за ответ, но мне пока еще ничего не может нравится так как я нихуя не понимаю в этих IDE и зачем они нужны.
Вопрос про это был - какие компоненты и зачем нужны для нормального функционирования питона?
Это копия, сохраненная 12 декабря 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.