Быстрый в изучении - мощный в программировании
Скрипт ИНВЕСТОР на Python

Попробуйте себя в качестве инвестора имея в помощники мощный алгоритм советника на Python...

Все уроки по PyQt5

PyQt5 реализован как комплект Python-модулей. Он включает в себя около 620 классов и 6000 функций и методов...

Скрипт отправки SMS через Python

Была задача отправить SMS-ки большому списку номеров телефона с уточнением цены за всю рассылку "До" ее отправки...

Простое ускорение Python-скриптов

Простое ускорение Python-скриптов

Python очень часто используется для создания небольших скриптов, обрабатывающих данные (к примеру, какие-нибудь логи). Многие часто сталкиваются с такими задачами и пишут скрипты наспех. А если еще и в алгоритмах не сильно разбирать, то код будет совсем не оптимальным. Ну да ладно, если скрипт будет выполняться на минуту дольше, ничего страшного.

Далее...

Отбор валидных мобильных номеров друзей «Вконтакте» на Python

Отбор валидных мобильных номеров друзей «Вконтакте» на Python

Многие, изучающие Python интересуются его использованием в связке с API Вконтакте. В VK имеется телефонная книга, она в более-менее нормальном формате отображает мобильные номера ваших друзей. А учитывая то, что далеко не каждый человек охотно оставляет там свой валидный (полный) номер телефона, будет весьма интересно и полезно написать скрипт, который будет отбирать исключительно валидные мобильные номера и выводить их в отдельную таблицу. Наша телефонная книга будет создавать CSV-файл, который впоследствии можно будет открывать, к примеру, в Excel.

Далее...

Свой сервис для загрузки альбомов на Python

Свой сервис для загрузки альбомов на Python

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

Для разработки возьмем Python. В нашем примере мы будем писать приложение для уже существующего проекта на Django. Итак, начнем.

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

Далее...

Разработка на Django под Windows при помощи Docker-machine

Разработка на Django под Windows при помощи Docker-machine

В этой статье мы поговорим о решении проблемы настройки окружения для разработки на Django в Windows.

В нашем примере воспользуемся такой связкой:

  1. Docker-machine.
  2. PyCharm.

А в Docker-machine используются:

  1. PostgreSQL.
  2. Data container для PostgreSQL.
  3. Redis.
  4. Непосредственно приложение на Django.

Далее...

Метаданные в SQLite

Метаданные в SQLite

Метаданные – это информация о данных в базе данных. Метаданные в SQLite содержат в себе информацию о таблицах и столбцах, в которых мы храним данные. Количество строк под воздействием оператора SQL – это метаданные. Количество строк и столбцов, возвращаемые в результирующий набор, также относятся к метаданным. Метаданные в SQLite могут быть получены с использованием команды PRAGMA. Объекты SQLite могут иметь атрибуты, которые являются метаданными. Наконец, мы также можем достать определённые метаданные от запроса таблицы sqlite_master системы SQLite.

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import sqlite3 as lite
import sys
 
con = lite.connect('test.db')
 
with con:
    cur = con.cursor()    
    cur.execute('PRAGMA table_info(Cars)')
    data = cur.fetchall()
    
    for d in data:
        print d[0], d[1], d[2]

В этом примере, мы пускаем в обращение команду PRAGMA table_info(tableName), чтобы получить некоторую метаинформацию о нашей таблице Cars.

Далее...

Вложение декораторов в Python

Вложение декораторов в Python

Иногда одного декоратора бывает недостаточно. Для поддержки многоступенчатых расширений синтаксис декораторов позволяет добавлять несколько уровней обертывающей логики к декорируемой функции или методу. При использовании такой возможности каждый декоратор должен указываться в отдельной строке. Синтаксическая конструкция следующего вида:

@AAA
@BBB
@CCC
def function(...):
    ...

равноценна следующей:

def f(...):
    ...
f = AAA(BBB(CCC(f)))

Здесь оригинальная функция передается трем различным декораторам, а получившийся в результате вызываемый объект присваивается оригинальному имени. Каждый декоратор обрабатывает результат, возвращаемый предыдущим декоратором, который может быть оригинальной функцией или объектом-оберткой. Если все декораторы возвращают обертки, то при вызове функции по оригинальному имени будет выполнена логика всех трех обертывающих объектов, расширяя возможности функции тремя различными способами.

Последний декоратор в списке будет задействован первым и окажется самым глубоко вложенным.Далее...

Тестирование программного обеспечения: основные виды

Суббота, 9 апреля 2016 г.   Archy

Тестирование программного обеспечения: основные виды

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

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

Далее...

5 Методов антиотладки, которые защитят ваше программное обеспечение

Суббота, 9 апреля 2016 г.   Archy Общие вопросы

5 Методов антиотладки

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

Далее...

Альтернативы статическим методам Python

Альтернативы статическим методам Python

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

При таком способе функции не требуется передавать экземпляр класса. Например, следующая версия spam.py действует одинаково в Python 3 и 2.7(правда, в этой версии инструкция print отображает лишние круглые скобки при выполнении под управлением Python 2.7):Далее...

Слоты и обобщенные инструмены в Python

Слоты и обобщенные инструмены в Python

Фактически некоторые экземпляры со слотами вообще могут не иметь атрибут словаря __dict__, что может сделеать некоторые метапрограммы намного более сложными.

Обобщенные инструменты, которые получают списки атрибутов или обращаются к атрибутам, используя имена в виде строк, например, должны использовать более универсальные механизмы, чем атрибут __dict__. К таким механизмам можно отнести встроенные функции getattr, setattr и dir, способные отыскивать атрибуты в обоих хранилищах, __dict__ и __slots__. В некоторых случаях для полноты картины может потребоваться проверить оба источника атрибутов.

Например, экземпляры классов, где используются слоты, обычно не имеют атрибут словаря __dict__ - вместо него пространство для атрибутов в экземпляре выделяется с применением дескрипторов класса.

Только имена, перечисленные в списке __slots__, смогут использоваться как атрибуты экземпляра, однако значения этих атрибутов могут извлекаться и изменяться обычными способами.Далее...