Перебор элементов словаря dict() в Python
Перебрать все элементы списка можно благодаря циклу for, но словари Python не являются последовательностями. В качестве примера выведем элементы словаря двумя методами. Первый способ использует метод keys(), возвращающий список всех ключей словаря. Второй способ появился в последних реализах Python. В этом случае мы просто указываем словарь в качестве параметра. На каждой интерации цикла будет возвращаться ключ, с помощью которого внутри цикла можно получить значение, соответствующее этому ключу.
Перебор элементов словаря
# -*- coding: utf-8 -*-
cars = {
'BMW': 'x5',
'Mercedes-Benz': 'E220',
'Audi': 'Q7'
}
for key in cars:
print "%s -> %s" % (key, cars[key])
print '-' * 15
print 'Пример 2'
print '-' * 15
for key in cars.keys():
print "%s -> %s" % (key, cars[key])
Форум вебмастеров и SEO оптимизаторов
Недавно наткнулся на один форум пока искал в гугле некоторые советы по оптимизации сайта. Форум мне показался достаточно приятным и полезным, иначе я бы не стал о нем писать. Новые сообщения появляются каждый день, видно, что форум живой и на нем общаются люди. Для программистов и оптимизаторов есть хорошая возможность поучаствовать в развитие данного форума. Вы можете поделиться новостью, рекламировать свою библиотеку, свой скрипт или описать свой проект.
Можно сказать, что форумов на данную тематику много и еще один не пристроится, но это не так. Администрация и посетители сайта создают особую атмосферу общения, что позволяет новичкам чувствовать себя комфортно и не стесняясь задавать интересующие вопросы. Скорость ответа на новые сообщения радует, т.к. администрация старается угодить всем и не дать ни одной теме упасть в недра форума.
Веб-программирование в Python. Создание и запуск сайтов на Python
Язык программирования Python широко применяется для создания web-сайтов и используется для решения различных проблем и задач которые возникают перед программистом. Во-первых, код на языке программирования Python предоставляет простые и удобные методы для генерирования набора статических HTML-страниц, которые будут обслуживаться веб-сервером. Например, сценарии может принимать некоторое содержимое и добавлять к нему элементы оформления, типичные для веб-сайта (панель навигации, боковую панель, рекламу, стили и так далее). Все это фактически сводится к работе с файлами и обработке текста.
Во-вторых, скрипты написанные на языке программирования Python могут применятся для создания динамических сайтов т.е. в связке MySQL + JavaScript + Ajax + Python. Сайт может работать на базе обычного веб сервера Nginx или Apache и отправлять данные из форм сценарию на языке Python для обработки и возвращение результата работы. В данном случае Python используется как обработчик данных из форм.
Модуль StringIO в Python
Модуль StringIO позволяет работать со строкой как с файловым объектом. Все операции с файловым объектом производится в оперативной памяти. Для создания нового объекта предназначен класс StringIO. Формат конструктора класса:
StringIO([<Начальное значение>])
Если параметр не указан, то начальным значением будет пустая строка. После создания объекта указатель текущей позиции устанавливается на начало "файла". Объект, возвращаемый конструктором класса, имеет следующие методы:
Создание простейшего проекта в среде Eclipse CDT
В самом начале необходимо кликнуть Выбрать Файл – Создать - C++ Project или нажать на панели инструментов стрелку рядом с кнопкой New C/C++ Project и в выпадающем списке выбрать C++ Project. В результате откроется окно создания проекта.
В окне следует ввести имя проекта, а затем в поле Project type (тип проекта) выбрать: Executable - Empty Project (Исполняемый - Пустой проект). Тип Executable обеспечивает создание исполняемого приложения (т.е. файла с расширением .ехе ). При этом файл сценария построения проекта (make-файл) генерируется средой CDT автоматически.
Разработка приложений под Windows 8
В последние несколько лет мы наблюдаем ситуацию, которую эксперты называют консьюмеризацией IT. Не погружаясь в историю данного явления, которое, кстати, характерно не только для IT-технологий, надо выделить главное: на сегодняшний день как раз «консьюмеры» готовы платить за значительный размер добавленной стоимости – иногда за счет количества, иногда – желанием и способностью получать новинки, а также интересные идеи.
Операционная система Windows, которая стремительно завоевывала популярность во время роста интереса простых обывателей к интернет-технологиям, интенсивно развивалась до середина 2000-х, пока персонализация вычислений не перешла на новый виток развития – мобильность и доступность.
Классы встроенных исключений в Python
Все встроенные исключения в языке Python представлены в виде классов. Иерархия встроенных классов исключений показана в листинге ниже.
Иерархия встроенных классов исключений
BaseException
GeneratorExit (в Python 2.6 и выше)
KeyboardInterrupt
SystemExit
Exception
GeneratorExit (в Python 2.5)
StopIteration
Warning
BytesWarning (в Python 2.6 и выше)
DeprecationWarning, FutureWarning, ImportWarning
PendingDeprecationWarning, RuntimeWarning, SyntaxWarning
UnicodeWarning, UserWarning
StandardError
ArithmeticError
FloatingPointError, OverflowError, ZeroDivisionError
AssertionError
AttributeError
BufferError (в Python 2.6)
EnvironmentError
IOError
OSError
WindowsError
EOFError
ImportError
LookupError
IndexError, KeyError
MemoryError
NameError
UnboundLocalError
ReferenceError
RuntimeError
NotImplementedError
SyntaxError
IndentationError
TabError
SystemError
TypeError
ValueError
UnicodeError
UnicodeDecodeError, UnicodeEncodeError
UnicodeTranslateError
Основное преимущество использования классов для обработки исключений заключается в возможности указания базового класса для перехвата всех исключений соответствующих классов-потомков. Например, для перехвата деления на ноль мы использовали класс ZeroDivisionError. Если вместо этого класса указать базовый класс ArithmeticError, то будут перехватываться исключения классов FloatingPointError, OverflowError и ZeroDivisionError. Пример:
Инструкция with - as в Python
Начиная с версии 2.6, язык Python поддерживает протокол менеджеров контекста. Этот протокол гарантирует выполнение завершающих действий (например, закрытие файла) вне зависимости от того, произошло исключение внутри блока кода или нет. Необходимо заметить, что в Python 2.5 также можно использовать протокол, предварительно указав выражения (в Python 2.6 и выше это выражение указывать не нужно).
from __future__ import with_statement
Для работы с протоколом предназначения инструкции with ... as. Инструкция имеет следующий формат:
with <Выражение>[ as <Переменная>]:
<Блок, в котором перехватываем исключения>Далее...
Обработка исключений
Исключения - это извещения интерпретатора, возбуждаемые в случае возникновения ошибок в программном коде или при наступлении какого-либо события. Если в коде не предусмотрена обработка исключения, то программа прерывается и выводит сообщение об ошибке.
Существует три типа ошибок в программе:
Синтаксические - это ошибка в имени оператора или функции, отсутствие закрывающей или открывающей кавычек и т.д., т.е. ошибки в синтаксисе языка. Как правило, интерпретатор предупредит о наличии ошибки, а программа не будет выполняться совсем. Пример синтаксической ошибки.
>>> print "Нет завершающей кавычки!
SyntaxError: EOL while scanning string literalЛогические - это ошибка в логике работы программы, которые можно выявить только по результатам работы скрипта. Как правило, интерпретатор не предупреждает о наличии ошибки. А программа будет выполняться, т.к. не содержит синтаксических ошибок. Такие ошибки достаточно трудно выявить и исправить.
Свойства класса - ООП Python
Классы нового стиля позволяют создать идентификатор, через который можно получить, изменить или удалить значение атрибута класса. Создается такой идентификатор с помощью функции property(), форма функции:
<Свойства> = property(<Чтение>[, <Запись>[, <Удаление>[, <Строка документирования>]]])
В первых трех параметрах указывается ссылка на соответствующий метод класса. При попытке получить значение будет вызван метод, указанный в первом параметре. При операции присваивания значения будет вызван метод, указанный во втором параметре. Этот метод должен принимать один параметр. В случае удаления атрибута вызывается метод, указанный в третьем параметре. Если в качестве какого-либо параметра задано значение None, то это означает, что соответствующий метод не поддерживается. Рассмотрим свойства класса на примере.









