|  |  | ---
 | 
						
						
						
							|  |  | title: Учебник Python v 1.3
 | 
						
						
						
							|  |  | excerpt: Дополнительные задачи соедней сложности 
 | 
						
						
						
							|  |  | date: '2023-10-17'
 | 
						
						
						
							|  |  | tags:
 | 
						
						
						
							|  |  |   - Информатика
 | 
						
						
						
							|  |  |   - Программирование
 | 
						
						
						
							|  |  |   - Python
 | 
						
						
						
							|  |  |   - Задачи
 | 
						
						
						
							|  |  | ---
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | - [1. Ввод и вывод данных в Python](#1-ввод-и-вывод-данных-в-python)
 | 
						
						
						
							|  |  | - [2. Операторы в Python](#2-операторы-в-python)
 | 
						
						
						
							|  |  | - [3. Условный оператор в Python](#3-условный-оператор-в-python)
 | 
						
						
						
							|  |  | - [4. Цикл for в Python](#4-цикл-for-в-python)
 | 
						
						
						
							|  |  | - [5. Цикл while в Python](#5-цикл-while-в-python)
 | 
						
						
						
							|  |  | - [6. Списки в Python](#6-списки-в-python)
 | 
						
						
						
							|  |  | - [7. Методы работы со списками в Python](#7-методы-работы-со-списками-в-python)
 | 
						
						
						
							|  |  | - [8. Функции в python](#8-функции-в-python)
 | 
						
						
						
							|  |  | - [9. Словари в python](#9-словари-в-python)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | </TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## 1. Ввод и вывод данных в Python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Переменная - это именованный контейнер для заданного значения.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Пример создания переменных
 | 
						
						
						
							|  |  | age = 19
 | 
						
						
						
							|  |  | name = 'Ivan'
 | 
						
						
						
							|  |  | isActive = True
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | name = 'Petr'
 | 
						
						
						
							|  |  | Name = 'Ivan'
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # name и Name - это разные переменные
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Имена переменных не могут начинаться с цифры!
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | В Python есть 4 примитивных типа данных:
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # int (целые числа)
 | 
						
						
						
							|  |  | age = 18
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # float (дробные числа)
 | 
						
						
						
							|  |  | fraction = 2.5
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # str (строки)
 | 
						
						
						
							|  |  | fruit = 'apple'
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # bool (правда или ложь)
 | 
						
						
						
							|  |  | isReady = True # всего два значения: True и False
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Мы можем преобразовывать один тип данных в другой с помощью одноименных функций. Например, число может стать строкой, строка - числом, дробное число - целым.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | age = '22' # str -> '22'
 | 
						
						
						
							|  |  | age = int(age) # int -> 22
 | 
						
						
						
							|  |  | age = float(age) # float -> 22.0
 | 
						
						
						
							|  |  | age = bool(age) # bool -> True
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Функция print() выводит данные на экран.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | name = 'Alexey'
 | 
						
						
						
							|  |  | # В скобках записываются переданные в функцию параметры
 | 
						
						
						
							|  |  | print(name)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> Alexey
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Функция print() может принимать несколько входных параметров.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(1, 2, 3)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> 1 2 3
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Каждый print() выводит данные на новой строке. По умолчанию завершающий символ строки равен символу новой строки (\n).
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print('Hello')
 | 
						
						
						
							|  |  | print('world')
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> Hello
 | 
						
						
						
							|  |  | >> world
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Завершающий символ строки в функции print() можно изменять.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print('Hello', end=' ')
 | 
						
						
						
							|  |  | print('world')
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> Hello world
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Функция input() принимает пользовательский ввод данных.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | name = input()
 | 
						
						
						
							|  |  | print('Hello ' + name)
 | 
						
						
						
							|  |  | # После запуска скрипта Python будет ожидать ввода данных
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Функция input может принимать всего лишь один аргумент - строку, которая выведется перед входной строкой.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | name = input('Enter your name: ')
 | 
						
						
						
							|  |  | print('Hello, ' + name)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Данные, полученные с помощью функции input(), имеют строковый тип данных (str).
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Строки можно складывать друг с другом, такое сложение называется их конкатенацией или объединением.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Сумма двух строчных чисел
 | 
						
						
						
							|  |  | number1 = input('Введите число: ')
 | 
						
						
						
							|  |  | number2 = input('Введите число: ')
 | 
						
						
						
							|  |  | print(number1 + number2)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 12
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Преобразуем строковый тип в целое число (str -> int).
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Исправленная сумма двух чисел
 | 
						
						
						
							|  |  | number1 = int(input('Введите число: '))
 | 
						
						
						
							|  |  | number2 = int(input('Введите число: '))
 | 
						
						
						
							|  |  | print(number1 + number2)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## Примеры
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 1. Произведение
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Произведение двух введенных чисел
 | 
						
						
						
							|  |  | a = int(input('Введите число: '))
 | 
						
						
						
							|  |  | b = int(input('Введите число: '))
 | 
						
						
						
							|  |  | print(a * b)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 12
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 2. Приветствие
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Приветствие пользователя по его имени
 | 
						
						
						
							|  |  | firstname = input('Введите свое имя: ') # здесь приводить к типу int не нужно
 | 
						
						
						
							|  |  | lastname = input('Введите свою фамилию: ')
 | 
						
						
						
							|  |  | print('Здравствуйте, ' + firstname + ' ' + lastname) # не забудьте про пробел между словами
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> Иван
 | 
						
						
						
							|  |  | >> Иванов
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Здравствуйте, Иван Иванов
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 3. Остаток
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Операция % позволяет получить остаток от деления
 | 
						
						
						
							|  |  | print(10 % 2) # 0, так как 10 делится на 2 нацело
 | 
						
						
						
							|  |  | print(10 % 3) # 1, остаток равен 1
 | 
						
						
						
							|  |  | print(10 % 4) # 2, остаток равен 2
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 4. Деление нацело
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Операция // позволяет получить целую часть от деления
 | 
						
						
						
							|  |  | print(10 // 2) # 5
 | 
						
						
						
							|  |  | print(10 // 3) # 3
 | 
						
						
						
							|  |  | print(10 // 4) # 2
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## Решение задач
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 1. Сумма трех
 | 
						
						
						
							|  |  | Посчитайте сумму трех введенных целых чисел
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 2. Площадь
 | 
						
						
						
							|  |  | Пользователь вводит стороны прямоугольника, выведите его площадь
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 3. Периметр
 | 
						
						
						
							|  |  | Пользователь вводит стороны прямоугольника, выведите его периметр
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 4. Площадь круга
 | 
						
						
						
							|  |  | Пользователь вводит радиус круга, выведите площадь круга
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 12.56
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 5. Сумма дробных
 | 
						
						
						
							|  |  | Посчитайте сумму трех введенных дробных чисел.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1.5
 | 
						
						
						
							|  |  | >> 2.5
 | 
						
						
						
							|  |  | >> 1.1
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 5.1
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 6. Школьники и яблоки
 | 
						
						
						
							|  |  | n школьников делят k яблок поровну, неделящийся остаток остается в корзинке. Сколько яблок достанется каждому школьнику? Сколько яблок останется в корзинке?
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 3 # каждому
 | 
						
						
						
							|  |  | >> 1 # останется
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | - [1. Ввод и вывод данных в Python](#1-ввод-и-вывод-данных-в-python)
 | 
						
						
						
							|  |  | - [2. Операторы в Python](#2-операторы-в-python)
 | 
						
						
						
							|  |  | - [3. Условный оператор в Python](#3-условный-оператор-в-python)
 | 
						
						
						
							|  |  | - [4. Цикл for в Python](#4-цикл-for-в-python)
 | 
						
						
						
							|  |  | - [5. Цикл while в Python](#5-цикл-while-в-python)
 | 
						
						
						
							|  |  | - [6. Списки в Python](#6-списки-в-python)
 | 
						
						
						
							|  |  | - [7. Методы работы со списками в Python](#7-методы-работы-со-списками-в-python)
 | 
						
						
						
							|  |  | - [8. Функции в python](#8-функции-в-python)
 | 
						
						
						
							|  |  | - [9. Словари в python](#9-словари-в-python)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | </TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## 2. Операторы в Python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | В языке программирования Python есть арифметические, логические и операторы сравнения.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Сложение:
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Cложение
 | 
						
						
						
							|  |  | print(10 + 30)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> 40
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Вычитание:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вычитание
 | 
						
						
						
							|  |  | print(30 - 20)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Умножение:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Умножение
 | 
						
						
						
							|  |  | print(2 * 9)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> 18
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Деление:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Деление
 | 
						
						
						
							|  |  | print(100 / 25)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Кроме всем знакомой четверки есть и несколько экзотических операторов: взятие остатка от деления, деление нацело, возведение в степень.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Взятие остатка от деления:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Взятие остатка от деления на 2
 | 
						
						
						
							|  |  | print(0 % 2)
 | 
						
						
						
							|  |  | print(1 % 2)
 | 
						
						
						
							|  |  | print(2 % 2)
 | 
						
						
						
							|  |  | print(3 % 2)
 | 
						
						
						
							|  |  | print(4 % 2)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> 0 # 0 % 2
 | 
						
						
						
							|  |  | >> 1 # 1 % 2
 | 
						
						
						
							|  |  | >> 0 # 2 % 2
 | 
						
						
						
							|  |  | >> 1 # 3 % 2
 | 
						
						
						
							|  |  | >> 0 # 4 % 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Взятие остатка от деления на 3
 | 
						
						
						
							|  |  | print(0 % 3)
 | 
						
						
						
							|  |  | print(1 % 3)
 | 
						
						
						
							|  |  | print(2 % 3)
 | 
						
						
						
							|  |  | print(3 % 3)
 | 
						
						
						
							|  |  | print(4 % 3)
 | 
						
						
						
							|  |  | print(5 % 3)
 | 
						
						
						
							|  |  | print(6 % 3)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> 0 # 0 % 3
 | 
						
						
						
							|  |  | >> 1 # 1 % 3
 | 
						
						
						
							|  |  | >> 2 # 2 % 3
 | 
						
						
						
							|  |  | >> 0 # 3 % 3
 | 
						
						
						
							|  |  | >> 1 # 4 % 3
 | 
						
						
						
							|  |  | >> 2 # 5 % 3
 | 
						
						
						
							|  |  | >> 0 # 6 % 3
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Деление нацело:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Деление нацело на 10
 | 
						
						
						
							|  |  | print(91 // 10)
 | 
						
						
						
							|  |  | print(85 // 10)
 | 
						
						
						
							|  |  | print(16 // 10)
 | 
						
						
						
							|  |  | print(8 // 10)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> 9 # 91 // 10
 | 
						
						
						
							|  |  | >> 8 # 85 // 10
 | 
						
						
						
							|  |  | >> 1 # 16 // 10
 | 
						
						
						
							|  |  | >> 0 # 8 // 10
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Деление нацело на 2
 | 
						
						
						
							|  |  | print(14 // 2)
 | 
						
						
						
							|  |  | print(15 // 2)
 | 
						
						
						
							|  |  | print(7 // 2)
 | 
						
						
						
							|  |  | print(6 // 2)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> 7 # 14 // 2
 | 
						
						
						
							|  |  | >> 7 # 15 // 2
 | 
						
						
						
							|  |  | >> 3 # 7 // 2
 | 
						
						
						
							|  |  | >> 3 # 6 // 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Возведение в степень:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Возведение в степень числа 2
 | 
						
						
						
							|  |  | print(2 ** 0) # 1
 | 
						
						
						
							|  |  | print(2 ** 1) # 2
 | 
						
						
						
							|  |  | print(2 ** 2) # 2 * 2
 | 
						
						
						
							|  |  | print(2 ** 3) # 2 * 2 * 2
 | 
						
						
						
							|  |  | print(2 ** 4) # 2 * 2 * 2 * 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | >> 8
 | 
						
						
						
							|  |  | >> 16
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Операторы сравнения (╮°-°)╮ могут возвращать всего два результата: True и False.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Оператор равенства == возвращает True, если числа равны, и False в противном случае.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | a = 10
 | 
						
						
						
							|  |  | b = 10
 | 
						
						
						
							|  |  | print(a == b)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | a = 8
 | 
						
						
						
							|  |  | b = 7
 | 
						
						
						
							|  |  | print(a == b)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> False
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Оператор неравенства != возвращает True, если числа не равны, и False в противном случае.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | a = 8
 | 
						
						
						
							|  |  | b = 7
 | 
						
						
						
							|  |  | print(a != b)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Оператор больше > возвращает True, если первое число больше второго, и False в противном случае.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | a = 8
 | 
						
						
						
							|  |  | b = 7
 | 
						
						
						
							|  |  | print(a > b)
 | 
						
						
						
							|  |  | print(b > a)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> True # a > b
 | 
						
						
						
							|  |  | >> False # b > a
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Оператор меньше < возвращает True, если первое число меньше второго, и False в противном случае.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | c = 100
 | 
						
						
						
							|  |  | d = 200
 | 
						
						
						
							|  |  | print(c < d)
 | 
						
						
						
							|  |  | print(d < c)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> True # c < d
 | 
						
						
						
							|  |  | >> False # d < c
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Оператор меньше или равно <= возвращает True, если первое число меньше второго или равно ему, и False в противном случае.
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Оператор больше или равно >= возвращает True, если первое число больше второго или равно ему, и False в противном случае.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | c = 200
 | 
						
						
						
							|  |  | d = 200
 | 
						
						
						
							|  |  | print(c >= d)
 | 
						
						
						
							|  |  | print(d <= c)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> True # c >= d
 | 
						
						
						
							|  |  | >> True # d <= c
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Иногда требуются выполнение нескольких операторов сравнения сразу. Для таких целей существует оператор and (оператор логического умножения, конъюнкция).
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | print(10 > 0 and 5 > 0)
 | 
						
						
						
							|  |  | print(10 % 2 == 0 and 12 % 2 == 0) # оба числа четные
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Если хотя бы один из операторов равен False, то результат оператора будет равен False. Конъюкция истинна в том случае, когда все условия истинны.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | print(10 > 100 and 5 > 0 and 10 > 0) # False
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> False
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Логическое сложение (дизъюнкция) или оператор or требует выполнения ХОТЯ БЫ одного условия.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | print(10 > 100 or 5 > 100 or 10 > 0) # True
 | 
						
						
						
							|  |  | print(1 == 0 or 2 == 0) # False, оба условия ложны
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | >> False
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Последний из операторов - это оператор инверсии not. Оператор not изменяет (инвертирует) значение на противоположное.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | print(not False) # True
 | 
						
						
						
							|  |  | print(not True) # False
 | 
						
						
						
							|  |  | print(not 2 == 0) # True
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | >> False
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Оператор not выполняется в приоритете.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | print(not 1 == 0 or 2 == 0) # True, значение первого условия инвертировано
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Решение задач
 | 
						
						
						
							|  |  | 1. Одинаковая четность
 | 
						
						
						
							|  |  | Даны два целых числа: A, B. Проверить истинность высказывания: "Числа A и B имеют одинаковую четность".
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> False
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 2. Одно положительное
 | 
						
						
						
							|  |  | Даны три целых числа: A, B, C. Проверить истинность высказывания: "Хотя бы одно из чисел A, B, C положительное".
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | >> -1
 | 
						
						
						
							|  |  | >> -10
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> False
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> -1
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 3. Последняя цифра
 | 
						
						
						
							|  |  | Дано натуральное число. Выведите его последнюю цифру.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 2345678
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 8
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 19
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 9
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 4. Цифры двузначного
 | 
						
						
						
							|  |  | Дано двузначное число. Найдите сумму его цифр.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 22
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 99
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 18
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 5. Цифры трехзначного
 | 
						
						
						
							|  |  | Дано трехзначное число. Найдите сумму его цифр.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >>123
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 6
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 332
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 8
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 6. Разные цифры
 | 
						
						
						
							|  |  | Дано трехзначное число. Проверить истинность высказывания: "Все цифры данного числа различны".
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 123
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 332
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> False
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 7. Часы (финальный босс)
 | 
						
						
						
							|  |  | С начала суток прошло N секунд (N - целое). Найти количество часов, минут и секунд на электронных часах.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1000
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 0 16 40
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 10000
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 2 46 40
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 85001
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 23 36 41
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | - [1. Ввод и вывод данных в Python](#1-ввод-и-вывод-данных-в-python)
 | 
						
						
						
							|  |  | - [2. Операторы в Python](#2-операторы-в-python)
 | 
						
						
						
							|  |  | - [3. Условный оператор в Python](#3-условный-оператор-в-python)
 | 
						
						
						
							|  |  | - [4. Цикл for в Python](#4-цикл-for-в-python)
 | 
						
						
						
							|  |  | - [5. Цикл while в Python](#5-цикл-while-в-python)
 | 
						
						
						
							|  |  | - [6. Списки в Python](#6-списки-в-python)
 | 
						
						
						
							|  |  | - [7. Методы работы со списками в Python](#7-методы-работы-со-списками-в-python)
 | 
						
						
						
							|  |  | - [8. Функции в python](#8-функции-в-python)
 | 
						
						
						
							|  |  | - [9. Словари в python](#9-словари-в-python)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | </TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## 3. Условный оператор в Python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Условный оператор выполняет некоторое действие, если указанное условие истинно (равно True).
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Обратите внимание на отступ в четыре (4!) пробела
 | 
						
						
						
							|  |  | # или одну табуляцию (кнопочка TAB)
 | 
						
						
						
							|  |  | if True: # Обязательное двоеточие перед блоком кода
 | 
						
						
						
							|  |  |     print('Условие истинно, поэтому я напечатаюсь')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> Условие истинно, поэтому я напечатаюсь
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | В условии любой тип данных неявно приводится к bool. Пустая строка и ноль равны False.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | print(bool(1)) # -> True
 | 
						
						
						
							|  |  | print(bool(0)) # -> False
 | 
						
						
						
							|  |  | print(bool(10.2)) # -> True
 | 
						
						
						
							|  |  | print(bool('')) # -> False
 | 
						
						
						
							|  |  | print(bool('Hello')) # -> True
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Если условие ложно, то код, находящийся под оператором if не выполнится.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | if 0: # Обязательное двоеточие перед блоком кода
 | 
						
						
						
							|  |  |     print('Я никогда не напечатаюсь :(')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Если условие в if ложно, то выполнится оператор под оператором else.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | if 0:
 | 
						
						
						
							|  |  |     print('Я никогда не напечатаюсь :(')
 | 
						
						
						
							|  |  | else:
 | 
						
						
						
							|  |  |     print('Оператор else вступает в игру')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> Оператор else вступает в игру
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Иногда двух вариантов недостаточно, для этого существует оператор elif, а для все остального есть...
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | age = int(input())
 | 
						
						
						
							|  |  | if age < 10:
 | 
						
						
						
							|  |  |     print('Ваш возраст - это одна цифра :)')
 | 
						
						
						
							|  |  | elif age < 15:
 | 
						
						
						
							|  |  |     print('Удачи с геометрией :):):)')
 | 
						
						
						
							|  |  | else:
 | 
						
						
						
							|  |  |     print('Совсем взрослый уже :(')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Если условие в операторе if ложно, то интерпретатор проверяет истинность условия операторов elif, всех по очереди. Если все условия ложны, то выполнится оператор else.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Примеры
 | 
						
						
						
							|  |  | 1. Четное-нечетное
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Выведите строку 'четное', если введенное число четно, и строку 'нечетное', если число нечетно.
 | 
						
						
						
							|  |  | a = int(input())
 | 
						
						
						
							|  |  | if a % 2 == 0:
 | 
						
						
						
							|  |  |     print('четное')
 | 
						
						
						
							|  |  | else:
 | 
						
						
						
							|  |  |     print('нечетное')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> четное
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод
 | 
						
						
						
							|  |  | >> 11
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> нечетное
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 2. Много elif'ов
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Если в вашем коде больше трех elif значит что-то не так и стоит придумать новый алгоритм.
 | 
						
						
						
							|  |  | # Это сугубо академический пример, так писать не стоит.
 | 
						
						
						
							|  |  | a = int(input('Введите число от одного до 1 до 100'))
 | 
						
						
						
							|  |  | if a < 10:
 | 
						
						
						
							|  |  |     print('Ваше число меньше 10')
 | 
						
						
						
							|  |  | elif a < 20:
 | 
						
						
						
							|  |  |     print('Ваше число меньше двадцатки')
 | 
						
						
						
							|  |  | elif a < 30:
 | 
						
						
						
							|  |  |     print('30 - это потолок')
 | 
						
						
						
							|  |  | elif a < 40:
 | 
						
						
						
							|  |  |     print('Ваше число меньше 40')
 | 
						
						
						
							|  |  | elif a < 50:
 | 
						
						
						
							|  |  |     print('Много, но не больше полтинника')
 | 
						
						
						
							|  |  | elif a < 60:
 | 
						
						
						
							|  |  |     print('Число меньше, чем шесть*десять')
 | 
						
						
						
							|  |  | elif a < 70:
 | 
						
						
						
							|  |  |     print('Ваше число расположено в восьмом десятке')
 | 
						
						
						
							|  |  | elif a < 80:
 | 
						
						
						
							|  |  |     print('Ваше число меньше 80')
 | 
						
						
						
							|  |  | elif a < 90:
 | 
						
						
						
							|  |  |     print('Ваше число находится в 9 десятке')
 | 
						
						
						
							|  |  | elif a < 100:
 | 
						
						
						
							|  |  |     print('Сотня больше вашего числа')
 | 
						
						
						
							|  |  | else:
 | 
						
						
						
							|  |  |     print('Хитро, но меня не обманешь, число слишком большое')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод
 | 
						
						
						
							|  |  | >> 11
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> Ваше число меньше двадцатки
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод
 | 
						
						
						
							|  |  | >> 91
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> Сотня больше вашего числа
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод
 | 
						
						
						
							|  |  | >> 58
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >> Число меньше, чем шесть*десять
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 3. Белая или черная
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Пользователь вводит два числа: координаты шахматной клетки.
 | 
						
						
						
							|  |  | # Выведите YES, если клетка белая, и NO, если - черная.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | x = int(input('Введите координату x: '))
 | 
						
						
						
							|  |  | y = int(input('Введите координату y: '))
 | 
						
						
						
							|  |  | # Идея такая: если четность координат совпадает,
 | 
						
						
						
							|  |  | # то это черная клетка, а если - нет, то белая.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | if (x + y) % 2 == 1:
 | 
						
						
						
							|  |  |     print('YES')
 | 
						
						
						
							|  |  | else:
 | 
						
						
						
							|  |  |     print('NO')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> NO
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> NO
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 4. Белая или черная (случайные координаты)
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Та же задача, но со случайными числами.
 | 
						
						
						
							|  |  | # Координаты шахматной клетки выбираются случайным образом
 | 
						
						
						
							|  |  | # Выведите YES, если клетка белая, и NO, если - черная.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | from random import randint # импортирование функции randint
 | 
						
						
						
							|  |  | x = randint(1,8) # функция randint вернет случайное число от 1 до 8
 | 
						
						
						
							|  |  | y = randint(1,8)
 | 
						
						
						
							|  |  | print(x, y) # вывод пары случайных чисел
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | if (x + y) % 2 == 1:
 | 
						
						
						
							|  |  |     print('YES')
 | 
						
						
						
							|  |  | else:
 | 
						
						
						
							|  |  |     print('NO')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Решение задач
 | 
						
						
						
							|  |  | 1. Меньшее из двух
 | 
						
						
						
							|  |  | Пользователь вводит два целых числа. Выведите меньшее из них.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 2. Четырехзначное?
 | 
						
						
						
							|  |  | Пользователь вводит целое число. Выведите YES, если это число является четырехзначным, и NO в противном случае.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 3. Треугольник?
 | 
						
						
						
							|  |  | Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей. Дано a, b, c - стороны предполагаемого треугольника. Требуется сравнить длину каждого отрезка-стороны с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> YES
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> NO
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 4. Время суток
 | 
						
						
						
							|  |  | Пользователь вводит время в часах. Если введенное число находится между 5 и 11 часами включительно, выведите строку 'Утро'. Если число лежит в диапазоне от 12 до 17 часов включительно, выведите строку 'День'. Если число находится между 18 и 22, то выведите 'Вечер'. В случае поздней ночи (от 23 до 4 включительно) выведите 'Ночь'. В остальных случаях выведите строку 'Ошибка'.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Ночь
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 6
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Утро
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 13
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> День
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 2020
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Ошибка
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 5. День недели
 | 
						
						
						
							|  |  | Пользователь вводит номер дня недели. Выведите строку 'Выходные', если введенное число равно 6 или 7. В случае, если число лежит в диапазоне от 1 до 5 включительно, выведите строку 'Будни'.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Будни
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 6
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Выходные
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 6. Описание числа
 | 
						
						
						
							|  |  | Пользователь вводит целое число. Выведите его строку-описание вида "отрицательное четное число", "ноль", "положительное нечетное число", например, численным описанием числа 190 является строка "положительное четное число".
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> положительное нечетное число
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 06
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> отрицательное четное число
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> ноль
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> положительное четное число
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 7. Конь (финальный босс)
 | 
						
						
						
							|  |  | Шахматный конь ходит буквой "Г" - на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом. В случае, если хотя бы одно из введенных чисел не лежит в диапазоне от 1 до 8, выведите строку "Ошибка!".
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1 # координата x1
 | 
						
						
						
							|  |  | >> 1 # координата y1
 | 
						
						
						
							|  |  | >> 2 # координата x2
 | 
						
						
						
							|  |  | >> 2 # координата y2
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> NO
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1 # координата x1
 | 
						
						
						
							|  |  | >> 1 # координата y1
 | 
						
						
						
							|  |  | >> 3 # координата x2
 | 
						
						
						
							|  |  | >> 2 # координата y2
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> YES
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 3 # координата x1
 | 
						
						
						
							|  |  | >> 8 # координата y1
 | 
						
						
						
							|  |  | >> 2 # координата x2
 | 
						
						
						
							|  |  | >> 6 # координата y2
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> YES
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 3 # координата x1
 | 
						
						
						
							|  |  | >> 4 # координата y1
 | 
						
						
						
							|  |  | >> 5 # координата x2
 | 
						
						
						
							|  |  | >> 6 # координата y2
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> YES
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | - [1. Ввод и вывод данных в Python](#1-ввод-и-вывод-данных-в-python)
 | 
						
						
						
							|  |  | - [2. Операторы в Python](#2-операторы-в-python)
 | 
						
						
						
							|  |  | - [3. Условный оператор в Python](#3-условный-оператор-в-python)
 | 
						
						
						
							|  |  | - [4. Цикл for в Python](#4-цикл-for-в-python)
 | 
						
						
						
							|  |  | - [5. Цикл while в Python](#5-цикл-while-в-python)
 | 
						
						
						
							|  |  | - [6. Списки в Python](#6-списки-в-python)
 | 
						
						
						
							|  |  | - [7. Методы работы со списками в Python](#7-методы-работы-со-списками-в-python)
 | 
						
						
						
							|  |  | - [8. Функции в python](#8-функции-в-python)
 | 
						
						
						
							|  |  | - [9. Словари в python](#9-словари-в-python)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | </TableOfContents>
 | 
						
						
						
							|  |  | ## 4. Цикл for в Python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Цикл в любом языке программирования - это многократное выполнение одного и то же действия.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | В Python все немного не так. Здесь цикл for - это цикл перебора последовательности. Он состоит из двух компонент: переменной (переменных) цикла и последовательности. Приведу пример:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | for item in 'one', 'two', 'three':
 | 
						
						
						
							|  |  |     print(item)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | В приведенном выше примере переменная цикла item по очереди принимает каждое значение последовательности, которая записана после служебного слова in. На первом повторении переменная item равна строке 'one', на втором - строке 'two', на третьем - строке 'three'.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> one
 | 
						
						
						
							|  |  | >> two
 | 
						
						
						
							|  |  | >> three
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Еще несколько примеров:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | for element in '1', 'hello', 2, 1990, True, False:
 | 
						
						
						
							|  |  |     print(element)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> hello
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 1990
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | >> False
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | for letter in 'Hello world':
 | 
						
						
						
							|  |  |     print(letter)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >> H
 | 
						
						
						
							|  |  | >> e
 | 
						
						
						
							|  |  | >> l
 | 
						
						
						
							|  |  | >> l
 | 
						
						
						
							|  |  | >> o
 | 
						
						
						
							|  |  | >>
 | 
						
						
						
							|  |  | >> w
 | 
						
						
						
							|  |  | >> o
 | 
						
						
						
							|  |  | >> r
 | 
						
						
						
							|  |  | >> l
 | 
						
						
						
							|  |  | >> d
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Функция range()
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Функция range() возвращает диапазон (последовательность) целых чисел. range() может принимать 1, 2 или 3 аргумента.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Примеры функции range() с одним аргументом:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # range() с одним аргументом
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print('range(3) -> 0, 1, 2')
 | 
						
						
						
							|  |  | for x in range(3): # range(3) -> 0, 1, 2
 | 
						
						
						
							|  |  |     print(x)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print('range(5) -> 0, 1, 2, 3, 4')
 | 
						
						
						
							|  |  | for x in range(5): # range(5) -> 0, 1, 2, 3, 4
 | 
						
						
						
							|  |  |     print(x)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # range(1) -> 0
 | 
						
						
						
							|  |  | # range(6) -> 0, 1, 2, 3, 4, 5
 | 
						
						
						
							|  |  | # range(10) -> 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> range(3) -> 0, 1, 2
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> range(5) -> 0, 1, 2, 3, 4
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Примеры функции range() с двумя аргументами:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | print('range(3, 5) -> 3, 4')
 | 
						
						
						
							|  |  | for x in range(3, 5): # range(3, 5) -> 3, 4
 | 
						
						
						
							|  |  |     print(x)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print('range(1, 5) -> 1, 2, 3, 4')
 | 
						
						
						
							|  |  | for x in range(1, 5): # range(1, 5) -> 1, 2, 3, 4
 | 
						
						
						
							|  |  |     print(x)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # range(2, 7) -> 2, 3, 4, 5, 6
 | 
						
						
						
							|  |  | # range(100, 105) -> 100, 101, 102, 103, 104
 | 
						
						
						
							|  |  | # range(50, 53) -> 50, 51, 52
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> range(3, 5) -> 3, 4
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | >> range(1, 5) -> 1, 2, 3, 4
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Примеры функции range() с тремя аргументами:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | print('range(0, 10, 2) -> 0, 2, 4, 6, 8')
 | 
						
						
						
							|  |  | for x in range(0, 10, 2): # range(0, 10, 2) -> 0, 2, 4, 6, 8
 | 
						
						
						
							|  |  |     print(x)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print('range(1, 10, 2) -> 1, 3, 5, 7, 9')
 | 
						
						
						
							|  |  | for x in range(1, 10, 2): # range(1, 10, 2) -> 1, 3, 5, 7, 9
 | 
						
						
						
							|  |  |     print(x)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print('range(10, 20, 3) -> 10, 13, 16, 19')
 | 
						
						
						
							|  |  | for x in range(10, 20, 3): # range(10, 20, 3) -> 10, 13, 16, 19
 | 
						
						
						
							|  |  |     print(x)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # range(2, 7, 5) -> 2
 | 
						
						
						
							|  |  | # range(1, 8, 4) -> 1, 5
 | 
						
						
						
							|  |  | # range(4, 20, 5) -> 4, 9, 14, 19
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >> range(0, 10, 2) -> 0, 2, 4, 6, 8
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | >> 6
 | 
						
						
						
							|  |  | >> 8
 | 
						
						
						
							|  |  | >> range(1, 10, 2) -> 1, 3, 5, 7, 9
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | >> 7
 | 
						
						
						
							|  |  | >> 9
 | 
						
						
						
							|  |  | >> range(10, 20, 3) -> 10, 13, 16, 19
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | >> 13
 | 
						
						
						
							|  |  | >> 16
 | 
						
						
						
							|  |  | >> 19
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Решение задач
 | 
						
						
						
							|  |  | 1. Вывод чисел от 0 до N
 | 
						
						
						
							|  |  | Пользователь вводит число N. Выведите все числа от 0 до N включительно.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 2. Вывод чисел от K до N
 | 
						
						
						
							|  |  | Пользователь вводит числа K и N. Выведите все числа от K до N включительно.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 7
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | >> 6
 | 
						
						
						
							|  |  | >> 7
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 3. Сумма от K до N
 | 
						
						
						
							|  |  | Пользователь вводит числа K и N. Выведите сумму чисел от K до N включительно.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 15
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 4. Сумма четных от K до N
 | 
						
						
						
							|  |  | Пользователь вводит числа K и N. Выведите сумму только четных чисел от K до N включительно.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 6 # 2 + 4
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 5. Сумма дробей (часть первая)
 | 
						
						
						
							|  |  | Пользователь вводит число N. Найдите сумму чисел: 1 + 1.1 + 1.2 + 1.3 + ... + (1 + N / 10).
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 7.5
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 6. Сумма дробей (часть вторая)
 | 
						
						
						
							|  |  | Пользователь вводит число N. Найдите сумму чисел: 1 + 1/2 + 1/3 + ... + 1/N
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 2.283
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | - [1. Ввод и вывод данных в Python](#1-ввод-и-вывод-данных-в-python)
 | 
						
						
						
							|  |  | - [2. Операторы в Python](#2-операторы-в-python)
 | 
						
						
						
							|  |  | - [3. Условный оператор в Python](#3-условный-оператор-в-python)
 | 
						
						
						
							|  |  | - [4. Цикл for в Python](#4-цикл-for-в-python)
 | 
						
						
						
							|  |  | - [5. Цикл while в Python](#5-цикл-while-в-python)
 | 
						
						
						
							|  |  | - [6. Списки в Python](#6-списки-в-python)
 | 
						
						
						
							|  |  | - [7. Методы работы со списками в Python](#7-методы-работы-со-списками-в-python)
 | 
						
						
						
							|  |  | - [8. Функции в python](#8-функции-в-python)
 | 
						
						
						
							|  |  | - [9. Словари в python](#9-словари-в-python)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | </TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## 5. Цикл while в Python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Цикл while ("пока") позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно. Условие записывается после ключевого слова while и проверяется до выполнения тела цикла.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Цикл while используется, когда невозможно определить точное количество повторений цикла.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | i = 0 # объявление переменной i для условия цикла
 | 
						
						
						
							|  |  | while i < 5: # ключевое слово 'while' и условие выполнение цикла
 | 
						
						
						
							|  |  |     # тело цикла
 | 
						
						
						
							|  |  |     print(i) # вывод значения переменной i
 | 
						
						
						
							|  |  |     i += 1 # увеличение значения переменной i на единицу
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Цикл while может быть бесконечным.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | i = 0
 | 
						
						
						
							|  |  | while True: # условие всегда истинно
 | 
						
						
						
							|  |  |     print(i)
 | 
						
						
						
							|  |  |     i += 1
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | ...
 | 
						
						
						
							|  |  | >> 999
 | 
						
						
						
							|  |  | ...
 | 
						
						
						
							|  |  | # Это может продолжаться долго...
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Выполнение цикла можно прерывать с помощью оператора break.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | i = 0
 | 
						
						
						
							|  |  | while 1: # условие всегда истинно
 | 
						
						
						
							|  |  |     if i == 3: # если i равно 3, то вызываем оператор break
 | 
						
						
						
							|  |  |         break # оператор break прерывает выполнение цикла
 | 
						
						
						
							|  |  |     print(i)
 | 
						
						
						
							|  |  |     i += 1
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Оператор continue начинает повторение цикла заново.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | i = 0
 | 
						
						
						
							|  |  | while i < 5:
 | 
						
						
						
							|  |  |     i += 1 #
 | 
						
						
						
							|  |  |     if i % 2 == 1: # если значение i нечетно, то вызываем оператор continue
 | 
						
						
						
							|  |  |         continue # оператор continue начинает повторение цикла заново
 | 
						
						
						
							|  |  |     # в случае вызова continue код ниже не выполнится
 | 
						
						
						
							|  |  |     print(i)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Как и для цикла for, для цикла while мы можем записать конструкцию else.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | x = 1
 | 
						
						
						
							|  |  | while x < 5:
 | 
						
						
						
							|  |  |     print(x)
 | 
						
						
						
							|  |  |     x += 1
 | 
						
						
						
							|  |  | else:
 | 
						
						
						
							|  |  |     print('Цикл завершен')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | >> Цикл завершен
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Примеры
 | 
						
						
						
							|  |  | 1. Числа от A до B
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Пользователь вводит числа A и B (A > B). Выведите все числа от A до B включительно.
 | 
						
						
						
							|  |  | A = int(input('Введите число: '))
 | 
						
						
						
							|  |  | B = int(input('Введите число: '))
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | while A >= B:
 | 
						
						
						
							|  |  |     print(A)
 | 
						
						
						
							|  |  |     A -= 1
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 12
 | 
						
						
						
							|  |  | >> 7
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 12
 | 
						
						
						
							|  |  | >> 11
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | >> 9
 | 
						
						
						
							|  |  | >> 8
 | 
						
						
						
							|  |  | >> 7
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 2. Много чисел
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Пользователь вводит числа до тех пор, пока не введет 0.
 | 
						
						
						
							|  |  | # Выведите количество введенных чисел (0 считать не нужно).
 | 
						
						
						
							|  |  | n = int(input('Введите число: '))
 | 
						
						
						
							|  |  | counter = 0 # счетчик введенных чисел
 | 
						
						
						
							|  |  | while n: # n неявно преобразуется в тип bool
 | 
						
						
						
							|  |  |     # если n равно 0, то выполнение цикла прервется
 | 
						
						
						
							|  |  |     n = int(input('Введите число: ')) # вводим очередное число
 | 
						
						
						
							|  |  |     counter += 1 # увеличиваем счетчик
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(f'Количество чисел {counter}')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | >> 100
 | 
						
						
						
							|  |  | >> 1000
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Количество чисел 4
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 3. Наименьший делитель
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Пользователь вводит число N (N > 1). Выведите его наименьший делитель.
 | 
						
						
						
							|  |  | N = int(input('Введите число: '))
 | 
						
						
						
							|  |  | div = 2
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | while N % div != 0:
 | 
						
						
						
							|  |  |     div += 1
 | 
						
						
						
							|  |  | print(f'Наименьший делитель равен {div}')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Наименьший делитель равен 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 15
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Наименьший делитель равен 3
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 17
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Наименьший делитель равен 17
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Решение задач
 | 
						
						
						
							|  |  | 1. Четные от A до B
 | 
						
						
						
							|  |  | Пользователь вводит числа A и B (A > B). Выведите четные числа от A до B включительно.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | >> 8
 | 
						
						
						
							|  |  | >> 6
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 2. От A до B на три
 | 
						
						
						
							|  |  | Пользователь вводит числа A и B (A < B, A меньше B). Выведите числа от A до B включительно, которые делятся на три.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 15
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 6
 | 
						
						
						
							|  |  | >> 9
 | 
						
						
						
							|  |  | >> 12
 | 
						
						
						
							|  |  | >> 15
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 3. Сумма чисел
 | 
						
						
						
							|  |  | Пользователь вводит числа до тех пор, пока не введет 0. Выведите сумму введенных чисел (0 считать не нужно).
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 15
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | >> 11
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Сумма равна: 39
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 4. Максимум
 | 
						
						
						
							|  |  | Пользователь вводит числа до тех пор, пока не введет 0. Выведите максимальное введенное число (0 считать не нужно).
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 15
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | >> 11
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 0
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Максимум равен: 15
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 5. Минимум
 | 
						
						
						
							|  |  | Пользователь вводит числа до тех пор, пока не введет 0. Выведите минимальное введенное число (0 считать не нужно).
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 15
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | >> 11
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 0 # 0 не входит в последовательность
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Минимум равен: 1
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 6. Факториал
 | 
						
						
						
							|  |  | Пользователь вводит число N. Выведите факториал число N. Факториал числа N - это произведение всех чисел от 1 до N включительно. Например, факториал числа 5 равен 120.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 120
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 6
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 24
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 7. Фибоначчи (финальный босс)
 | 
						
						
						
							|  |  | Пользователь вводит число N. Выведите N-ное по счету число Фибоначчи. Последовательность чисел Фибоначчи рассчитывается по такой формуле: F(1) = 1, F(2) = 1, F(K) = F(K-2) + F(K-1). Идея такая: каждое следующее число равно сумму двух предыдущих.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Первые 10 чисел последовательности: 1 1 2 3 5 8 13 21 34 55 ...
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 55
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 8
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 21
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | - [1. Ввод и вывод данных в Python](#1-ввод-и-вывод-данных-в-python)
 | 
						
						
						
							|  |  | - [2. Операторы в Python](#2-операторы-в-python)
 | 
						
						
						
							|  |  | - [3. Условный оператор в Python](#3-условный-оператор-в-python)
 | 
						
						
						
							|  |  | - [4. Цикл for в Python](#4-цикл-for-в-python)
 | 
						
						
						
							|  |  | - [5. Цикл while в Python](#5-цикл-while-в-python)
 | 
						
						
						
							|  |  | - [6. Списки в Python](#6-списки-в-python)
 | 
						
						
						
							|  |  | - [7. Методы работы со списками в Python](#7-методы-работы-со-списками-в-python)
 | 
						
						
						
							|  |  | - [8. Функции в python](#8-функции-в-python)
 | 
						
						
						
							|  |  | - [9. Словари в python](#9-словари-в-python)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | </TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## 6. Списки в Python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Список - это непрерывная динамическая коллекция элементов. Каждому элементу списка присваивается порядковый номер - его индекс. Первый индекс равен нулю, второй - единице и так далее. Основные операции для работы со списками - это индексирование, срезы, добавление и удаление элементов, а также проверка на наличие элемента в последовательности.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Создание пустого списка выглядит так:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | empty_list = []
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Создадим список, состоящий из нескольких чисел:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | numbers = [40, 20, 90, 11, 5]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Настало время строковых переменных:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Не будем забывать и о дробях:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fractions = [3.14, 2.72, 1.41, 1.73, 17.9]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Мы можем создать список, состоящий из различных типов данных:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | values = [3.14, 10, 'Hello world!', False, 'Python is the best']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | И такое возможно (⊙_⊙)
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | list_of_lists = [[2, 4, 0], [11, 2, 10], [0, 19, 27]]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Индексирование
 | 
						
						
						
							|  |  | Что же такое индексирование? Это загадочное слово обозначает операцию обращения к элементу по его порядковому номеру ( ( ・ω・)ア напоминаю, что нумерация начинается с нуля). Проиллюстрируем это на примере:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | print(fruits[0])
 | 
						
						
						
							|  |  | print(fruits[1])
 | 
						
						
						
							|  |  | print(fruits[4])
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> Apple
 | 
						
						
						
							|  |  | >>> Grape
 | 
						
						
						
							|  |  | >>> Orange
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Списки в Python являются изменяемым типом данных. Мы можем изменять содержимое каждой из ячеек:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | fruits[0] = 'Watermelon'
 | 
						
						
						
							|  |  | fruits[3] = 'Lemon'
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> ['Watermelon', 'Grape', 'Peach', 'Lemon', 'Orange']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Индексирование работает и в обратную сторону. Как такое возможно? Всё просто, мы обращаемся к элементу списка по отрицательному индексу. Индекс с номером -1 дает нам доступ к последнему элементу, -2 к предпоследнему и так далее.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | print(fruits[-1])
 | 
						
						
						
							|  |  | print(fruits[-2])
 | 
						
						
						
							|  |  | print(fruits[-3])
 | 
						
						
						
							|  |  | print(fruits[-4])
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> Orange
 | 
						
						
						
							|  |  | >>> Banan
 | 
						
						
						
							|  |  | >>> Peach
 | 
						
						
						
							|  |  | >>> Grape
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Создание списка с помощью list()
 | 
						
						
						
							|  |  | Переходим к способам создания списка. Самый простой из них был приведен выше. Еще раз для закрепления:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | smiles = ['(ಠ_ಠ)', '( ̄﹃ ̄)', '( ͡° ͜ʖ ͡°)', '(╮°-°)╮']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | А есть еще способы? Да, есть. Один из них — создание списка с помощью функции list() В неё мы можем передать любой итерируемый объект (да-да, тот самый по которому можно запустить цикл (• ᵕ •) )
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Рассмотрим несколько примеров:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | letters = list('abcdef')
 | 
						
						
						
							|  |  | numbers = list(range(10))
 | 
						
						
						
							|  |  | even_numbers = list(range(0, 10, 2))
 | 
						
						
						
							|  |  | print(letters)
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | print(even_numbers)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> ['a', 'b', 'c', 'd', 'e', 'f']
 | 
						
						
						
							|  |  | >>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 | 
						
						
						
							|  |  | >>> [0, 2, 4, 6, 8]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Длина списка
 | 
						
						
						
							|  |  | С созданием списка вроде разобрались. Следующий вопрос: как узнать длину списка? Можно, конечно, просто посчитать количество элементов... (⊙_⊙) Но есть способ получше! Функция len() возвращает длину любой итерируемой переменной, переменной, по которой можно запустить цикл. Рассмотрим пример:
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | print(len(fruits))
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> 5
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | numbers = [40, 20, 90]
 | 
						
						
						
							|  |  | print(len(numbers))
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> 3
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | "...любой итерируемой", а это значит:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | string = 'Hello world'
 | 
						
						
						
							|  |  | print(len(string))
 | 
						
						
						
							|  |  | # 11
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> 11
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | print(len(range(10)))
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> 10
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Срезы
 | 
						
						
						
							|  |  | В начале статьи что-то говорилось о "срезах". Давайте разберем подробнее, что это такое. Срезом называется некоторая подпоследовательность. Принцип действия срезов очень прост: мы "отрезаем" кусок от исходной последовательности элемента, не меняя её при этом. Я сказал "последовательность", а не "список", потому что срезы работают и с другими итерируемыми типами данных, например, со строками.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | part_of_fruits = fruits[0:3]
 | 
						
						
						
							|  |  | print(part_of_fruits)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> ['Apple', 'Grape', 'Peach']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Детально рассмотрим синтаксис срезов:
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | итерируемая_переменная[начальный_индекс:конечный_индекс - 1:длина_шага]
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Обращаю ваше внимание, что мы делаем срез от начального индекса до конечного индекса - 1. То есть i = начальный_индекс и i < конечный индекс
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Больше примеров!
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | print(fruits[0:1])
 | 
						
						
						
							|  |  | # Если начальный индекс равен 0, то его можно опустить
 | 
						
						
						
							|  |  | print(fruits[:2])
 | 
						
						
						
							|  |  | print(fruits[:3])
 | 
						
						
						
							|  |  | print(fruits[:4])
 | 
						
						
						
							|  |  | print(fruits[:5])
 | 
						
						
						
							|  |  | # Если конечный индекс равен длине списка, то его тоже можно опустить
 | 
						
						
						
							|  |  | print(fruits[:len(fruits)])
 | 
						
						
						
							|  |  | print(fruits[::])
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> ['Apple']
 | 
						
						
						
							|  |  | >>> ['Apple', 'Grape']
 | 
						
						
						
							|  |  | >>> ['Apple', 'Grape', 'Peach']
 | 
						
						
						
							|  |  | >>> ['Apple', 'Grape', 'Peach', 'Banan']
 | 
						
						
						
							|  |  | >>> ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | >>> ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | >>> ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Самое время понять, что делает третий параметр среза - длина шага!
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | print(fruits[::2])
 | 
						
						
						
							|  |  | print(fruits[::3])
 | 
						
						
						
							|  |  | # Длина шага тоже может быть отрицательной!
 | 
						
						
						
							|  |  | print(fruits[::-1])
 | 
						
						
						
							|  |  | print(fruits[4:2:-1])
 | 
						
						
						
							|  |  | print(fruits[3:1:-1])
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> ['Apple', 'Peach', 'Orange']
 | 
						
						
						
							|  |  | >>> ['Apple', 'Banan']
 | 
						
						
						
							|  |  | >>> ['Orange', 'Banan', 'Peach', 'Grape', 'Apple']
 | 
						
						
						
							|  |  | >>> ['Orange', 'Banan']
 | 
						
						
						
							|  |  | >>> ['Banan', 'Peach']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | А теперь вспоминаем всё, что мы знаем о циклах. В Python их целых два! Цикл for и цикл while Нас интересует цикл for, с его помощью мы можем перебирать значения и индексы наших последовательностей. Начнем с перебора значений:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | for fruit in fruits:
 | 
						
						
						
							|  |  |     print(fruit, end=' ')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> Apple Grape Peach Banan Orange
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Выглядит несложно, правда? В переменную fruit объявленную в цикле по очереди записываются значения всех элементов списка fruits
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | А что там с перебором индексов?
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | for index in range(len(fruits)):
 | 
						
						
						
							|  |  |     print(fruits[index], end=' ')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Этот пример гораздо интереснее предыдущего! Что же здесь происходит? Для начала разберемся, что делает функция range(len(fruits))
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Мы с вами знаем, что функция len() возвращает длину списка, а range() генерирует диапазон целых чисел от 0 до len()-1.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Сложив 2+2, мы получим, что переменная index принимает значения в диапазоне от 0 до len()-1. Идем дальше, fruits[index] - это обращение по индексу к элементу с индексом index списка fruits. А так как переменная index принимает значения всех индексов списка fruits, то в цикле мы переберем значения всех элементов нашего списка!
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Операция in
 | 
						
						
						
							|  |  | С помощью in мы можем проверить наличие элемента в списке, строке и любой другой итерируемой переменной.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | if 'Apple' in fruits:
 | 
						
						
						
							|  |  |     print('В списке есть элемент Apple')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> В списке есть элемент Apple
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | if 'Lemon' in fruits:
 | 
						
						
						
							|  |  |     print('В списке есть элемент Lemon')
 | 
						
						
						
							|  |  | else:'
 | 
						
						
						
							|  |  |     print('В списке НЕТ элемента Lemon')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> В списке НЕТ элемента Lemon
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Приведу более сложный пример:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | all_fruits = ['Apple', 'Grape', 'Peach', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | my_favorite_fruits = ['Apple', 'Banan', 'Orange']
 | 
						
						
						
							|  |  | for item in all_fruits:
 | 
						
						
						
							|  |  |     if item in my_favorite_fruits:
 | 
						
						
						
							|  |  |         print(item + ' is my favorite fruit')
 | 
						
						
						
							|  |  |     else:
 | 
						
						
						
							|  |  |         print('I do not like ' + item)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | >>> Apple is my favorite fruit
 | 
						
						
						
							|  |  | >>> I do not like Grape
 | 
						
						
						
							|  |  | >>> I do not like Peach
 | 
						
						
						
							|  |  | >>> Banan is my favorite fruit
 | 
						
						
						
							|  |  | >>> Orange is my favorite fruit
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Методы для работы со списками
 | 
						
						
						
							|  |  | Начнем с метода append(), который добавляет элемент в конец списка:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Создаем список, состоящий из четных чисел от 0 до 8 включительно
 | 
						
						
						
							|  |  | numbers = list(range(0,10,2))
 | 
						
						
						
							|  |  | # Добавляем число 200 в конец списка
 | 
						
						
						
							|  |  | numbers.append(200)
 | 
						
						
						
							|  |  | numbers.append(1)
 | 
						
						
						
							|  |  | numbers.append(2)
 | 
						
						
						
							|  |  | numbers.append(3)
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> [0, 2, 4, 6, 8, 200, 1, 2, 3]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Мы можем передавать методу append() абсолютно любые значения:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | all_types = [10, 3.14, 'Python', ['I', 'am', 'list']]
 | 
						
						
						
							|  |  | all_types.append(1024)
 | 
						
						
						
							|  |  | all_types.append('Hello world!')
 | 
						
						
						
							|  |  | all_types.append([1, 2, 3])
 | 
						
						
						
							|  |  | print(all_types)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> [10, 3.14, 'Python', ['I', 'am', 'list'], 1024, 'Hello world!', [1, 2, 3]]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Метод append() отлично выполняет свою функцию. Но, что делать, если нам нужно добавить элемент в середину списка? Это умеет метод insert(). Он добавляет элемент в список на произвольную позицию. insert() принимает в качестве первого аргумента позицию, на которую нужно вставить элемент, а вторым — сам элемент.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Создадим список чисел от 0 до 9
 | 
						
						
						
							|  |  | numbers = list(range(10))
 | 
						
						
						
							|  |  | # Добавление элемента 999 на позицию с индексом 0
 | 
						
						
						
							|  |  | numbers.insert(0, 999)
 | 
						
						
						
							|  |  | print(numbers) # первый print
 | 
						
						
						
							|  |  | numbers.insert(2, 1024)
 | 
						
						
						
							|  |  | print(numbers) # второй print
 | 
						
						
						
							|  |  | numbers.insert(5, 'Засланная строка-шпион')
 | 
						
						
						
							|  |  | print(numbers) # третий print
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> [999, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # первый print
 | 
						
						
						
							|  |  | >>> [999, 0, 1024, 1, 2, 3, 4, 5, 6, 7, 8, 9] # второй print
 | 
						
						
						
							|  |  | >>> [999, 0, 1024, 1, 2, 'Засланная строка-шпион', 3, 4, 5, 6, 7, 8, 9] # третий print
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Отлично! Добавлять элементы в список мы научились, осталось понять, как их из него удалять. Метод pop() удаляет элемент из списка по его индексу:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | numbers = list(range(10))
 | 
						
						
						
							|  |  | print(numbers) # 1
 | 
						
						
						
							|  |  | # Удаляем первый элемент
 | 
						
						
						
							|  |  | numbers.pop(0)
 | 
						
						
						
							|  |  | print(numbers) # 2
 | 
						
						
						
							|  |  | numbers.pop(0)
 | 
						
						
						
							|  |  | print(numbers) # 3
 | 
						
						
						
							|  |  | numbers.pop(2)
 | 
						
						
						
							|  |  | print(numbers) # 4
 | 
						
						
						
							|  |  | # Чтобы удалить последний элемент, вызовем метод pop без аргументов
 | 
						
						
						
							|  |  | numbers.pop()
 | 
						
						
						
							|  |  | print(numbers) # 5
 | 
						
						
						
							|  |  | numbers.pop()
 | 
						
						
						
							|  |  | print(numbers) # 6
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 1
 | 
						
						
						
							|  |  | >>> [1, 2, 3, 4, 5, 6, 7, 8, 9] # 2
 | 
						
						
						
							|  |  | >>> [2, 3, 4, 5, 6, 7, 8, 9] # 3
 | 
						
						
						
							|  |  | >>> [2, 3, 5, 6, 7, 8, 9] # 4
 | 
						
						
						
							|  |  | >>> [2, 3, 5, 6, 7, 8] # 5
 | 
						
						
						
							|  |  | >>> [2, 3, 5, 6, 7] # 6
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Теперь мы знаем, как удалять элемент из списка по его индексу. Но что, если мы не знаем индекса элемента, но знаем его значение? Для такого случая у нас есть метод remove(), который удаляет первый найденный по значению элемент в списке.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | all_types = [10, 'Python', 10, 3.14, 'Python', ['I', 'am', 'list']]
 | 
						
						
						
							|  |  | all_types.remove(3.14)
 | 
						
						
						
							|  |  | print(all_types) # 1
 | 
						
						
						
							|  |  | all_types.remove(10)
 | 
						
						
						
							|  |  | print(all_types) # 2
 | 
						
						
						
							|  |  | all_types.remove('Python')
 | 
						
						
						
							|  |  | print(all_types) # 3
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> [10, 'Python', 10, 'Python', ['I', 'am', 'list']] # 1
 | 
						
						
						
							|  |  | >>> ['Python', 10, 'Python', ['I', 'am', 'list']] # 2
 | 
						
						
						
							|  |  | >>> [10, 'Python', ['I', 'am', 'list']] # 3
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | А сейчас немного посчитаем, посчитаем элементы списка с помощью метода count()
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | numbers = [100, 100, 100, 200, 200, 500, 500, 500, 500, 500, 999]
 | 
						
						
						
							|  |  | print(numbers.count(100)) # 1
 | 
						
						
						
							|  |  | print(numbers.count(200)) # 2
 | 
						
						
						
							|  |  | print(numbers.count(500)) # 3
 | 
						
						
						
							|  |  | print(numbers.count(999)) # 4
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> 3 # 1
 | 
						
						
						
							|  |  | >>> 2 # 2
 | 
						
						
						
							|  |  | >>> 5 # 3
 | 
						
						
						
							|  |  | >>> 1 # 4
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | В программировании, как и в жизни, проще работать с упорядоченными данными, в них легче ориентироваться и что-либо искать. Метод sort() сортирует список по возрастанию значений его элементов.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | numbers = [100, 2, 11, 9, 3, 1024, 567, 78]
 | 
						
						
						
							|  |  | numbers.sort()
 | 
						
						
						
							|  |  | print(numbers) # 1
 | 
						
						
						
							|  |  | fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
 | 
						
						
						
							|  |  | fruits.sort()
 | 
						
						
						
							|  |  | print(fruits) # 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> [2, 3, 9, 11, 78, 100, 567, 1024] # 1
 | 
						
						
						
							|  |  | >>> ['Apple', 'Banan', 'Grape', 'Orange', 'Peach'] # 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Мы можем изменять порядок сортировки с помощью параметра reverse. По умолчанию этот параметр равен False
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
 | 
						
						
						
							|  |  | fruits.sort()
 | 
						
						
						
							|  |  | print(fruits) # 1
 | 
						
						
						
							|  |  | fruits.sort(reverse=True)
 | 
						
						
						
							|  |  | print(fruits) # 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> ['Apple', 'Banan', 'Grape', 'Orange', 'Peach'] # 1
 | 
						
						
						
							|  |  | >>> ['Peach', 'Orange', 'Grape', 'Banan', 'Apple'] # 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Иногда нам нужно перевернуть список, не спрашивайте меня зачем... Для этого в самом лучшем языке программирования на этой планете JavaScr..Python есть метод reverse():
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | numbers = [100, 2, 11, 9, 3, 1024, 567, 78]
 | 
						
						
						
							|  |  | numbers.reverse()
 | 
						
						
						
							|  |  | print(numbers) # 1
 | 
						
						
						
							|  |  | fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
 | 
						
						
						
							|  |  | fruits.reverse()
 | 
						
						
						
							|  |  | print(fruits) # 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> [78, 567, 1024, 3, 9, 11, 2, 100] # 1
 | 
						
						
						
							|  |  | >>> ['Apple', 'Banan', 'Peach', 'Grape', 'Orange'] # 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Допустим, у нас есть два списка и нам нужно их объединить. Программисты на C++ cразу же кинулись писать циклы for, но мы пишем на python, а в python у списков есть полезный метод extend(). Этот метод вызывается для одного списка, а в качестве аргумента ему передается другой список, extend() записывает в конец первого из них начало второго:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | vegetables = ['Tomato', 'Cucumber', 'Potato', 'Carrot']
 | 
						
						
						
							|  |  | fruits.extend(vegetables)
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> ['Banana', 'Apple', 'Grape', 'Tomato', 'Cucumber', 'Potato', 'Carrot']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | В природе существует специальный метод для очистки списка — clear()
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | vegetables = ['Tomato', 'Cucumber', 'Potato', 'Carrot']
 | 
						
						
						
							|  |  | fruits.clear()
 | 
						
						
						
							|  |  | vegetables.clear()
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | print(vegetables)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> []
 | 
						
						
						
							|  |  | >>> []
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Осталось совсем чуть-чуть всего лишь пара методов, так что делаем последний рывок! Метод index() возвращает индекс элемента. Работает это так: вы передаете в качестве аргумента в index() значение элемента, а метод возвращает его индекс:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | print(fruits.index('Apple'))
 | 
						
						
						
							|  |  | print(fruits.index('Banana'))
 | 
						
						
						
							|  |  | print(fruits.index('Grape'))
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> 1
 | 
						
						
						
							|  |  | >>> 0
 | 
						
						
						
							|  |  | >>> 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Финишная прямая! Метод copy(), только не падайте, копирует список и возвращает его брата-близнеца. Вообще, копирование списков - это тема достаточно интересная, давайте рассмотрим её по-подробнее.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Во-первых, если мы просто присвоим уже существующий список новой переменной, то на первый взгляд всё выглядит неплохо:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | new_fruits = fruits
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | print(new_fruits)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | >>> ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Но есть одно маленькое "НО":
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | new_fruits = fruits
 | 
						
						
						
							|  |  | fruits.pop()
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | print(new_fruits)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Внезапно, из списка new_fruits исчез последний элемент
 | 
						
						
						
							|  |  | >>> ['Banana', 'Apple']
 | 
						
						
						
							|  |  | >>> ['Banana', 'Apple']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | При прямом присваивании списков копирования не происходит. Обе переменные начинают ссылаться на один и тот же список! То есть если мы изменим один из них, то изменится и другой. Что же тогда делать? Пользоваться методом copy(), конечно:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | new_fruits = fruits.copy()
 | 
						
						
						
							|  |  | fruits.pop()
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | print(new_fruits)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> ['Banana', 'Apple']
 | 
						
						
						
							|  |  | >>> ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Отлично! Но что если у нас список в списке? Скопируется ли внутренний список с помощью метода copy() — нет:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape', ['Orange','Peach']]
 | 
						
						
						
							|  |  | new_fruits = fruits.copy()
 | 
						
						
						
							|  |  | fruits[-1].pop()
 | 
						
						
						
							|  |  | print(fruits) # 1
 | 
						
						
						
							|  |  | print(new_fruits) # 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >>> ['Banana', 'Apple', 'Grape', ['Orange']] # 1
 | 
						
						
						
							|  |  | >>> ['Banana', 'Apple', 'Grape', ['Orange']] # 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Решение задач
 | 
						
						
						
							|  |  | 1. Создайте список из 10 четных чисел и выведите его с помощью цикла for
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 2. Создайте список из 5 элементов. Сделайте срез от второго индекса до четвертого
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 3. Создайте пустой список и добавьте в него 10 случайных чисел и выведите их. В данной задаче нужно использовать функцию randint.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | from random import randint
 | 
						
						
						
							|  |  | n = randint(1, 10) # Случайное число от 1 до 10
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 4.Удалите все элементы из списка, созданного в задании 3
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 5.Создайте список из введенной пользователем строки и удалите из него символы 'a', 'e', 'o'
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 6.Даны два списка, удалите все элементы первого списка из второго
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | a = [1, 3, 4, 5]
 | 
						
						
						
							|  |  | b = [4, 5, 6, 7]
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | >>> [6, 7]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 7.Создайте список из случайных чисел и найдите наибольший элемент в нем.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 8.Найдите наименьший элемент в списке из задания 7
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 9.Найдите сумму элементов списка из задания 7
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 10.Найдите среднее арифметическое элементов списка из задания 7
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Сложные задачи
 | 
						
						
						
							|  |  | 1.Создайте список из случайных чисел. Найдите номер его последнего локального максимума (локальный максимум — это элемент, который больше любого из своих соседей).
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 2.Создайте список из случайных чисел. Найдите максимальное количество его одинаковых элементов.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 3.Создайте список из случайных чисел. Найдите второй максимум.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | a = [1, 2, 3] # Первый максимум == 3, второй == 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 4.Создайте список из случайных чисел. Найдите количество различных элементов в нем.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | - [1. Ввод и вывод данных в Python](#1-ввод-и-вывод-данных-в-python)
 | 
						
						
						
							|  |  | - [2. Операторы в Python](#2-операторы-в-python)
 | 
						
						
						
							|  |  | - [3. Условный оператор в Python](#3-условный-оператор-в-python)
 | 
						
						
						
							|  |  | - [4. Цикл for в Python](#4-цикл-for-в-python)
 | 
						
						
						
							|  |  | - [5. Цикл while в Python](#5-цикл-while-в-python)
 | 
						
						
						
							|  |  | - [6. Списки в Python](#6-списки-в-python)
 | 
						
						
						
							|  |  | - [7. Методы работы со списками в Python](#7-методы-работы-со-списками-в-python)
 | 
						
						
						
							|  |  | - [8. Функции в python](#8-функции-в-python)
 | 
						
						
						
							|  |  | - [9. Словари в python](#9-словари-в-python)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | </TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## 7. Методы работы со списками в Python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Список - это изменяемый и последовательный тип данных. Это значит, что мы можем добавлять, удалять и изменять любые элементы списка.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Начнем с метода append(), который добавляет элемент в конец списка:
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Создаем список, состоящий из четных чисел от 0 до 8 включительно
 | 
						
						
						
							|  |  | numbers = list(range(0,10,2))
 | 
						
						
						
							|  |  | # Добавляем число 200 в конец списка
 | 
						
						
						
							|  |  | numbers.append(200)
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [0, 2, 4, 6, 8, 200]
 | 
						
						
						
							|  |  | numbers.append(1)
 | 
						
						
						
							|  |  | numbers.append(2)
 | 
						
						
						
							|  |  | numbers.append(3)
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [0, 2, 4, 6, 8, 200, 1, 2, 3]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Мы можем передавать методу append() абсолютно любые значения:
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | all_types = [10, 3.14, 'Python', ['I', 'am', 'list']]
 | 
						
						
						
							|  |  | all_types.append(1024)
 | 
						
						
						
							|  |  | all_types.append('Hello world!')
 | 
						
						
						
							|  |  | all_types.append([1, 2, 3])
 | 
						
						
						
							|  |  | print(all_types)
 | 
						
						
						
							|  |  | # [10, 3.14, 'Python', ['I', 'am', 'list'], 1024, 'Hello world!', [1, 2, 3]]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Метод append() отлично выполняет свою функцию. Но, что делать, если нам нужно добавить элемент в середину списка? Это умеет метод insert(). Он добавляет элемент в список на произвольную позицию. insert() принимает в качестве первого аргумента позицию, на которую нужно вставить элемент, а вторым — сам элемент.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Создадим список чисел от 0 до 9
 | 
						
						
						
							|  |  | numbers = list(range(10))
 | 
						
						
						
							|  |  | # Добавление элемента 999 на позицию с индексом 0
 | 
						
						
						
							|  |  | numbers.insert(0, 999)
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [999, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 | 
						
						
						
							|  |  | numbers.insert(2, 1024)
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [999, 0, 1024, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 | 
						
						
						
							|  |  | numbers.insert(5, 'Засланная строка-шпион')
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [999, 0, 1024, 1, 2, 'Засланная строка-шпион', 3, 4, 5, 6, 7, 8, 9]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Отлично! Добавлять элементы в список мы научились, осталось понять, как их из него удалять. Метод pop() удаляет элемент из списка по его индексу:
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | numbers = list(range(10))
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
 | 
						
						
						
							|  |  | # Удаляем первый элемент
 | 
						
						
						
							|  |  | numbers.pop(0)
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [1, 2, 3, 4, 5, 6, 7, 8, 9]
 | 
						
						
						
							|  |  | numbers.pop(0)
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [2, 3, 4, 5, 6, 7, 8, 9]
 | 
						
						
						
							|  |  | numbers.pop(2)
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [2, 3, 5, 6, 7, 8, 9]
 | 
						
						
						
							|  |  | # Чтобы удалить последний элемент, вызовем метод pop без аргументов
 | 
						
						
						
							|  |  | numbers.pop()
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [2, 3, 5, 6, 7, 8]
 | 
						
						
						
							|  |  | numbers.pop()
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [2, 3, 5, 6, 7]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Теперь мы знаем, как удалять элемент из списка по его индексу. Но что, если мы не знаем индекса элемента, но знаем его значение? Для такого случая у нас есть метод remove(), который удаляет первый найденный по значению элемент в списке.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | all_types = [10, 'Python', 10, 3.14, 'Python', ['I', 'am', 'list']]
 | 
						
						
						
							|  |  | all_types.remove(3.14)
 | 
						
						
						
							|  |  | print(all_types)
 | 
						
						
						
							|  |  | # [10, 'Python', 10, 'Python', ['I', 'am', 'list']]
 | 
						
						
						
							|  |  | all_types.remove(10)
 | 
						
						
						
							|  |  | print(all_types)
 | 
						
						
						
							|  |  | # ['Python', 10, 'Python', ['I', 'am', 'list']]
 | 
						
						
						
							|  |  | all_types.remove('Python')
 | 
						
						
						
							|  |  | print(all_types) # [10, 'Python', ['I', 'am', 'list']]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | А сейчас немного посчитаем, посчитаем элементы списка с помощью метода count()
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | numbers = [100, 100, 100, 200, 200, 500, 500, 500, 500, 500, 999]
 | 
						
						
						
							|  |  | print(numbers.count(100))
 | 
						
						
						
							|  |  | # 3
 | 
						
						
						
							|  |  | print(numbers.count(200))
 | 
						
						
						
							|  |  | # 2
 | 
						
						
						
							|  |  | print(numbers.count(500))
 | 
						
						
						
							|  |  | # 5
 | 
						
						
						
							|  |  | print(numbers.count(999))
 | 
						
						
						
							|  |  | # 1
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | В программировании, как и в жизни, проще работать с упорядоченными данными, в них легче ориентироваться и что-либо искать. Метод sort() сортирует список по возрастанию значений его элементов.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | numbers = [100, 2, 11, 9, 3, 1024, 567, 78]
 | 
						
						
						
							|  |  | numbers.sort()
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [2, 3, 9, 11, 78, 100, 567, 1024]
 | 
						
						
						
							|  |  | fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
 | 
						
						
						
							|  |  | fruits.sort()
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | # ['Apple', 'Banan', 'Grape', 'Orange', 'Peach']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Мы можем изменять порядок сортировки с помощью параметра reverse. По умолчанию этот параметр равен False
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
 | 
						
						
						
							|  |  | fruits.sort()
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | # ['Apple', 'Banan', 'Grape', 'Orange', 'Peach']
 | 
						
						
						
							|  |  | fruits.sort(reverse=True)
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | # ['Peach', 'Orange', 'Grape', 'Banan', 'Apple']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Иногда нам нужно перевернуть список, не спрашивайте меня зачем... Для этого в самом лучшем языке программирования на этой планете JavaScr..Python есть метод reverse():
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | numbers = [100, 2, 11, 9, 3, 1024, 567, 78]
 | 
						
						
						
							|  |  | numbers.reverse()
 | 
						
						
						
							|  |  | print(numbers)
 | 
						
						
						
							|  |  | # [78, 567, 1024, 3, 9, 11, 2, 100]
 | 
						
						
						
							|  |  | fruits = ['Orange', 'Grape', 'Peach', 'Banan', 'Apple']
 | 
						
						
						
							|  |  | fruits.reverse()
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | # ['Apple', 'Banan', 'Peach', 'Grape', 'Orange']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Допустим, у нас есть два списка и нам нужно их объединить. Программисты на C++ cразу же кинулись писать циклы for, но мы пишем на python, а в python у списков есть полезный метод extend(). Этот метод вызывается для одного списка, а в качестве аргумента ему передается другой список, extend() записывает в конец первого из них начало второго:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | vegetables = ['Tomato', 'Cucumber', 'Potato', 'Carrot']
 | 
						
						
						
							|  |  | fruits.extend(vegetables)
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | # ['Banana', 'Apple', 'Grape', 'Tomato', 'Cucumber', 'Potato', 'Carrot']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | В природе существует специальный метод для очистки списка — clear()
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | vegetables = ['Tomato', 'Cucumber', 'Potato', 'Carrot']
 | 
						
						
						
							|  |  | fruits.clear()
 | 
						
						
						
							|  |  | vegetables.clear()
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | # []
 | 
						
						
						
							|  |  | print(vegetables)
 | 
						
						
						
							|  |  | # []
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Осталось совсем чуть-чуть всего лишь пара методов, так что делаем последний рывок! Метод index() возвращает индекс элемента. Работает это так: вы передаете в качестве аргумента в index() значение элемента, а метод возвращает его индекс:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | print(fruits.index('Apple'))
 | 
						
						
						
							|  |  | # 1
 | 
						
						
						
							|  |  | print(fruits.index('Banana'))
 | 
						
						
						
							|  |  | # 0
 | 
						
						
						
							|  |  | print(fruits.index('Grape'))
 | 
						
						
						
							|  |  | # 2
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Финишная прямая! Метод copy(), только не падайте, копирует список и возвращает его брата-близнеца. Вообще, копирование списков - это тема достаточно интересная, давайте рассмотрим её по-подробнее.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Во-первых, если мы просто присвоим уже существующий список новой переменной, то на первый взгляд всё выглядит неплохо:
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | new_fruits = fruits
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | # ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | print(new_fruits)
 | 
						
						
						
							|  |  | # ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | Но есть одно маленькое "НО":
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | new_fruits = fruits
 | 
						
						
						
							|  |  | fruits.pop()
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | # ['Banana', 'Apple']
 | 
						
						
						
							|  |  | print(new_fruits)
 | 
						
						
						
							|  |  | # Внезапно, из списка new_fruits исчез последний элемент
 | 
						
						
						
							|  |  | # ['Banana', 'Apple']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | При прямом присваивании списков копирования не происходит. Обе переменные начинают ссылаться на один и тот же список! То есть если мы изменим один из них, то изменится и другой. Что же тогда делать? Пользоваться методом copy(), конечно:
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | new_fruits = fruits.copy()
 | 
						
						
						
							|  |  | fruits.pop()
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | # ['Banana', 'Apple']
 | 
						
						
						
							|  |  | print(new_fruits)
 | 
						
						
						
							|  |  | # ['Banana', 'Apple', 'Grape']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Отлично! Но что если у нас список в списке? Скопируется ли внутренний список с помощью метода copy() — нет:
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | fruits = ['Banana', 'Apple', 'Grape', ['Orange','Peach']]
 | 
						
						
						
							|  |  | new_fruits = fruits.copy()
 | 
						
						
						
							|  |  | fruits[-1].pop()
 | 
						
						
						
							|  |  | print(fruits)
 | 
						
						
						
							|  |  | # ['Banana', 'Apple', 'Grape', ['Orange']]
 | 
						
						
						
							|  |  | print(new_fruits)
 | 
						
						
						
							|  |  | # ['Banana', 'Apple', 'Grape', ['Orange']]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | - [1. Ввод и вывод данных в Python](#1-ввод-и-вывод-данных-в-python)
 | 
						
						
						
							|  |  | - [2. Операторы в Python](#2-операторы-в-python)
 | 
						
						
						
							|  |  | - [3. Условный оператор в Python](#3-условный-оператор-в-python)
 | 
						
						
						
							|  |  | - [4. Цикл for в Python](#4-цикл-for-в-python)
 | 
						
						
						
							|  |  | - [5. Цикл while в Python](#5-цикл-while-в-python)
 | 
						
						
						
							|  |  | - [6. Списки в Python](#6-списки-в-python)
 | 
						
						
						
							|  |  | - [7. Методы работы со списками в Python](#7-методы-работы-со-списками-в-python)
 | 
						
						
						
							|  |  | - [8. Функции в python](#8-функции-в-python)
 | 
						
						
						
							|  |  | - [9. Словари в python](#9-словари-в-python)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | </TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## 8. Функции в Python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Функция - это именованный блок кода, к которому можно обратиться из любого места программы. У функции есть имя и список входных параметров, а также возвращаемое значение.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Функция позволяет использовать в программе один и тот же фрагмент кода несколько раз.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Oбъявление функции в Python выглядит так:
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | def function_name(argument1, argument2, ...):
 | 
						
						
						
							|  |  |     # код функции
 | 
						
						
						
							|  |  | # def - DEclare Function - "объявить функцию"
 | 
						
						
						
							|  |  | # function_name - имя функции
 | 
						
						
						
							|  |  | # (argument1, argument2, ...) - список аргументов, поступающих на вход функции при ее вызове
 | 
						
						
						
							|  |  | # тело функции - это весь код, который идет после двоеточия
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Объявление функции
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | def hello(name):
 | 
						
						
						
							|  |  |     print('Hello, ' + name)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Вызовы функции
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | hello('Max')
 | 
						
						
						
							|  |  | hello('Ivan')
 | 
						
						
						
							|  |  | hello('Alex')
 | 
						
						
						
							|  |  | hello('Kate')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | >> Hello, Max
 | 
						
						
						
							|  |  | >> Hello, Ivan
 | 
						
						
						
							|  |  | >> Hello, Alex
 | 
						
						
						
							|  |  | >> Hello, Kate
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Оператор return возвращает значение из функции.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Представьте себе обычный калькулятор. Вы вводите первое число, операцию и второе число. Калькулятор возвращает нам результат операции над этими числами. Всё просто, не так ли? Функции точно так же умеют возвращать значение с помощью специального оператора return.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Объявление функции
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | def sum2(a, b):
 | 
						
						
						
							|  |  |     return a + b
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Вызовы функции
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | s1 = sum2(10, 2)
 | 
						
						
						
							|  |  | s2 = sum2(108, 100)
 | 
						
						
						
							|  |  | s3 = sum2(3, 1)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(f's1 = {s1}')
 | 
						
						
						
							|  |  | print(f's2 = {s2}')
 | 
						
						
						
							|  |  | print(f's3 = {s3}')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >> s1 = 12
 | 
						
						
						
							|  |  | >> s2 = 208
 | 
						
						
						
							|  |  | >> s3 = 4
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Функция умножения двух чисел
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | def mult2(a, b):
 | 
						
						
						
							|  |  |     return a * b
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Вызовем нашу функцию
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | m1 = mult2(10, 2)
 | 
						
						
						
							|  |  | m2 = mult2(108, 100)
 | 
						
						
						
							|  |  | m3 = mult2(3, 1)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(f'm1 = {m1}')
 | 
						
						
						
							|  |  | print(f'm2 = {m2}')
 | 
						
						
						
							|  |  | print(f'm3 = {m3}')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >> m1 = 20
 | 
						
						
						
							|  |  | >> m2 = 10800
 | 
						
						
						
							|  |  | >> m3 = 3
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Для параметров функции можно указывать значения по умолчанию. Это дает возможность вызывать функцию с меньшим числом параметров.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Аргумент name по умолчанию равен 'world'
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | def hello(name='world'):
 | 
						
						
						
							|  |  |     print('Hello, ' + name)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | hello()
 | 
						
						
						
							|  |  | hello('Ivan')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >> Hello, world
 | 
						
						
						
							|  |  | >> Hello, Ivan
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Примеры
 | 
						
						
						
							|  |  | 1. Квадрат
 | 
						
						
						
							|  |  | # Написать функцию square(), вычисляющую квадрат числа.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | def square(number):
 | 
						
						
						
							|  |  |     return number * number # Возвращаем результат работы функции обратно в программу
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | a = square(2)
 | 
						
						
						
							|  |  | print(a)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 2. Периметр
 | 
						
						
						
							|  |  | # Напишите функцию perimetr, вычисляющую периметр прямоугольника со сторонами a и b.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | def perimetr(a, b):
 | 
						
						
						
							|  |  |     return 2 * (a + b)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | p = perimetr(4, 3)
 | 
						
						
						
							|  |  | print(p)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >> 14
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 3. Четное число
 | 
						
						
						
							|  |  | # Напишите функцию isEven, возвращающую True, если число четное, и False, если - нечетное.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | def isEven(x):
 | 
						
						
						
							|  |  |     return x % 2 == 0
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(isEven(10))
 | 
						
						
						
							|  |  | print(isEven(11))
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | >> False
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 4. Сумма списка
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Напишите функцию amountList, которая возвращает сумму всех элементов списка.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | def amountList(lst):
 | 
						
						
						
							|  |  |     amount = 0
 | 
						
						
						
							|  |  |     for x in lst:
 | 
						
						
						
							|  |  |         amount += x
 | 
						
						
						
							|  |  |     return amount
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(amountList([1, 2, 3]))
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | mylist = [1, 2, 4, 8, 16]
 | 
						
						
						
							|  |  | s = amountList(mylist)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(f'Сумма списка {mylist} равна {s}')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >> 6
 | 
						
						
						
							|  |  | >> Сумма списка [1, 2, 4, 8, 16] равна 31
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 5. Фибоначчи
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Напишите функцию fib, которая возвращает n-ное число Фибоначчи.
 | 
						
						
						
							|  |  | # Последовательность Фибоначчи выглядит так: 1 1 2 3 5 8 13 21 34
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | def fib(n):
 | 
						
						
						
							|  |  |     a, b = 0, 1
 | 
						
						
						
							|  |  |     if n == 0: return 0
 | 
						
						
						
							|  |  |     for i in range(1, n):
 | 
						
						
						
							|  |  |         a, b = b, a + b
 | 
						
						
						
							|  |  |     return b
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(fib(2))
 | 
						
						
						
							|  |  | print(fib(3))
 | 
						
						
						
							|  |  | print(fib(4))
 | 
						
						
						
							|  |  | print(fib(5))
 | 
						
						
						
							|  |  | print(fib(10))
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >> 1
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> 5
 | 
						
						
						
							|  |  | >> 55
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 6. Факториал
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Напишите функцию fact, вычисляющую значение факториала числа N.
 | 
						
						
						
							|  |  | # Факториал числа - это произведение всех чисел от 1 до N.
 | 
						
						
						
							|  |  | # Например, факториал числа 5 равен 120 (5! = 120).
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | def fact(n):
 | 
						
						
						
							|  |  |     result = 1
 | 
						
						
						
							|  |  |     while n > 1:
 | 
						
						
						
							|  |  |         result *= n
 | 
						
						
						
							|  |  |         n -= 1
 | 
						
						
						
							|  |  |     return result
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(fact(2))
 | 
						
						
						
							|  |  | print(fact(3))
 | 
						
						
						
							|  |  | print(fact(4))
 | 
						
						
						
							|  |  | print(fact(5))
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | >> 2
 | 
						
						
						
							|  |  | >> 6
 | 
						
						
						
							|  |  | >> 24
 | 
						
						
						
							|  |  | >> 120
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Решение задач
 | 
						
						
						
							|  |  | 1. Площадь круга
 | 
						
						
						
							|  |  | Напишите функцию, которая получает в качестве аргумента радиус круга и находит его площадь.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Не забудьте написать функцию circle...
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(circle(4))
 | 
						
						
						
							|  |  | print(circle(1))
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 50.24
 | 
						
						
						
							|  |  | >> 3.14
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 2. На три
 | 
						
						
						
							|  |  | Напишите функцию, которая возвращает True, если число делится на 3, и False, если - нет.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Не забудьте написать функцию three...
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(three(4))
 | 
						
						
						
							|  |  | print(three(3))
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> False
 | 
						
						
						
							|  |  | >> True
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 3. Максимум в списке
 | 
						
						
						
							|  |  | Напишите функцию, которая возвращает максимальный элемент из переданного в нее списка.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Напишите функцию maxList...
 | 
						
						
						
							|  |  | mylist = [1, 3, 2]
 | 
						
						
						
							|  |  | print(maxList(mylist))
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 4. Сколько четных
 | 
						
						
						
							|  |  | Напишите функцию, которая возвращает количество четных элементов в списке.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Напишите функцию evenCounter...
 | 
						
						
						
							|  |  | mylist = [1, 10, 2, 4, 6]
 | 
						
						
						
							|  |  | evens = evenCounter(mylist)
 | 
						
						
						
							|  |  | print(even)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 4
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 5. Уникальные
 | 
						
						
						
							|  |  | Напишите функцию, которая возвращает список с уникальными (неповторяющихся) элементам.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Напишите функцию unique...
 | 
						
						
						
							|  |  | mylist = [1, 1, 2, 1, 3, 2, 3]
 | 
						
						
						
							|  |  | print(unique(mylist))
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> [1, 2, 3]
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | - [1. Ввод и вывод данных в Python](#1-ввод-и-вывод-данных-в-python)
 | 
						
						
						
							|  |  | - [2. Операторы в Python](#2-операторы-в-python)
 | 
						
						
						
							|  |  | - [3. Условный оператор в Python](#3-условный-оператор-в-python)
 | 
						
						
						
							|  |  | - [4. Цикл for в Python](#4-цикл-for-в-python)
 | 
						
						
						
							|  |  | - [5. Цикл while в Python](#5-цикл-while-в-python)
 | 
						
						
						
							|  |  | - [6. Списки в Python](#6-списки-в-python)
 | 
						
						
						
							|  |  | - [7. Методы работы со списками в Python](#7-методы-работы-со-списками-в-python)
 | 
						
						
						
							|  |  | - [8. Функции в python](#8-функции-в-python)
 | 
						
						
						
							|  |  | - [9. Словари в python](#9-словари-в-python)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | </TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ## 9. Словари в Python
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Словарь — неупорядоченная структура данных, которая позволяет хранить пары «ключ — значение».
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Создание словаря c помощью литерала
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | student = {'name': 'Ivan', 'age': 12}
 | 
						
						
						
							|  |  | credentials = {'email': 'hacker1337@mail.ru', 'password': '123456'}
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Создание словаря c помощью функции dict()
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | student = dict(name='Ivan', age=12)
 | 
						
						
						
							|  |  | credentials = dict(email='hacker1337@mail.ru', password='123456')
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Для получения значения конкретного ключа используются квадратные скобки [].
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Получаем значение с ключом 'name'
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | student = dict(name='Ivan', age=12)
 | 
						
						
						
							|  |  | print(student['name']) # -> Ivan
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Обновление существующих значений происходит абсолютно также.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Получаем значение с ключом 'name'
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | student = dict(name='Ivan', age=12)
 | 
						
						
						
							|  |  | student['name'] = 'Vasya'
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(student['name']) # -> Vasya
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Для удаления ключа и соответствующего значения из словаря можно использовать del
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Удаление ключа 'age'
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | student = dict(name='Ivan', age=12)
 | 
						
						
						
							|  |  | del student['age']
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(student) # -> {'name': 'Ivan'}
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Метод get() возвращает значение по указанному ключу. Если указанного ключа не существует, метод вернёт None. Также можно указать значение по умолчанию, которое будет возвращено вместо None, если ключа в словаре не окажется.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Использование метода get()
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | student = dict(name='Ivan', age=12)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(student.get('name'))     # -> Ivan
 | 
						
						
						
							|  |  | print(student.get('lastname')) # -> None
 | 
						
						
						
							|  |  | print(student.get('lastname', 'No key')) # -> No key
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Метод pop() удаляет ключ и возвращает соответствующее ему значение.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Использование метода pop()
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | sneakers = dict(brand='Adidas', price='9990 RUB', model='Nite Jogger')
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | model = sneakers.pop('model')
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(sneakers) # -> {'brand': 'Adidas', 'price': '9990 RUB'}
 | 
						
						
						
							|  |  | print(model)    # -> Nite Jogger
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Метод keys() возвращает специальную коллекцию ключей в словаре.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Использование метода keys()
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | sneakers = dict(brand='Adidas', price='9990 RUB', model='Nite Jogger')
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(sneakers.keys()) # -> dict_keys(['brand', 'price', 'model'])
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # dict_keys - это неизменяемая коллекция элементов.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | keys = list(sneakers.keys())
 | 
						
						
						
							|  |  | print(keys) # -> ['brand', 'price', 'model']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Метод values() возвращает специальную коллекцию значений в словаре.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Использование метода values()
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | sneakers = dict(brand='Adidas', price='9990 RUB', model='Nite Jogger')
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(sneakers.values()) # -> dict_values(['Adidas', '9990 RUB', 'Nite Jogger'])
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # dict_values - это неизменяемая коллекция элементов.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | values = list(sneakers.values())
 | 
						
						
						
							|  |  | print(values) # -> ['Adidas', '9990 RUB', 'Nite Jogger']
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Метод items() возвращает пары «ключ — значение» в формате кортежей.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Использование метода items()
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | sneakers = dict(brand='Adidas', price='9990 RUB', model='Nite Jogger')
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(sneakers.items()) # -> dict_items([('brand', 'Adidas'), ('price', '9990 RUB'), ('model', 'Nite Jogger')])
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # dict_items - это неизменяемая коллекция элементов.
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | items = list(sneakers.items())
 | 
						
						
						
							|  |  | print(items) # -> [('brand', 'Adidas'), ('price', '9990 RUB'), ('model', 'Nite Jogger')]
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | sneakers = dict(brand='Adidas', price='9990 RUB', model='Nite Jogger')
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Вывод ключей словаря с помощью цикла for
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | for key in sneakers:
 | 
						
						
						
							|  |  |     print(key)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # -> brand
 | 
						
						
						
							|  |  | # -> price
 | 
						
						
						
							|  |  | # -> model
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Вывод значений словаря с помощью цикла for
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | for value in sneakers.values():
 | 
						
						
						
							|  |  |     print(value)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # -> Adidas
 | 
						
						
						
							|  |  | # -> 9990 RUB
 | 
						
						
						
							|  |  | # -> Nite Jogger
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Вывод ключей и значений словаря с помощью цикла for
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | for key, value in sneakers.items():
 | 
						
						
						
							|  |  |     print(key, value)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # -> brand Adidas
 | 
						
						
						
							|  |  | # -> price 9990 RUB
 | 
						
						
						
							|  |  | # -> model Nite Jogger
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Метод setdefault() возвращает значение ключа, но если его нет, создает ключ с указанным значением (по умолчанию None).
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Метод setdefault()
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | student = dict(name='Ivan', age=12)
 | 
						
						
						
							|  |  | student.setdefault('lastname', 'Ivanov')
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(student) # -> {'name': 'Ivan', 'age': 12, 'lastname': 'Ivanov'}
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | Решение задач
 | 
						
						
						
							|  |  | 1. Пользователь
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Пользователь вводит имя, фамилия, возраст. Создайте словарь user и запишите данные пользователя в него.
 | 
						
						
						
							|  |  | firstname = input('Enter your firstname: ')
 | 
						
						
						
							|  |  | lastname = input('Enter your lastname: ')
 | 
						
						
						
							|  |  | age = input('Enter your age: ')
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | user = dict(firstname=firstname, lastname=lastname, age=age)
 | 
						
						
						
							|  |  | print(user)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 2. Найти слово
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Выведите самое часто встречающееся слово в введенной строке.
 | 
						
						
						
							|  |  | list_of_words = ['hello', 'hello', 'hi']
 | 
						
						
						
							|  |  | words = {}
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | for word in list_of_words:
 | 
						
						
						
							|  |  |     words[word] = words.get(word, 0) + 1
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | # Функция max может получать функцию в качестве второго аргумента
 | 
						
						
						
							|  |  | freq_word = max(words, key=words.get)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | print(freq_word)
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | Задачи для самостоятельного решения
 | 
						
						
						
							|  |  | 1. Фрукты
 | 
						
						
						
							|  |  | Пользователь вводит число K - количество фруктов. Затем он вводит K фруктов в формате: название фрукта и его количество. Добавьте все фрукты в словарь, где название фрукта - это ключ, а количество - значение. Например:
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 3 # Количество фруктов
 | 
						
						
						
							|  |  | >> Яблоко
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> Апельсин
 | 
						
						
						
							|  |  | >> 3
 | 
						
						
						
							|  |  | >> Мандарин
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> {'Яблоко': 3, 'Апельсин': 3, 'Мандарин': 10}
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 2. Старший и младший
 | 
						
						
						
							|  |  | Пользователь вводит число N. Затем он вводит личные данные (имя и возраст) своих N друзей. Создайте список friends и добавьте в него N словарей с ключами name и age. Найдите самого младшего из друзей и выведите его имя.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 3 # Количество друзей
 | 
						
						
						
							|  |  | >> Иван
 | 
						
						
						
							|  |  | >> 11
 | 
						
						
						
							|  |  | >> Саша
 | 
						
						
						
							|  |  | >> 12
 | 
						
						
						
							|  |  | >> Леша
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> Леша
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 3. Еще немного о друзьях
 | 
						
						
						
							|  |  | Пользователь вводит число N. Затем он вводит личные данные (имя и возраст) своих N друзей. Создайте список friends и добавьте в него N словарей с ключами name и age. Выведите средний возраст всех друзей и самое длинное имя.
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 3 # Количество друзей
 | 
						
						
						
							|  |  | >> Иван
 | 
						
						
						
							|  |  | >> 12
 | 
						
						
						
							|  |  | >> Иннокентий
 | 
						
						
						
							|  |  | >> 20
 | 
						
						
						
							|  |  | >> Леша
 | 
						
						
						
							|  |  | >> 10
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> 14
 | 
						
						
						
							|  |  | >> Иннокентий
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 4. Английский словарь
 | 
						
						
						
							|  |  | "Пора учить английский язык", - сказал себе Степа и решил написать программу для изучения английского языка. Программа получает на вход слово на английском языке и несколько его переводов на русском языке. Составьте словарь, в котором ключ - это английское слово, а значение - это список русских слов. В этой задаче нужно использовать строчный метод split().
 | 
						
						
						
							|  |  | ```python
 | 
						
						
						
							|  |  | # Ввод:
 | 
						
						
						
							|  |  | >> 4 # Количество слов
 | 
						
						
						
							|  |  | >> apple - яблоко
 | 
						
						
						
							|  |  | >> orange - оранжевый, рыжий, апельсин
 | 
						
						
						
							|  |  | >> grape - виноград, виноградный, гроздь
 | 
						
						
						
							|  |  | >> easy - простой, легкий, нетрудный, удобный, несложный
 | 
						
						
						
							|  |  | # Вывод:
 | 
						
						
						
							|  |  | >> {'apple': ['яблоко'], 'orange': ['оранжевый', 'рыжий', 'апельсин'], 'grape': ['виноград', 'виноградный', 'гроздь'], 'easy': ['простой', 'легкий', 'нетрудный', 'удобный', 'несложный']}
 | 
						
						
						
							|  |  | ```
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <TableOfContents>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | - [1. Ввод и вывод данных в Python](#1-ввод-и-вывод-данных-в-python)
 | 
						
						
						
							|  |  | - [2. Операторы в Python](#2-операторы-в-python)
 | 
						
						
						
							|  |  | - [3. Условный оператор в Python](#3-условный-оператор-в-python)
 | 
						
						
						
							|  |  | - [4. Цикл for в Python](#4-цикл-for-в-python)
 | 
						
						
						
							|  |  | - [5. Цикл while в Python](#5-цикл-while-в-python)
 | 
						
						
						
							|  |  | - [6. Списки в Python](#6-списки-в-python)
 | 
						
						
						
							|  |  | - [7. Методы работы со списками в Python](#7-методы-работы-со-списками-в-python)
 | 
						
						
						
							|  |  | - [8. Функции в python](#8-функции-в-python)
 | 
						
						
						
							|  |  | - [9. Словари в python](#9-словари-в-python)
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | </TableOfContents> |