TechCave

Описание сайта

Основная информация

Python — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.

Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Python организовывается в функции и классы, которые могут объединяться в модули (они в свою очередь могут быть объединены в пакеты).

Рейтинг: 1
Создана 4 года назад
Владелец root

Стена группы

Загрузка...
2 года назад
#

Web crawler с использованием Python и Chrome

Добрый день, дорогие друзья.

Недавно, сидя на диване, я задумался о том, что хочется мне сделать своего паука, который что-то бы смог качать с веб сайтов. Но качать он должен был бы не простой загрузкой, а как настоящий милый добрый браузер (т.е. JavaScript чтобы исполнялся).

В моей голове всплыли такие интересные штуки, как Selenium, PhantomJS, Splash и всякое подобное. Все эти штуки были мне немного втягость. Вот какие причины я выявил:

  • Дело в том, что я хотел бы писать на своем любимом питоне, потому что очень не люблю JavaScript, а это уже означает, что большая часть уже не работала бы (или пришлось их как-то склеивать, что тоже отстой).

  • Еще эти безголовые браузеры обновляются как когда.

  • Но вот Selenium очень милая штука, но я не нашел, как там отслеживать загрузку страниц, или хотя бы адекватного способа выдрать куку или задать её. Слышал, что многие любители селениума инжектят в страничку JavaScript, что для меня дико, потому что где-то полгода назад я делал сайтик, который отрывал любые JavaScript вызовы с сайта и потенциально мог определять моего паука. Мне бы очень не хотелось таких казусов. Хочется чтобы мой паук выглядел как браузер максимально точно.


Источник
2 года назад
#

Простая модель адаптивного фильтра Калмана средствами Python


Проблема


Вечная проблема любых измерений их низкая точность. Основных способов повышения точности два, первый состоит в повышении чувствительности к измеряемой величине, однако при этом как правило растёт чувствительность и к неинформативным параметрам, что требует принятия дополнительных мер по их компенсации. Второй способ состоит в статистической обработке многократных измерений, при этом среднеквадратичное отклонение обратно пропорциональна корню квадратному из числа измерений.

Статистические методы повышения точности разнообразны и многочисленны, но и они делятся на пассивные для статических измерений и активные для динамических измерений, когда измеримая величина изменяется во времени. При этом сама измеряемая величина так же, как и помеха являются случайными величинами с изменяющимися дисперсиями.

Адаптивность методов повышения точности динамических измерений следует понимать, как использование прогнозирования значений дисперсий и погрешности для следующего цикла измерений. Такое прогнозирование осуществляется в каждом цикле измерений. Для этой цели применяются фильтры Винера, работающие в частотной области. В отличии от фильтра Винера, фильтр Калмана работает во временной, а не в частотной области. Фильтр Калмана был разработан для многомерных задач, формулировка которых осуществляется в матричной форме. Матричная форма достаточно подробно описана для реализации на Python в статье [1], [2]. Описание работы фильтра Калмана, приведенная в указанных статьях, рассчитана на специалистов в области цифровой фильтрации. Поэтому возникла необходимость рассмотреть работу фильтра Калмана в более простой скалярной форме.

Источник
2 года назад
#

Есть и нет


Сначала пример олимпиадной задачи по логике. На острове живут мудрецы и лжецы. Причем, их да и нет звучат как пиф и паф. Что именно из них что – неизвестно.

Решаем. Мудрец ответит следующим образом: (А = А), (А ≠ not А). Ответ же лжеца в таком случае: (А ≠ А), (А = not А). Пусть на их языке пиф – это да. Тогда на вопрос (пиф – это да?) мудрец ответит пиф. Если же на их языке (пиф – это нет), то его ответ будет таким же: пиф. Лжец же всегда будет высказывать несуществующее (то, чего нет), говоря паф.

Итак, конструкция истины (тождественно истинной формулы) А=А, лжи (тождественно ложной формулы) А≠А. Эти же формулы позволяют передавать логические примитивы: есть А, нет А. Вот пример на языке python.

Источник
2 года назад
#

Чат-бот для ВКонтакте на Python на Callback API

Чат-боты стали уже очень распространенным явлением, и появляются во всех мессенджерах ежедневно.

В этой статье по шагам разберем создание бота с набором простых команд и узнаем, как в дальнейшем можно расширить его функционал. Статья будет полезна для самых новичков, которые никогда не пробовали создавать чат-ботов.

Когда мне захотелось создать бота, я изучил доступные примеры ботов для ВКонтакте и постарался достигнуть максимального упрощения их структуры.

Для создания бота я использовал Python 3.5 (вероятно, подойдут и другие версии 3-го питона) и дополнительные библиотеки Flask и VK. Их надо будет установить. По установке Flask есть много статей на русском. Если у вас стоит Pycharm, то он, скорее всего, установился вместе с ним.

Начнем с самого API. Для нашего бота будем использовать Callback API, доступный для сообщений групп. Прежде всего, нам нужно создать или уже иметь группу ВКонтакте с подключенными сообщениями.

