Файл: Учебное пособие по изучению языка программировани Python Л. Самыкбаева, А. Беляев, А. Палитаев, И. Ташиев, С. Маматов.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2023
Просмотров: 257
Скачиваний: 7
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
14
3. Тема:
Условные операторы
Возможности, которые мы рассмотрели до этого, позволяют писать
линейные программы, в которых операторы выполняются последовательно друг за другом, и порядок их выполнения не зависит от входных данных.
В большинстве реальных задач порядок действий может несколько изме- няться, в зависимости от того, какие данные поступили.
Из курса 6 класса вы помните, что если возникает выбор между двумя вариантами действий, то для записи такого алгоритма используется кон- струкция ветвления. Ветвление в Python реализуется с помощью условных операторов. В зависимости от значения, условные операторы направляют программу по одному из путей. Например, программа для системы пожар- ной сигнализации должна выдавать сигнал тревоги, если данные с датчи- ков показывают повышение температуры или задымленность.
Условный оператор
if
позволяет сначала проверить условие и только потом принять решение об исполнении или не исполнении дальнейших инструкций. Чтобы понять, как работает оператор
if
, рассмотрим типич- ные задачи на проверку условий и выбор.
Задача 1. Напишем программу, разрешающую доступ только для тех, чей возраст старше 21 года.
a =
int
(
input
(
'Введите свой возраст: '
))
if
a >= 21:
print
(
'Доступ разрешен'
)
else
:
print
(
'Доступ запрещен'
)
Начало каждой «ветви» программы обозначается двоеточием «:». Условие в операторе
if
записывается без скобок.
Если условие, записанное после оператора
if
верно (истинно), то затем выполняются все команды (блок команд), которые расположены до друго- го условного оператора
else
. Если же условие после
if
неверно (ложно), выполняются команды, стоящие после
else
. В нашем примере, если ука- зать возраст – 13, то исполнится инструкция, записанная после
else
: , то есть доступ будет запрещен.
15
УС ЛОВНЫЕ ОПЕРАТОРЫ
В Python важную роль играют сдвиги операторов относительно левой границы (отступы). Обратите внимание, что слова
if
и
else
начинаются на одном уровне, а все команды внутренних блоков сдвинуты относительно этого уровня вправо на одно и то же расстояние. Для сдвига используют символы табуляции: одно нажатие на клавишу Tab или четыре пробела.
Если необходимо ввести несколько альтернативных условий, то можно использовать дополнительные блоки
elif
(сокращенное от
else – if
), после которого идет блок инструкций.
a=
int
(
input
(
'Введите свой возраст: '
))
if
a >= 21:
print
(
'Доступ разрешен'
)
elif
a >= 18:
print
(
'Доступ частично разрешен'
)
else
:
print
(
'Доступ запрещен'
)
Операторы сравнения
Операторы сравнения позволяют нам сравнить между собой два значения, где в результате выводится значение – либо True, либо False.
Задача 2. Компания проводит опрос общественного мнения и ее интере- суют люди в возрасте от 20 до 70 лет включительно. Нужно написать про- грамму, которая запрашивает возраст претендента и выдает ответ: «подхо- дит» он или «не подходит» по этому признаку.
Пусть в переменной
v
записан возраст. Тогда нужный фрагмент программы будет выглядеть так:
В Python в конце за- головков инструк- ций с условным оператором всегда ставится двоеточие.
ЗАПОМНИ
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PY THON
16
if
v >= 20
and
v <= 70:
print
(
'подходит'
)
else
:
print
(
'не подходит'
)
В языке Python разрешены двойные неравенства, например:
if
A < B < C:
означает то же самое, что и
if
A < B
and
B < C:
Задача 3. Запишем программу по сохранению файла с использованием условных операторов и операторов сравнения:
ans =
input
(
'Вы хотите сохранить файл? (да/нет)'
)
if
ans ==
'да'
:
print
(
'Выберите папку для сохранения'
)
if
ans ==
'нет'
:
print
(
'Данные будут утеряны для дальнейшего использования'
)
else
:
print
(
'Ошибка. Такого варианта ответа нет'
)
Результат вывода будет зависеть от того, какой ответ был выбран: «да» или «нет»:
= присваивает значение для переменной (если a = b, то а становится тем же, что и b );
== сравнивает два значе- ния (если a==b, то это запрос на сравнение, и программа вы- даст результат True или False).
ЗАПОМНИ
1) Даны три числа. Напишите программу, которая выводит коли
чество одинаковых чисел в этой цепочке.
2) Даны длины трех отрезков. Напишите программу, которая проверяет, могут ли они являться сторонами треугольника.
3) Дано натуральное число. Определите, будет ли это число: четным, кратным 4.
4)
Напишите программу по обмену валюты в сомах, долларах и евро.
КОМПЬЮТЕРНЫЙ ПРАКТИКУМ:
17
ЦИК ЛЫ WHILE И FOR
4. Тема:
Циклы while и for
Циклы являются такой же важной частью программирования, как услов- ные операторы. С их помощью можно организовать повторение некоторых частей кода. В Python для записи циклов используются 2 вида команд:
while
и
for
Цикл
while
While переводится с английского как «пока», то есть цикл (блок команд) выполняется до тех пор, пока не выполнится заданное условие. Для этого в начале очередного шага цикла выполняется проверка условия. Поэтому оно называется циклом с предусловием.
Задача 1. Запишем программу для вывода на экран всех целых чисел от 1 до 5.
Проверяется предусловие так: если в начальный момент значение пере- менной d будет больше или равно 5, цикл не выполнится ни одного раза.
Задача 2. Рассмотрим пример: определите количество цифр в десятичной записи целого положительного числа. Будем предполагать, что исходное число записано в переменную
n
целого типа.
Для решения задачи нужно использовать переменную – счетчик, значение которой меняется с каждым новым проходом цикла. Для подсчета количества цифр нужно как-то отсекать эти цифры по одной, с начала или с конца, каж- дый раз увеличивая счетчик. Начальное значение счетчика должно быть рав- но нулю, так как до выполнения алгоритма еще не найдено ни одной цифры.
Чтобы отсечь последнюю цифру, достаточно разделить число нацело на 10.
Операции отсечения и увеличения счетчика нужно выполнять столько раз, сколько цифр в числе.
Как только результат очередного деления на 10 будет равен нулю, это и говорит о том, что отброшена последняя оставшаяся цифра. Программа на
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PY THON
18
Python выглядит так:
count = 0
while
n > 0:
n = n // 10
count += 1
Количество проходов цикла будет равно количеству цифр введенного числа, то есть зависит от исходных данных. Если условие в заголовке цикла никогда не нарушится, цикл будет работать бесконечно долго. В этом слу- чае говорят, что «программа зациклилась». Чтобы остановить зацикленную программу, нужно нажать на Ctrl+C в окне консоли.
Цикл
for
Цикл
for
повторяет команды необходимое количество раз. Данная коман- да позволяет сделать программу компактнее. Рассмотрим предыдущий пример с использованием цикла
for
:
Здесь переменная i (ее называют переменной цикла) изменяется в диапа- зоне (
in
range
) от 0 до 5, не включая 5 (то есть от 0 до 4-х включительно).
Таким образом, цикл выполняется ровно 5 раз.
Для того чтобы нам получить идентичный ответ (как в случае с
while
), из- меним нашу программу:
Задача 2. Выведем степени числа два от 21 до 2 10
(k = степени двойки).
19
ЦИК ЛЫ WHILE И FOR
В первом варианте переменная
k
используется трижды: для присвоения начального значения, в условии цикла и в теле цикла (увеличение на 1).
Во втором варианте переменная
k
задается диапазоном (
range
) из двух чисел – начальным и конечным значением, причем конечное значение не
входит в диапазон.
Шаг изменения переменной цикла по умолчанию равен 1. Если его нужно изменить, указывают третье (необязательное) число в скобках после слова
range
– это нужный шаг. Например, такой цикл выведет только нечетные степени числа 2:
С каждым шагом цикла переменная цикла может не только увеличиваться, но и уменьшаться. Для этого начальное значение должно быть больше ко- нечного, а шаг – отрицательным. Следующая программа печатает квадраты натуральных чисел от 5 до 1 в порядке убывания:
1) Напишите программу, которая получает два целых числа A и
B и выводит квадраты всех натуральных чисел в интервале от A до B.
2) Дано натуральное число. Напишите программу, которая нахо
дит сумму его цифр.
3) Дан брусок длиной 20 метров. Напишите программу, которая посчитает, какое минимальное целое количество отрезков дли
ной 1,5 м и 2 м получится из данного бруска.
КОМПЬЮТЕРНЫЙ ПРАКТИКУМ:
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PY THON
20
5. Тема:
Сложные условия: and, or, not
В программировании важно уметь правильно выстраивать условия. Часто условия бывают сложными, т.е. состоят из нескольких составных условий, соединенных логическими операторами (связками) «И», «ИЛИ» и «НЕ». В
Python они записываются английскими словами «and», «or» и «not».
Логический оператор
and
(логическое умножение)
Сложное условие, где составные условия соединены связкой
and
, возвра- щает
True
, если все выражения равны
True
. Если же хоть одно из выраже- ний ложно, то всё условие является ложным:
x = 5
if
x < 10
and
x % 3 == 0:
print
(
'True'
)
else
:
print
(
'False'
)
Ответом здесь будет False, потому что, согласно второй части условия, за- данное число 5 не делится на 3 без остатка. Если бы мы записали выраже- ние так: x % 3 == 0
and
х < 10, то оно также вернуло бы False. Однако второе сравнение x < 10 не выполнялось бы интерпретатором, так как его незачем выполнять. Ведь первое выражение (x % 3 == 0) уже вернуло ложь, кото- рая, в случае оператора
and
, превращает всё выражение в ложь.
Логический оператор
or
(логическое сложение)
Возвращает True, если хотя бы одно из выражений равно True:
x = 5
if
x < 10
or
x % 3 == 0:
print
(
'True'
)
else
:
print
(
'False'
)
Ответом здесь будет True, потому что, согласно первой части условия, заданное число 5 меньше 10, хоть и не делится на 3 без остатка. Именно поэтому, если одно из выражений возвращает True, то второе выражение не оценивается, так как оператор
or
в любом случае возвратит True.
21
С ЛОЖНЫЕ УС ЛОВИЯ: AND, OR , NOT
Логический оператор
not
(логическое отрицание)
Унарный оператор
not
превращает истину в ложь, а ложь в истину. Унар- ный он потому, что применяется к одному выражению, стоящему после него, а не справа и слева от него, как в случае бинарных
and
и
or
Если в одном выражении одновременно используется несколько или даже все логические операторы, приоритет операций следующий:
1) отношения (<, >, <=, >=, ==, !=)
2) not («НЕ»)
3) and («И»)
4) or («ИЛИ»)
Для изменения порядка действий используют круглые скобки. Рассмотрим пример изменения порядка вычислений в случаях, когда возникают скобки:
ВОПРОСЫ И ЗАДАНИЯ:
1) C помощью оператора and составьте два сложных логических выражения, одно из которых дает истину, другое – ложь.
2) Аналогично выполните задачу 1, но уже с оператором or.
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PY THON
22
6. Тема:
Списки, кортежи и словари
Часто нам нужно держать много однообразных данных в одном файле, например, список учеников школы или номера телефонов в справочнике.
В Python такие наборы данных можно организовывать в списки, кортежи
и словари.
Список (list) – это структура, состоящая из элементов, расположенных в определенном порядке. Каждому элементу соответствует номер (или индекс), по которому к нему можно обратиться. Для создания списка в квадратных скобках ([]) через запятую перечисляются все его элементы.
Например, создадим список членов своей семьи:
>>> myfamily = ['father', 'mother', 'sister', 'brother']
В данном случае наш список будет храниться в переменной myfamily. Когда список создан, можно написать программу для работы с этим списком. К примеру, напишем приветствие для каждого из членов семьи, используя цикл:
Список может содержать разные типы объектов. В один и тот же список од- новременно можно включать строки, числа, объекты других типов данных:
objects = [1, 2.6,
'Hello'
,
True
]
Списки можно складывать, тогда новый список будет содержать элементы из обоих списков:
x = [1, 2, 3, 4]
y = [5, 6, 7, 8]
z = x + y
print
(z)
Результат:
[1, 2, 3, 4, 5, 6, 7, 8]
23
СПИСКИ, КОР ТЕ ЖИ И С ЛОВАРИ
Со списками можно делать много разных операций:
Кортеж (tuple), как и список, представляет собой последовательность эле- ментов. Однако хранящиеся в нем элементы нельзя изменять, добавлять или удалять. Для создания кортежа используются круглые скобки, в кото- рые помещаются его значения, разделенные запятыми:
user = ('Timur', 23, 1.10.1998)
print
(user)
В кортежах удобно хранить свойства объектов, например, имя, возраст, дату рождения. Если вдруг кортеж состоит из одного элемента, то после единственного элемента кортежа необходимо поставить запятую:
user = ('Tom',)
Словари (dictionary) – это структура данных, в которой каждый элемент вместо индекса имеет уникальный ключ. Элементы словаря можно изме- нять. Для создания словаря используются фигурные скобки ({}):
dictionary = {ключ1:значение1, ключ2:значение2, ...}
Создадим словарь под именем myschool:
myschool = {
'5 klass'
:
'Anara, Kanat, Pavel'
,
'6 klass'
:
'Chyngyz, Tina, Emil'
}
В этом словаре в качестве ключей используются названия классов, а в каче- стве значений – имена тех, кто учится в этих классах.
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PY THON
24
В словарь можно добавить значение, пометив его новым ключом:
myschool[
'7 klass'
] =
'Elena, Ainura, Dastan'
print
(myschool)
Результат:
{'5 klass': 'Anara, Kanat, Pavel', '6 klass': 'Chyngyz,
Tina, Emil', '7 klass':'Elena, Ainura, Dastan'}
Чтобы изменить значение элемента, нужно придать его ключу новое значе- ние:
myschool = {
'5 klass'
:
'Anara, Kanat, Pavel'
,
'6 klass'
:
'Chyngyz, Tina, Emil'
}
myschool[
'6 klass'
] =
'Matvei, Tina, Salima'
print
(myschool)
Результат:
{'5 klass':'Anara, Kanat, Pavel', '6 klass':'Matvei, Tina, Salima'}
Используя цикл
for
, можно вывести на экран только ключи словаря:
for
i
in
myschool:
print
(i)
Результат:
5 klass
6
klass
Или вывести только значения словаря:
for
i
in
myschool:
print
(myschool[i])
Результат:
Anara, Kanat, Pavel
Chyngyz, Tina, Emil
Создайте словарь «Рыбы», а его элементы разделите на 3 вида:
«речные», «озерные» и «морские рыбы». Выведите на экран снача
ла только ключи, а потом элементы словаря.
КОМПЬЮТЕРНЫЙ ПРАКТИКУМ:
25
ЦИК ЛИЧЕСКИЕ А ЛГОРИТМЫ
7. Тема:
Циклические алгоритмы
Доказано, что любой алгоритм может быть записан с помощью трех алгорит- мических конструкций: циклов, услов- ных операторов, линейных алгоритмов.
Как вы знаете, цикл – это многократное выполнение одинаковых действий.
В 7 классе мы уже начали изучать циклы while и for. Цикл for отличается от цикла while тем, что используется для повторения каких-то команд зара- нее известное количество раз. Цикл while, напротив, повторяет какое-то действие в тех случаях, когда мы не знаем, сколько повторений данной команды необходимо. При этом нам известно условие, до исполнения ко- торого требуется повторять цикл.
Рассмотрим применение цикла for более подробно. Запись цикла for в
Python осуществляется по схеме:
При старте цикла значение первого элемента диапазона будет присвое- но переменной, с которой будет выполнено обозначенное действие. При втором проходе переменной будет присвоено значение второго элемента диапазона. И так далее, пока со всеми элементами в диапазоне не будет проведено заданное действие. Рассмотрим пример, в котором переменной
3. Тема:
Условные операторы
Возможности, которые мы рассмотрели до этого, позволяют писать
линейные программы, в которых операторы выполняются последовательно друг за другом, и порядок их выполнения не зависит от входных данных.
В большинстве реальных задач порядок действий может несколько изме- няться, в зависимости от того, какие данные поступили.
Из курса 6 класса вы помните, что если возникает выбор между двумя вариантами действий, то для записи такого алгоритма используется кон- струкция ветвления. Ветвление в Python реализуется с помощью условных операторов. В зависимости от значения, условные операторы направляют программу по одному из путей. Например, программа для системы пожар- ной сигнализации должна выдавать сигнал тревоги, если данные с датчи- ков показывают повышение температуры или задымленность.
Условный оператор
if
позволяет сначала проверить условие и только потом принять решение об исполнении или не исполнении дальнейших инструкций. Чтобы понять, как работает оператор
if
, рассмотрим типич- ные задачи на проверку условий и выбор.
Задача 1. Напишем программу, разрешающую доступ только для тех, чей возраст старше 21 года.
a =
int
(
input
(
'Введите свой возраст: '
))
if
a >= 21:
(
'Доступ разрешен'
)
else
:
(
'Доступ запрещен'
)
Начало каждой «ветви» программы обозначается двоеточием «:». Условие в операторе
if
записывается без скобок.
Если условие, записанное после оператора
if
верно (истинно), то затем выполняются все команды (блок команд), которые расположены до друго- го условного оператора
else
. Если же условие после
if
неверно (ложно), выполняются команды, стоящие после
else
. В нашем примере, если ука- зать возраст – 13, то исполнится инструкция, записанная после
else
: , то есть доступ будет запрещен.
15
УС ЛОВНЫЕ ОПЕРАТОРЫ
В Python важную роль играют сдвиги операторов относительно левой границы (отступы). Обратите внимание, что слова
if
и
else
начинаются на одном уровне, а все команды внутренних блоков сдвинуты относительно этого уровня вправо на одно и то же расстояние. Для сдвига используют символы табуляции: одно нажатие на клавишу Tab или четыре пробела.
Если необходимо ввести несколько альтернативных условий, то можно использовать дополнительные блоки
elif
(сокращенное от
else – if
), после которого идет блок инструкций.
a=
int
(
input
(
'Введите свой возраст: '
))
if
a >= 21:
(
'Доступ разрешен'
)
elif
a >= 18:
(
'Доступ частично разрешен'
)
else
:
(
'Доступ запрещен'
)
Операторы сравнения
Операторы сравнения позволяют нам сравнить между собой два значения, где в результате выводится значение – либо True, либо False.
Задача 2. Компания проводит опрос общественного мнения и ее интере- суют люди в возрасте от 20 до 70 лет включительно. Нужно написать про- грамму, которая запрашивает возраст претендента и выдает ответ: «подхо- дит» он или «не подходит» по этому признаку.
Пусть в переменной
v
записан возраст. Тогда нужный фрагмент программы будет выглядеть так:
В Python в конце за- головков инструк- ций с условным оператором всегда ставится двоеточие.
ЗАПОМНИ
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PY THON
16
if
v >= 20
and
v <= 70:
(
'подходит'
)
else
:
(
'не подходит'
)
В языке Python разрешены двойные неравенства, например:
if
A < B < C:
означает то же самое, что и
if
A < B
and
B < C:
Задача 3. Запишем программу по сохранению файла с использованием условных операторов и операторов сравнения:
ans =
input
(
'Вы хотите сохранить файл? (да/нет)'
)
if
ans ==
'да'
:
(
'Выберите папку для сохранения'
)
if
ans ==
'нет'
:
(
'Данные будут утеряны для дальнейшего использования'
)
else
:
(
'Ошибка. Такого варианта ответа нет'
)
Результат вывода будет зависеть от того, какой ответ был выбран: «да» или «нет»:
= присваивает значение для переменной (если a = b, то а становится тем же, что и b );
== сравнивает два значе- ния (если a==b, то это запрос на сравнение, и программа вы- даст результат True или False).
ЗАПОМНИ
1) Даны три числа. Напишите программу, которая выводит коли
чество одинаковых чисел в этой цепочке.
2) Даны длины трех отрезков. Напишите программу, которая проверяет, могут ли они являться сторонами треугольника.
3) Дано натуральное число. Определите, будет ли это число: четным, кратным 4.
4)
Напишите программу по обмену валюты в сомах, долларах и евро.
КОМПЬЮТЕРНЫЙ ПРАКТИКУМ:
17
ЦИК ЛЫ WHILE И FOR
4. Тема:
Циклы while и for
Циклы являются такой же важной частью программирования, как услов- ные операторы. С их помощью можно организовать повторение некоторых частей кода. В Python для записи циклов используются 2 вида команд:
while
и
for
Цикл
while
While переводится с английского как «пока», то есть цикл (блок команд) выполняется до тех пор, пока не выполнится заданное условие. Для этого в начале очередного шага цикла выполняется проверка условия. Поэтому оно называется циклом с предусловием.
Задача 1. Запишем программу для вывода на экран всех целых чисел от 1 до 5.
Проверяется предусловие так: если в начальный момент значение пере- менной d будет больше или равно 5, цикл не выполнится ни одного раза.
Задача 2. Рассмотрим пример: определите количество цифр в десятичной записи целого положительного числа. Будем предполагать, что исходное число записано в переменную
n
целого типа.
Для решения задачи нужно использовать переменную – счетчик, значение которой меняется с каждым новым проходом цикла. Для подсчета количества цифр нужно как-то отсекать эти цифры по одной, с начала или с конца, каж- дый раз увеличивая счетчик. Начальное значение счетчика должно быть рав- но нулю, так как до выполнения алгоритма еще не найдено ни одной цифры.
Чтобы отсечь последнюю цифру, достаточно разделить число нацело на 10.
Операции отсечения и увеличения счетчика нужно выполнять столько раз, сколько цифр в числе.
Как только результат очередного деления на 10 будет равен нулю, это и говорит о том, что отброшена последняя оставшаяся цифра. Программа на
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PY THON
18
Python выглядит так:
count = 0
while
n > 0:
n = n // 10
count += 1
Количество проходов цикла будет равно количеству цифр введенного числа, то есть зависит от исходных данных. Если условие в заголовке цикла никогда не нарушится, цикл будет работать бесконечно долго. В этом слу- чае говорят, что «программа зациклилась». Чтобы остановить зацикленную программу, нужно нажать на Ctrl+C в окне консоли.
Цикл
for
Цикл
for
повторяет команды необходимое количество раз. Данная коман- да позволяет сделать программу компактнее. Рассмотрим предыдущий пример с использованием цикла
for
:
Здесь переменная i (ее называют переменной цикла) изменяется в диапа- зоне (
in
range
) от 0 до 5, не включая 5 (то есть от 0 до 4-х включительно).
Таким образом, цикл выполняется ровно 5 раз.
Для того чтобы нам получить идентичный ответ (как в случае с
while
), из- меним нашу программу:
Задача 2. Выведем степени числа два от 21 до 2 10
(k = степени двойки).
19
ЦИК ЛЫ WHILE И FOR
В первом варианте переменная
k
используется трижды: для присвоения начального значения, в условии цикла и в теле цикла (увеличение на 1).
Во втором варианте переменная
k
задается диапазоном (
range
) из двух чисел – начальным и конечным значением, причем конечное значение не
входит в диапазон.
Шаг изменения переменной цикла по умолчанию равен 1. Если его нужно изменить, указывают третье (необязательное) число в скобках после слова
range
– это нужный шаг. Например, такой цикл выведет только нечетные степени числа 2:
С каждым шагом цикла переменная цикла может не только увеличиваться, но и уменьшаться. Для этого начальное значение должно быть больше ко- нечного, а шаг – отрицательным. Следующая программа печатает квадраты натуральных чисел от 5 до 1 в порядке убывания:
1) Напишите программу, которая получает два целых числа A и
B и выводит квадраты всех натуральных чисел в интервале от A до B.
2) Дано натуральное число. Напишите программу, которая нахо
дит сумму его цифр.
3) Дан брусок длиной 20 метров. Напишите программу, которая посчитает, какое минимальное целое количество отрезков дли
ной 1,5 м и 2 м получится из данного бруска.
КОМПЬЮТЕРНЫЙ ПРАКТИКУМ:
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PY THON
20
5. Тема:
Сложные условия: and, or, not
В программировании важно уметь правильно выстраивать условия. Часто условия бывают сложными, т.е. состоят из нескольких составных условий, соединенных логическими операторами (связками) «И», «ИЛИ» и «НЕ». В
Python они записываются английскими словами «and», «or» и «not».
Логический оператор
and
(логическое умножение)
Сложное условие, где составные условия соединены связкой
and
, возвра- щает
True
, если все выражения равны
True
. Если же хоть одно из выраже- ний ложно, то всё условие является ложным:
x = 5
if
x < 10
and
x % 3 == 0:
(
'True'
)
else
:
(
'False'
)
Ответом здесь будет False, потому что, согласно второй части условия, за- данное число 5 не делится на 3 без остатка. Если бы мы записали выраже- ние так: x % 3 == 0
and
х < 10, то оно также вернуло бы False. Однако второе сравнение x < 10 не выполнялось бы интерпретатором, так как его незачем выполнять. Ведь первое выражение (x % 3 == 0) уже вернуло ложь, кото- рая, в случае оператора
and
, превращает всё выражение в ложь.
Логический оператор
or
(логическое сложение)
Возвращает True, если хотя бы одно из выражений равно True:
x = 5
if
x < 10
or
x % 3 == 0:
(
'True'
)
else
:
(
'False'
)
Ответом здесь будет True, потому что, согласно первой части условия, заданное число 5 меньше 10, хоть и не делится на 3 без остатка. Именно поэтому, если одно из выражений возвращает True, то второе выражение не оценивается, так как оператор
or
в любом случае возвратит True.
21
С ЛОЖНЫЕ УС ЛОВИЯ: AND, OR , NOT
Логический оператор
not
(логическое отрицание)
Унарный оператор
not
превращает истину в ложь, а ложь в истину. Унар- ный он потому, что применяется к одному выражению, стоящему после него, а не справа и слева от него, как в случае бинарных
and
и
or
Если в одном выражении одновременно используется несколько или даже все логические операторы, приоритет операций следующий:
1) отношения (<, >, <=, >=, ==, !=)
2) not («НЕ»)
3) and («И»)
4) or («ИЛИ»)
Для изменения порядка действий используют круглые скобки. Рассмотрим пример изменения порядка вычислений в случаях, когда возникают скобки:
ВОПРОСЫ И ЗАДАНИЯ:
1) C помощью оператора and составьте два сложных логических выражения, одно из которых дает истину, другое – ложь.
2) Аналогично выполните задачу 1, но уже с оператором or.
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PY THON
22
6. Тема:
Списки, кортежи и словари
Часто нам нужно держать много однообразных данных в одном файле, например, список учеников школы или номера телефонов в справочнике.
В Python такие наборы данных можно организовывать в списки, кортежи
и словари.
Список (list) – это структура, состоящая из элементов, расположенных в определенном порядке. Каждому элементу соответствует номер (или индекс), по которому к нему можно обратиться. Для создания списка в квадратных скобках ([]) через запятую перечисляются все его элементы.
Например, создадим список членов своей семьи:
>>> myfamily = ['father', 'mother', 'sister', 'brother']
В данном случае наш список будет храниться в переменной myfamily. Когда список создан, можно написать программу для работы с этим списком. К примеру, напишем приветствие для каждого из членов семьи, используя цикл:
Список может содержать разные типы объектов. В один и тот же список од- новременно можно включать строки, числа, объекты других типов данных:
objects = [1, 2.6,
'Hello'
,
True
]
Списки можно складывать, тогда новый список будет содержать элементы из обоих списков:
x = [1, 2, 3, 4]
y = [5, 6, 7, 8]
z = x + y
(z)
Результат:
[1, 2, 3, 4, 5, 6, 7, 8]
23
СПИСКИ, КОР ТЕ ЖИ И С ЛОВАРИ
Со списками можно делать много разных операций:
Кортеж (tuple), как и список, представляет собой последовательность эле- ментов. Однако хранящиеся в нем элементы нельзя изменять, добавлять или удалять. Для создания кортежа используются круглые скобки, в кото- рые помещаются его значения, разделенные запятыми:
user = ('Timur', 23, 1.10.1998)
(user)
В кортежах удобно хранить свойства объектов, например, имя, возраст, дату рождения. Если вдруг кортеж состоит из одного элемента, то после единственного элемента кортежа необходимо поставить запятую:
user = ('Tom',)
Словари (dictionary) – это структура данных, в которой каждый элемент вместо индекса имеет уникальный ключ. Элементы словаря можно изме- нять. Для создания словаря используются фигурные скобки ({}):
dictionary = {ключ1:значение1, ключ2:значение2, ...}
Создадим словарь под именем myschool:
myschool = {
'5 klass'
:
'Anara, Kanat, Pavel'
,
'6 klass'
:
'Chyngyz, Tina, Emil'
}
В этом словаре в качестве ключей используются названия классов, а в каче- стве значений – имена тех, кто учится в этих классах.
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PY THON
24
В словарь можно добавить значение, пометив его новым ключом:
myschool[
'7 klass'
] =
'Elena, Ainura, Dastan'
(myschool)
Результат:
{'5 klass': 'Anara, Kanat, Pavel', '6 klass': 'Chyngyz,
Tina, Emil', '7 klass':'Elena, Ainura, Dastan'}
Чтобы изменить значение элемента, нужно придать его ключу новое значе- ние:
myschool = {
'5 klass'
:
'Anara, Kanat, Pavel'
,
'6 klass'
:
'Chyngyz, Tina, Emil'
}
myschool[
'6 klass'
] =
'Matvei, Tina, Salima'
(myschool)
Результат:
{'5 klass':'Anara, Kanat, Pavel', '6 klass':'Matvei, Tina, Salima'}
Используя цикл
for
, можно вывести на экран только ключи словаря:
for
i
in
myschool:
(i)
Результат:
5 klass
6
klass
Или вывести только значения словаря:
for
i
in
myschool:
(myschool[i])
Результат:
Anara, Kanat, Pavel
Chyngyz, Tina, Emil
Создайте словарь «Рыбы», а его элементы разделите на 3 вида:
«речные», «озерные» и «морские рыбы». Выведите на экран снача
ла только ключи, а потом элементы словаря.
КОМПЬЮТЕРНЫЙ ПРАКТИКУМ:
25
ЦИК ЛИЧЕСКИЕ А ЛГОРИТМЫ
7. Тема:
Циклические алгоритмы
Доказано, что любой алгоритм может быть записан с помощью трех алгорит- мических конструкций: циклов, услов- ных операторов, линейных алгоритмов.
Как вы знаете, цикл – это многократное выполнение одинаковых действий.
В 7 классе мы уже начали изучать циклы while и for. Цикл for отличается от цикла while тем, что используется для повторения каких-то команд зара- нее известное количество раз. Цикл while, напротив, повторяет какое-то действие в тех случаях, когда мы не знаем, сколько повторений данной команды необходимо. При этом нам известно условие, до исполнения ко- торого требуется повторять цикл.
Рассмотрим применение цикла for более подробно. Запись цикла for в
Python осуществляется по схеме:
При старте цикла значение первого элемента диапазона будет присвое- но переменной, с которой будет выполнено обозначенное действие. При втором проходе переменной будет присвоено значение второго элемента диапазона. И так далее, пока со всеми элементами в диапазоне не будет проведено заданное действие. Рассмотрим пример, в котором переменной
1 2 3 4 5 6 7