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

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

Все уроки по PyQt5

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

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

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

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

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

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

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

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

Прежде всего нужно изучить язык 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.

Далее...

циклы в Python

Для организации циклов наиболее часто используется инструкция for, которая позволяет выполнить обход элементов коллекции. Итерации – одна из самых богатых особенностей языка Python. Однако наиболее часто используемой формой итераций является простой цикл по элементам последовательности, такой как строка, список или кортеж. Пример реализации итераций приводится ниже:

# -*- coding: utf-8 -*-
for n in [1,2,3,4,5,6,7,8,9]:
    print "2 в степени %d = %d" % (n, 2**n)

В данном примере на каждой итерации переменная n будет последовательно получать значения из списка [1,2,3,4,...,9]. Поскольку необходимость организовать цикл по фиксированному диапазону целочисленных значений возникает достаточно часто, для этих целей используется сокращенная форма записи:

for n in range(1, 10):
    print "2 в степени %d = %d" % (n, 2**n)

Функция range(i,j [,stride]) создает объект, представляющий диапазон целых чисел со значениями от i по j-1. Если начальное значение не указано, оно берется равным нулю. В третьем необязательном аргументе stride можно передать шаг изменения значений. Например:

Далее...

Словари в Python

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

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

person = {
    'name': 'Ваня',
    'age': 18,
}
Объекты из словарях, можно изменять по своему желанию следующим образом.

person = {
    'name': 'Ваня',
    'age': 18,
}
person['name'] = 'John'
print person # Вернет: {'age': 18, 'name': 'John'}
Чаще всего в качестве ключей применяются строки, тем не менее, для этих целей допускается использовать большинство других объектов языка Python, включая числа и кортежи. Определенные объекты, включая списки и словари, не могут использоваться в качестве ключей, потому что их содержимое может изменяться.

Далее...

создать прибыльный интернет магазин

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

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

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

Далее...

Создание функции Python

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

Чем меньше и специализированнее код функции, тем проще выбрать для нее понятное имя. Не бойтесь использовать длинные имена. Длинное содержательное имя лучше короткого невразумительного. Будьте последовательны в выборе имени. Используйте в имени функции те же словосочетания, глаголы и существительные, которые используются в ваших модулях. Создание функции производится с помощью инструкции def, как показано в следующем примере. Мы уже научились работать со списками в python, давайте воспользуется знаниями тут.

# -*- coding: utf-8 -*-
Phones = ['Nokia', 'Samsung', 'LG', 'Sony']
def show_as_text(user_list):
    words = ''
    for value in user_list:
        words += str(value) + ' '
    return words
print 'Phones: ', show_as_text(Phones) # Вернет: Phones:  Nokia Samsung LG Sony
Далее...

чехол для Macbook PRO

В чем же заключается великолепие чехла для ноутбука MacBook? Выбирая чехол для защиты Вашего MacBook Pro 13 необходимо точно знать структуру чехла.

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

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

Далее...

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

Классы, предоставляемые модулем datetime:

Класс datetime.date(year, month, day) — стандартная дата. Атрибуты: year, month, day. Неизменяемый объект.

Класс datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None) — стандартное время, не зависит от даты. Атрибуты: hour, minute, second, microsecond, tzinfo.Далее...

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

Для примера представьте программу на Python, обрабатывающую какие-нибудь данные и отслеживающую, сколько элементов было обработано:

counter = 0
def process_item(item):
    global counter
    ... do something with item ...
    counter += 1

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

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

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

Атомарные операции

Простейший способ синхронизировать доступ к разделяемым данным или ресурсам - положиться на атомарные операции в интерпретаторе. Атомарная операция - операция, выполняемая за 1 шаг, без возможности прерывания её другим потоком.

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

Далее...

Программирование Web-клиента - мощная техника для создания запросов в Web. Web-клиент - это любая программа, извлекающая данные с Web-сервера при помощи протокола передачи гипертекста (Hyper Text Transfer Protocol, http в ваших URL). Web-броузер является клиентом, так же, как и поисковики, то есть программы, автоматически перемещающиеся по Web для сбора информации. Вы можете также применять Web-клиенты для использования возможностей сервисов, предлагаемых другими обитателями Web, и добавления динамических свойств в ваш собственный Web-сайт.

Программирование Web-клиента входит в любой набор инструментов для разработчиков. Приверженцы Perl'а используют его многие годы. В языке Python этот процесс достигает даже более высоких уровней удобства и гибкости. Большинство необходимых вам функций обеспечивается тремя модулями: HTTPLIB, URLLIB и новым дополнением, XMLRPCLIB. В истинно Питоновском стиле каждый модуль надстроен над своим предшественником, обеспечивая таким образом прочную, хорошо спроектированную базу для ваших приложений. В этой статье мы рассмотрим первые два модуля, оставив XMLRPCLIB на потом.

Для наших примеров мы будем использовать Meerkat. Если вы похожи на меня, вы тратите время на отслеживание тенденций и событий в среде создателей открытых программных средств, которые позволят вам получить конкурентные преимущества. Meerkat представляет собой инструмент, значительно упрощающий эту задачу. Это служба открытого доступа (an open wire service), собирающая и упорядочивающая огромные объемы информации по открытым программным средствам. Поскольку его интерфейс для браузера гибок и настраиваем, то, используя программирование web-клиента, мы можем сканировать, извлекать и даже сохранять эту информацию для последующего использования в автономном режиме. Сначала мы обратимся к Meerkat с помощью HTTPLIB в интерактивном режиме, а затем перейдем к работе с Meerkat's Open API через URLLIB, чтобы создать настраиваемое средство сбора информации.

Далее...