В разделе управление сообществом → работа с API необходимо создать ключ с доступом к сообщениям сообщества.

VK создание ключа доступа

Источник
2 года назад
#

Как я выбирал скриптовый язык и остановился на Python


Задачи в программировании бывают разными. Например, часто нужно написать скрипт на 10 строк кода. И, соответственно, нужно для этого что-то вроде Bash, только не Bash :) Долгое время я использовал для этих задач Perl. Но, увы, во многих командах Perl недолюбливают. Не исключено даже, что заслуженно. Поэтому возникает вопрос поиска хорошего скриптового языка. После долгих и мучительных раздумий я пришел к выводу, что такой язык — это, скорее всего, Python, и в этой заметке будет рассказано, почему.

Отмечу, что для скриптовых языков существует огромная ниша. Фактически, во всех задачах, где скорость выполнения программы не очень важна, имеет смысл использовать скриптовые языки, так как скорость разработки на этих языках существенно выше. Во-первых, так происходит по той причине, что скриптовые языки изначально не претендуют на высокую производительность кода, что позволяет делать их более высокоуровневыми и выразительными. Во-вторых, скриптовые языки позволяют программисту видеть результат мгновенно, без перекомпиляции проекта, перезапуска веб-сервера, и так далее. Такого рода не требовательных к скорости перемножения матричек задач намного больше, чем может показаться на первый взгляд.

Источник
2 года назад
#

История о том, как парсер превратился в полноценного МРКО бота для Телеграм


Приветствую, Хабровчане! Недавно я писал статью про то, как написать парсер дневника МРКО, а в конце пообещал написать про интеграцию с Телеграм ботом, о чем очень жалею. Сейчас бот уже готов и полностью функционирует. Хочу рассказать вам, что использовал и с какими трудностями столкнулся в этой работе.


Источник
2 года назад
#

Как быстрее всего сфоткать 35 билбордов в Москве


Идеи, чем заняться на выходных, ITшники черпают из сотни разных источников. Я, к примеру, недавно увидел конкурс Открытого чемпионата школ по Экономике, заключающегося в том, чтобы сфотографировать максимальное число билбордов Чемпионата. Адреса организаторы любезно предоставили. И несмотря на то, что приз взрослому там не светит (это школьный конкурс), тем не менее крайне интересно было бы узнать, за какое минимальное время можно решить такую задачу.



Источник
2 года назад
#

Векторные модели и русская литература

image


Вы никогда не задумывались, почему тексты классических русских писателей так ценятся, а сами писатели считаются мастерами слова? Дело явно не только в сюжетах произведений, не только в том, о чём написано, но и в том, как написано. Но при быстром чтении по диагонали осознать это трудно. Кроме того, текст какого-нибудь значимого романа нам просто не с чем сравнить: почему, собственно, так прекрасно, что в этом месте появилось именно это слово, и чем это лучше какого-то другого? В какой-то мере реальное словоупотребление могло бы контрастно оттенить потенциальное, которое можно найти в черновиках писателя. Писатель не сразу вдохновенно пишет свой текст от начала до конца, он мучается, выбирает между вариантами, те, что кажутся ему недостаточно выразительными, он вычеркивает и ищет новые. Но черновики есть не для всех текстов, они отрывочны и читать их сложно. Однако можно провести такой эксперимент: заменить все поддающиеся замене слова на похожие, и читать классический текст параллельно с тем, которого никогда не было, но который мог бы возникнуть в какой-то параллельной вселенной. Попутно мы можем попытаться ответить на вопрос, почему это слово в этом контексте лучше, чем другое, похожее на него, но всё-таки другое.


А сейчас всё это (кроме собственно чтения) можно сделать автоматически.


Источник
2 года назад
#

Как написать чат-бота для vk.com за 3 минуты

К сожалению, на данный момент нет хороших библиотек на Python2, для того, чтобы быстро создать чат-бота. Ниже я покажу, как легко можно написать примитивного чат бота для VK, используя API VK.


Статья написана для новичков, чтобы показать, что ничего сложного в написании ботов на Python нет.


Авторизация

Нам понадобится библиотека vk_api. Авторизоваться в вк можно двумя способами:
— Как пользователь
— Как сообщество

В первом случае надо будет ввести логин и пароль. Во втором случае в группе надо включить «Сообщения сообщества» и создать ключ доступа к API:

Источник
2 года назад
#

Модель колебательного звена в режиме резонансных колебаний на Python

Введение


В статье [1] я в строгом соответствии с общеизвестной теорией колебательных процессов рассмотрел колебательное звено, построив переходные процессы с применением библиотек SymPy и NumPy.

Первым был рассмотрен случай апериодических и свободных затухающих колебаний, инициируемых бесконечным импульсом силы постоянной амплитуды.

