Archy
Недавно столкнулся с задачей обеспечить клиента сервером с большим объемом RAM, но с ограниченным количеством дисков. По техническому заданию сервер должен быть способным передавать в Интернет данные со скоростью 10-15 Гбит в секунду. Раньше для этой цели мы покупали сервера HP DL180 G6, имеющий размер 2U и 25 под HDD/SSD. Но сейчас задача стояла немного другая, и мы решили испытать новый HP Proliant DL 160, 8-го поколения.
Некоторые данные о HP DL 160 G8:
- 24 слота для памяти DDR III;
- 8 × 2,5” HDD/SSD;
- поддержка до 384 Гб RAM;
- контроллер новой модели Р420 – 1 Гб памяти и BBU;
- возможность добавления дополнительного NIC-модуля, не занимая при этом слота PCLe (к примеру, с портами 10 Гбит/сек);
- полно размерный слот PCLe X16.
Для работы со словарями предназначены следующие методы:
keys() и values() - позволяют получить список всех ключей и значений соответственно:
>>> d = {'a': 1, 'b': 2}
>>> k = d.keys(); v = d.values()
>>> print k, v
['a', 'b'] [1, 2]
Можно также воспользоваться методами iterkeys() и itervalues(), которые возвращают не список ключей и значений, а итератор. Пример:
>>> d = {'a': 1, 'b': 2}
>>> for i in d.iterkeys(): print i,
a b
>>> for i in d.itervalues(): print i,
1 2
Перебрать все элементы списка можно благодаря циклу 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])
Недавно наткнулся на один форум пока искал в гугле некоторые советы по оптимизации сайта. Форум мне показался достаточно приятным и полезным, иначе я бы не стал о нем писать. Новые сообщения появляются каждый день, видно, что форум живой и на нем общаются люди. Для программистов и оптимизаторов есть хорошая возможность поучаствовать в развитие данного форума. Вы можете поделиться новостью, рекламировать свою библиотеку, свой скрипт или описать свой проект.
Можно сказать, что форумов на данную тематику много и еще один не пристроится, но это не так. Администрация и посетители сайта создают особую атмосферу общения, что позволяет новичкам чувствовать себя комфортно и не стесняясь задавать интересующие вопросы. Скорость ответа на новые сообщения радует, т.к. администрация старается угодить всем и не дать ни одной теме упасть в недра форума.
Веб-программирование в Python. Создание и запуск сайтов на Python
Язык программирования Python широко применяется для создания web-сайтов и используется для решения различных проблем и задач которые возникают перед программистом. Во-первых, код на языке программирования Python предоставляет простые и удобные методы для генерирования набора статических HTML-страниц, которые будут обслуживаться веб-сервером. Например, сценарии может принимать некоторое содержимое и добавлять к нему элементы оформления, типичные для веб-сайта (панель навигации, боковую панель, рекламу, стили и так далее). Все это фактически сводится к работе с файлами и обработке текста.
Во-вторых, скрипты написанные на языке программирования Python могут применятся для создания динамических сайтов т.е. в связке MySQL + JavaScript + Ajax + Python. Сайт может работать на базе обычного веб сервера Nginx или Apache и отправлять данные из форм сценарию на языке Python для обработки и возвращение результата работы. В данном случае Python используется как обработчик данных из форм.
Модуль StringIO позволяет работать со строкой как с файловым объектом. Все операции с файловым объектом производится в оперативной памяти. Для создания нового объекта предназначен класс StringIO. Формат конструктора класса:
StringIO([<Начальное значение>])
Если параметр не указан, то начальным значением будет пустая строка. После создания объекта указатель текущей позиции устанавливается на начало "файла". Объект, возвращаемый конструктором класса, имеет следующие методы:
В самом начале необходимо кликнуть Выбрать Файл – Создать - C++ Project или нажать на панели инструментов стрелку рядом с кнопкой New C/C++ Project и в выпадающем списке выбрать C++ Project. В результате откроется окно создания проекта.
В окне следует ввести имя проекта, а затем в поле Project type (тип проекта) выбрать: Executable - Empty Project (Исполняемый - Пустой проект). Тип Executable обеспечивает создание исполняемого приложения (т.е. файла с расширением .ехе ). При этом файл сценария построения проекта (make-файл) генерируется средой CDT автоматически.
В последние несколько лет мы наблюдаем ситуацию, которую эксперты называют консьюмеризацией IT. Не погружаясь в историю данного явления, которое, кстати, характерно не только для IT-технологий, надо выделить главное: на сегодняшний день как раз «консьюмеры» готовы платить за значительный размер добавленной стоимости – иногда за счет количества, иногда – желанием и способностью получать новинки, а также интересные идеи.
Операционная система Windows, которая стремительно завоевывала популярность во время роста интереса простых обывателей к интернет-технологиям, интенсивно развивалась до середина 2000-х, пока персонализация вычислений не перешла на новый виток развития – мобильность и доступность.
Все встроенные исключения в языке 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. Пример:
Начиная с версии 2.6, язык Python поддерживает протокол менеджеров контекста. Этот протокол гарантирует выполнение завершающих действий (например, закрытие файла) вне зависимости от того, произошло исключение внутри блока кода или нет. Необходимо заметить, что в Python 2.5 также можно использовать протокол, предварительно указав выражения (в Python 2.6 и выше это выражение указывать не нужно).
from __future__ import with_statement
Для работы с протоколом предназначения инструкции with ... as. Инструкция имеет следующий формат:
with <Выражение>[ as <Переменная>]: <Блок, в котором перехватываем исключения>Далее...
Возникли вопросы по Python?
- Python для начинающих 71
- Python и запуск програм 16
- SQLite 12
- Веб-программирование 7
- Взаимодействие с Интернетом 401
- Видео уроки 7
- Запуск программ на Python 4
- Изучение PyQt5 12
- Изучение wxPython 1
- Модули 8
- Обработка исключений 3
- Общие вопросы 190
- ООП на Python 12
- Примеры Python 30
- Работа с изображениями 4
- Разработка интернет-приложений 8
- Как использовать proxy с помощью библиотеки Requests?
- Как работают функции в Python?
- Топ наиболее востребованных языков программирования
- Изучение языка программирования Python с помощью Brain Up!
- Распаковка последовательности в отдельные переменные
- Создание своего веб-фреймворка на Python - Часть 1
- Какая версия Python самая быстрая?