Быстрый в изучении - мощный в программировании
>> Telegram ЧАТ для Python Программистов

Свободное общение и помощь советом и решением проблем с кодом! Заходите в наш TELEGRAM ЧАТ!

Все уроки по PyQt5

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

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

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

Archy

Чтобы обобщить различия между методами __getattr__ и __getattribute__, в следующем примере используются оба метода для реализации доступа к трем атрибутам, в числе которых: attr1 - атрибут класса, attr2 - атрибут экземпляра и attr3 - виртуальный атрибут, значение которого вычисляется при обращении к нему:

class GetAttr:
    attr1 = 1
    def __init__(self):
        self.attr2 = 2
    def __getattr__(self, attr):   # Только для неопределенных атрибутов
        print('get: ' + attr)      # Не attr1: наследуется от класса
        return 3                   # Не attr2: хранится в экземпляре
    
X = GetAttr()
print(X.attr1)
print(X.attr2)
print(X.attr3)
print('-' * 40)
class GetAttribute(object):
    attr1 = 1
    def __init__(self):
        self.attr2 = 2
    def __getattribute__(self, attr):  # Вызывается всеми операциями присваивания
        print('get: ' + attr)          # Для предотвращения зацикливания используется суперкласс
        if attr == 'attr3':
            return 3
        else:
            return object.__getattribute__(self, attr)
        
X = GetAttribute()
print(X.attr1)
print(X.attr2)
print(X.attr3)
Далее...

intructzia-try-else-python.png

Назначение предложения else в инструкции try на первый взгляд не всегда очевидно для тех, кто только начинает осваивать язык программирования Python.

Тем не менее, без этого предложения нет никакого другого способа узнать(не устанавливая и не проверяя флаги) - выполнение программы продолжилось потому, что исключение в блоке try не было возбуждено, или потому, что исключение было перехвачено и обработано.

Пример:

try:
    # Выполняемый код
except:
    # Обработка исключения
# Программа оказалась здесь потому, что исключение было обработано
# или потому, что его не возникло?

Точно так же, как инструкция else в операторах цикла делает причину выхода из цикла более очевидной, предложение else в инструкции try однозначно и очевидно сообщает о произошедшем:Далее...

mp3 python

В данной статье мы покажем как можно воспроизвести аудио файлы в разных библиотеках на Python. Python универсальный язык программирование и в нем можно манипулировать не только текстом и цифрами но и аудио-видео файлами. Ниже мы покажем код как работать с mp3 в разных библиотеках.

Библиотека PyGame

Что же такое Pygame? Pygame - это кроссплатформенная библиотека языка Python, предназначенная для написания компьютерных игр и мультимедиа приложений. PyGame базируется на библиотеке SDL.

import pygame
pygame.init()
song = pygame.mixer.Sound('file.mp3')
clock = pygame.time.Clock()
song.play()
while True:
    clock.tick(60)
pygame.quit()

Далее...

sozdanie-slovarei-v-python.png

Здравствуй дорогой гость, читатель или подписчик. Сегодня мы поговорим о создании словарей на любимым нами языке Python.

Для наглядного примера, мы с вами создадим англо-русский словарь, индексами в котором будут служить строковые значения. Один из способов создать словарь - начать с пустого словаря и добавлять в него элементы постепенно. Запомните, пустой словарь обозначается фигурными скобками {}:

>>> engToRus = {}
>>> engToRus['one'] = 'odin'
>>> engToRus['two'] = 'dva'

Как вы наверное заметили, первый оператор присваивания создает словарь названный engToRus, остальные операторы добавляют новые элементы в словарь. Мы можем распечатать текущее значение словаря обычным способом:Далее...

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

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import sqlite3 as lite
import sys
 
def writeImage(data):
    try:
        fout = open('woman2.jpg','wb')
        fout.write(data)
    
    except IOError, e:    
        print "Error %d: %s" % (e.args[0], e.args[1])
        sys.exit(1)
        
    finally:
        if fout:
            fout.close()       
    
try:
    con = lite.connect('test.db')
    cur = con.cursor()    
    cur.execute("SELECT Data FROM Images LIMIT 1")
    data = cur.fetchone()[0]
    writeImage(data)
    
except lite.Error, e:
    print "Error %s:" % e.args[0]
    sys.exit(1)
    
finally:
    if con:
        con.close()

Далее...

Загрузка изображения в базу данных SQLite

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

