Первые программы на PyQt5 [Урок 2]
В этой части руководства PyQt5
мы изучим некоторую базовую функциональность.
Этот простой пример выводит маленькое окно. Мы можем делать множество вещей с этим окном. Мы можем менять его размер, раскрывать на весь экран или свернуть в панель задач. Это потребовало бы много программного кода. Кто-то уже запрограммировал эту функциональность. Поскольку это повторяется в большинстве приложений, нет необходимости программировать это с самого начала. PyQt5 – это инструментарий высокого уровня. Если бы мы писали с помощью инструментов более низкого уровня, нижеследующий пример кода мог бы с лёгкостью содержать сотни строк.
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == '__main__':
app = QApplication(sys.argv)
w = QWidget()
w.resize(250, 150)
w.move(300, 300)
w.setWindowTitle('Simple')
w.show()
sys.exit(app.exec_())
Далее...
Введение в PyQt5 [Урок 1]
Это введение к руководству по PyQt5. Назначение этого руководства – дать вам представление об возможностях PyQt5.
Руководство было разработано и протестировано на Linux.
Про PyQt5
PyQt5 – это набор Python-связей для фреймворка Qt5 от Digia. Набор PyQt5 доступен для Python 2.x и 3.x. Это руководство рассматривает Python 3. Библиотека Qt – это одна из самых мощных GUI-библиотек. Официальный сайт PyQt5 - www.riverbankcomputing.co.uk/news. PyQt5 разработан компанией Riberbank Computing.PyQt5 реализован как комплект Python-модулей. Он включает в себя около 620 классов и 6000 функций и методов. Это мульти-платформенный инструментарий, который запускается на большинстве операционных систем, среди которых Unix, Windows и MacOS. PyQt5 реализован под двумя лицензиями. Разработчики могут выбрать между GPL и коммерческой лицензией.
Распаковка массива в отдельные переменные [Решение #1.1]
Проблема: У вас есть N-ое кол-во элементов кортежа или последовательность, и вы хотите их распаковать в N-ое кол-во уникальных переменных.
Решение: Любая последовательность (или итерацию) могут быть распакованы в переменных, используя операцию назначения "=". Единственное требование состоит в том, что число переменных и элементов структуры должны соответствовать последовательности.
Модуль random - генерация случайных чисел
Модуль random позволяет генерировать случайные числа. Прежде чем использовать модуль, необходимо подключить его с помощью инструкции:
import random
Перечислим основные функции
random() - возвращает псевдослучайное число от 0.0 до 1.0
>>> import random
>>> random.random()
0.7466459239415119
>>> random.random()
0.4908688798600912
>>> random.random()
0.5724365575322524
seed(<Параметр>) - настраивает генератор случайных чисел на новую последовательность. По умолчанию используется системное время. Если значение параметра будет одиноким, то генерируется одинокое число:
>>> random.seed(20)
>>> random.random()
0.9056396761745207
>>> random.seed(20)
>>> random.random()
0.9056396761745207
Далее...
Изучаем азы парсинга посредством Python+lxml
Здравствуйте, здравствуйте и еще раз здравствуйте! Сегодня хотелось бы посвятить вас в такую тему, как разбор разметки страниц html, используя для этого Python+lxml. На самом деле, это не так сложно, как кажется, поэтому вы с легкостью сможете обуздать довольно простые правила касательно этого процесса. Что такое lxml? Это удобная в работе библиотека, которая позволяет обрабатывать разметку, как html , так и xml, при помощи языка Python. Стоит также отметить ее уникальную способность разбития частей документа в дерево. Итак, приступим.
Какую цель вы будете преследовать, создавая парсинг?
Сейчас многие занимаются различными видами спорта, поэтому в качестве примера возьмем данную тематику. Предположим, что нас заинтересовало количество совершенных болевых приемов, которые были зафиксированы в момент проведения мировых турниров по ММА. Недолго думая, я воспользовался гуглом и смог подыскать для себя подходящий сайт, где мне удалось получить доступ к требуемым данным. Она подразумевает собой полную информацию по всем проведенным турнирам в категории смешанные единоборства.Правда, нельзя не упомянуть про один важный нюанс: предоставленную информацию было крайне сложно анализировать. Получается, что статистика для всех турниров находилась не на одной странице, а была разбита на несколько частей, каждая из которых была на разных страницах, что и причиняет главный дискомфорт. Это же можно сказать и про возможность удобного просмотра названия турнира, а также дату его проведения. Для того, чтобы не клацать по сто раз по разным страницам и запоминать информацию на них, будет разумно создать специальный парсер, который в значительной степени облегчит процесс анализа всех данных.
Выполнение запроса в SQLite3 через Python
Согласно спецификации DB-API 2.0 после создания объекта соединения необходимо создать объект-курсор. Все дальнейшие запросы должны производиться через этот объект. Создание объекта-курсора производится с помощью метода cursor(). Для выполнения запроса к базе данных предназначены следующие методы объекта-курсора:
close() - закрывает объект-курсор
executescript(<Запросы SQL через точку с запятой>) - выполняет несколько SQL запросов за один раз. Если в процессе выполнения запросов возникает ошибка, то метод возбуждается исключение. В качестве примера создадим базу данных и три таблицы в ней:
# -*- coding: utf-8 -*-
import sqlite3
con = sqlite3.connect("catalog.db")
cur = con.cursor() # Создаем объект-курсор
sql = """\
CREATE TABLE user (
id_user INTEGER PRIMARY KEY AUTOINCREMENT,
email text,
passw text
);
CREATE TABLE rubr (
id_rubr INTEGER PRIMARY KEY AUTOINCREMENT,
name_rubr TEXT
);
CREATE TABLE site (
id_site INTEGER PRIMARY KEY AUTOINCREMENT,
is_user INTEGER,
id_rubr INTEGER,
url TEXT,
title TEXT,
iq INTEGER
);
"""
try: # обработка исключения
cur.executescript(sql) # Выполняем SQL-запрос
except sqlite.DatabaseError, err:
print u"Ошибка:", err
else:
print u"Запрос успешно выполнен"
cur.close() # Закрываем объект-курсора
con.close() # Закрываем соединение
raw_input()
Далее...
Создание и открытие базы данных SQLite в Python
Для создания и открытия базы данных используется функция connect(). Функция имеет следующий формат:
connect(database[, timeout][, isolation_level][, detect_types][, factory])
В параметре database указывается абсолютный или относительный путь к базе данных. Если база данных не существует, то она просто открывается без удаления имеющихся данных. Вместо пути к базе данных можно указать значение :memory:, которое означает, что база данных будут удалены.
Все остальные параметры являются необязательными и могут быть указаны в произвольном порядке путем присвоения значения названию параметра. Необязательный параметр timeout задает время ожидания снятия блокировки с открываемой базы данных. По умолчанию значение параметра timeout равно пяти секундам. Предназначение остальных параметров мы рассмотрим немного позже.
Создание сайта. О чем нужно помнить
На самом деле, если вы хотите, чтобы на ваш сайт приходила целевая аудитория, вам стоит позаботиться об этом уже на этапе его проектирования. Итак, несколько дизайнерских решений, которые ассоциируются с современными оформительскими тенденциями, но не способствуют продвижению сайта.
Базовые языки программирования
Насчитывается несколько десятков основных языков программирования. Одни придуманы для создания только определённого вида программного обеспечения, на других можно написать практически любое. Но существуют и родоначальники. Кратко ознакомимся с основными экземплярами.
Основы SQLite - С чего начать?
В предыдущих статьях мы рассматривали работу с файлами и научились сохранять объекты с доступом по ключу с помощью модуля shelve. При сохранении объектов этот модуль использует возможности модуля pickle для сериализации объекта и модуль anybm для записи получившейся строки по ключу в файл. Если необходимо сохранять в файл просто строки, то можно сразу воспользоваться модулем anybm. Однако если объем сохраняемых данных велик и требуется удобный доступ к ним, то вместо этого модуля лучше использовать базы данных.
Начиная с версии 2.5, в состав стандартной библиотеки Python входит модуль sqlite3, позволяющий работать с базой данных SQLite. Для использования этой базы данных нет необходимости устанавливать сервер, ожидающий запросы на каком-либо порту, т.к. SQLite напрямую работает с файлом базы данных.