Добрый день. Я сейчас прохожу курс повышения квалификации - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?
|
Введение в программирование на языке Python
Встроенные типы данных
Как уже говорилось, все данные в Python представлены объектами. Имена являются лишь ссылками на эти объекты и не несут нагрузки по декларации типа. Значения встроенных типов имеют специальную поддержку в синтаксисе языка: можно записать литерал строки, числа, списка, кортежа, словаря (и их разновидностей). Синтаксическую же поддержку операций над встроенными типами можно легко сделать доступной и для объектов определяемых пользователями классов.
Следует также отметить, что объекты могут быть неизменчивыми и изменчивыми. Например, строки в Python являются неизменчивыми, поэтому операции над строками создают новые строки.
Карта встроенных типов (с именами функций для приведения к нужному типу и именами классов для наследования от этих типов):
- специальные типы: None, NotImplemented и Ellipsis ;
- числа;
- последовательности;
- отображения:
- словарь dict
- объекты, которые можно вызвать:
- функции (пользовательские и встроенные);
- функции-генераторы;
- методы (пользовательские и встроенные);
- классы (новые и "классические");
- экземпляры классов (если имеют метод __call__ );
- модули;
- классы (см. выше);
- экземпляры классов (см. выше);
- файлы file ;
- вспомогательные типы buffer, slice.
Узнать тип любого объекта можно с помощью встроенной функции type().
Тип int и long
Два типа: int (целые числа) и long (целые произвольной точности) служат моделью для представления целых чисел. Первый соответствует типу long в компиляторе C для используемой архитектуры. Числовые литералы можно записать в системах счисления с основанием 8, 10 или 16:
# В этих литералах записано число 10 print 10, 012, 0xA, 10L
Набор операций над числами - достаточно стандартный как по семантике, так и по обозначениям:
>>> print 1 + 1, 3 - 2, 2*2, 7/4, 5%3 2 1 4 1 2 >>> print 2L ** 1000 107150860718626732094842504906000181056140481170553360744375038 837035105112493612249319837881569585812759467291755314682518714 528569231404359845775746985748039345677748242309854210746050623 711418779541821530464749835819412673987675591655439460770629145 71196477686542167660429831652624386837205668069376 >>> print 3 < 4 < 6, 3 >= 5, 4 == 4, 4 != 4 # сравнения True False True False >>> print 1 << 8, 4 >> 2, ~4 # побитовые сдвиги и инверсия 256 1 -5 >>> for i, j in (0, 0), (0, 1), (1, 0), (1, 1): ... print i, j, ":", i & j, i | j, i ^ j # побитовые операции ... 0 0 : 0 0 0 0 1 : 0 1 1 1 0 : 0 1 1 1 1 : 1 1 0
Значения типа int должны покрывать диапазон от -2147483648 до 2147483647, а точность целых произвольной точности зависит от объема доступной памяти.
Стоит заметить, что если в результате операции получается значение, выходящее за рамки допустимого, тип int может быть неявно преобразован в long:
>>> type(-2147483648) <type 'int'> >>> type(-2147483649) <type 'long'>
Также нужно быть осторожным при записи констант. Нули в начале числа - признак восьмеричной системы счисления, в которой нет цифры 8:
>>> 008 File "<stdin>", line 1 008 ^ SyntaxError: invalid token
Тип float
Соответствует C-типу double для используемой архитектуры. Записывается вполне традиционным способом либо через точку, либо в нотации с экспонентой:
>>> pi = 3.1415926535897931 >>> pi ** 40 7.6912142205156999e+19
Кроме арифметических операций, можно использовать операции из модуля math.
Из полезных встроенных функций можно вспомнить round(), abs().
Тип complex
Литерал мнимой части задается добавлением j в качестве суффикса (перемножаются мнимые единицы):
>>> -1j * -1j (-1-0j)
Тип реализован на базе вещественного. Кроме арифметических операций, можно использовать операции из модуля cmath.
Тип bool
Подтип целочисленного типа для "канонического" обозначения логических величин. Два значения: True (истина) и False (ложь) - вот и все, что принадлежит этому типу. Как уже говорилось, любой объект Python имеет истинностное значение, логические операции можно проиллюстрировать с помощью логического типа:
>>> for i in (False, True): ... for j in (False, True): ... print i, j, ":", i and j, i or j, not i ... ... False False : False False True False True : False True True True False : False True False True True : True True False
Следует отметить, что Python даже не вычисляет второй операнд операции and или or, если ее исход ясен по первому операнду. Таким образом, если первый операнд истинен, он и возвращается как результат or, в противном случае возвращается второй операнд. Для операции and все аналогично.
Тип string и тип unicode
В Python строки бывают двух типов: обычные и Unicode-строки. Фактически строка - это последовательность символов (в случае обычных строк можно сказать "последовательность байтов"). Строки-константы можно задать в программе с помощью строковых литералов. Для литералов наравне используются как апострофы ( ' ), так и обычные двойные кавычки ( " ). Для многострочных литералов можно использовать утроенные апострофы или утроенные кавычки. Управляющие последовательности внутри строковых литералов задаются обратной косой чертой ( \ ). Примеры написания строковых литералов:
s1 = "строка1" s2 = 'строка2\nс переводом строки внутри' s3 = """строка3 с переводом строки внутри""" u1 = u'\u043f\u0440\u0438\u0432\u0435\u0442' # привет u2 = u'Еще пример' # не забудьте про coding!
Для строк имеется еще одна разновидность: необработанные строковые литералы. В этих литералах обратная косая черта и следующие за ней символы не интерпретируются как спецсимволы, а вставляются в строку "как есть":
my_re = r"(\d)=\1"
Обычно такие строки требуются для записи регулярных выражений (о них пойдет речь в лекции, посвященной обработке текстовой информации).
Набор операций над строками включает конкатенацию " + ", повтор " * ", форматирование " % ". Также строки имеют большое количество методов, некоторые из которых приведены ниже. Полный набор методов (и их необязательных аргументов) можно получить в документации по Python.
>>> "A" + "B" 'AB' >>> "A"*10 'AAAAAAAAAA' >>> "%s %i" % ("abc", 12) 'abc 12'
Некоторые методы строковых объектов будут рассмотрены в лекции, посвященной обработке текстов.
Тип tuple
Для представления константной последовательности (разнородных) объектов используется тип кортеж. Литерал кортежа обычно записывается в круглых скобках, но можно, если не возникают неоднозначности, писать и без них. Примеры записи кортежей:
p = (1.2, 3.4, 0.9) # точка в трехмерном пространстве for s in "one", "two", "three": # цикл по значениям кортежа print s one_item = (1,) empty = () p1 = 1, 3, 9 # без скобок p2 = 3, 8, 5, # запятая в конце игнорируется
Использовать синтаксис кортежей можно и в левой части оператора присваивания. В этом случае на основе вычисленных справа значений формируется кортеж и связывается один в один с именами в левой части. Поэтому обмен значениями записывается очень изящно:
a, b = b, a