sqlite> CREATE TABLE Images(Id INTEGER PRIMARY KEY, Data BLOB);

Для этого примера, мы создаём новую таблицу, называемую Images. Для изображений мы используем тип данных BLOB, который расшифровывается как Binary Large Objects.

Далее...

Запросы с параметрами в SQLite

Сейчас мы научимся работать с параметрами при создании запроса. Когда мы используем параметризованные запросы, мы используем местозаполнители вместо прямого написания значений в SQL запросе. Запросы с указанием параметров отдельно увеличивают безопасность и производительность.

Python модуль sqlite3 поддерживает два типа заполнителей: знаки вопроса и именованные заполнители.

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import sqlite3 as lite
import sys
 
uId = 1
uPrice = 62300 
 
con = lite.connect('test.db')
with con:
    cur = con.cursor()    
    cur.execute("UPDATE Cars SET Price=? WHERE Id=?", (uPrice, uId))        
    con.commit()
    print "Number of rows updated: %d" % cur.rowcount

Мы обновляем цену одной машины. В этом примере кода, мы используем заполнители типа «знак вопроса».

Далее...

Вывод данных из таблицы SQLite

В предыдущей статьи [часть 2] мы рассмотрели моменты создания таблицы в базу данных и внесения данных в эту таблицу. В данной статье покажем пример как получить данные из таблицы.

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sqlite3 as lite
import sys
 
con = lite.connect('test.db')
 
with con:    
    cur = con.cursor()    
    cur.execute("SELECT * FROM Cars")
    rows = cur.fetchall()
 
    for row in rows:
        print row

В этом примере, мы извлекаем все данные из таблицы Cars.

Далее...

Занесение данных в таблицу SQLite

Мы создадим таблицу Cars и внесем несколько строк данных в неё.

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import sqlite3 as lite
import sys
 
# Подключаемся к базе данных
con = lite.connect('test.db')
 
with con:
    cur = con.cursor()    
    # Создаем таблицу
    cur.execute("CREATE TABLE Cars(Id INT, Name TEXT, Price INT)")
    # Вносим данные
    cur.execute("INSERT INTO Cars VALUES(1, 'Audi', 52642)")
    cur.execute("INSERT INTO Cars VALUES(2, 'Mercedes', 57127)")
    cur.execute("INSERT INTO Cars VALUES(3, 'Skoda', 9000)")
    cur.execute("INSERT INTO Cars VALUES(4, 'Volvo', 29000)")
    cur.execute("INSERT INTO Cars VALUES(5, 'Bentley', 350000)")
    cur.execute("INSERT INTO Cars VALUES(6, 'Citroen', 21000)")
    cur.execute("INSERT INTO Cars VALUES(7, 'Hummer', 41400)")
    cur.execute("INSERT INTO Cars VALUES(8, 'Volkswagen', 21600)")

Данный скрипт создаёт таблицу Cars и вставляет 8 строк в таблицу.

cur.execute("CREATE TABLE Cars(Id INT, Name TEXT, Price INT)")

Этот SQL-запрос создает новую таблицу Cars. Таблица имеет три столбца.

cur.execute("INSERT INTO Cars VALUES(1,'Audi',52642)")
cur.execute("INSERT INTO Cars VALUES(2,'Mercedes',57127)")

Далее...

Создать Sitemap.XML в Python

Большинство CMS в наши дни имеют собственные инструменты для создания карты сайта. Но, что делать если нам нужен инструмент который создавал sitemap.xml для определенного сайта не имея доступа к базе данных. Для этого нужно воспользоваться небольшим парсером который посетит все публичные ссылки на нужном сайте и составит его карту.

Карта сайта весьма нужный файл на вашем сайте. Такие поисковые системы как Google и Яндекс отдают предпочтение сайтам с уже готовым sitemap. Поисковики понимают какие страницы для вас важнее и какие обновляются чаще и нуждаются в особом внимании. Кодировка файла sitemap.xml должна быть utf-8.

Структура файла Sitemap.xml

<?xml version="1.0" encoding="UTF-8"?>
 
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 
   <url>
      <loc>http://python-3.ru/</loc>
      <lastmod>2015-07-25</lastmod>
      <changefreq>daily</changefreq>
      <priority>1.0</priority>
   </url>
 
   <url>
      <loc>http://python-3.ru/category/pyqt/</loc>
      <lastmod>2015-07-25</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
 
</urlset>

Далее...