Python Prakt 01
Python Prakt 01
программированию на Python
Иван Хахаев, 2009
Типы данных
Числа
Числа в Python могут быть обычными целыми (тип int), длинными целыми
(тип long), вещественными (тип float) и комплèксными (они не будут
рассматриваться и использоваться). Для всех задач в пределах школьного курса
используются только целые и вещественные числа.
Для преобразования чисел из вещественных в целые и наоборот в Python
определены функции int() и float(). Например, int(12.6) даст в результате
12, а float(12) даёт в результате 12.0 (десятичный разделитель — точка).
Операции с числами:
Операция Описание
x + y Сложение (сумма x и y)
x y Вычитание (разность x и y)
x * y Умножение (произведение x и y)
x/y Деление x на y (частное). Внимание!
Если x и y целые, то можно получить
целое число! Для получения
вещественного результата хотя бы одно
из чисел должно быть вещественным.
Пример:
100/8 → 12, а вот 100/8.0 → 12.5
x//y Целочисленное деление (результат —
целое число). Если оба числа в операции
вещественные, получается вещественное
число с дробной частью, равной нулю.
Пример:
100//8 → 12
101.8//12.5 → 8.0
(для сравнения
101.8/12.5 → 8.1440000000000001)
x%y Остаток от целочисленного деления x на
y
Пример:
10%4 → 2
x**y Возведение в степень (x в степени y).
Работает и для вещественных чисел.
Примеры:
2**3 → 8
2 / 32
И.А.Хахаев
2.3**(3.5) → 0.05419417057580235
x Смена знака числа
Логические значения
Логические значения в Python представлены двумя величинами —
логическими константами True (Истина) и False (Ложь).
Логические значения получаются в результате логических операций и
вычисления логических выражений.
Основные логические операции и выражения:
Операция или выражение Описание
> Условие «больше» (например, проверяем,
что a > b)
< Условие «меньше» (например,проверяем,
что a < b)
== Условие равенства (проверяем, что a
равно b)
!= Условие неравенства (проверяем, что a
не равно b)
not x Отрицание (условие x не выполняется)
x and y Логическое «И» (умножение). Чтобы
выполнилось условие x and y,
необходимо, чтобы одновременно
выполнялись условия x и y.
x or y Логическое «ИЛИ» (сложение). Чтобы
выполнилось условие x or y,
необходимо, чтобы выполнилось одно из
условий.
x in A Проверка принадлежности элемента x
множеству (структуре) A (см. «Структуры
данных»).
3 / 32
И.А.Хахаев
Структуры данных
В Python определены такие структуры данных (составные типы) как
последовательности и отображения (называемые также словарями). Словари
позволяют устанавливать связи (ассоциации) «ключзначение» (например,
«ФамилияАдрес»), поэтому с их помощью создаются так называемые
ассоциативные массивы. Здесь не будут рассматриваться словари и подробности
их применения, а для создания ассоциативных массивов будут использоваться
другие структуры данных.
Последовательности, в свою очередь, подразделяются на изменяемые и
неизменяемые. Под изменяемостью (изменчивостью) последовательности
понимается возможность добавлять или убирать элементы этой
последовательности (т.е. изменять количество элементов последовательности).
Для структур данных в Python определены функции (операции) и методы,
принципиального различия между которыми нет, а есть различие синтаксическое (в
правилах написания). Основные функции и методы для каждого типа структур
данных приводятся ниже.
4 / 32
И.А.Хахаев
Метод Описание
5 / 32
И.А.Хахаев
6 / 32
И.А.Хахаев
s1.rfind('br') → 8
s1.strip() Создаётся копия строки, в которой
удалены пробелы в начале и в конце
(если они есть или случайно
образовались).
Пример:
s1=' breKeKeKeKs '
s2=s1.strip()
s2 → 'breKeKeKeKs'
s1.lstrip() Создаётся копия строки, в которой
удалены пробелы в начале (если они есть
или случайно образовались).
Пример:
s1=' breKeKeKeKs '
s2=s1.lstrip()
s2 → 'breKeKeKeKs '
s1.rstrip() Создаётся копия строки, в которой
удалены пробелы в конце (если они есть
или случайно образовались).
Пример:
s1=' breKeKeKeKs '
s2=s1.rstrip()
s2 → ' breKeKeKeKs'
s1.replace(s2,s3[,n]) В строке s1 фрагмент (подстрока) s2
заменяется на фрагмент s3.
Необязательный аргумент n указывает
количество замен (если требуется
заменить не все фрагменты).
Пример:
s1='breKeKeKeKs'
ss=s1.replace('Ke','XoXo',2)
ss → 'breXoXoXoXoKeKs'
s1.capitalize() Создаётся новая строка, в которой
первая буква исходной строки становится
заглавной (прописной), а все остальные
становятся маленькими (строчными).
Пример:
s1='breKeKeKeKs'
s2=s1.capitalize()
s2 → 'Brekekekeks'
s1.swapcase() Создаётся новая строка, в которой
прописные буквы исходной строки
заменяются на строчные и наоборот.
Пример:
s1='breKeKeKeKs'
s2=s1.swapcase()
s2 → 'BREkEkEkEkS'
7 / 32
И.А.Хахаев
8 / 32
И.А.Хахаев
9 / 32
И.А.Хахаев
10 / 32
И.А.Хахаев
11 / 32
И.А.Хахаев
12 / 32
И.А.Хахаев
13 / 32
И.А.Хахаев
lst.pop() → 'dva'
lst → [1,2,3,'raz']
lst.insert(i,x) Вставка элемента или списка x в позицию
i списка lst. Если i>=0, вставка идёт в
начало списка. Если i>len(lst), вставка
идёт в конец списка. Новый список не
создаётся.
Пример:
lst= [1,2,3,'raz']
lst.insert(3,'tri')
lst → [1,2,3,'tri','raz']
lst.sort() Сортировка списка по возрастанию (в
алфавитном порядке). Новый список не
создаётся.
Пример:
lst=[1,2,3,'tri','raz']
lst.sort()
lst → [1,2,3,'raz','tri']
lst.reverse() Замена порядка следования элементов на
обратный. Новый список не создаётся.
Пример:
lst=[1,2,3,'raz','tri']
lst.reverse()
lst → ['tri','raz',3,2,1]
14 / 32
И.А.Хахаев
t1=(1,2,3)
t2=(5.0,6.0,7.0)
t=map(lambda x,y: x/y,t1,t4)
t → [0.20000000000000001, 0.33333333333333331, 0.42857142857142855]
t1=(1,2,3)
sum(t1) → 6
15 / 32
И.А.Хахаев
16 / 32
И.А.Хахаев
sum(range(10)) → 45
sum(range(0,15,3)) → 30
17 / 32
И.А.Хахаев
18 / 32
И.А.Хахаев
Пункт «Options» главного меню IDLE позволяет выбрать, какое окно будет
открываться при запуске программы — окно редактора или окно оболочки. Для
выполнения программы, набранной в окне редактора, нужно нажать <F5>. Если
файл с текстом программы не сохранён, IDLE выдаст соответствующее сообщение и
19 / 32
И.А.Хахаев
предложит сохранить файл. Если окно оболочки при этом отсутствует, оно
автоматически откроется и покажет результаты выполнения программы.
Недостатком IDLE является «бедный» и не локализованный (только на
английском) интерфейс, а достоинством то, что реализации IDLE существуют для
всех распространённых операционных систем.
Также специально для Python разработана IDE Eric (рис. 3), которая
обладает большим количеством настроек и возможностей отладки программ и
больших программных проектов.
20 / 32
И.А.Хахаев
Важно обратить внимание, что в Eric также имеется окно редактора и окно
выполнения (окно интерактивной оболочки).
Интерес представляет также кроссплатформенная IDE Geany (рис. 5), в
которой, кроме Python можно работать со многими другими языками
программирования.
21 / 32
И.А.Хахаев
22 / 32
И.А.Хахаев
Диалоговый режим
При работе с интерактивными оболочками или в процессе организации
взаимодействия программы с пользователем («диалога») для ввода чисел и,
соответственно, определения значений переменных используются функции
input() и raw_input(). В качестве аргумента этих функции рекомендуется
использовать строкуподсказку (приглашение для ввода), в которой кратко
описывается, какие данные и как необходимо сообщить программе. При
использовании русских слов в строкеподсказке нужно указывать кодировочную
таблицу (см. главу «Программа на Python»). Строкаподсказка может быть в
двойных или в одиночных кавычках. Для выполнения операций input() или
raw_input() интерпретатор останавливает программу и после строкиподсказки
23 / 32
И.А.Хахаев
24 / 32
И.А.Хахаев
25 / 32
И.А.Хахаев
26 / 32
И.А.Хахаев
Есть ещё два полезных метода для чтения данных из файла. Метод
readline() читает из файла строку, а при повторном использовании – следующую
строку:
>>> fd=open('1.dat','r') <ENTER>
>>> s01=fd.readline() <ENTER>
>>> s01 <ENTER>
'1 2 3\n'
>>> s01=fd.readline() <ENTER>
'a b c'
>>> fd.close() <ENTER>
27 / 32
И.А.Хахаев
Здесь как раз использована комбинация '\n' для перехода на новую строку.
В результате получим файл 2.dat следующего содержания:
c d e
3 4 5
Программа на Python
Программа на Python представляет из себя последовательность команд для
ввода данных, вычислений и других операций с данными и вывода результатов.
Простые команды (операторы) принято записывать по одной строке на оператор. В
составных операторах (с которыми ещё предстоит познакомиться) большую роль
играют пробелы в начале строки (отступы).
Программа создаётся в виде текстового файла в любом текстовом
редакторе. Использование интегрированных сред разработки (IDE) обеспечивает
подсветку синтаксиса и выделение особенностей структуры программы, а также
поиск ошибок написания команд. Файл с программой должен иметь «расширение»
.py (например, my_program.py).
Первую строку программы полезно оформить как комментарий, в котором
указывается кодировочная таблица для символов кириллицы.
Пример простейшей программы:
# * coding: utf8 *
name=raw_input('Как тебя зовут? ')
print 'Здравствуй, ', name, '!'
28 / 32
И.А.Хахаев
29 / 32
И.А.Хахаев
30 / 32
И.А.Хахаев
Контрольные вопросы.
1. Почему операция вида a<b=c недопустима, а операция вида a<b==с —
допустима?
2. Чем отличаются результаты операций «/» и «//» для целых чисел? А
31 / 32
И.А.Хахаев
32 / 32