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

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

>> ВИДЕОКУРС Python Разработчик

Best Practice по решению прикладных задач и освоению инструментов, применяемых при разработке, веб-приложений.

>> ОНЛАЙН ТЕСТ Сможешь обучить робота?

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

Общие вопросы

Подписаться на эту рубрику по RSS

Разные вопросы и ответы которые волнуют начинающих Python 3 программистов

Инструкция with - as в Python

Начиная с версии 2.6, язык Python поддерживает протокол менеджеров контекста. Этот протокол гарантирует выполнение завершающих действий (например, закрытие файла) вне зависимости от того, произошло исключение внутри блока кода или нет. Необходимо заметить, что в Python 2.5 также можно использовать протокол, предварительно указав выражения (в Python 2.6 и выше это выражение указывать не нужно).

from __future__ import with_statement

Для работы с протоколом предназначения инструкции with ... as. Инструкция имеет следующий формат:

with <Выражение>[ as <Переменная>]:
    <Блок, в котором перехватываем исключения>
Далее...

Множественное наследование в Python

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

Множественное наследование

class Class1:         # Базовый класс для класса Class2
    def f_func1(self):
        print "Метод f_func1() класса Class1"
 
class Class2(Class1): # Класс Class2 наследует класс Class1
    def f_func2(self):
        print "Метод f_func2() класса Class2"
 
class Class3(Class1): # Класс Class3 наследует класс Class1
    def f_func1(self):
        print "Метод f_func1() класса Class3"
    def f_func2(self):
        print "Метод f_func2() класса Class3"
    def f_func3(self):
        print "Метод f_func3() класса Class3"
    def f_func4(self):
        print "Метод f_func4() класса Class3"
 
class Class4(Class2, Class3): # Множественное наследование
    def f_func4(self):
        print "Метод f_func4() класса Class4"
 
c1 = Class4()             # Создаем экземпляр класса Class4
c1.f_func1()              # Выведет: Метод f_func1() класса Class1
c1.f_func2()              # Выведет: Метод f_func2() класса Class2
c1.f_func3()              # Выведет: Метод f_func3() класса Class3
c1.f_func4()              # Выведет: Метод f_func4() класса Class4
Далее...

razbor-url-adresa.jpg

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

Разбор URL-адреса

С помощью модуля urlparse можно манипулировать URL-адресом. Например, разобрать его на составляющие или получить абсолютный URL-адрес, указав базовый адрес и относительный. URL-адрес состоит из следующих элементов:

<Протокол>://<Домен>:<Порт>/<Путь>;<Параметры>?<Запрос>#<Якорь>
Далее...

Запись данных в файл Python

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

Чтобы не соскучится, мы покажем несколько способов внесения данных в файл и наглядно увидим результат. Чтобы открыть файл для записи или же создать его, мы воспользуемся функцией open(filename, mod) и в качестве второго параметрам mod укажем значение w т.е. (write) запись. Если файл с указанным названием filename не существует - он будет создан.

Создаем новый файл в Python

# -*- coding: utf-8 -*-
my_file = open('snake.txt', 'w')
 
# Закрываем файл
my_file.close()

После выполнения данного скрипта, по указанному нами пути будет создан новый файл snake.txt если файл не был создан то нужно проверить права доступа на папку. Стоит учесть, что если файл snake.txt существовал ранее, то после открытия его функцией open() и мод W, тогда содержимое файла удаляется. Если вы хотите добавить что-то в конце, то следует использовать мод 'a+'.

Запись данных в файл Python

Предположим, что мы создали новый файл и хотим в него внести некий текст, для этого воспользуемся методом write().

# -*- coding: utf-8 -*-
my_file = open('snake.txt', 'w')
 
text_for_file = 'Some text here...'
my_file.write(text_for_file)
 
my_file.close()
Далее...

создавать сайты в Python

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

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

Далее...

Объектно-ориентированное программирование в python

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

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

Определение класса и создание экземпляра класса в Python

Класс описывается с помощью ключевого слова class по следующей схеме:

class <Название класса>[(<Класс1>[, ..., <КлассN>])]:
    [""" Строка документирования """]
    <Описание атрибута и методов>

Инструкция создает новый объект и присваивает ссылку на него идентификатору, указанному после ключевого слова class. Это означает, что название класса должно полностью соответствовать правилам именований переменных. После названия класса в круглых скобках можно указать один или несколько базовых классов через запятую. Если класс не наследует базовые классы, то круглые скобки можно не указывать. Следует заметить, что все выражения внутри инструкции class выполняются при создании объекта, а не при создании экземпляра класса. В качестве примера создадим класс, внутри которого просто выводится сообщение:

Далее...

Модуль calendar

Модуль calendar позволяет вывести календарь в виде простого текста или в HTML формате. Прежде чем использовать модуль, необходимо подключить его с помощью выражения:

import calendar

Модуль предоставляет следующие классы:

Calendar - базовый класс, который наследует все остальные классы. формат конструктор:

Calendar([<Первый день недели>])

В качестве примера получим двухмерный список всех дней в январе 2013 года, распределение по дням недели:

import calendar
c = calendar.Calendar(0)
print c.monthdayscalendar(2013, 1) # 1 - это январь
Далее...

Оптимизация для поисковых систем

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

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

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

Далее...

Создание сайтов

Многие люди думают как создать сайт, но не знаю с чего начинать. Давайте рассмотрим на этой странице как создать сайт самостоятельно и с чего лучше всего начать.

Прежде всего нужно изучить язык HTML И CSS. Учебники вы можете скачать бесплатно на этом сайте и приступить к изучению. Создание сайтов дело довольно длительное и трудоемкое. Поэтому если вы решили серьезно заняться сайтостроением не спешите и будьте терпеливы.

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

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

Далее...

Парсер HTML Python

В практике любого программиста наступает задача скопировать некий материал с сайта. Так как страниц достаточно много не стоит терять время на ручное копирование. Ведь, языки программирования нужны для того чтобы избавится от рутинной работы и автоматизировать разные задачи. В Python есть отличная библиотека для работы с HTML. С ней можно парсить не только сайты но и обычные html документы. Хорошим преимуществом данной библиотеки является персональный алгоритм структурирования HTML кода, что позволяет программисту сэкономить время работы.

Но, проблемы в работе с html документами могут все равно появляться. HTML не имеет строгую структуру кода и некоторые верстальщики дают волю фантазии и изобретают свою структуру кода. Могут возникнуть и проблемы с кодировкой, что создаст новые проблемы для структурирования кода и получения данных.

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

Установка библиотеки Beautiful Soup (Linux)

$ apt-get install python-bs4
$ apt-get install python-lxml
$ apt-get install python-html5lib

Библиотека Beautiful Soup предназначена для работы с Python 2, но так же умеет работать с кодом Python 3. После установки и python-html5lib, можно будет парсить и современные документы стандарта HTML5.

Далее...