Файл: Общие характеристики скриптовых языков. Язык Python.pdf
Добавлен: 05.07.2023
Просмотров: 112
Скачиваний: 2
СОДЕРЖАНИЕ
2.Общие сведения о Python. Достоинства и недостатки.
4.Описание языка. Управляющие конструкции.
5.Обработка исключительных ситуаций.
8. Операторы для всех типов последовательностей (списки, тьюплы, строки).
9. Операторы для списков (list).
10. Операторы для словарей (dictionary).
12. Другие элементы языка и встроенные функции.
while <условие>: <оператор1>
[else: <оператор2>]
Цикл «пока». <Оператор1> будет выполняться все время, пока истинно <условие>. При нормальном завершении цикла, т.е. без применения break, выполнится <оператор2>.
for <переменная> in <список>: <оператор1>
[else: <оператор2>]
Цикл «для». <Переменная> пробегает все элементы <списка> и для каждого текущего значения <переменной> выполняется <оператор1>. При нормальном завершении цикла, т.е. без применения break, выполнится <оператор2>.
break
Осуществляет немедленное завершение циклов while и for.
continue
Вызывает немедленное выполнение следующей итерации циклов while и for.
return [<результат>]
Осуществляет возврат из функции или метода класса, возвращая значение <результат>.
5.Обработка исключительных ситуаций.
try: <оператор1>
[except [<исключение> [,<переменная>] ]: < оператор2>]
[else <оператор3>]
Выполняется <оператор1>, если при этом возникла исключительная ситуация <исключение>, то выполняется <оператор2>. Если <исключение> имеет значение, то оно присваивается <переменной>.
В случае успешного завершения <оператора1> выполняется <оператор3>.
try: <оператор1>
finally: <оператор2>
Выполняется <оператор1>. Если не возникло исключений, то выполняется <оператор2>. Иначе выполняется <оператор2> и немедленно инициируется исключительная ситуация.
raise <исключение> [<значение>]
Инициирует исключительную ситуацию <исключение> с параметром <значение>.
Исключения - это просто строки (string). Пример:
my_ex = ‘bad index’
try:
if bad:
raise my_ex, bad
except my_ex, value:
print ‘ Error ’, value
6. Объявление функций.
def <имя_функции> ([<список_параметров>]):
<тело_функции>
Здесь <тело_функции> - последовательность операторов, выровненных по тексту правее слова «def».
<список_параметров> в самом общем виде выглядит так:
[ [,]* ] [ = [,=]* ] [, *]
Здесь - идентификатор переменной; - некое значение.
Параметры , за которыми следует «=» получают значения по умолчанию.
Если список заканчивается строкой « * », то id присваивается тьюпл (tuple) из всех оставшихся аргументов, переданных функции.
7. Объявление классов.
class <имя_класса> [( <предок1> [,<предок2>]* )]:
<тело_класса>
Здесь <тело_класса> может содержать присваивания переменным (эти переменные становятся атрибутами, т.е. полями класса) и определений функций (являющихся методами класса).
Первым аргументом метода всегда является экземпляр класса, который вызывает данный метод (или к которому применяется метод). По соглашению, этот аргумент называется «self». Специальный метод __init__() вызывается автоматически при создании экземпляра класса.
Пример:
class cMyClass:
def __init__(self, val):
self.value = val
#
def printVal (self):
print ‘ value = ’, self.value
#
# end cMyClass
obj = cMyClass (3.14)
obj.printVal ()
obj.value = « string now »
obj.printVal ()
Результат:
value = 3.14
value = string now
8. Операторы для всех типов последовательностей
(списки, тьюплы, строки).
len (s) - возвращает длину s.
min (s), max (s) - наименьший и наибольший элементы s, соответственно.
x in s - истина (1), если s включает в себя элемент равный x, иначе - ложь (0).
x not in s - ложь если s включает x, иначе истина.
s+t - слияние s и t.
s*n, n*s - n копий s, слитых вместе (например, ‘*’ * 5 - это строка ‘*****’).
s[i] - i-тый элемент s, где i отсчитывается с 0.
s[i:j] - часть элементов s начиная с i до j-1 включительно. Либо i, либо j, либо оба параметра могут быть опущены (i по умолчанию равен 0, j - длине s).
9. Операторы для списков (list).
s[i] = x - i-тый элемент s заменяется на x.
s[i:j] = t - часть элементов s от i до j-1 заменяется на t (t может быть также списком).
del s[i:j] - удаляет часть s (также, как и s[i:j] = []).
s.append (x) - добавляет элемент x к концу s.
s.count (x) - возвращает количество элементов s, равных x.
dex (x) - возвращает наименьший i такой, что s[i]==x.
sert (i,j) - часть s, начиная с i-го элемента, сдвигается вправо, и s[i] присваивается x.
s.remove (x) - то же, что и del s[ dex(x) ] - удаляет первый элемент s, равный x.
s.reverse () - записывает строку в обратном порядке.
s.sort () - сортирует список по возрастанию.
10. Операторы для словарей (dictionary).
len (a) - количество элементов а.
a[k] - элемент с ключом k.
a[k] = x - присвоить элементу с ключом k значение x.
del a[k] - удалить a[k] из словаря.
a.items () - список тьюплов пар (ключ, значение).
a.keys () - список ключей а.
a.values () - список значений а.
a.has_key (k) - возвращает 1, если а имеет ключ k, иначе 0.
11. Файловые объекты.
Создаются встроенной функцией open() (ее описание смотрите ниже). Например: f = open (‘mydan.dat’, ‘r’). Методы:
f.close () - закрыть файл.
f.read ([size]) - читает байт из файла и возвращает в виде строки. Если отсутствует, то читает до конца файла.
f.readline () - читает целиком одну строку из файла.
f.readlines () - читает строки до конца файла и возвращает список прочитанных строк.
f.seek (offset, mode) - устанавливает позицию в файле с которого будет произведено чтение. - смещение относительно:
- начала файла (при mode == 0 - по умолчанию);
- текущей позиции (при mode == 1);
- конца файла (при mode == 2).
f.tell () - возвращает текущую позицию в файле.
f.write (str) - записывает строку в файл.
12. Другие элементы языка и встроенные функции.
= присваивание.
print [ [,]* [,] ] - выводит значения , в стандартный вывод. Ставит пробел между аргументами. Если запятая в конце перечня аргументов отсутствует, то осуществляет переход на новую строку.
abs (x) - возвращает абсолютное значение x.
apply (f, <аргументы>) - вызывает функцию (или метод) f с < аргументами >.
chr (i) - возвращает односимвольную строку с ASCII кодом i.
cmp (x, y) - возвращает отрицательное, ноль, или положительное значение, если, соответственно, x <, ==, или > чем y.
divmod (a, b) - возвращает тьюпл ( a/b, a%b ), где a/b - это a div b (целая часть результата деления), a%b - это a mod b (остаток от деления).
eval (s) - возвращает объект, заданный в s как строка (string). S может содержать любую структуру языка. S так же может быть кодовым объектом, например: x = 1; incr_x = eval («x+1»).
float (x) - возвращает вещественное значение равное числу x.
hex (x) - возвращает строку, содержащую шестнадцатеричное представление числа x.
input (<строка>) - выводит <строку>, считывает и возвращает значение со стандартного ввода.
int (x) - возвращает целое значение числа x.
len (s) - возвращает длину (количество элементов) объекта.
long (x) - возвращает значение типа длинного целого числа x.
max (s), min (s) - возвращают наибольший и наименьший из элементов последовательности s ( т.е. s - строка, список или тьюпл )
oct (x) - возвращает строку, содержащую представление числа x.
open (<имя файла>, <режим> = ‘r’) - возвращает файловый объект, открытый для чтения. <режим> = ‘w’ - открытие для записи.
ord (c) - возвращает ASCII код символа (строки длины 1) c.
pow (x, y) - возвращает значение x в степени y.
range (<начало>, <конец>, <шаг>) - возвращает список целых чисел, больших либо равных <начало> и меньших чем <конец>, сгенерированных с заданным <шагом>.
raw_input ([<текст>]) - выводит <текст> на стандартный вывод и считывает строку (string) со стандартного ввода.
round (x, n=0) - возвращает вещественное x, округленное до n-го разряда после запятой.
str (<объект>) - возвращает строковое представление <объекта>.
type (<объект>) - возвращает тип объекта. Например:
if type(x) == type(‘’): print ‘ это строка ’
xrange (<начало>, <конец>, <шаг>) - аналогичен range, но лишь имитирует список, не создавая его. Используется в цикле for.
13. Cпециальные функции для работы со списками.
filter (<функция>, <список>) - возвращает список из тех элементов <спиcка>, для которых <функция> принимает значение «истина».
map (<функция>, <список>) - применяет <функцию> к каждому элементу <списка> и возвращает список результатов.
reduce (f, <список>, [, <начальное значение> ]) - возвращает значение, полученное «редуцированием» <списка> функцией f. Это значит, что имеется некая внутренняя переменная p, которая инициализируется <начальным значением>, затем, для каждого элемента <списка>, вызывается функция f с двумя параметрами: p и элементом <списка>. Возвращаемый f результат присваивается p. После перебора всего <списка> reduce возвращает p.
С помощью данной функции можно, к примеру, вычислить сумму элементов списка:
def func (red, el):
return red+el
sum = reduce (func, [1,2,3,4,5], 0)
# теперь sum == 15
lambda [<список параметров>]: <выражение> - «анонимная» функция, не имеющая своего имени и записываемая в месте своего вызова. Принимает параметры, заданные в <списке параметров>, и возвращает значение <выражения>. Используется для filter, reduce, map. Например:
>>>print filter (lambda x: x>3, [1,2,3,4,5])
[4, 5]
>>>print map (lambda x: x*2, [1,2,3,4])
[2, 4, 6, 8]
>>>print reduce (lambda r, x: r*x, [1,2,3,4], 1)
24
14. Импортирование модулей.
import <модуль1> [, <модуль2> ]* - подключает внешние модули.
from <модуль> import <имя1> [, <имя2> ]* - импортирует имена (функций, классов, переменных и т.д.) из <модуля>.
from <модуль> import * - импортирует все имена из <модуля>, за исключением начинающихся символом «_».
15. Стандартный модуль math.
Переменные: pi, e.
Функции (аналогичны функциям языка C):
acos(x) |
cosh(x) |
ldexp(x,y) |
sqrt(x) |
asin(x) |
exp(x) |
log(x) |
tan(x) |
atan(x) |
fabs(x) |
sinh(x) |
frexp(x) |
atan2(x,y) |
floor(x) |
pow(x,y) |
modf(x) |
ceil(x) |
fmod(x,y) |
sin(x) |
|
cos(x) |
log10(x) |
tanh(x) |