Оператор ветвления
Оператор ветвления if позволяет выполнить определенный набор инструкций в зависимости от некоторого условия. Возможны следующие варианты использования.
После оператора if записывается выражение. Если это выражение истинно, то выполняются инструкции, определяемые данным оператором. Выражение является истинным, если его результатом является число не равное нулю, непустой объект, либо логическое True. После выражения нужно поставить двоеточие “:”.
ВАЖНО: блок кода, который необходимо выполнить, в случае истинности выражения, отделяется четырьмя пробелами слева!
if <Логическое выражение>:
<Блок, выполняемый, если условие истинно>
[elif < Логическое выражение >:
<Блок, выполняемый, если условие истинно>
]
[else:
<Блок, выполняемый, если все условия ложны>
]
Конструкция if – else
Бывают случаи, когда необходимо предусмотреть альтернативный вариант выполнения программы. Т.е. при истинном условии нужно выполнить один набор инструкций, при ложном – другой. Для этого используется конструкция if – else.
a = 3
if a > 2:
print("H")
else:
print("L")
Конструкция if – elif – else
Для реализации выбора из нескольких альтернатив можно использовать конструкцию if – elif – else.
a = int(input("введите число:"))
if a < 0:
print("Neg")
elif a == 0:
print("Zero")
else:
print("Pos")
Оператор цикла while
Оператор цикла while выполняет указанный набор инструкций до тех пор, пока условие цикла истинно. Истинность условия определяется также как и в операторе if. Синтаксис оператора while выглядит так.
a = 0
while a < 7:
print("A")
a += 1 #Буква “А” будет выведена семь раз в столбик.
Операторы break и continue
При работе с циклами используются операторы break и continue.
Оператор break предназначен для досрочного прерывания работы цикла while.
a = 0
while a >= 0:
if a == 7:
break
a += 1
print("A")
В приведенном выше коде, выход из цикла произойдет при достижении переменной a значения 7. Если бы не было этого условия, то цикл выполнялся бы бесконечно.
Оператор continue запускает цикл заново, при этом код, расположенный после данного оператора, не выполняется.
a = -1
while a < 10:
a += 1
if a >= 7:
continue
print("A")
При запуске данного кода символ “А” будет напечатан 7 раз, несмотря на то, что всего будет выполнено 11 проходов цикла.
Оператор цикла for
Оператор for выполняет указанный набор инструкций заданное количество раз, которое определяется количеством элементов в наборе.
for i in range(5):
print("Hello")
В результате “Hello” будет выведено пять раз.
Внутри тела цикла можно использовать операторы break и continue, принцип работы их точно такой же как и в операторе while.
Range может быть очень полезной, если вам нужно выполнить действие определенное количество раз.
range ([<начало>,] <конец> [, <шаг>])
>>> for i in range (1, 5, 2): print (i, end = ' ')
1 3
>>> for i in range (5, 1, -2): print (i, end = ' ')
5 3
Встроенная функция enumerate. Периодически требуется пройти по элементам списка и при этом обрабатывать не только значение элемента, но так же и его порядковый номер в списке. Вот в этом случае она и понадобится.
enumerate (<объект> [, start = 0])
arr = [1, 2, 3, 4, 5, 6]
>>> for i, elem in enumerate (arr):
if elem % 2 == 0:
arr[i] *= 2
>>> print (arr) [1, 4, 3, 8, 5, 12]
Оператор continue начинает следующий проход цикла, минуя оставшееся тело цикла (for или while)
for i in 'hello world':
... if i == 'o':
... continue
... print(i * 2, end='')
...
hheellll wwrrlldd
Оператор break досрочно прерывает цикл.
for i in 'hello world':
... if i == 'o':
... break
... print(i * 2, end='')
...
hheellll
Списки - последовательность элементов. Элементы могут быть разнотипны. Списки - изменяемые последовательности. Элементы в списках нумеруются, нумерация начинается с 0.
Создание пустого списка:
sp = list()
sp = []
Для списков работают инструменты общие для последовательностей:
операторы in, not in
s += s1 объединение последовательностей
s = s n, s = n s повторение последовательности s n раз
Создание списка с помощью метода split
Можно ввести последовательность элементов через разделитель и при использовании метода split получаем список из строк
s = input().split()
print(s)
w 2 r 333 kkgk
['w', '2', 'r', '333', 'kkgk']
Если вводится последовательность чисел через пробел, то для того чтобы получить список ИЗ ЧИСЕЛ нужно каждый элемент преобразовать в число с помощью int или float. Для этого удобно использовать генератор.
#введем последовательность чисел через ТОЧКУ
#и преобразуем их в список из чисел
s = [int(x) for x in input().split('.')]
#получаем список ИЗ ЧИСЕЛ
print(s)
Метод join применяется к строке, в качестве параметра ему передается список ИЗ СТРОК. Метод возвращает строку, состоящую из элементов списка, разделенных строкой, к которой применяется join
In [12]:
s = ['a', 'ab', 'aer', '123']
stroka1 = '.'.join(s) #stroka1: a.ab.aer.123
print('stroka1:', stroka1)
stroka2 = ''.join(s)
print('stroka2:', stroka2) #stroka2: aabaer123
stroka3 = '-=-'.join(s)
print('stroka3:', stroka3) # stroka3: a-=-ab-=-aer-=-123
Функции для работы со списками
len(s) - длина списка (количество элементов)
max(s) - максимальный элемент списка
min(s) - минимальный элемент списка
sum(s) - сумма элементов списка
bool(s) – возвращает True, если список не пустой
s = list(string1) – преобразует строку string1 в список, где каждый элемент - это символ строки string1
Методы для работы со списками
s.index(x) - номер первого вхождения элементв x в список s, в случае отсутствия x в s – ошибка
s.index(x, k) - номер первого вхождения элементв x в список s, начиная с позиции k, в случае отсутствия x в s – ошибка
s.count(x) - количество вхождений элементв x в список s
s.append(x) - добавление элементв x в список s
s.extend(s1) - добавление элементов списка s1 в список s
s.insert(n, x) - вставить в список s нв позицию с номером n элемент x
x = s.pop(n) – получить n-й элемент списка, удалив его
s.remove(x) - удалить из s первое вхождение x, в случае отсутствия x в s – ошибка
s.reverse() - развернуть список в обратном порядке
s.sort() – отсортировать список s по возрастванию элементов
s.sort(reverse=True) – отсортировать по убыванию элементов
s.copy() - возвращает копию списка s
Кортеж состоит из набора значений, разделенных запятой, например:
t = 1, 2, 3
print(t) #(1, 2, 3)
При выводе кортежи всегда заключаются в круглые скобки, для того, чтобы вложенные кортежи воспринимались корректно.
t = () # Создание пустого кортежа - пустые круглые скобки
t1 = tuple()
Скобки нужны, чтобы определить элемент как кортеж из одного элемента
s = (1,) # Создание кортежа из одного элемента - элемент в круглых скобках
t = (1, (2, 3, 4), 5) #Можно создавать вложенные кортежи
#Обращаемся к элементам кортежа по номеру
print(t[0]) #1
print(t[1]) #(2, 3, 4)
К кортежам можно применять операции и функции, общие для последовательностей
print("Длина кортежа", len(t)) #Длина кортежа 3
print("Есть ли в кортеже 1:", 1 in t) #Есть ли в кортеже 1: True
print("Номер элемента 1:", t.index(1)) #Номер элемента 1: 0
print("Срез", t[::2]) #Срез (1, 5)
НЕЛЬЗЯ ИЗМЕНИТЬ КОРТЕЖ, можно создать новый
#Добавление элемента в кортеж
print(t)
t = t + ("new element",)
print(t)
(1, (2, 3, 4), 5)
(1, (2, 3, 4), 5, 'new element')
Это неупорядоченные наборы простых объектов. Они необходимы тогда, когда присутствие объекта в наборе важнее порядка или того, сколько раз данный объект там встречается.
s = set() #Создание пустого множества s = {1, 3, 4} #Создание множества из элементов
#Добавление элемента в множество
s.add(10)
s.add(0)
s.add(7)
print(s)#элементы в множество помещаются в произвольном порядке
{0, 1, 3, 4, 7, 10}
Если функции set передать в качестве параметра список, строку или кортеж, то она вернёт множество, составленное из элементов списка, строки, кортежа. Например:
s = set("qwerty")
print(s)
{'r', 'w', 't', 'e', 'q', 'y'}
print("Количество элементов в множестве:", len(s)) # Количество элементов в множестве: 6
print("Наличие элемента 1 в множестве:", 1 in s) # Наличие элемента 1 в множестве: False
МЕТОДЫ И ОПЕРАЦИИ С МНОЖЕСТВАМИ:
Пусть A, B - множества.
A.isdisjoint(B) = истина, если A и B не имеют общих элементов.
A == B - True, если все элементы A принадлежат B, все элементы B принадлежат A.
A.copy() - копия множества A
A.add(elem) - добавляет элемент в множество.
A.remove(elem) - удаляет элемент из множества. Возникает ошибка KeyError, если такого элемента elem не существует в множестве А.
A.discard(elem) - удаляет элемент, если он находится в множестве.
A.pop() - удаляет первый элемент из множества. Так как множества не упорядочены, нельзя точно сказать, какой элемент будет первым.
Некоторые действия можно записать двумя способами: с помощью методов, применяемых к множествам и с помощью операций.
A.issubset(B) или A <= B - все элементы А принадлежат B.
A.issuperset(B) или A >= B - все элементы В принадлежат А.
A.union(B, ...) или A | B | ... - объединение нескольких множеств А, B, ... Объединением называется множество из элементов, которые принадлежат одному из множеств.
A.intersection(B, ...) или A & B & ... - пересечение множеств А, B, ... Пересечением множеств называется множество элементов, которые принадлежат всем множествам.
A.difference(B, ...) или A - B - ... - разность множеств. Разностью называется множество из всех элементов A, которые не принадлежат множествам B, ... .
A.symmetric_difference(B); A ^ B- симметрическая разность - это множество из элементов, встречающихся в одном множестве, но не встречающиеся в обоих.