Вторым был рассмотрен случай отрицательного демпфирования (который я не прокомментировал). Отрицательное демпфирование можно наблюдать, когда под горизонтально подвешенного в центре на двух пружинах кубике движется лента качающееся его одной его гранью.

Лента вовлекает кубик в движение силой трения о поверхность грани. Когда упругие силы пружин, действующие в одну сторону, превышают силу трения, кубик возвращается в начальное положение и колебательный цикл повторяется. Всё что касается колебательного звена, достаточно исследовано и разуметься не претендует на научное исследование. Однако надеюсь, что любителям Python само решение было не безинтересно. Теперь с той же надеждой хочу разобрать более сложный случай поведения колебательного звена под действием возбуждающей силы изменяющейся по гармоническому закону на частоте резонанса системы.

Начну с тривиального дифференциального уравнения движения, которое описывает механическую колебательную систему с сосредоточенной массой, жёсткостью и демпфированием.

Источник
2 года назад
#

Создание сапера при помощи модуля Tkinter

День добрый. Почти каждый начинающий программист стремится к созданию своей первой игры. Спустя пол года ленивого кропотливого обучения я решился написать сапера. Языком написания был выбран Python, модулем для добавления интерфейса tkinter, потому как уже имелся опыт работы с ним. Этот пост будет полезен скорее начинающим кодерам, но если вы итак все знаете, можете написать свои советы по улучшению кода в комменты.

Приступим. Первым делом нужно было определиться, что будет собой представлять клетка. Самое выгодное решение — создать класс поля:

class pole(object): #создаем Класс поля, наследуемся от Object
    def __init__(self,master,row, column): #Инициализация поля. master - окно Tk().
        self.button = Button(master, text = '   ') #Создаем для нашего поля атрибут 'button'
        self.mine = False #Переменная наличия мины в поле
        self.value = 0 #Кол-во мин вокруг
        self.viewed = False #Открыто/закрыто поле
        self.flag = 0 #0 - флага нет, 1 - флаг стоит, 2 - стоит "?"
        self.around = [] #Массив, содержащий координаты соседних клеток
        self.clr = 'black' #Цвет текста
        self.bg = None #Цвет фона
        self.row = row #Строка
        self.column = column #Столбец

Источник
2 года назад
#

Начинаем работу Python + Qt5 + QML урок №1

Всем привет. Сегодня познакомимся с QML. Узнаем что это такое и с чем его едят. Создадим небольшое приложение с использованием данной технологии.


Небольшое отступление:

QML(Qt Meta Language) — декларативный язык программирования, основанный на JavaScript, предназначенный для дизайна приложений. Является частью Qt Quick, среды разработки пользовательского интерфейса, которая поставляется вместе с Qt.

В качестве примера декларативных языков можно привести SQL и HTML. Подробнее о QML можете почитать здесь: документация.

Начнем, пожалуй, с самого простого: создания окна. Создаем два файла base.qml и test.py следующего содержания:

base.qml
import QtQuick 2.0

Rectangle {
    //задаем свойства нашему прямоугольнику
    id:green_rectangle
    width: 250; height: 250
    //цвет нашего прямоугольника
    color:"green"
    //аналогично свойству border-radius
    radius: 7
}

test.py
import sys
# Класс QUrl предоставляет удобный интерфейс для работы с Urls
from PyQt5.QtCore import QUrl
from PyQt5.QtWidgets import QApplication, QWidget
# Класс QQuickView предоставляет возможность отображать QML файлы.
from PyQt5.QtQuick import QQuickView

if __name__ == '__main__':

    app = QApplication(sys.argv)
    # Объект QQuickView, в который грузится UI для отображения
    view = QQuickView()
    view.setSource(QUrl('base.qml'))
    view.show()
    app.exec_()
    sys.exit()

Источник
2 года назад
#

Нескучные запросы с Django ORM Annotate и Query Expressions

Было когда-то время, когда ORM Django считалась очень милой, но абсолютно глупой. Хотя, возможность производить Annotate и Aggregate были в ней с незапамятных времён. А в версии 1.8 добавилась возможность применять функции базы данных внутри Query Expressions. И, разумеется, если начинающий джангист не испугался и дочитал вступление до этих строк, он может смело читать дальше: статья ориентирована именно на начинающих.


Некоторое время назад передо мной встала задача: выбрать из таблицы значения по пользователям. Причём, эти значения должны соответствовать определённому регулярному выражению. Но и это не конец условия: из выбранных выражений нужно вытащить substring. Опять же, по регулярке. Сделал я это довольно быстро, и захотелось поделиться опытом с тем, кто ещё не может применять Annotate и Query Expressions на практике


Источник
2 года назад
#

Scrapy: создаём краулер парсер на Python с нуля [GeekBrains]


2 года назад
#

Уроки Python. Парсинг прокси(proxy). Запросы через прокси(proxy).Requests


13 14 16 17

Авторизация

Войти с помощью

Пользователи

GeekBrains

КАРКАМ

Нетология