Скачать "Python - Полный Курс по Python [15 ЧАСОВ]"

Скачайте это видео через UDL Client
Скачатьarrow down icon
  • Видео mp4 HD+ со звуком
  • Mp3 в максимальном качестве
  • Файлы любого размера
"videoThumbnail Python  - Полный Курс по Python [15 ЧАСОВ]
play-icon
Оглавление
|

Оглавление

0:00
Введение в курс Python
12:20
Установка Python
14:56
Установка редактора кода VS Code
20:34
Начало работы в VS Code
23:02
Изменение настроек редактора VS Code
30:28
Знакомство с интерпретатором Python
43:43
Установка и использование PyCharm
51:48
Самое важное в Python
55:02
Основные типы в Python
58:39
Практика в интерактивном интерпретаторе Python
1:04:19
Встроенные функции
1:11:13
Функция dir и атрибуты объектов
1:33:42
Отступы в Python
1:41:46
Форматирование кода Python и PEP8
1:57:30
Введение в функции
2:16:40
Выражения
2:29:27
Переменные
2:39:02
Динамическая типизация
2:48:10
Типы и структуры данных
2:54:22
Переменные и объекты
3:06:47
Строки - str
3:27:57
Целые числа - int
3:40:56
Числа с десятичной точкой - float
3:49:40
Логический тип - bool
4:00:27
Конвертация типов
4:12:31
Магические методы
4:27:38
Списки - list
4:40:10
Методы списков
5:19:28
Словари - dict
5:27:25
Изменение значений в словарях
5:34:46
Переменные в словарях
5:39:45
Длина словаря
6:02:25
ЗАДАЧА - Словари
6:10:19
Кортежи - tuple
6:31:46
Наборы - set
6:49:40
Методы наборов
7:18:56
Диапазоны - range
7:36:47
Сравнение типов последовательностей
7:43:32
Встроенная функция zip
7:53:52
Изменение объектов в Python
8:18:34
Функции
8:29:27
Самая корткая функция и pass
8:45:31
ЗАДАЧА - Функции
8:54:17
Аргументы функций
9:16:43
ЗАДАЧИ - Именованые аргументы функций
9:41:02
Колбэк функции
9:52:20
Правила работы с функциями
10:03:27
Области видимости
10:23:13
Операторы
10:29:27
Операторы и магические методы
10:43:09
ЗАДАЧА - Операторы
10:54:04
Ложные значения
11:02:49
Логические операторы
11:19:47
Оператор распаковки словаря
11:24:58
Объединение словарей
11:34:11
Соединение строк
11:44:28
Лямбда функции
11:56:52
Обработка ошибок
12:03:58
Получение информации об ошибке
12:19:47
Создание ошибок
12:25:08
ЗАДАЧА - Обработка ошибок
12:38:07
Распаковка списков и кортежей
12:59:24
Условные инструкции
13:29:15
ЗАДАЧА - Условные инструкции
13:45:51
Тернарный оператор
14:04:24
Циклы
14:08:47
Цикл for in
14:22:02
Цикл for in для наборов
14:25:23
ЗАДАЧИ - Цикл for in
14:45:45
Встроенная функция filter
14:56:57
Цикл while
15:00:35
Использование continue в циклах
15:05:07
ЗАДАЧА - Цикл while
15:14:31
Сокращенный цикл for in
15:31:39
ЗАДАЧИ - Сокращенный цикл for in
Теги видео
|

Теги видео

как выучить python
python для начинающих
уроки python
python
курс python
курс python для начинающих
курс python с нуля
Субтитры
|

Субтитры

00:00:00
Добро пожаловать на курс по Python
00:00:02
самому популярному и простому в изучении
00:00:05
языку программирования в этом видео
00:00:08
длительностью более 15 часов вы Изучите
00:00:11
все основы Python начиная от переменных
00:00:14
функций структур данных и заканчивая
00:00:16
циклами и обработкой ошибок Меня зовут
00:00:19
Богдан и я автор многих курсов по
00:00:22
программированию И я очень рад что вы
00:00:24
заинтересовались изучением Python в этом
00:00:26
курсе вы будете писать код
00:00:28
самостоятельно на своих комь
00:00:30
И для этого вам понадобится одна из
00:00:32
программ pycharm либо Visual Studio Code
00:00:35
в начале курса я расскажу как установить
00:00:37
и настроить обе программы и далее Вы
00:00:40
можете выбрать одну из этих программ для
00:00:42
дальнейшего написания кода на протяжении
00:00:44
курса это видео является частью полного
00:00:47
курса по Python длительностью более 40
00:00:49
часов Кроме этого доступна версия этого
00:00:52
курса на английском языке ссылки на оба
00:00:55
курса вы найдёте в описании под этим
00:00:57
видео в полном курсе вы Изучите объект
00:00:59
но ориентированное программирование
00:01:02
создание виртуальных сред для разработки
00:01:04
а также научитесь создавать
00:01:06
веб-приложение используя пакет jengo
00:01:09
научитесь выполнять обработку данных а
00:01:12
также создавать модели для машинного
00:01:15
обучения используя такие пакеты как
00:01:17
numpy pandas и pych Learn и Кроме этого
00:01:20
вы научитесь создавать игры используя
00:01:23
пакет P Game А теперь давайте начинать
00:01:25
курс по Python и не забудьте что все мои
00:01:28
остальные курсы доступны на мо сайте с
00:01:30
вас лайк и подписка и конечно задавайте
00:01:33
вопросы под этим видео Я буду стараться
00:01:35
на них
00:01:40
[музыка]
00:01:42
отвечать Добро пожаловать на полный курс
00:01:45
по языку программирования Python Я очень
00:01:48
рад видеть вас среди моих студентов
00:01:50
Давайте начинать И начнём с того Для
00:01:53
кого этот курс этот курс для тех кто
00:01:58
хочет начать изучать программирования
00:02:01
потому что язык Python считается самым
00:02:03
простым языком программирования и
00:02:05
понятным для изучения и в нём
00:02:07
используются такие конструкции как If
00:02:10
not and or и так далее То есть вы будете
00:02:15
писать код очень простыми словами
00:02:17
которые вы используете каждый день в
00:02:20
общении Python считается языком высокого
00:02:23
уровня И следовательно вам не нужно
00:02:26
глубоко знать как устроен компьютер для
00:02:29
того чтобы уметь писать программы на
00:02:31
языке
00:02:32
Python далее Python для тех кто хохочет
00:02:36
заниматься обработкой и анализом данных
00:02:39
либо же машинным обучением И для этого в
00:02:43
языке Python существует много встроенных
00:02:46
и внешних
00:02:48
библиотек Кроме этого этот курс для тех
00:02:51
кто планирует создавать веб-приложения с
00:02:54
помощью Python и существует такая
00:02:57
библиотека как Jango с помощью которой
00:03:00
можно создавать полноценные fullstack
00:03:04
веб-приложения Кроме этого этот курс для
00:03:07
тех кто желает писать самостоятельно
00:03:10
программы для автоматизации выполнения
00:03:13
различных задач на своём компьютере что
00:03:16
имеется в виду например допустим вам как
00:03:19
и мне следует время от времени выполнять
00:03:22
обработку видеофайлов и подготавливать
00:03:24
их например для публикации в Интернете
00:03:27
для этого можно написать небольшую
00:03:29
программу на языке Python которая
00:03:32
например будет выполнять компрессию
00:03:34
видеофайлов либо же перекодирование
00:03:36
файлов либо же добавление вступлений
00:03:39
Перед каждым
00:03:42
видеофайлов каких-то CSV либо же Excel
00:03:46
файлов и это средствами Python очень
00:03:50
легко
00:03:51
реализовать Кроме этого этот курс для
00:03:54
тех кто уже имеет базовое знание по
00:03:57
языку программирования Python но хочет
00:04:00
их расширить и углубить и в этом курсе
00:04:03
как и во всех моих других курсах я буду
00:04:05
концентрировать Ваше внимание именно на
00:04:07
понимании того как устроен язык
00:04:10
программирования Python потому что я
00:04:12
считаю что Только благодаря полному
00:04:15
пониманию того что происходит когда вы
00:04:17
пишете ту или иную программу вы сможете
00:04:20
Выучить язык программирования намного
00:04:22
быстрее и использовать его намного
00:04:26
эффективнее идём дальше И теперь давайте
00:04:28
поговорим о том как проходить данный
00:04:32
курс данный курс стоит проходить тем кто
00:04:37
подготовлен к тому что необходимо будет
00:04:39
писать код самостоятельно То есть просто
00:04:42
просмотрев видеофайлы вы ничего не
00:04:45
Изучите потому я крайне и крайне вам
00:04:48
рекомендую писать код
00:04:51
самостоятельно Во время этого курса я
00:04:54
буду вам показывать много разных
00:04:56
примеров и Кроме этого я буду выполнять
00:04:58
много различных блоков кода и я вам
00:05:01
советую всегда писать код самостоятельно
00:05:04
вместе со мной и Кроме этого кроме
00:05:07
запуска кода Вам следует модифицировать
00:05:11
его и снова запускать пока на 100% не
00:05:14
будет понятно что же происходит при
00:05:16
запуске кода Кроме этого вы можете
00:05:20
ставить задачи сами себе и придумывать
00:05:23
какие-то подходящие к той или иной теме
00:05:27
примеры и запускать их также
00:05:30
это вам поможет выучить ту или иную тему
00:05:33
намного более глубоко и быстрее Итак
00:05:36
писать код самостоятельно запускать его
00:05:39
модифицировать пока полностью не будет
00:05:42
понятно что же происходит в каждом
00:05:44
конкретном
00:05:45
случае Кроме этого я советую вам
00:05:48
научиться пользоваться поиском Google
00:05:51
Если вы ещё не умеете это делать и с
00:05:54
помощью поиска Google всегда практически
00:05:57
можно найти ответы на Любы любые вопросы
00:06:00
и Кроме этого найти решение тех или иных
00:06:04
проблем которые возникают у вас в
00:06:06
процессе например запуска кода также в
00:06:09
интернете доступно очень много
00:06:11
документации по различным темам и разным
00:06:14
библиотекам и я вам советую также
00:06:17
научиться пользоваться документацией То
00:06:19
есть если например Вам необходимо решить
00:06:21
какую-то задачу и вы не знаете как её
00:06:24
решать я советую вам начинать изучение
00:06:27
данного вопроса с поиска в интернете
00:06:31
находите документацию по той или иной
00:06:33
теме по той или иной функции смотрите на
00:06:36
примеры берите эти примеры переделывай
00:06:39
их и на своём компьютере запускайте пока
00:06:42
полностью не разберётесь в том как
00:06:44
реализовать тот или иной функционал
00:06:47
Кроме этого на таких сайтах как Stack
00:06:49
Overflow люди задают разные вопросы и
00:06:52
получают на них ответы и Очень вероятно
00:06:55
что если у вас возникла какая-то
00:06:57
проблема возникла например ошибка в
00:07:00
процессе запуска кода то такая же ошибка
00:07:02
возникла и у других и уже какие-то
00:07:06
коллеги посоветовали как решать ту или
00:07:09
иную проблему снова таки научитесь
00:07:12
пользоваться поиском Google и для того
00:07:14
чтобы это делать эффективно вам просто
00:07:16
необходимо как правило скопировать
00:07:18
например часть ошибки добавить контекст
00:07:21
в котором возникла эта ошибка и искать
00:07:24
таким образом то или иное решение
00:07:27
проблемы кроме этого я крайне Рекомендую
00:07:30
вам использовать notion либо же другие
00:07:33
программы для конспектирования при этом
00:07:36
я Рекомендую вам выполнять
00:07:38
конспектирование в своей интерпретации
00:07:41
То есть если во время прохождения этого
00:07:43
курса вы увидели то что очень важно и
00:07:47
например то на ЧМ я сделал акцент Вам
00:07:50
следует поставить видео на паузу и
00:07:53
записать тот или иной момент
00:07:56
самостоятельно в своей интерпретации и
00:07:59
таким образом в конце курса у вас уже
00:08:02
будет конспект к которому вы сможете
00:08:04
всегда вернуться для того чтобы освежить
00:08:07
например в памяти те или иные моменты и
00:08:10
таким образом вы
00:08:14
структурирует использовать полученные
00:08:16
знания намного более
00:08:18
эффективно идём дальше И теперь
00:08:20
поговорим о том как не надо проходить
00:08:22
данный курс здесь комментарии как всегда
00:08:25
излишние и для прохождения этого курса
00:08:29
как и для других курсов следует
00:08:31
полностью концентрироваться на обучении
00:08:34
выключайте мобильный телефон
00:08:36
откладываете в сторону все гаджеты и
00:08:38
концентрируется на обучении если у вас
00:08:41
не получается концентрироваться
00:08:43
длительное время например 2-3 часа
00:08:45
делайте перерывы и после перерывов снова
00:08:49
продолжаете Через несколько дней такого
00:08:51
подхода вы втяни скажем так в обучении и
00:08:54
далее процесс пойдёт намного проще
00:08:57
потому снова таки концентрация полное
00:08:59
внимание и выполнение всех задач вместе
00:09:02
со мной и таким образом на протяжении
00:09:05
нескольких недель вы сможете пройти весь
00:09:07
курс и изучить язык программирования
00:09:10
Python до такого уровня который позволит
00:09:12
вам самостоятельно писать
00:09:16
программы Итак давайте начинать И начнём
00:09:18
мы с проверки того установлен ли Python
00:09:21
уже на вашем компьютере и если нет вы
00:09:24
его
00:09:28
Установите
00:09:33
Где же выполнять и писать код Python Я
00:09:37
рекомендую выполнять все упражнения
00:09:40
непосредственно на своих компьютерах
00:09:42
Хотя с другой стороны существует много
00:09:44
разных онлайн-сервисов которые позволяют
00:09:47
писать программы непосредственно в веб
00:09:49
браузере и Выполнять их там же но я вам
00:09:53
крайне советую писать код на своих
00:09:55
компьютерах и выполнять его на своих
00:09:58
компьютерах делая Таким образом у вас
00:10:00
появляется полный контроль над средой
00:10:04
разработки и например локально вы всегда
00:10:06
сможете посмотреть на ту или иную ошибку
00:10:09
которая возникает в процессе запуска
00:10:11
кода А вот онлайн редакторы зачастую
00:10:14
такой возможности не дают потому я
00:10:17
крайне Рекомендую вам писать код
00:10:19
самостоятельно на компьютерах И для
00:10:21
этого курса вам понадобится установка
00:10:24
Python на компьютере с помощью команды
00:10:27
Python Мими можно проверить установлен
00:10:30
ли уже Python на вашем компьютере если
00:10:34
же версия Python не отобразится в выводе
00:10:37
то нужно установить Python Итак Давайте
00:10:40
попробуем это на macos я буду
00:10:42
использовать терминал под названием itm
00:10:45
2 Хотя доступна также программа по
00:10:47
умолчанию Terminal но в itm 2 существует
00:10:51
много разных различных тем которые
00:10:53
позволяют изменять внешний вид
00:10:55
интерфейса терминала Если вы
00:10:57
пользователь Windows то вы можете
00:11:00
использовать powershell Это программа
00:11:02
которая поставляется с Windows по
00:11:04
умолчанию и в ней доступны практически
00:11:06
все те команды которые я буду вводить у
00:11:08
себя в терминале Итак Откройте программу
00:11:11
терминал и здесь введите команду Python
00:11:14
- - version здесь я вижу ответ Command
00:11:18
not found Python Это означает что Python
00:11:22
не установлен на моём компьютере Но если
00:11:25
я Введу команду Python 3 - - Version то
00:11:29
я получу версию Python
00:11:32
396 ранее на macos инсталлировать Две
00:11:36
версии Python вторая и третья но в
00:11:39
последних версиях macos вторая версия
00:11:41
уже недоступна и вот с помощью этой
00:11:44
команды на macos проверяется наличие
00:11:46
именно второй версии А вот все операции
00:11:49
с третьей версие должны выполняться
00:11:51
используя команду Python 3 на Windows
00:11:55
Вам следует использовать просто команду
00:11:57
Python - - Version и если вы в
00:12:00
результате введения этой команды не
00:12:02
видите версию Python как в моём случае
00:12:05
то это означает что Python не установлен
00:12:08
на вашем компьютере на моём компьютере
00:12:10
сейчас версия 3.96 но я думаю что имеет
00:12:13
смысл обновить её потому что на момент
00:12:15
записи этого видео доступна версия
00:12:23
311 Итак как же установить
00:12:26
Python установка Python возможно с сайта
00:12:30
python.org
00:12:31
downloads Зайдите на этот сайт и найдите
00:12:35
версию Python для вашей операционной
00:12:38
системы Если вы пользователь Windows то
00:12:41
обязательно во время инсталляции Не
00:12:43
забудьте поставить галочку Add Python XZ
00:12:46
to path вот эту галочку эта галочка
00:12:50
позволит вам получать доступ к
00:12:53
исполняемому файлу Python
00:12:55
непосредственно в терминале путём
00:12:57
введения команды Python как мы только
00:12:59
что делали для проверки версии Python то
00:13:03
есть не забудьте поставить вот эту
00:13:04
галочку во время инсталляции программы
00:13:06
Python на вашем компьютере если вы
00:13:09
используете Windows сейчас я выполню
00:13:12
инсталляцию новой версии Python на моём
00:13:14
компьютере для этого я перейду в
00:13:16
веб-браузер и здесь я просто Введу
00:13:19
Python
00:13:20
download Вот так и перейду По первой
00:13:24
ссылке download
00:13:27
Python
00:13:29
как я уже отметил последняя версия 311 в
00:13:32
моём случае и сразу же я вижу версию для
00:13:36
macos Итак нажимаем на кнопку download
00:13:39
Python
00:13:40
3.11.0 программа скачивается и теперь
00:13:44
давайте установим
00:13:48
Python continue продолжить continue
00:13:52
согласиться с лицензией agree и
00:13:56
Install Install software
00:13:59
Итак идёт
00:14:00
инсталляция
00:14:03
Окей запись файлов открылась папка с
00:14:06
некоторыми документами и например Здесь
00:14:08
есть ссылка на страницу документации по
00:14:11
версии
00:14:13
3.11.0 и теперь для завершения
00:14:16
инсталляции Я нажму Close и перемещён
00:14:20
най файл в корзину теперь я обратно
00:14:23
вернусь в терминал и в терминале снова
00:14:25
Введу ту же команду Python 3 - -
00:14:29
Я всё ещё вижу предыдущую версию Python
00:14:31
и для того чтобы я увидел новую версию
00:14:34
необходимо выйти из этого окна терминала
00:14:36
Exit и открыть окно терминала снова и
00:14:40
здесь повторно ввести команду Python 3 -
00:14:43
- version и я уже вижу только что
00:14:46
установленную версию Python 3110 в моём
00:14:50
случае Вы должны увидеть либо эту либо
00:14:53
же более новую версию
00:14:57
Python
00:15:00
Итак Python был успешно установлен и
00:15:03
теперь давайте поговорим о том как же мы
00:15:05
будем запускать код
00:15:07
Python мы будем запускать код Python
00:15:11
непосредственно в редакторе кода Visual
00:15:14
Studio Code и это программа которую Вы
00:15:17
также должны будете установить если она
00:15:19
ещё у вас не установлена кроме этой
00:15:22
программы мы будем использовать
00:15:24
расширение Code Runner с помощью
00:15:26
которого можно очень легко и быстро
00:15:29
выполнять те или иные блоки кода
00:15:31
написанные вами непосредственно в
00:15:34
редакторе кроме редактора кода Visual
00:15:36
Studio code для работы с Python доступна
00:15:40
интегрированная среда разработки IDE под
00:15:43
названием P Sharm эта программа очень
00:15:46
популярна среди разработчиков Python и
00:15:49
позже в этом курсе Мы её также установим
00:15:52
и будем писать программы непосредственно
00:15:54
в ней Ну а сейчас мы установим редактор
00:15:57
кода Visual Studio code и расширение
00:15:59
Code Runner на моём компьютере сейчас vs
00:16:02
Code отсутствует и поэтому я перейду в
00:16:05
интернет и скачаю его с официального
00:16:07
сайта здесь я Введу в поиске vs Code и
00:16:11
перейду По первой ссылке вот программа и
00:16:15
я сразу вижу ссылку скачать программу
00:16:17
для macos эта программа бесплатна и она
00:16:22
очень удобно в том плане что существует
00:16:25
много разных расширений Например можно
00:16:28
инсталлировать разные темы
00:16:30
инсталлировать средства поддержки разных
00:16:32
языков программирования Python
00:16:34
JavaScript c+ Plus и так далее Итак
00:16:37
давайте скачаем vs
00:16:40
Code программа скачивается Итак архив
00:16:44
был скачен Давайте его распакуем и
00:16:46
установим программу vs
00:16:48
Code и для установки на macos следует
00:16:52
просто перетянуть эту программу в папку
00:16:55
applications и теперь давайте откроем vs
00:16:57
code
00:16:59
редактор успешно запустился Давайте
00:17:06
развернёт на macos Command Plus и
00:17:09
Давайте уберём эту галочку Show Welcome
00:17:12
page on startup и первым делом Давайте
00:17:15
изменим тему в редакторе vs code для
00:17:18
этого перейдите Code preferences и здесь
00:17:22
выберите Color
00:17:23
Theme здесь Давайте найдём тему под
00:17:27
названием Blue Log
00:17:30
а именно BL Loco Dark Вот это и Давайте
00:17:34
установим её Итак тема
00:17:39
инсталира абсолютно любую тему которую
00:17:42
вы хотите светлую тёмную любую роли не
00:17:45
играет и теперь давайте также установим
00:17:49
тему для иконок File icon Theme И для
00:17:52
этого здесь выберем пункт Меню Install
00:17:55
additional file
00:17:57
icones И найдём тему под названием
00:18:00
material icons она как правило будет
00:18:02
первой в этом списке и нажмите кнопку
00:18:06
Install тема
00:18:11
инсталира Итак выбираем material icon
00:18:15
Theme тема была выбрана Давайте закроем
00:18:18
эту вкладку и теперь всё готово для того
00:18:20
чтобы начинать использование vs Code И
00:18:23
начнём мы с создания новой папки в
00:18:25
которой мы создадим файл с расширением
00:18:29
Python Итак давайте нажмём Open Folder и
00:18:33
на рабочем столе в моём случае я создам
00:18:35
папку New Folder под названием Python
00:18:38
вот таким образом вы можете создать
00:18:41
папку где угодно и назвать её как хотите
00:18:43
Я назову её Python и создам папку на
00:18:46
рабочем столе Create и нажимаем Open
00:18:49
открыть эту папку в редакторе кода
00:18:52
нажимаем здесь о и выбираем галочкой
00:18:58
parent Folder Desktop Yes trust the то
00:19:01
есть мы даём разрешение доверять авторам
00:19:05
файлов которые находятся в папке которую
00:19:07
мы открыли Итак слева появилась папка
00:19:10
Python Вот её название и теперь в этой
00:19:13
папке мы можем создавать новые файлы
00:19:16
используя вот эту иконку либо создавать
00:19:18
новые подпапки используя эту иконку
00:19:22
Давайте создадим файл под названием
00:19:25
main.py вот таким образом Как видите
00:19:28
После добавления расширения vs Code
00:19:31
автоматически добавил иконку Python для
00:19:33
этого файла нажимаем Enter файл был
00:19:36
создан И теперь этот файл доступен для
00:19:39
редактирования справа в углу мы видим
00:19:42
предложение установить рекомендуемое
00:19:45
расширение для языка программирования
00:19:47
Python и Я рекомендую воспользоваться
00:19:50
этим советом Давайте нажмём Install
00:19:53
нажимаем Install и устанавливается
00:19:56
расширение под названием P
00:19:58
это расширение было разработано
00:20:00
Microsoft как собственно говоря и vs
00:20:03
Code и это расширение очень популярно вы
00:20:06
видите здесь количество скачивания этого
00:20:08
расширения это расширение включает
00:20:10
Intell Sense это те подсказки которые вы
00:20:13
будете видеть в процессе написания кода
00:20:15
Python также это расширение включает НН
00:20:19
- это анализ кода на наличие ошибок и
00:20:22
также отладчик кода Python Итак
00:20:25
расширение было установлено Давайте
00:20:27
закроем эту вкладку и теперь всё готово
00:20:30
для того чтобы начинать написание кода
00:20:37
Python для начала Я вас познакомлю с
00:20:40
интерфейсом vscode слева находится
00:20:43
Explorer и он содержит все файлы и папки
00:20:47
вашего текущего проекта наш текущий
00:20:50
проект называется Python можно скрыть
00:20:52
Explorer нажав на эту иконку либо же
00:20:55
используя комбинацию клавиш Ctrl B на
00:20:58
Windows либо же Command B на Mac вот
00:21:00
таким образом можно менять размер шрифта
00:21:04
Ctrl + - на Windows либо же Command п
00:21:07
минус на Mac кроме эксплорера также
00:21:11
здесь доступна функция поиска по файлам
00:21:14
мы воспользуемся ею позже когда у нас
00:21:16
уже будет несколько файлов и можно будет
00:21:18
выполнять поиск среди этих файлов также
00:21:21
нажав на эти три точки в моём случае и
00:21:23
перейдя на extensions можно посмотреть
00:21:26
Какие расширения в vs Code уже
00:21:29
установлены и При желании можно найти
00:21:32
новые расширения и установить их и
00:21:35
Давайте установим расширение о котором я
00:21:37
уже ранее говорил оно называется Code
00:21:39
Runner с помощью этого расширения мы
00:21:42
будем запускать код Python
00:21:44
непосредственно в редакторе кода Итак
00:21:46
Найдите это расширение Code Runner и
00:21:49
установите его Install расширение
00:21:51
устанавливается и вы видите что с
00:21:53
помощью него можно запускать C c+ + Java
00:21:59
JavaScript CDE То есть он поддерживает
00:22:01
много разных языков программирования
00:22:04
после установки Code Runner у вас справа
00:22:06
в углу появится Вот такой треугольник с
00:22:09
помощью которого можно выполнять тот или
00:22:12
иной файл с блоком кода и Code Runner
00:22:16
будет использовать соответствующий
00:22:18
интерпретатор и в нашем случае код будет
00:22:21
выполняться с помощью интерпретатора
00:22:23
Python который мы ранее с вами уже
00:22:26
установили выполнять код можно будет
00:22:29
либо нажав на эту кнопку либо же нажав
00:22:31
комбинацию клавиш которая показана в
00:22:33
круглых скобках после команды Run Code
00:22:36
то есть вот здесь на Mac - это
00:22:39
комбинация клавиш Option либо Alt Ctrl N
00:22:43
на Windows вы увидите комбинацию клавиш
00:22:46
в этих же круглых скобках Итак мы
00:22:48
успешно установили расширение Code
00:22:50
Runner а также добавили тему для
00:22:54
отображения в интерфейсе и Кроме этого
00:22:57
добавили тему для
00:23:04
[музыка]
00:23:05
иконок только что Вы установили редактор
00:23:08
кода Visual Studio Code если он у вас не
00:23:10
был ранее установлен и я показал вам как
00:23:13
установить ту тему которую я буду
00:23:15
использовать в этом курсе Кроме этого вы
00:23:18
добавили тему для иконок и установили
00:23:20
расширение Cold Runner в этом уроке Я
00:23:24
хочу показать вам как вы можете изменять
00:23:26
настройки редактора потому что vs Code
00:23:29
очень легко подаётся изменением настроек
00:23:32
и можно изменять практически всё что
00:23:34
угодно отступы размеры шрифта и так
00:23:37
далее в этом курсе я буду использовать
00:23:40
некоторые настройки о которых расскажу в
00:23:42
этом видео Итак Давайте приступим
00:23:45
сначала Давайте уберём вот эту верхнюю
00:23:47
панель потому что она занимает много
00:23:49
места но для начала Давайте откроем
00:23:51
настройки редактора для этого перейдите
00:23:54
в coe preferences settings либо же можно
00:23:57
использовать комбинацию клавиш на Mac -
00:23:59
это Command запятая на Windows Ctrl
00:24:02
запятая то есть если закрыть эту вкладку
00:24:04
и нажать комбинацию клавиш то откроется
00:24:07
вкладка
00:24:08
settings здесь можно изменять настройки
00:24:11
редактора настройки окна настройки
00:24:13
функций расширений и так далее но мы
00:24:17
откроем сейчас файл в котором
00:24:19
непосредственно сохраняются все
00:24:20
настройки редактора для этого нажмите
00:24:23
вот на эту иконку справа в верхнем углу
00:24:26
Open settings и откроется вот такой файл
00:24:29
давайте сделаем его побольше и Как
00:24:31
видите формат этого файла json это видно
00:24:35
внизу и в этом файле уже есть некоторые
00:24:39
настройки например workbench Color Theme
00:24:42
Blue Loc Dark это название той темы
00:24:45
которую мы сейчас используем например
00:24:47
Windows Zoom level указывает на текущее
00:24:51
увеличение размера шрифта и если я
00:24:54
например сделаю окно меньше то вы
00:24:56
увидите что эта настройка сразу же
00:24:59
изменится То есть это именно тот файл в
00:25:01
котором сохраняются все настройки
00:25:05
редактора мы сейчас также видим здесь
00:25:07
настройку темы для иконок workbench icon
00:25:11
Theme и название темы для иконок
00:25:13
material icon Theme Итак давайте изменим
00:25:17
некоторые другие настройки для начала
00:25:20
как я уже ранее отметил мы уберём вот
00:25:23
эту широкую верхнюю панель с помощью
00:25:25
которой можно переключать вид редактора
00:25:28
Давайте нажмём правой кнопкой мыши и
00:25:30
уберём галочку layout controls вот эту
00:25:33
галочку Итак убираем её панель стало
00:25:36
меньше и теперь в файле settings.js
00:25:39
автоматически появилась Вот такая строка
00:25:42
workbench layout Control enabled
00:25:45
false если бы мы добавили эту строку
00:25:48
вручную я выберу эту строку скопирую её
00:25:52
удалю отсюда сохраню файл на Windows crl
00:25:55
S на macos Command
00:25:58
файл был сохранён и Как видите Широкая
00:26:01
панель сверху снова появилась Давайте
00:26:03
снова добавим то что мы скопировали
00:26:06
сохраняем файл панель исчезла Итак кроме
00:26:09
этих настроек я буду использовать
00:26:12
некоторые другие настройки и для того
00:26:14
чтобы сэкономить время Я подготовил файл
00:26:18
этот файл вы найдёте присоединённый к
00:26:20
этой лекции и в этом файле будут
00:26:24
некоторые другие настройки которые я
00:26:26
буду использовать Итак
00:26:28
после этой строки Обратите внимание что
00:26:30
здесь есть запятая и до закрывающей
00:26:34
фигурной скобки перейдите на новую
00:26:36
строку и Вставьте содержимое файла вот
00:26:39
таким образом Итак что я изменяю с
00:26:43
помощью этих настроек во-первых я
00:26:46
изменяю размер шрифта непосредственно в
00:26:49
редакторе Это я делаю для того чтобы
00:26:52
размер окружающих элементов например вот
00:26:54
этих иконок был намного меньше чем сам
00:26:58
текст снова таки для экономии места
00:27:01
далее я увеличиваю немного размер между
00:27:04
символами то есть расстояние между
00:27:06
символами далее я изменяю размер шрифта
00:27:10
в встроенном терминале в редакторе кода
00:27:13
далее на следующей строке я скрываю
00:27:16
уменьшенную версию текущего файла
00:27:18
который отображается справа в углу для
00:27:21
длинных файлов имеет смысл показывать её
00:27:24
на экране для коротких файлов Я не вижу
00:27:27
смысла в использовании этой функции
00:27:29
потому я её скрываю далее на этой строке
00:27:33
я увеличиваю задержку отображение
00:27:37
всплывающей подсказки что имеется в виду
00:27:40
Давайте перейдём в fil main.py и здесь я
00:27:43
напишу Print и теперь если я наведу
00:27:45
мышку на Print практически мгновенно
00:27:48
отобразится большая подсказка с
00:27:50
описанием функции Print и Как видите эта
00:27:54
подсказка даже закрыла непосредственно
00:27:56
сам текст
00:27:58
для меня это неудобно потому с помощью
00:28:01
этой настройки я увеличиваю задержку на
00:28:04
полторы секунды и именно после такого
00:28:06
интервала будет показываться Вот эта
00:28:09
всплывающая
00:28:11
подсказка далее следующая настройка -
00:28:14
это Editor glif margin с помощью этой
00:28:16
настройки вы видите значение false я
00:28:19
убираю большой отступ перед номерами
00:28:23
строк Как видите сейчас у нас есть
00:28:25
отступ между этой панелью и номером
00:28:28
строки и при наведении на этот отступ
00:28:32
появляется красная точка И с помощью
00:28:35
этих точек можно ставить выполнение кода
00:28:37
на паузу в некоторых местах и это
00:28:39
используется при отладке кода Давайте
00:28:42
уберём эту точку и снова таки с помощью
00:28:45
этой настройки мы просто уберём пока эту
00:28:47
панель для того чтобы больше места было
00:28:50
для кода Вы можете эти настройки не
00:28:52
добавлять я их добавляю для того чтобы
00:28:55
максимум места на экране в э этих видео
00:28:57
уроках занимал непосредственно код и
00:29:00
чтобы вам было удобнее с ним работать
00:29:02
Кроме этого далее я немного изменю цвета
00:29:06
текущей темы и Например я сделаю не
00:29:08
такой яркой вот эту нижнюю линию и ниже
00:29:12
также я изменю цвета для переменных на
00:29:16
более яркий снова таки для того чтобы
00:29:19
вам было удобнее работать с кодом Итак
00:29:22
это те настройки которые мы сейчас
00:29:25
добавим и вы можете их не добавлять При
00:29:27
желании Но если вы хотите чтобы у вас
00:29:30
редактор выглядел точно так же как у
00:29:31
меня Я рекомендую Вам их добавить Итак
00:29:34
сохраняем изменения в этом файле
00:29:36
напоминаю Ctrl S на Windows либо же
00:29:39
Command S на Mac Сейчас вы видите вот
00:29:41
здесь белую точку она означает что
00:29:44
изменения в этом файле пока не были
00:29:46
сохранены Итак сохраняем изменения
00:29:49
настройки были применены Давайте изменим
00:29:52
общий масштаб Ctrl - на Windows либо же
00:29:54
Command - на Mac и закроем fil
00:29:57
settings.js и закроем вкладку settings И
00:30:01
теперь у нас уже больше места
00:30:03
непосредственно для кода в файле main.py
00:30:05
и Как видите слева большой отступ
00:30:09
исчез Итак Это всё что касается
00:30:12
начальной настройки vs Code и того как
00:30:15
можно изменять настройки в редакторе и
00:30:17
при необходимости вы всегда можете
00:30:20
изменять файл settings.js и добавлять в
00:30:23
него какие-то новые настройки либо же
00:30:24
изменять
00:30:26
существующее
00:30:30
[музыка]
00:30:32
только что мы с вами вместе изменили
00:30:34
настройки в редакторе кода Visual Studio
00:30:36
Code и теперь вы знаете как работать с
00:30:38
файлом settings.js и сейчас давайте
00:30:42
вернёмся в терминал и в терминале
00:30:45
запустим интерактивный интерпретатор
00:30:47
Python ранее в терминале Вы уже
00:30:49
убедились в том что Python установлен на
00:30:52
вашем компьютере Давайте очистим
00:30:54
терминал на Windows Вы можете ввести
00:30:56
команду LS на Mac комбинацию клавиш
00:30:59
Command K и здесь я Введу Python 3 на
00:31:03
Windows введите просто Python и нажмите
00:31:06
Enter запустится интерактивный
00:31:09
интерпретатор Python здесь я вижу
00:31:11
детальную информацию о версии Python в
00:31:14
моём случае это версия
00:31:16
3110 далее я вижу clank и версию C lank
00:31:22
1300 Это означает что сам интерпретатор
00:31:26
Python написан с использованием языка
00:31:29
программирования C C
00:31:32
lank и далее вы видите подсказку можно
00:31:35
набрать Help copyright credits либо
00:31:37
license чтобы получить больше информации
00:31:41
Давайте напишем copyright можно написать
00:31:43
часть команды и нажать Tab и Python за
00:31:47
вас автоматически дополнит ту или иную
00:31:49
команду Как видите после copyright были
00:31:52
добавлены круглые скобки Это означает
00:31:55
что copyright - это функция а функцию
00:31:57
необходимо вызвать чтобы она выполнила
00:32:00
потому были добавлены две круглые скобки
00:32:03
нажимаем Enter и здесь вы увидите
00:32:06
информацию об авторских правах и отсюда
00:32:09
видно что Python разрабатывается разными
00:32:12
организациями которые указаны вот
00:32:15
здесь очищу терминал и теперь давайте
00:32:18
введём здесь например license это также
00:32:21
функция и её необходимо вызвать и здесь
00:32:24
вы увидите информацию о лицензии
00:32:27
касательно использования программы
00:32:29
Python потому что Python - это тоже
00:32:31
программа то здесь есть некоторая
00:32:32
история с которой если хотите вы можете
00:32:34
ознакомиться Итак Давайте закроем этот
00:32:37
вывод необходимо нажать клавишу Q и
00:32:40
нажать Enter и очистим терминал Command
00:32:44
K на Mac и теперь Давайте напишем
00:32:47
некоторые команды которые интерпретатор
00:32:49
Python будет за вас выполнять например
00:32:52
напишем 2 + 2 получаю 4 Давайте напишем
00:32:57
2 + 2 без пробелов тоже получаю четыре
00:33:00
то Есть такое выражение также
00:33:03
допускается напишем Print пара круглых
00:33:06
скобок и в них напишем например
00:33:09
10 эта команда выведет число 10 в
00:33:12
терминал Давайте напишем Print пара
00:33:15
круглых скобок и в них напишем строку
00:33:18
Богдан в одинарных кавычках вы можете
00:33:21
написать своё имя нажимаю Enter вижу в
00:33:23
терминале Богдан то есть видите что в
00:33:26
интерактивном интерпретаторе Вы можете
00:33:29
посылать некоторые команды
00:33:30
интерпретатору он их будет
00:33:32
интерпретировать и выполнять А результат
00:33:35
выполнения вы будете видеть
00:33:36
непосредственно в терминале вот так
00:33:39
работает интерактивный интерпретатор
00:33:41
Python и в нём можно пробовать те или
00:33:44
иные функции Python и на протяжении
00:33:46
этого курса Я советую вам время от
00:33:48
времени возвращаться в терминал и
00:33:51
запускать интерпретатор Python и
00:33:52
выполнять в нём некоторые команды
00:33:55
Давайте закроем его пишем Exit это также
00:33:58
функция и эта функция выйдет из
00:34:01
интерпретатора Python и Давайте очистим
00:34:09
терминал только что вы познакомились с
00:34:12
тем как работать с интерактивным
00:34:14
интерпретатором Python и теперь давайте
00:34:16
вернёмся в Редактор кода Visual Studio
00:34:18
Code и попробуем выполнить код Python с
00:34:21
помощью расширения Code Runner Итак
00:34:24
переходим в Редактор кода Visual Studio
00:34:27
coe и Давайте в файле main.py напишем
00:34:30
Print пара круглых скобок и в них
00:34:33
напишем например своё имя я напишу
00:34:36
Богдан Как видите здесь появилась
00:34:38
всплывающая подсказка в которой видно
00:34:41
что функция Print ожидает от Вас одно
00:34:44
либо несколько значений Итак мы значени
00:34:47
добавили и теперь Давайте сохраним этот
00:34:49
файл напоминаю комбинация клавиш Ctrl S
00:34:52
на Windows либо же Command S на Mac вы
00:34:55
всегда можете перейти в файл и здесь
00:34:58
выбрать Save но я предпочитаю
00:35:00
использовать комбинации клавиш потому
00:35:02
что это экономит много времени и вам
00:35:04
также рекомендую выучить основные
00:35:07
комбинации клавиш в vscode вы всегда
00:35:10
можете найти Какие комбинации клавиш
00:35:12
доступны перейдя в настройки и выбрав
00:35:15
здесь Keyboard shortcuts и вы увидите
00:35:18
длинный список всех комбинаций клавиш
00:35:20
которые поддерживаются в редакторе и при
00:35:23
необходимости их даже можно изменять на
00:35:25
другие Я лично использую около двадцати
00:35:29
разных комбинаций которые позволяют
00:35:31
ускорить процесс редактирования файлов и
00:35:33
основные из них я буду упоминать на
00:35:35
протяжении этого курса Итак Давайте
00:35:38
закроем эту вкладку и теперь запустим
00:35:40
этот код предварительно сохранив файл
00:35:43
для этого напоминаю используем
00:35:44
комбинацию клавиш Ctrl S на Windows либо
00:35:47
же Command S на Mac файл был сохранён И
00:35:50
теперь нажимаем на эту иконку с помощью
00:35:53
которой мы можем выполнить этот текущий
00:35:56
файл в Code Runner Итак запускаем код
00:35:59
Run Code и я увижу что автоматически
00:36:03
была открыта дополнительная панель снизу
00:36:06
и здесь видна вкладка output и в этом
00:36:09
выводе я вижу следующую информацию
00:36:12
Running Python - U и далее путь к файлу
00:36:17
в моём случае файл находится в папке
00:36:20
Python и эта папка находится на рабочем
00:36:22
столе и здесь я вижу вывод bsh
00:36:29
После этого я вижу Exit with
00:36:32
127 Это означает что Code Runner не смог
00:36:37
выполнить этот файл в моём случае если
00:36:40
вы работаете на Windows То вероятно что
00:36:42
в вашем случае всё прошло успешно а
00:36:45
проблема на моём компьютере возникла
00:36:47
из-за того что интерпретатор Python у
00:36:49
меня недоступен а вместо него есть
00:36:52
интерпретатор Python 3 и для того чтобы
00:36:56
выполнялся корректно на macos Мне
00:36:59
необходимо изменить название
00:37:01
интерпретатора с помощью которого мы
00:37:03
будем выполнять код Python Для этого мне
00:37:06
необходимо снова открыть настройки
00:37:08
использую комбинацию клавиш comand
00:37:10
запятая на Mac на Windows Ctrl затая
00:37:14
пока закрою эту нижнюю панель и здесь
00:37:17
Введу Code
00:37:19
Run здесь прок ниже до секции
00:37:23
exec и е необходимо изменить фале
00:37:27
settings.js нажимаем на этой ссылке и мы
00:37:30
перейдём в File settings.js здесь нажму
00:37:33
Escape чтобы скрыть всплывающее окно и
00:37:36
Как видите здесь появился блок Code
00:37:38
Runner executor Map в котором указано
00:37:41
как выполнять те или иные типы файлов
00:37:44
например JavaScript файлы выполняются с
00:37:47
помощью интерпретатора node Java
00:37:50
выполняются с помощью такой команды и
00:37:53
так далее здесь необходимо найти строку
00:37:55
Python в моём случае значением является
00:37:58
Python - U и заменить Python - U на
00:38:01
Python 3 - U на Windows вам это делать
00:38:05
Не нужно потому что у вас интерпретатор
00:38:07
Python только один таким образом я снова
00:38:10
внёс изменени в файл настроек Давайте
00:38:12
сохраним изменения в этом файле и я
00:38:14
закрою эту вкладку Ну а эту вкладку я
00:38:17
пока оставлю здесь видимой и вернусь в
00:38:20
фй main.py И попытаюсь его снова
00:38:23
выполнить с помощью Code Runner нажимаю
00:38:25
снова на иконку И теперь я уже вижу
00:38:29
результат Running Python 3 то есть уже
00:38:32
мы используем интерпретатор Python 3 И
00:38:36
теперь я ниже вижу вывод в терминале и в
00:38:39
моём случае я вижу просто моё имя это то
00:38:42
что делает функция Print она выводит
00:38:45
результат вот этого выражения в
00:38:48
терминал И после этого я вижу секцию
00:38:51
Exit
00:38:53
withe означает что программа успешно
00:38:56
завершила свою работу и это касается не
00:39:00
только программы Code Runner в данном
00:39:02
случае эта программа просто выполняет
00:39:03
другую программу а именно Python 3 это
00:39:07
касается всех программ То есть если
00:39:09
программа успешно выполнила свою работу
00:39:12
и завершилась без ошибок то программа
00:39:15
завершается с кодом ноль до этого я
00:39:19
видел другой код вот такой и не нулевой
00:39:22
код означал что возникла ошибка в
00:39:25
процессе выполнения той или иной
00:39:27
программы Ну а теперь Давайте внесём ещё
00:39:30
некоторые изменения в настройке Code
00:39:32
Runner и эти изменения советую внести
00:39:35
всем из вас и мы уберём вот эту строку и
00:39:39
эту строку чтобы они не мешали нам
00:39:41
анализировать результат в выводе И для
00:39:44
этого перейдём на вкладку settings
00:39:47
закроем пока эту панель и в настройках
00:39:51
необходимо найти
00:39:53
следующее первое мы будем очищать преду
00:39:56
вывод Следовательно Давайте поставим
00:39:58
галочку вот здесь cun cle Out очистить
00:40:02
предыдущий вывод поставили галочку здесь
00:40:04
далее Нам необходимо скрыть сообщения
00:40:08
которые выводятся перед кодом и после А
00:40:11
это настраивается вот здесь Code Run
00:40:14
execution
00:40:16
M
00:40:19
EX убираем эту галочку и сообщения не
00:40:23
будут отображаться кроме этого можно
00:40:25
настроить код R таким образом что он
00:40:28
будет автоматически сохранять файл перед
00:40:30
запуском давайте сделаем это и можно
00:40:33
найти соответствующую настройку путём
00:40:35
изменения строки поиска здесь Code
00:40:38
Runner
00:40:39
Save и можно выбрать вариант Save File
00:40:43
before Run то есть сохранять файл перед
00:40:45
запуском и это все изменения которые я
00:40:49
Рекомендую вам внести в настройках Code
00:40:53
Runner и теперь закрываем эту вкладку
00:40:55
давайте вы выполним этот код снова я
00:40:57
буду использовать комбинацию клавиш на
00:40:59
Mac это Alt Ctrl N и код был успешно
00:41:04
выполнен и теперь в выводе Я вижу только
00:41:07
строку Богдан и служебные сообщения Code
00:41:10
Runner были скрыты Кроме этого сейчас
00:41:13
Code Runner очищает предыдущий вывод
00:41:16
Давайте проверим это изменим строку
00:41:18
Богдан на Hello Богдан и не сохраняя
00:41:21
файл Давайте выполним его снова таки
00:41:23
комбинация клавиш файл был выполнен
00:41:27
предыдущий вывод был очищен И теперь я
00:41:29
вижу новую строку в выводе Hello Богдан
00:41:32
и также мы убедились в том что Code
00:41:34
Runner автоматически сохранил файл перед
00:41:36
запуском И вам вручную не нужно это
00:41:39
делать Каждый раз когда вы запускаете
00:41:41
файл Кроме этого я
00:41:44
перемещаю панель направо Для этого
00:41:47
необходимо кликнуть правой кнопкой мыши
00:41:49
где-то здесь сверху и выбрать вариант
00:41:52
Move Panel Right то есть подвинуть
00:41:54
нижнюю панель направо Давайте Дава
00:41:56
выберем эту опцию и теперь вывод будет
00:41:59
отображаться справа то есть код слева а
00:42:02
вывод справа для меня так удобнее и при
00:42:05
необходимости можно изменять ширину
00:42:07
правой панели Кроме этого эту панель
00:42:09
справа Можно скрывать с помощью
00:42:11
комбинации клавиш и это комбинация Ctrl
00:42:14
J на Windows либо же Command J на Mac
00:42:17
вот таким образом то есть скрывать и
00:42:19
показывать Теперь давайте вместо вывода
00:42:22
строки Hello bog напишем просто 2 п 2
00:42:26
как мы это делали ранее используя
00:42:28
интерактивный интерпретатор Python и
00:42:30
Давайте выполним такой код комбинация
00:42:33
клавиш и теперь в выводе Я ничего не
00:42:36
вижу а ранее при интерпретации команд
00:42:40
Python непосредственно мы видели
00:42:42
результат так вот в этом отличие запуска
00:42:45
кода с помощью Code Runner и работа
00:42:48
непосредственно внутри интерпретатора
00:42:50
Python здесь справа вы будете видеть
00:42:54
только то что вы вводите в терминал
00:42:57
например с помощью функции Print Если же
00:43:00
вы просто написали выражение например 2
00:43:02
+ 2 то его результат здесь вы не увидите
00:43:06
потому что мы сейчас не работаем с
00:43:08
интерпретатором напрямую мы ему просто
00:43:11
передаём файл он его выполняет А
00:43:14
результат выполнения отображается в
00:43:17
выводе справа Именно таким образом
00:43:19
работает Python Итак Давайте удалим эту
00:43:22
строку сохраним изменени в файле И это
00:43:25
всё что касается того как запускать
00:43:28
файлы с расширением pii с помощью
00:43:31
интерпретатора Python И для этого мы
00:43:33
используем Code Runner Ну а выполнять
00:43:36
код можно используя либо эту иконку либо
00:43:39
же соответствующую комбинацию
00:43:46
клавиш сейчас я предлагаю установить
00:43:48
программу P Sharm если она у вас ещё не
00:43:51
установлена это в отличие от редактора
00:43:54
кода Visual Studio code полноценная
00:43:56
среда для разработки программ на языке
00:43:59
Python потому просьба перейти на сайт
00:44:02
jetbrains.com
00:44:04
pycharm скачать pycharm и установить его
00:44:07
на Ваш
00:44:08
компьютер я выберу Community версию она
00:44:12
бесплатная выбираю
00:44:16
download скачивание
00:44:19
началось инсталляционный файл был скачан
00:44:21
сейчас я установлю эту программу
00:44:26
Community Edition в папку
00:44:33
applications и запущу P
00:44:39
Sharm соглашусь с условиями
00:44:42
использования продолжить и не отправлять
00:44:45
какие-либо
00:44:47
данные программа открылась и Давайте
00:44:50
здесь создадим новый проект нажимаем New
00:44:53
Project и Давайте назовём проект
00:44:57
вот
00:44:58
так остальные настройки Давайте оставим
00:45:01
без изменений и нажмём кнопку Create
00:45:05
создать
00:45:07
проект проект был
00:45:09
создан и первым делом Давайте изменим
00:45:12
размер шрифта в редакторе я развернуто
00:45:15
окно на весь экран и Давайте сразу же
00:45:18
откроем терминал здесь внизу есть кнопка
00:45:21
Terminal и внизу был открыт встроенный
00:45:23
терминал то есть слева навигатор файлам
00:45:27
в центре у вас главный файл который
00:45:29
открыт сейчас в вашем проекте это fil
00:45:32
main.py и внизу есть терминал для
00:45:36
изменения шрифта можно использовать
00:45:38
комбинацию клавиш на Windows - это Alt
00:45:42
Shift точка либо запятая на Mac - это
00:45:46
Ctrl Shift точка либо запятая то есть
00:45:49
необходимо поставить курсор в файле
00:45:52
который вы
00:45:54
редактирую клавиш Итак нажимаем и вот
00:45:57
таким образом можно увеличивать размер
00:46:00
шрифта и он увеличивается в редакторе а
00:46:04
также в
00:46:05
терминале Кроме этого вам доступны
00:46:08
настройки давайте пока скро терминал в
00:46:11
настройки можно попасть перейдя P Sharm
00:46:14
settings и здесь вы найдёте много разных
00:46:17
настроек как редактора так и внешних
00:46:21
плагинов либо Можно также настроить
00:46:23
систему контроля версий сейчас я также
00:46:26
вижу что доступен вариант New UI и
00:46:29
сейчас эта функция находится в режиме
00:46:31
бета разработки и можно включить новый
00:46:35
UI давайте это попробуем enable New UI
00:46:39
о требуется Restart программа
00:46:43
перезапускается и сейчас Я перешёл уже в
00:46:46
новый интерфейс в котором больше места
00:46:49
отводится непосредственно под ваш код но
00:46:53
внизу слева также есть кнопка Terminal и
00:46:56
если нажать на неё то внизу откроется
00:46:58
терминал и Кроме этого слева доступен
00:47:01
навигатор по файлам в вашем проекте То
00:47:04
есть если скрыть и боковую панель и
00:47:06
терминал то как Видите ваш код находится
00:47:10
по всей ширине экрана что На мой взгляд
00:47:12
намного более удобно нежели если на
00:47:14
экране присутствует много различных
00:47:17
элементов
00:47:18
ID Итак мы создали с вами новый проект
00:47:21
Python и я буду работать в этом UI
00:47:25
возможно в будущем этот внешний вид P
00:47:28
Sharm станет внешним видом по умолчанию
00:47:31
либо же его можно будет включить всегда
00:47:33
в настройках так как это сделал только
00:47:36
что я и когда я создавал проект Python Я
00:47:39
оставил галочку создать Ile main.py И
00:47:44
вот именно таким образом создаётся File
00:47:46
main.py скажем так из коробки Когда вы
00:47:49
создаёте новый проект в P Sharm то есть
00:47:53
здесь Как видите есть функция Print High
00:47:56
и в этой функции вызывается Print и
00:47:58
здесь передаётся F строка и в F строках
00:48:01
в Python можно использовать разные
00:48:03
выражения например Здесь мы читаем
00:48:06
значение переменной name а name - это
00:48:09
параметр функции Print High и далее Если
00:48:12
значение name равняется строке Main мы
00:48:16
вызываем функцию Print High и передаём
00:48:19
ей вот такую строку
00:48:20
P Что такое name и что такое Main Что
00:48:24
такое F строки Что такое функции Что
00:48:26
такое вызов функции Мы будем обсуждать в
00:48:29
этом курсе Python Я предлагаю Удалить
00:48:33
весь этот код отсюда и написать просто
00:48:35
Print так я сделаю шрифт побольше
00:48:38
напоминаю комбинацию клавиш на Windows
00:48:41
Alt Shift то на Mac Ctrl Shift то и
00:48:46
здесь напишем Hello From
00:48:49
Pi и Как видите последняя закрывающая
00:48:53
круглая скобка подсвечивается и и если
00:48:56
навести на круглую скобку то здесь видна
00:48:59
ошибка No New Line at end of File и
00:49:03
Согласно документу pep8 о котором мы в
00:49:06
этом курсе будем с вами говорить в
00:49:09
файлах Python требуется пустая строка в
00:49:12
конце файла Давайте её добавим вот таким
00:49:14
образом и предупреждение исчезло И
00:49:17
теперь мы можем выполнить этот код нажав
00:49:21
на кнопку справа в углу Run Main вот эта
00:49:24
кнопка на неё откроется внизу терминал и
00:49:29
Как видите программа была успешно
00:49:31
выполнена и я в терминале вижу строку
00:49:34
Hello From P Sharm Кроме этого для
00:49:37
выполнения кода можно использовать
00:49:39
комбинацию клавиш и на Mac комбинация
00:49:42
клавиш Ctrl R на Windows вы комбинацию
00:49:46
клавиш увидите Если вы навед мышку на
00:49:49
запуск кода Итак нажимаю комбинацию
00:49:52
клавиш и код был выполнен Кроме этого вы
00:49:56
также Видите вот такую служебную строку
00:49:58
которая говорит о том с каким кодом
00:50:01
завершилась программа Python если код
00:50:04
нулевой это означает что программа
00:50:06
завершилась
00:50:07
корректно если например здесь добавить
00:50:10
какую-то ошибку в коде Давайте просто
00:50:12
уберём круглую скобку и попытаемся
00:50:14
выполнить код то я увижу что процесс
00:50:18
завершился с кодом о то есть это
00:50:21
некорректное завершение кода и выше я
00:50:24
вижу синтаксическую ошибку и вам указано
00:50:28
Где находится ошибка то есть есть
00:50:30
открывающая круглая скобка а закрывающая
00:50:33
круглой скобки нет если мы её добавим и
00:50:36
выполним снова код то ошибка исчезнет и
00:50:38
мы снова увидим код ноль в целом в
00:50:42
программе P Sharm больше ничего
00:50:44
настраивать не нужно всё работает скажем
00:50:46
так из коробки создаются виртуальные
00:50:49
среды Python об этом будем также
00:50:51
говорить в этом курсе есть доступ к
00:50:53
терминалу есть функция выполнения кода и
00:50:57
всё это мы с вами только что попробовали
00:51:00
в дальнейшем в этом курсе Вы можете
00:51:03
работать либо в P Sharm либо же в
00:51:05
редакторе кода Visual Studio Code Я
00:51:08
продолжу работать в редакторе кода
00:51:10
Visual Studio Code потому что я его
00:51:13
настроил Так что вы получаете больше
00:51:17
информации смотря на экран и я также
00:51:20
имею полный контроль над тем как
00:51:23
выполняются программы Python в три кода
00:51:25
vs Code потому что всё-таки P Sharm
00:51:29
большую часть задач которые касаются
00:51:31
запуска проектов Python берёт на себя но
00:51:35
снова таки в дальнейшем Вы можете
00:51:37
работать либо в P Sharm либо в редакторе
00:51:40
кода Visual Studio Code ограничений
00:51:42
никаких нет в этом плане касательно того
00:51:45
как дальше проходить
00:51:50
[музыка]
00:51:51
курс мы завершили с вами настройку
00:51:54
рабочей среды для того чтобы в
00:51:56
дальнейшем мы могли писать код Python и
00:51:59
выполнять его локально на своих
00:52:01
компьютерах и теперь время перейти
00:52:03
обратно к теоретической части и
00:52:06
рассмотреть основные концепции Python И
00:52:09
начнём мы с того что же самое важное в
00:52:13
языке программирования Python А самое
00:52:16
важное в Python - это
00:52:19
объекты Почему Потому что Python - это
00:52:22
объектно ориентированный язык програм
00:52:27
Но на самом деле то что Python является
00:52:30
объектно ориентированным языком
00:52:31
программирования так сразу и непонятно
00:52:35
тем кто начинают работать с языком
00:52:37
Python потому что непосредственно
00:52:40
написание кода очень сильно
00:52:44
абстрагировать внутри Python но как я
00:52:47
уже отмечал ранее в этом курсе я буду
00:52:49
стараться акцентировать внимание на том
00:52:52
что же непосредственно происходит внутри
00:52:55
и что происходит например тогда когда вы
00:52:57
создаёте переменную и присваивает ей
00:53:00
какое-то
00:53:01
значение Итак главное идея в Python в
00:53:04
том что все сущности в Python - это
00:53:09
объекты То есть даже число либо строка -
00:53:12
это объекты это экземпляры того или
00:53:15
иного класса и вы должны это чётко
00:53:19
понимать и
00:53:21
знать объект - Это экземпляр
00:53:24
определённого класса То есть если вы
00:53:27
например можете создавать числа Это
00:53:29
означает что в Python уже есть для этого
00:53:32
соответствующий класс на основании
00:53:34
которого создаются экземпляры класса А
00:53:38
класс - это шаблон или иными словами
00:53:41
прототип для создания
00:53:44
объекта и получается что на основании
00:53:47
одного класса можно создавать много
00:53:50
разных
00:53:51
объектов то есть клас integer целое
00:53:54
число например один но на его основании
00:53:57
можно создать много разных экземпляров
00:54:00
чисел и эти экземпляры будут независимы
00:54:03
друг от друга далее У каждого объекта
00:54:07
есть атрибуты при этом атрибут объекта
00:54:11
называется методом если его значение -
00:54:14
это функция Ну а как вы знаете Любую
00:54:18
функцию Можно вызвать и соответственно
00:54:20
метод Можно также вызвать таким образом
00:54:24
резюмируя Python все сущности - это
00:54:27
объекты объекты создаются на основании
00:54:29
классов и из одного класса можно создать
00:54:32
много разных объектов и эти объекты
00:54:35
будут независимы друг от друга у
00:54:38
объектов есть атрибуты и если значением
00:54:42
атрибута является функция то такой
00:54:44
атрибут называется методом Ну а метод
00:54:47
как Любую функцию можно
00:54:50
вызывать если вам нравится этот курс Не
00:54:53
забывайте поставить лайк и поделиться
00:54:55
этим видео в социальных сетях для того
00:54:58
чтобы его могли увидеть как можно больше
00:55:01
[музыка]
00:55:05
людей сейчас мы с вами коротко поговорим
00:55:08
о основных типах в Python и далее в этом
00:55:11
курсе будут отдельные секции посвящённые
00:55:14
каждому из типов Итак основные типы
00:55:17
следующие первый - это строки вы уже
00:55:21
знаете что каждая сущность в Python -
00:55:24
это объект Следовательно все строки -
00:55:27
Это экземпляры класса строка и
00:55:30
соответствующий класс называется STR
00:55:34
string и примером строки является
00:55:37
например строка Богдан строки находятся
00:55:40
между одинарными кавычками либо же
00:55:42
двойными кавычками далее целое число
00:55:46
соответствующий класс называется integer
00:55:48
сокращенно in и примером целого числа
00:55:52
является число 10 также целыми числами
00:55:56
являются отрицательные числа например
00:55:58
-100 -5 и так далее 0 - это также целое
00:56:03
число integer далее логический Тип и у
00:56:07
логического типа есть только два
00:56:09
значения True или false и
00:56:12
соответствующий класс называется Bull от
00:56:15
слова
00:56:16
buan далее список соответствующий класс
00:56:19
называется list и в списке можно
00:56:23
сохранять элементы разных типов и в
00:56:26
данном примере вы видите список с тремя
00:56:29
элементами 1 2 3 при этом элементы
00:56:33
разделены запятой и все элементы
00:56:36
находятся между парой квадратных скобок
00:56:39
пробел после открывающей квадратной
00:56:41
скобки и перед закрывающей скобкой
00:56:44
ставить не нужно А вот после запятой
00:56:47
обычно ставят пробел Так как указано в
00:56:50
этом примере это список list и ещё один
00:56:54
популя тип это словарь все словари
00:56:58
создаются на основании класса dict и при
00:57:01
создании словаря используются фигурные
00:57:04
скобки открывающая фигурная скобка и
00:57:06
закрывающая фигурная скобка и между
00:57:09
скобками находится элементы при этом
00:57:12
Каждый элемент состоит из пары ключ
00:57:16
значения В этой паре ключом является мин
00:57:20
а значением является целое число 5п и
00:57:24
второй паре ключом является КС А
00:57:28
значением является другое целое число
00:57:31
восем при этом названия ключей должны
00:57:34
находиться между одинарными либо
00:57:37
двойными
00:57:38
кавычками Это пример словаря и отличие
00:57:41
словаря от списка в том что у словарей
00:57:44
есть пары ключ значения А в списке есть
00:57:47
просто элементы при этом важно отметить
00:57:50
что и в словарях и в списках может быть
00:57:53
любое количество элемент
00:57:55
и отличие словаря от списка в том что
00:57:58
при создании словаря используются
00:58:00
фигурные скобки а при создании списка
00:58:03
используются квадратные скобки Ну и в
00:58:06
списке просто добавляются элементы
00:58:09
причём Там могут быть элементы разных
00:58:11
типов а при создании словаря Вы должны
00:58:14
указывать пары ключ значения то есть
00:58:17
ключ - это название и по этому названию
00:58:20
можно обратиться к значению ключа
00:58:23
например в этом словаре есть два ключа
00:58:26
Min и Max хочу отметить что сейчас вы
00:58:29
видите только основные типы на самом
00:58:31
деле типов больше и далее в курсе мы
00:58:34
поговорим о других типах которые я не
00:58:36
упомянул
00:58:41
здесь Ну а сейчас я Предлагаю перейти в
00:58:45
интерактивную оболочку Python и
00:58:47
попробовать подавать там значения тех
00:58:50
типов о которых мы здесь поговорили Итак
00:58:53
переходим в терминал я открою itm 2 и
00:58:56
здесь запускаем интерактивную оболочку
00:58:58
Python я запускаю используя команду
00:59:01
Python 3 Вы же Используйте команду
00:59:03
Python Если вы работаете на Windows либо
00:59:06
же unix Итак я нахожусь в интерактивной
00:59:09
оболочке и здесь Давайте просто
00:59:12
поздавление
00:59:23
ту же строку Богдан если я напишу Богдан
00:59:27
в двойных кавычках вот таким образом
00:59:29
нажму enter то я получу снова Богдан но
00:59:33
уже в одинарных кавычках это
00:59:35
подтверждает то что вы можете
00:59:37
использовать как одинарные кавычки так и
00:59:39
двойные кавычки Лично я предпочитаю
00:59:42
использовать одинарные кавычки в тех
00:59:44
строках которые состоят из одного слова
00:59:47
если же строка более длинная то я
00:59:49
использую двойные кавычки Итак это была
00:59:52
строка далее Давайте пишем целое число
00:59:56
например 7 нажимаем Enter и видим 7 как
00:59:59
ответ от интерпретатора Почему мы видим
01:00:03
ответы от Python потому что мы в каждой
01:00:06
строке набираем выражение Python Python
01:00:10
интерпретирует выражение и возвращает
01:00:12
его результат помните мы с вами ранее
01:00:15
вводили 2 + 2 и получали 4 2 + 2 - это
01:00:20
также выражение Python интерпретировал
01:00:22
это выражение иреу этого выражения
01:00:25
является целое число 4 и потому
01:00:28
интерпретатор вернул нам это целое число
01:00:31
4 и мы его увидели в выводе но хочу
01:00:35
отметить что сейчас мы просто вводим
01:00:37
значение типа строка либо целое число мы
01:00:42
не создаём какие-либо переменные и
01:00:44
потому дальше мы не можем вернуться к
01:00:46
тем значениям которые мы здесь
01:00:49
вводили теперь Давайте напишем
01:00:51
логическое значение например
01:00:53
намм получаю True в ответ пишем false
01:00:57
получаю false То есть у логического типа
01:01:00
могут быть только два значения либо True
01:01:03
либо false логическая правда либо
01:01:05
логическая ложь далее Давайте напишем
01:01:08
здесь список квадратные скобки и далее
01:01:11
внутри какие-либо элементы например
01:01:14
целое число один строка ABC и например
01:01:18
True закрываем список закрывающий
01:01:20
квадратной скобкой и нажимаем Enter в
01:01:23
ответ мы получили тот же список у этого
01:01:26
списка три элемента 1 ABC и True Можно
01:01:31
написать например без пробелов вот таким
01:01:33
образом но в результирующей ответе
01:01:36
Python всё равно добавит пробелы после
01:01:38
запятой Можно также добавить например
01:01:41
пробелы перед закрывающей квадратной
01:01:44
скобкой и несколько пробелов здесь
01:01:46
нажимаем Enter получаем тот же список
01:01:50
вот так создавать списки я вам крайне Не
01:01:52
рекомендую код должен быть в первую
01:01:55
очередь читабельный и вы должны
01:01:57
придерживаться общих правил и
01:01:59
рекомендаций касательно того как писать
01:02:01
код так вот списки создаются вот таким
01:02:04
образом так как вы видите в
01:02:06
результирующей ответе от интерпретатора
01:02:09
Python Теперь давайте создадим словарь
01:02:12
словари создаются с помощью пары
01:02:14
фигурных скобок если просто написать
01:02:16
пару фигурных скобок нажать enter то мы
01:02:19
тем самым Только что передали в
01:02:21
интерпретатор Python пустой словарь
01:02:24
теперь Давайте напишем словарь с одним
01:02:26
элементом например
01:02:29
двоеточие Богдан вот таким образом тоже
01:02:32
отмечу что я не добавлял пробел вот
01:02:35
здесь после открывающей фигурное скобки
01:02:37
и нет пробела перед закрывающей фигурной
01:02:40
скобкой
01:02:41
Дале перед двоеточием также нет пробела
01:02:45
А вот после двоеточия есть пробел вот он
01:02:48
то есть после двоеточия перед значением
01:02:52
принято добавлять один пробел
01:02:55
Итак мы написали здесь словарь нажимаем
01:02:57
Enter и мы получили от Python тот же
01:03:00
словарь который мы написали вот здесь
01:03:03
причём форматирование абсолютно
01:03:05
идентичное Но если хотите Можно вместо
01:03:08
одинарных кавычек вот здесь использовать
01:03:10
двойные кавычки например написать
01:03:13
следующим образом name в двойных
01:03:15
кавычках здесь двойная кавычка и здесь
01:03:18
двойная и в ответ мы получаем тот же
01:03:21
словарь но Python заменил двойные
01:03:23
кавычки здесь на одинарные но снова таки
01:03:26
конкретных рекомендаций касательно того
01:03:28
использовать для ключей двойные кавычки
01:03:31
либо одинарные нет но я лично
01:03:34
предпочитаю использовать для словарей
01:03:36
всегда одинарные кавычки в Ключах Итак
01:03:40
Это пример словаря Это пример списка
01:03:44
точнее Вот корректный пример списка с
01:03:46
корректным форматированием далее Это
01:03:49
примеры логических типов это целое число
01:03:53
а это строка тем самым мы с вами
01:03:55
потренировать создавать значения разных
01:03:58
типов и мы рассмотрели с вами коротко
01:04:01
пять основных типов строки целые числа
01:04:04
логические значения списки и словари
01:04:08
давайте выйдем из интерактивной оболочки
01:04:10
Python и очистим терминал и далее мы с
01:04:14
вами поговорим о встроенных в Python
01:04:23
функциях сейчас мы поговорим с вами о
01:04:25
встроенных функциях в Python и таких
01:04:28
функций в Python очень много и одну из
01:04:31
них мы уже ранее использовали И это была
01:04:33
функция Print Давайте на примере функции
01:04:36
Print рассмотрим как же вызывается
01:04:38
встроенная функция а вызывается она
01:04:41
очень просто пишется название встроенной
01:04:44
функции в данном примере это название
01:04:46
Print далее пара круглых скобок она
01:04:49
означает вызов функции и между этими
01:04:54
круглыми скобками находится то что вы
01:04:56
хотите напечатать в терминале в данном
01:04:59
примере это значение типа string STR
01:05:03
строка и так как здесь Я использовал два
01:05:06
слова то я поместил эти два слова в
01:05:10
двойные кавычки я ранее отмечал что Я
01:05:13
рекомендую использовать одинарные
01:05:15
кавычки если строка состоит из одного
01:05:17
слова и двойные кавычки если слов в
01:05:20
строке больше таким образом в данном
01:05:23
примере мы передаём строку Hello Python
01:05:26
в встроенную функцию Print в качестве
01:05:29
аргумента То есть то что находится между
01:05:32
круглыми скобками называется аргумент
01:05:36
аргумент при вызове функции сейчас
01:05:39
давайте коротко поговорим о том что
01:05:41
такое функция в Python с помощью
01:05:44
ключевого слова Def можно создавать свои
01:05:47
функции о функциях детальнее мы
01:05:49
поговорим Далее в этом курсе но сейчас я
01:05:52
хочу чтобы вы знали что у каждой функции
01:05:55
есть имя например My знак подчеркивания
01:05:58
FN в данном случае кроме имени у функции
01:06:02
есть тело и это набор строк который
01:06:05
выполняется при каждом вызове той или
01:06:08
иной функции кроме тела функции функции
01:06:12
есть параметры и в данном примере у
01:06:14
функции есть два параметра A и B и они
01:06:18
находятся между круглыми скобками вот
01:06:21
открывающая круглая скобка и вот
01:06:23
закрывающая и между ними разделённое
01:06:25
запятой находятся параметры функции и
01:06:28
Кроме этого в этой функции есть строка с
01:06:32
ключевым словом Return и это означает
01:06:34
что эта функция возвращает определённый
01:06:38
результат что имеется в виду возвращает
01:06:41
когда мы вызываем функцию она выполняет
01:06:44
определённые действия так вот в данном
01:06:46
случае выполнятся три действия которые
01:06:49
указаны в теле функции Но кроме этого
01:06:53
функция Принт результат это значение
01:06:56
переменной C и этот результат после
01:06:59
вызова функции My FN можно при желании
01:07:03
присвоить определённой переменной и
01:07:05
использовать его дальше в
01:07:07
коде то есть резюмируя функция
01:07:10
вызывается в функцию передаются
01:07:13
определённые аргументы функция выполняет
01:07:15
свою работу и возвращает
01:07:18
результат для того чтобы явно вернуть
01:07:20
определённый результат необходимо
01:07:22
использовать ключевое слово
01:07:25
и этот результат после вызова функции
01:07:27
Можно например присвоить
01:07:29
переменной Это пример того как выглядит
01:07:32
функция в Python но снова таки если
01:07:34
что-то непонятно не переживайте далее мы
01:07:37
вернёмся к функциям и рассмотрим их
01:07:39
более детально и более глубоко Ну а
01:07:42
теперь возвращаемся к встроенным в
01:07:44
Python функциям кроме функции Print в
01:07:48
Python доступны многие другие функции
01:07:51
такие как например Type ID са Min Max и
01:07:55
так далее Я здесь указал только
01:07:58
некоторые из встроенных функций на самом
01:08:00
деле таких функций намного больше при
01:08:03
этом с помощью встроенных в Python
01:08:05
функций можно очень легко и удобно
01:08:08
выполнять ряд действий например
01:08:10
выполнять сложение элементов при этом в
01:08:13
других языках программирования те же
01:08:15
действия потребуют от вас как правила
01:08:18
нескольких строк кода в Python же всё
01:08:21
очень легко и быстро можно реализовать
01:08:24
лишь вызовом одной встроенной функции А
01:08:27
что же мы получим если мы выведем в
01:08:30
терминал значение переменной Print то
01:08:33
есть видите мы здесь не вызываем функцию
01:08:35
Print мы просто передаём название
01:08:37
переменной Print в функцию Print в этом
01:08:41
случае Вы в терминале увидите built in
01:08:45
function Print Это означает что Print
01:08:48
является встроенной функцией в Python и
01:08:52
для того чтобы функцию вы необходимо её
01:08:54
вызвать то есть ещё раз в этом примере
01:08:57
мы вызываем функцию Print и ей в
01:09:00
качестве аргумента передаём название
01:09:02
другой функции также Print это мы сейчас
01:09:05
попробуем с вами на практике но пока
01:09:07
Давайте продолжим и поговорим о другой
01:09:10
встроенной функции под названием
01:09:13
Input с помощью функции Input можно
01:09:16
попросить пользователя ввести
01:09:18
определённые данные непосредственно в
01:09:20
терминале и это делается очень просто
01:09:23
вызываем функцию Input и ей передаём
01:09:26
строку в качестве аргумента и эту строку
01:09:30
пользователь увидит в терминале и когда
01:09:33
Python дойдёт до этой строки выполнение
01:09:36
кода прервётся пока пользователь не
01:09:38
введёт что-либо в терминале и не нажмёт
01:09:41
Enter когда пользователь ввёл что-либо в
01:09:45
терминале нажал enter то этот результат
01:09:48
будет присвоен переменной в данном
01:09:51
примере name и выполнение кода
01:09:53
продолжится при этом Далее в коде у вас
01:09:56
уже будет доступ к значению переменной
01:09:59
name к тому что пользователь ввёл на
01:10:02
этапе вызова функции Input и Например
01:10:06
можно далее вывести в терминал значение
01:10:09
переменной name как это делается Вот
01:10:12
здесь то есть мы вызываем другую
01:10:15
встроенную функцию Print и ей передаём в
01:10:17
качестве аргумента название переменной
01:10:20
name и здесь далее вы в терминале
01:10:23
увидите то имя либо ту
01:10:26
последовательность символов скажем так
01:10:28
которую вы ввели после предложения
01:10:30
ввести ваше имя вот здесь то есть так
01:10:33
работает встроенная функция Input и хочу
01:10:37
отметить что то значение которое вводит
01:10:41
пользователь после вызова функции Input
01:10:44
всегда будет
01:10:45
строкой если вам от пользователя
01:10:47
необходимо получить значение другого
01:10:49
типа например число его возраст то вам
01:10:52
необходимо строку конвертировать в число
01:10:56
Python за вас Это не сделает то есть
01:10:59
значение которое вводит пользователь
01:11:01
после вызова функции Input - это всегда
01:11:03
строка то есть тип - это STR и каждая
01:11:07
строка является экземпляром класса
01:11:10
string
01:11:14
[музыка]
01:11:16
STR это была встроенная функция Input и
01:11:19
теперь давайте поговорим о встроенной
01:11:22
функции Dear
01:11:24
с помощью этой функции можно получить
01:11:28
название всех атрибутов того или иного
01:11:32
объекта то есть повторюсь у каждого
01:11:35
объекта есть атрибуты Как вы знаете и
01:11:39
название этих атрибутов можно вывести в
01:11:41
терминал например путём вызова функции
01:11:45
de и в данном примере у нас есть строка
01:11:49
Богдан и она присвоена
01:11:52
переменной здесь слева название
01:11:55
переменной так вот в данном примере
01:11:58
функция DIR отобрази все имена атрибутов
01:12:03
объекта name Вот это название этого
01:12:07
объекта это строка А у строк есть ряд
01:12:11
атрибутов которые являются методами
01:12:14
Напоминаю что атрибут является методом
01:12:17
Если значение атрибута - это функция И
01:12:20
следовательно любой метод можно вызывать
01:12:24
у каждого объекта типа строка есть
01:12:26
например такой метод как Low и с помощью
01:12:29
вызова этого метода можно перевести все
01:12:33
символы строки в нижний регистр То есть
01:12:36
если мы вызовем метод lower для
01:12:39
переменной name то мы получим Богдан с
01:12:42
маленькой буквы Кроме этого Например
01:12:45
можно вызвать метод replace и с помощью
01:12:48
него заменить определённую
01:12:50
последовательность символов в исходной
01:12:52
строке на на другую
01:12:54
последовательность и так далее То есть у
01:12:57
строк есть доступ к разным
01:13:00
методам и всё это возможно из-за того
01:13:03
что каждая строка - это объект в Python
01:13:07
и объекты Python наследуют методы от
01:13:11
классов из которых Они созданы то есть
01:13:14
вот эти методы lower
01:13:18
replace и так далее находятся в классе
01:13:21
из которого была создана строка и
01:13:24
значение этой строки в данном примере
01:13:27
Богдан Как же можно вызывать методы того
01:13:32
или иного объекта очень просто используя
01:13:36
точечную запись то есть пишем название
01:13:39
переменной в данном случае name далее
01:13:41
ставим точку и после точки следует
01:13:44
название метода который мы хотим вызвать
01:13:48
в данном примере вызывается метод под
01:13:51
названием
01:13:52
uper так как метод - это функция то для
01:13:55
того чтобы эта функция выполнила
01:13:57
необходимо её вызвать то есть добавить
01:14:00
пару круглых скобок после названия
01:14:02
метода тем самым мы вызываем метод и мы
01:14:06
вызываем его для конкретной переменной
01:14:10
под названием в данном случае name и
01:14:13
если вывести результат вызова метода
01:14:16
apper в терминал путём передачи
01:14:19
результата вот этого функции Print мы в
01:14:23
данном случае увидим Богдан за главными
01:14:26
буквами то есть Python взял эту строку
01:14:29
Богдан и перевёл все символы в Верхний
01:14:32
регистр причём что очень важно значение
01:14:36
переменной name после этой строки кода
01:14:39
не изменилось То есть если вы выведете в
01:14:42
терминал значение переменной name после
01:14:45
этой строки то вы увидите Богдан так как
01:14:48
написано вот здесь то есть это значение
01:14:51
не изменилось после вызова метода apper
01:14:55
резюмируя в Python есть ряд встроенных
01:14:58
функций таких как Print либо Input с
01:15:01
помощью функции Print можно вывести в
01:15:03
терминал результат любого выражения
01:15:06
Например можно вывести в терминал строку
01:15:08
либо значение какой-то переменной с
01:15:11
помощью функции Input можно попросить
01:15:13
пользователя ввести какие-то данные с
01:15:16
клавиатуры в терминале и эти данные
01:15:19
Можно например сохранить в переменной и
01:15:21
далее использовать эту перемен
01:15:23
для выполнения других операций Кроме
01:15:26
того мы рассмотрели такую встроенную
01:15:28
функцию как dirar и с помощью этой
01:15:31
функции можно вывести название всех
01:15:33
атрибутов того или иного объекта и на
01:15:37
примере объекта типа строка мы с вами
01:15:41
убедились в том что у строк есть такие
01:15:43
методы например как upper либо lower и
01:15:46
далее Я предлагаю посмотреть на то как
01:15:48
работают функции Print Input и DIR на
01:15:52
практике
01:15:53
[музыка]
01:15:58
сейчас я Предлагаю перейти в Редактор
01:16:00
кода vs Code и поэкспериментировать с
01:16:03
теми встроенными функциями о которых мы
01:16:05
с вами поговорили а именно Print Input и
01:16:08
Dear Кроме этого мы с вами проверим как
01:16:10
работают некоторые методы для строк и
01:16:13
Давайте начнём с встроенной функции
01:16:15
Print Давайте напишем Print пара круглых
01:16:18
скобок и после добавления пары круглых
01:16:20
скобок в редакторе vscode вы увидите
01:16:23
всплывающее окно с информацией о том
01:16:26
какие аргументы от вас ожидает функция
01:16:29
Print и функции Print Как видите можно
01:16:32
передавать разные значения Например
01:16:34
можно передать 10 запятая Богдан запятая
01:16:39
True вот таким образом но как видите эта
01:16:43
всплывающая подсказка с информацией о
01:16:45
аргументах показывается во время печати
01:16:49
здесь Непосредственно в вызове функции и
01:16:52
я считаю для вас это будет не сильно
01:16:54
удобно потому я сейчас отключу
01:16:56
всплывающие подсказки для параметров
01:16:59
функции Вы если хотите можете у себя не
01:17:02
отключать чтобы у вас всегда была
01:17:03
информация о том какие аргументы от вас
01:17:06
ожидает та или иная функция Ну а я
01:17:08
перейду в настройки и отключу эти
01:17:10
всплывающие подсказки Итак я перехожу в
01:17:13
настройки и здесь я Введу
01:17:17
param вот таким образом и здесь есть
01:17:21
такая
01:17:22
опция
01:17:24
я уберу эту галочку вот таким образом И
01:17:27
теперь у меня не будут показываться
01:17:29
всплывающие подсказки при вызове функции
01:17:32
Например я здесь снова вызову функцию
01:17:34
Print добавлю пару круглых скобок и
01:17:36
теперь подсказки у меня нет но я всегда
01:17:39
могу показывать подсказки с помощью
01:17:41
комбинации клавиш на Mac - это Command
01:17:43
Shift пробел вот так и подсказка
01:17:46
появилась Escape подсказку убираем если
01:17:49
хотите можете воспользоваться этой же
01:17:52
настройкой и отключить подсказки для
01:17:54
параметров так как сделал Я у себя и
01:17:57
конечно же эта настройка была добавлена
01:18:00
в File settings.js который мы ранее с
01:18:03
вами уже изменяли и настройка выглядит
01:18:05
вот таким образом Editor parameter hints
01:18:08
enabled и значение false Итак я закрою
01:18:12
настройки и продолжим изучать функцию
01:18:15
Print я удалю вторую строку для этого
01:18:18
можно использовать комбинацию клавиш
01:18:20
Command Shift K на Mac либо же Shift на
01:18:24
Windows и Давайте выполним этот код
01:18:27
комбинация клавиш для вызова Code Run и
01:18:31
в терминале в выводе я вижу 10 Богдан и
01:18:35
True Как видите были автоматически
01:18:37
добавлены пробелы между значениями эти
01:18:41
пробелы добавляет непосредственно сама
01:18:43
функция Print для того чтобы вам было
01:18:45
удобнее читать вывод то есть не
01:18:48
обязательно добавлять пробел вручную вот
01:18:50
таким образом например то есть пробел
01:18:52
добавляются
01:18:53
автоматически теперь вместо этих
01:18:55
значений Давайте выведем просто Print
01:18:58
при этом здесь мы эту функцию не
01:18:59
вызываем но в выпадающем списке вы
01:19:02
видите название функции Print и возле
01:19:04
неё белый кубик который означает что
01:19:07
Print - это функция Итак давайте
01:19:09
выполним код в таком виде и я в выводе
01:19:12
вижу built in function Print это то о
01:19:15
чём мы с вами ранее говорили Print - это
01:19:18
встроенная функция в Python таким же
01:19:21
образом можно вывести
01:19:23
inp то есть Print вызываем и передаём
01:19:26
inp в качестве
01:19:28
аргумента выполняем код и здесь я вижу
01:19:31
Build in function Input то есть
01:19:33
встроенная функция Input тоже самое мы
01:19:36
здесь увидим если напишем Dear вот так
01:19:39
выполним код Здесь также вижу built in
01:19:42
function
01:19:43
de это подтверждает то что и de и Print
01:19:47
и Input являются встроенными функциями в
01:19:50
Python ещё раз подчеркну что здесь при
01:19:53
выполнении кода с помощью Code Runner
01:19:55
если мы не будем вызывать функцию Print
01:19:58
То есть если мы напишем просто DIR вот
01:19:59
таким образом и выполним код то мы в
01:20:02
выводе ничего не увидим потому что в
01:20:04
терминал мы здесь ничего не печатаем А в
01:20:06
выводе Code Runner показывает только то
01:20:09
что отображает интерпретатор Python как
01:20:12
результат выполнения того или иного
01:20:14
блока кода сейчас Давайте сделаем
01:20:17
следующее напишем Print вызовем функцию
01:20:20
напишем здесь Dear и также вызовем
01:20:22
функцию
01:20:23
то есть мы вызываем встроенную
01:20:25
функцию и её результат передаём в
01:20:29
функцию
01:20:30
Print и этот результат Мы выводим в
01:20:34
терминал Если вы вызываете функцию без
01:20:37
аргументов то вызвав подсказки
01:20:39
параметров я увижу что Если вызывать DIR
01:20:43
без аргумента то функция DIR возвращает
01:20:47
имена В текущей зоне
01:20:51
видимости те имена которые доступны
01:20:54
глобально в глобальной зоне видимости
01:20:57
Давайте посмотрим на то что же нам
01:20:59
возвращает функция DIR потому что мы её
01:21:02
результат передаём в функции Print
01:21:04
Давайте выполним код и я вижу Вот такой
01:21:07
список то есть квадратные скобки
01:21:09
означают что это список и в этом списке
01:21:12
есть такие строки как annotations либо
01:21:14
Build inss и каждая строка в этом выводе
01:21:18
начинается и заканчивается двумя знаками
01:21:21
подчёркивания Это означает что эти
01:21:24
атрибуты являются системными атрибутами
01:21:27
об этом поговорим немного Далее в курсе
01:21:29
но я хочу вам показать что будет если в
01:21:32
функцию dirar передать Вот это название
01:21:36
Build inss причём мы должны передать его
01:21:39
не как строку А как название переменной
01:21:43
потому скопируйте его отсюда без кавычек
01:21:46
я скопировал и Вставьте вот здесь вот
01:21:49
таким образом то есть мы вызываем
01:21:51
функцию Dear который напоминаю
01:21:54
возвращает атрибуты объекта вот здесь
01:21:56
это написано attributes of the given
01:21:59
object То есть сейчас мы передаём объект
01:22:02
Build ins и функция de должна нам
01:22:05
вернуть список всех атрибутов для
01:22:08
объекта Build inss а Build inss - это
01:22:11
объект как всё в Python Итак давайте
01:22:14
выполним этот код и теперь справа я вижу
01:22:17
другой список и в этом списке если
01:22:21
прокрутить вниз мы увидим знакомые нам
01:22:25
названия такие как Help ниже Print и так
01:22:29
далее иными словами Только что мы с вами
01:22:33
вывели список встроенных в Python
01:22:37
функций mean Next Open Property Set и
01:22:41
так далее - это всё встроенное в Python
01:22:44
функции и именно вот таким образом можно
01:22:48
вывести весь список встроенных функций в
01:22:51
Python то есть вызываем функцию dirar
01:22:54
передаём ей название переменной Build
01:22:56
inss это объект dirar возвращает нам
01:22:59
список атрибутов этого объекта Build
01:23:02
inss и результат мы передаём функции
01:23:05
Print которая и печатает этот список
01:23:09
атрибутов в
01:23:11
терминал Итак это то как можно
01:23:14
использовать функцию Dear для того чтобы
01:23:17
выводить список названий атрибутов того
01:23:21
или иного объекта и далее Давайте
01:23:24
посмотрим на другую встроенную функцию
01:23:26
под названием
01:23:32
[музыка]
01:23:34
Input только что мы с вами попробовали
01:23:36
на практике две встроенные функции Print
01:23:39
и Dear и теперь пришло время
01:23:41
поэкспериментировать с функцией Input
01:23:44
Итак давайте просто напишем Input и
01:23:46
вызовем эту функцию и ей передадим
01:23:49
строку например Enter your name двое
01:23:52
точи и пробел Я не буду переключаться с
01:23:55
английской раскладки чтобы экономить
01:23:57
время и допускать меньше ошибок Итак
01:24:00
давайте выполним этот код и посмотрим
01:24:02
что же мы получим выполняем код с
01:24:04
помощью Code Runner я вижу предложение
01:24:08
ввести имя Enter your name но здесь
01:24:11
ничего не происходит если я набираю
01:24:13
текст это происходит из-за того что Code
01:24:16
Runner только выводит результат
01:24:18
выполнения кода это не интерактивная
01:24:21
оболочка
01:24:23
и потому для того чтобы выполнить
01:24:25
успешно код в котором есть вызов функции
01:24:27
Input Нам необходимо выполнить файл
01:24:31
main.py
01:24:33
непосредственно используя интерпретатор
01:24:35
Python в моём случае Python 3 давайте
01:24:38
это сделаем и для того чтобы выполнить
01:24:41
этот файл Давайте сначала остановим Code
01:24:43
Runner нажимаем на этот Красный квадрат
01:24:46
ST Code Run и теперь нажав на эти три
01:24:49
точки Можно перейти в терминал вот здесь
01:24:52
есть опция Terminal выбираем Terminal и
01:24:56
теперь открылся терминал в правом окне
01:24:59
давайте сделаем это окно побольше и
01:25:02
здесь введём сначала LS с помощью этой
01:25:05
команды можно посмотреть на файлы и
01:25:08
папки которые находятся в текущей
01:25:11
директории терминал автоматически
01:25:13
открылся В текущей папке которая открыта
01:25:16
Сейчас у нас в редакторе кода А это
01:25:18
папка Python в моём случае и если
01:25:21
набрать WD Print working directory то я
01:25:25
увижу полный путь к папке Python и в
01:25:29
этой папке Python есть один файл на
01:25:32
данный момент это файл main.py Если вы
01:25:35
работаете на macos то пишите Python 3
01:25:39
main.py если на Windows либо unix то
01:25:42
пишите просто Python main.py то есть мы
01:25:45
хотим выполнить с помощью интерпретатора
01:25:48
Python файл под названием main.py
01:25:50
нажимаем Enter
01:25:53
началось выполнение кода я вижу
01:25:55
предложение ввести моё имя Enter your
01:25:57
name ввожу своё имя Богдан нажимаю Enter
01:26:01
и программа завершила свою работу и Как
01:26:04
видите я вернулся в
01:26:06
терминал Это означает что программа MPI
01:26:11
завершила свою работу но при этом
01:26:13
результат который мы получили от
01:26:15
пользователя здесь мы никак не
01:26:17
использовали Давайте скро пока терминал
01:26:20
то есть мы здесь просто вызвали функцию
01:26:22
но её результат результат вызова этой
01:26:26
функции мы не присвоили какой-либо
01:26:28
переменной Давайте исправим это напишем
01:26:31
слева name знак присваивания
01:26:34
Input справа и слева от оператора
01:26:38
присваивания я добавил пробелы это то
01:26:41
как рекомендуется присваивать значения
01:26:43
переменным в коде Python то есть справа
01:26:46
стоит Значение иными словами выражение
01:26:50
мы получим значение этого выражения
01:26:51
потом при своим его этой переменной name
01:26:54
и далее Давайте выведем терминал С
01:26:57
помощью функции Print значение
01:27:00
переменной name здесь я не добавляю
01:27:03
одинарные либо двойные скобки потому что
01:27:05
name у нас уже переменная То есть это не
01:27:08
строка name То есть я не хочу написать
01:27:11
здесь вот таким образом то есть я не
01:27:13
хочу вывести просто текст name Я хочу
01:27:16
вывести значение переменной вот так
01:27:20
давайте теперь обратно вем в
01:27:22
откроем боковую панель Ctrl J на Windows
01:27:26
Command J на Mac и здесь снова повторим
01:27:28
то же самое очистим терминал Python 3
01:27:32
main.py
01:27:34
Enter your name пишу своё имя и я ничего
01:27:38
в выводе не увидел потому что я забыл
01:27:39
сохранить файл слева Напоминаю что Code
01:27:43
Runner у нас настроен Так что Он
01:27:44
сохраняет файл автоматически перед
01:27:46
запуском но сейчас мы выполнили код
01:27:49
main.py напрямую без Code Run
01:27:52
Следовательно Нам необходимо его
01:27:54
сохранить вручную перехожу в файл и
01:27:56
сохраняю его кружочек исчез и теперь
01:27:59
давайте повторно выполним код Python 3
01:28:02
main.py снова пишу своё имя и я вижу
01:28:06
своё же имя в терминале это результат
01:28:09
вызова функции print на строке номер три
01:28:13
То есть мы получили ввод от пользователя
01:28:15
вот здесь и потом то что ввёл
01:28:18
пользователь мы вывели в терминал теперь
01:28:21
задание вам расширьте данный код и кроме
01:28:24
имени пользователя попросите
01:28:25
пользователя ввести также свой возраст и
01:28:28
например город в котором он живёт и
01:28:30
далее с помощью функции Print выведите
01:28:33
все те значения которые ввёл
01:28:35
пользователь в терминал но мы продолжим
01:28:38
и Давайте сделаем следующее Я скрою пока
01:28:41
терминал и ниже не удаляя эти строки я
01:28:45
напишу name и поставлю точку Напоминаю
01:28:48
что с помощью точки можно получать
01:28:50
доступ к атрибутом того или иного
01:28:53
объекта а name У нас конечно же объект и
01:28:58
сейчас тип этого объекта - это строка
01:29:01
строка которую ввёл пользователь после
01:29:04
предложения ввести его имя так вот после
01:29:08
точки вам доступны разные методы
01:29:12
строк такие как capitalize Center Count
01:29:16
и так далее Давайте вызовем метод
01:29:19
capitalize а то что это метод мы можем
01:29:21
понять Исходя из этого кубика который
01:29:24
показан перед названием тех или иных
01:29:26
методов Итак давайте выберем capitalize
01:29:30
можно выбрать из списка и нажать Enter и
01:29:32
конечно же Нам необходимо вызвать этот
01:29:34
метод вот таким образом и Давайте
01:29:36
результат вызова этого метода передадим
01:29:39
функции Print вот так сохраняем
01:29:42
изменения переходим обратно в терминал и
01:29:45
Давайте снова запустим программу main.py
01:29:48
ввожу своё имя и введу его с маленько
01:29:52
буквы Вот так я увижу Богдан с маленькой
01:29:56
буквы как результат вызова функции print
01:29:58
на этой строке но я увижу Богдан с
01:30:02
большой буквы как результат вызова
01:30:04
метода
01:30:06
capitalize это как раз то что делает
01:30:09
метод capitalize То есть если здесь есть
01:30:12
строка в которой слова некоторые
01:30:14
начинаются с маленькой буквы то Capital
01:30:17
сделает маленькие буквы заглавными
01:30:19
буквами и это то что мы видим здесь
01:30:22
выводе то есть Богдан теперь написано с
01:30:24
заглавной буквы но при этом значение
01:30:27
переменной name не
01:30:30
изменилось то есть capitalize вернул нам
01:30:33
новую переменную новое значение Давайте
01:30:36
убедимся в том что у нас значение
01:30:39
переменной name не изменилось снова
01:30:41
вызовем функцию Print и ей передадим
01:30:44
name сохраним изменение и Давайте снова
01:30:47
выполним код Python 3 MPI снова пишу
01:30:51
Богдан с маленькой
01:30:52
и вижу Богдан с маленькой буквы далее
01:30:55
Богдан с большой буквы и снова Богдан с
01:30:57
маленькой буквы То есть это подтверждает
01:30:59
то что значение переменной у нас не
01:31:02
изменилось после вызова метода
01:31:05
ка Давайте попробуем другой метод
01:31:08
например
01:31:09
вместо ка напишем Вот так и давайте я
01:31:13
удалю строку 7 и Давайте сохраним код и
01:31:17
выполним его Итак пишу сво имя те вижу
01:31:22
Богдан за главными буквами как результат
01:31:24
вызова функции apper Я думаю что здесь
01:31:27
понятно что делает этот метод
01:31:30
apper сейчас поставьте видео на паузу и
01:31:34
поэкспериментировать
01:31:46
объект объект типа строка для этого мы
01:31:49
воспользуемся функцией dirar которую мы
01:31:52
использовали уже ранее и путём вызова
01:31:55
функции dirar и передачи ей название
01:31:58
переменной мы можем вывести список всех
01:32:00
имён атрибутов объекта name Итак
01:32:03
сохраняем изменения и теперь снова
01:32:05
выполним этот код Python 3 main.py ввожу
01:32:10
своё имя и теперь в конце вывода я вижу
01:32:13
большой список и этот список содержит
01:32:16
все атрибуты объекта name и в этом
01:32:21
списке а мы понимаем что это список
01:32:23
исходя из квадратных скобок вот
01:32:25
закрывающая скобка и вот открывающая
01:32:27
скобка в этом списке есть ряд строк
01:32:30
таких например как два знака
01:32:32
подчёркивания два знака подчёркивания
01:32:35
это один из так называемых магических
01:32:38
методов в Python и магические методы не
01:32:41
вызываются обычно напрямую они
01:32:44
вызываются как следствие использования
01:32:47
операторов в Python и детальнее о
01:32:50
магических методах мы говорим с Вами
01:32:52
далее но я хочу вам показать что в этом
01:32:54
списке кроме магических методов есть
01:32:57
также и другие методы которые мы с вами
01:32:59
только что использовали такие как
01:33:01
capitalize либо uper я надеюсь что вы
01:33:05
также попробовали вызвать и другие
01:33:07
методы строк я крайне Рекомендую вам не
01:33:10
пропускать те задания которые я вам даю
01:33:12
они используются для того чтобы вы
01:33:15
смогли закрепить материал и чтобы
01:33:17
попробовать попрактиковаться
01:33:19
самостоятельно Итак Именно таким образом
01:33:22
можно посмотреть список имён всех
01:33:25
атрибутов того или иного объекта в
01:33:28
данном примере мы видим атрибуты строки
01:33:32
Итак давайте вскроем терминал удалим
01:33:35
весь этот код сохраним файл и далее
01:33:37
поговорим об отступа в
01:33:45
Python в некоторых языках
01:33:48
программирования для разделения блоков
01:33:50
кода используются скобки в Python же для
01:33:54
этих целей используются отступы а именно
01:33:57
отступы сформированы на основании
01:33:59
пробелов и сейчас давайте детальнее
01:34:01
поговорим Что такое отступы в коде
01:34:03
Python и где отступы следует
01:34:05
использовать Итак отступы играют очень
01:34:09
важную роль потому что именно с помощью
01:34:11
отступов Python понимает Где начинается
01:34:15
тот или иной блок кода Давайте посмотрим
01:34:18
на корректный код в этом мере объявлена
01:34:22
функция у этой функции есть имя Print
01:34:26
name function Вот это имя здесь есть
01:34:29
один параметр функции и после двоеточия
01:34:32
начинается тело функции Вот это тело
01:34:36
функции и в теле функции мы просто
01:34:39
печатаем в терминал значение переменной
01:34:42
name и Как видите тело функции
01:34:45
начинается с отступа вот этот отступ и
01:34:49
отступ в данном примере сформирован с
01:34:51
помощью четырёх
01:34:53
пробелов Именно таким образом Python
01:34:56
понимает Где начинается и где
01:34:59
заканчивается тело функции Давайте
01:35:02
посмотрим на некорректный код в этом
01:35:05
примере у нас Print name написано на том
01:35:10
же уровне что и Def Print name
01:35:13
function Если вы попытаетесь выполнить
01:35:16
такой код то Python выдаст вам ошибку
01:35:19
ident Error expected and iden Block то
01:35:24
есть ожидается блок кода с
01:35:27
отступом почему такая ошибка возникает в
01:35:30
этом случае Потому что если вы
01:35:32
объявляете функцию например вот таким
01:35:34
образом то в теле функции должна быть
01:35:37
хотя бы одна строка кода в этом же
01:35:40
примере у нас в теле функции ни одной
01:35:43
строки кода нет а вместо этого на одном
01:35:46
уровне с объявлением функции Вот здесь
01:35:50
мы пишем дую строку кода Print name это
01:35:54
говорит интерпретатору Python о том что
01:35:56
в теле функции нет ни одной строки кода
01:35:59
И следовательно возникает вот эта ошибка
01:36:02
entation Error expected and iden
01:36:06
Block то есть отступы играют очень
01:36:09
важную роль в коде Python А теперь
01:36:12
Давайте попробуем это на практике
01:36:13
Давайте перейдём в Редактор кода и здесь
01:36:16
я объявлю функцию о функциях детально мы
01:36:19
с вами пока не говорили но Давайте
01:36:22
объявим простую функцию Def My Name у
01:36:25
этой функции будет один параметр далее
01:36:28
двоеточия и смотрите если нажимаю enter
01:36:31
то редактор кода автоматически добавляет
01:36:33
отступ и в этом отступ если посмотреть
01:36:37
внимательно есть четыре пробела Вот они
01:36:41
и здесь в теле функции Давайте напишем в
01:36:45
терминал значение переменной name вот
01:36:48
так если мы выполним этот код то конечно
01:36:52
в терминале мы ничего не увидим так я
01:37:05
передвинуть эту функцию ниже если я
01:37:08
после этой строки нажму enter то я снова
01:37:11
перейду под Print name То есть это
01:37:14
означает что если я напишу код дальше
01:37:16
здесь то он будет находиться в теле
01:37:19
функции но я хочу вне рамок этой функции
01:37:23
нажимаю Delete возвращаюсь на один
01:37:26
уровень с объявлением функции Я хочу
01:37:29
здесь вызвать функцию уже Итак пишу myn
01:37:32
могу нажать Tab для дополнения имени
01:37:34
функции вызываем функцию и ей передаём
01:37:37
например строку Богдан Если я сейчас
01:37:40
выполняю код то я уже увижу в выводе
01:37:43
Богдан это результат вызова этой функции
01:37:46
а именно результат вывода в терминал
01:37:49
значения параметра name
01:37:52
теперь Давайте попробуем убрать этот
01:37:54
отступ вот таким образом и сразу же я
01:37:57
увижу что Print теперь подчёркнуто и
01:38:00
если навести курсор на Print и
01:38:02
прокрутить вниз то внизу мы увидим
01:38:05
непосредственную ошибку expected iden
01:38:08
Block то есть ожидается блок кода с
01:38:11
отступом и это предупреждение мы
01:38:14
получили благодаря расширению pens
01:38:17
которое мы ранее установили Давайте
01:38:20
попробуем
01:38:21
код выполняем код и я вижу такую же
01:38:25
ошибку в выводе entation
01:38:29
eror
01:38:32
BL то есть ожидается блок кода с
01:38:36
отступом и вот местонахождение ошибки
01:38:39
ошибка находится на второй линии в файле
01:38:44
MPI Следовательно Таким образом мы не
01:38:47
можем
01:38:50
использовать вне тела
01:38:52
функции в теле функции должна быть хотя
01:38:55
бы одна строка кода Потому здесь и
01:38:58
возникает эта ошибка Если я верну T
01:39:01
обратно то ошибка возникать уже не будет
01:39:04
а если мы здесь добавим также отступ
01:39:07
кстати говоря при нажатии Tab мы
01:39:09
получаем всё равно четыре пробела то
01:39:11
есть Tab автоматически конвертируется в
01:39:14
четыре пробела и это видно здесь внизу
01:39:18
Spaces for это означает что вы можете
01:39:21
использовать либо пробелы для
01:39:23
формирования отступов либо п при этом п
01:39:26
будет автоматически конвертирова в
01:39:28
четыре пробела Как видно здесь то есть
01:39:31
здесь четыре пробела и здесь четыре
01:39:32
пробела Итак что же будет если мы
01:39:36
выполним код в таком виде как он есть
01:39:38
сейчас давайте уберём даже вот эту
01:39:40
пустую строку выполняем код и я ничего в
01:39:43
выводе не вижу можете объяснить почему
01:39:46
мы ничего в выводе не
01:39:48
видим ответ очень простой мы вызываем
01:39:51
функцию myname внутри функции myname
01:39:55
потому что сейчас эта строка кода
01:39:57
находится в теле функции myname То есть
01:40:00
она находится на одном уровне с выводом
01:40:03
в терминал значения переменной name то
01:40:06
есть вне функции myname Мы её не
01:40:09
вызываем А если добавить вызов функции
01:40:12
Давайте скопирую эту строку кстати
01:40:15
говоря Если вы хотите скопировать
01:40:17
какую-то строку то можно нажать
01:40:19
комбинацию клавиш Shift Alt и кнопка
01:40:22
вниз тогда определённая строка будет
01:40:25
скопирована И теперь мы можем эту строку
01:40:28
перенести на один уровень с функцией вот
01:40:31
таким
01:40:32
образом что мы получим в этом случае Как
01:40:34
вы думаете если запустим код Давайте
01:40:37
посмотрим выполняем код и я вижу что код
01:40:41
выполняется бесконечное количество раз
01:40:43
то есть я вижу Богдан очень много раз в
01:40:46
терминале и в конце я увидел ошибку
01:40:51
recursion Error Maximum recursion Death
01:40:53
exceeded while Calling A Python object
01:40:57
Это означает что сейчас функция myname
01:41:00
циклически вызывает сама себя
01:41:03
бесконечное количество раз то есть мы
01:41:05
вызываем функцию myname она внутри себя
01:41:07
вызывает себя же потом снова внутри себя
01:41:10
вызывает себя же и так далее И это
01:41:13
благодаря только вот этому первому
01:41:15
начальному вызову функции myname Итак я
01:41:19
думаю что понятно Что такое отступы и
01:41:22
какую роль они играют отступы важны не
01:41:25
только в функциях но и например в
01:41:28
условных инструкциях If либо в циклах
01:41:31
while о них мы поговорим позже в этом
01:41:34
курсе Итак Давайте удалим этот блок кода
01:41:37
и идём дальше И в следующем уроке мы
01:41:40
поговорим с вами о форматировании кода
01:41:45
[музыка]
01:41:49
Python только что мы мы поговорили с
01:41:51
вами об отступа в Python и отступы
01:41:54
играют очень важную роль и обычно
01:41:57
отступы формируются на основании
01:41:58
пробелов один отступ - это четыре
01:42:00
пробела А как же форматировать остальные
01:42:03
части кода например как форматировать
01:42:06
словари списки Как форматировать функции
01:42:09
где переходить на другую строку кода где
01:42:12
добавлять пустую строку кода и так далее
01:42:15
так вот есть определённые документы
01:42:18
которые регламентируют то как как
01:42:21
следует писать код и Один из таких
01:42:24
документов - Это документ
01:42:26
pep8 pep - это Python enhancement
01:42:29
proposal иными словами Это документ
01:42:31
который содержит предложение по
01:42:34
улучшению языка программирования Python
01:42:37
и в одном из таких документов а именно
01:42:40
pep8 и содержатся рекомендации по
01:42:44
написанию кода Python в том числе
01:42:47
касательно того где добавлять отступы
01:42:49
где добавлять белый и так
01:42:52
далее Где найти информацию о pep8 по
01:42:56
указанной ссылке
01:43:19
psp.psv и ознакомиться с этим
01:43:22
документом Этот документ был создан
01:43:25
Достаточно давно но он всё ещё актуален
01:43:28
и все разработчики Python следуют
01:43:31
рекомендациям из этого документа сейчас
01:43:35
Я приведу некоторые выдержки из этого
01:43:37
документа pep8 например для отступов
01:43:41
следует использовать пробелы а не п и вы
01:43:44
уже об этом знаете далее длина строк не
01:43:48
должна быть более чем
01:43:51
символов То есть если у вас очень
01:43:53
длинные строки необходимо их разбивать
01:43:55
на несколько
01:43:57
строк далее функции классы должны быть
01:44:01
отделены от других строк кода двумя
01:44:04
пустыми строками То есть ни одной пустой
01:44:07
строкой как это делается в большинстве
01:44:09
языков программирования а двумя пустыми
01:44:12
строками далее импорты модулей должны
01:44:16
быть на отдельных строках о импорта мы с
01:44:18
вами будем говорить то есть можно
01:44:21
как встроенные модуля в Python так и
01:44:23
внешние модуля так вот каждый отдельный
01:44:26
модуль необходимо импортировать на
01:44:28
отдельной строке кода а не несколько
01:44:31
модулей на одной строке кода далее
01:44:35
комментарии в конце строки кода должны
01:44:38
отделяться по крайней мере двумя
01:44:39
пробелами от кода о комментариях мы
01:44:42
поговорим с вами в следующем уроке Это
01:44:46
некоторые выдержки из документа p8 на
01:44:49
самом де намного больше сейчас я
01:44:52
Предлагаю перейти обратно в Редактор
01:44:55
кода и посмотреть как это работает на
01:44:58
практике Итак давайте например создадим
01:45:01
список My знак подчёркивания лист знак
01:45:05
присваивания и здесь я добавлю например
01:45:07
много пробела вот таким образом далее
01:45:10
квадратные скобки и в них напишем
01:45:12
несколько элементов Причём я тоже
01:45:15
добавлю много пробелов и здесь добавлю
01:45:17
также в конце несколько пробелов перед
01:45:20
ваю квадратной скобкой
01:45:22
технически это корректный код Python и
01:45:25
мы можем его выполнить Давайте кроме
01:45:28
этой строки добавим ещё Print здесь
01:45:31
будет вызов функции Print добавлю тоже
01:45:34
пару пробелов и здесь будет My знак
01:45:36
подчёркивание лист вот так давайте
01:45:39
выполним этот код код был успешно
01:45:42
выполнен То есть как видите Python
01:45:45
проигнорировал лишние пробелы но писать
01:45:49
так код не рекомендуется Согласно pep8
01:45:53
возникает вопрос А как же мы можем в
01:45:55
редакторе кода vscode отформатировать
01:45:58
этот код Согласно
01:46:00
рекомендациям очень просто Для этого
01:46:03
необходимо нажать комбинацию клавиш на
01:46:05
Windows Ctrl Shift P на Mac Command
01:46:08
Shift P Вот так и появится список в
01:46:13
котором Необходимо написать Вот так form
01:46:18
docum with выбираем этот вариант
01:46:21
отформатировать документ с помощью
01:46:24
нажимаем Enter и здесь выбираем Python
01:46:28
вот так здесь мы увидим сообщение form
01:46:32
autop 8 is not Install Install То есть
01:46:36
это специальный
01:46:39
форматировать наш код Согласно
01:46:41
рекомендациям описанным в документе pep8
01:46:45
Давайте установим его нажимаем
01:46:49
Yes ция autop
01:46:52
8 vscode скачивает его с интернета
01:47:05
форматировать опцию Format document with
01:47:08
на самом верху потому что мы только что
01:47:10
эту опцию использовали и она будет в
01:47:13
секции recently used выбираем Format
01:47:16
document with и выбираем Python и вы
01:47:19
увидите что aut pep8 автоматически
01:47:22
отформатировал этот код но как видите во
01:47:25
всех местах были пробелы убраны Кроме
01:47:28
этого места Это означает что Согласно
01:47:31
pep8 можно использовать больше чем один
01:47:34
пробел для разделения элементов в
01:47:37
списках Давайте добавим например здесь
01:47:40
отступ вот таким образом и попробуем
01:47:42
отформатировать документ
01:47:44
снова Doc with Python отступы были
01:47:48
убраны вот таки таким образом работает
01:47:51
автоформатирование теперь возникает
01:47:53
вопрос как же мы можем настроить этот
01:47:56
форматировании таким образом чтобы он
01:47:58
автоматически
01:48:02
форматированием очень просто так я уберу
01:48:04
лишние отступы отсюда чтобы элементы
01:48:06
были разделены одним пробелом и теперь
01:48:09
давайте снова вызовем список команд
01:48:13
выберем формат document with и теперь
01:48:16
выберем configure default Format то есть
01:48:18
настроить форматив по
01:48:21
это же можно сделать и в настройках но я
01:48:23
хочу показать вам как это можно сделать
01:48:25
здесь при вызове команд Итак config
01:48:28
default form настроить
01:48:37
форматирование файлов при сохранении
01:48:40
Итак открываем настройки на Windows
01:48:42
Control запятая на Mac com запятая и
01:48:45
здесь ищем form on Save и вы на те опцию
01:48:51
Editor Format on Save и эта опция
01:48:53
говорит о том что при сохранении файла
01:48:56
будет использован
01:49:06
форматировать код Python Итак ставим
01:49:09
здесь галочку Format on Save и закрываем
01:49:12
настройки вам не нужно Здесь сохранять
01:49:15
сам файл Потому что при изменении этих
01:49:18
опций vscode автоматически их применяет
01:49:21
мы можем перейти в Jon File нажав на эту
01:49:25
иконку и вы увидите что были добавлены
01:49:28
Вот такая строка Editor default
01:49:30
formatter MS Python Python и внизу
01:49:34
где-то должна была быть добавлена ещё
01:49:36
одна опция Editor Format on Save то есть
01:49:40
форматировать код при сохранении Как
01:49:43
видите все настройки сохраняются в одном
01:49:45
месте в файле settings.js кстати говоря
01:49:49
мы сейчас смотрим на файл который общий
01:49:52
для всех проектов пользователя но можно
01:49:55
также добавлять настройки для каждого
01:49:57
проекта По отдельности при этом в папке
01:50:02
проекта например в папке Python
01:50:04
создаётся специальная скрытая папка
01:50:06
vscode и в ней уже будет находиться фай
01:50:10
settings.js
01:50:11
Но в нашем случае это не требуется мы
01:50:14
используем один файл настроек для всех
01:50:17
наших проектов Итак закрываем это этот
01:50:20
файл и закрываем настройки и теперь
01:50:22
проверим как это работает Давайте
01:50:24
например удалим здесь пробелы и здесь я
01:50:27
добавлю несколько ТБО и здесь добавлю
01:50:31
много пустых строк вот таким образом
01:50:33
сохраняем файл Ctrl S на Windows Command
01:50:36
S на Mac и файл был автоматически
01:50:40
отформатирован Как видите количество
01:50:42
пустых строк сократилось до двух То есть
01:50:45
вы можете разделять строки кода одной
01:50:48
либо двумя пустыми строками а можно
01:50:50
вообще пустые строки не использовать Вот
01:50:52
так То есть можно так сохранить код и
01:50:55
тогда
01:50:57
форматировать пустую строку То есть
01:51:00
можно либо без пустых строк с одной
01:51:02
пустой строкой либо двумя Напоминаю что
01:51:05
определение функций и классов отделяются
01:51:08
от других частей кода двумя пустыми
01:51:11
строками давайте это попробуем Итак
01:51:13
Давайте удалим это и здесь я создам
01:51:16
функцию Def My FN без параметров и здесь
01:51:20
будет например просто Print Hello Вот
01:51:24
так и здесь например
01:51:26
я вызову функцию Print и ей передам
01:51:29
например текст Богдан вот так здесь одна
01:51:33
пустая строка Как видите и Давайте здесь
01:51:35
прямо перед функцией также например
01:51:37
напишем A знак присваивания 10 то есть
01:51:40
создаём переменную и ей присваиваем
01:51:42
значение 10 Как видите здесь у нас одна
01:51:45
строка здесь у нас нет пустых строк
01:51:47
перед объявлением функции Итак сохраняем
01:51:50
код и Как видите
01:52:00
форматирование происходит Согласно тому
01:52:03
как это описано в документе
01:52:05
pep8 Итак Это всё что касается
01:52:08
автоформатирование кода и в дальнейшем
01:52:11
на протяжении этого курса код в
01:52:13
редакторе кода vs Code у нас будет
01:52:14
автоматически форматировать при каждом
01:52:17
сохранении то есть Вы не должны об этом
01:52:19
беспокоить самостоятельно Но конечно Вам
01:52:21
следует знать Основные требования к
01:52:23
форматированию и сразу писать код
01:52:26
Согласно этим требованиям Итак Это всё
01:52:29
что касается форматирования с помощью
01:52:37
pep8 как и в любом языке
01:52:39
программирования в Python доступна
01:52:41
возможность добавления
01:52:43
комментариев комментарии игнорируются
01:52:46
интерпретатором Python и комментарии
01:52:49
обычно добавляются разработчиками для
01:52:52
себя либо для других разработчиков как
01:52:55
же используются комментарии бывают
01:52:58
однострочный комментарии как в данном
01:53:01
примере на первой строке перед
01:53:04
комментарием просто добавляете знак
01:53:07
решётки далее бывают многострочные
01:53:10
комментарии это те же однострочный но с
01:53:13
несколькими знаками решётки и
01:53:15
расположенные на разных строках и третий
01:53:19
вариант комментариев это комментарии на
01:53:22
строках с кодом То есть можно после
01:53:25
строки с кодом например после Print 10
01:53:28
после двух пробелов добавить знак
01:53:30
решётки и потом написать
01:53:33
комментарий это три варианта добавления
01:53:36
комментариев в Python бывают ещё
01:53:39
многострочные комментарии которые
01:53:41
находятся между тройными одинарными либо
01:53:44
тройными двойными кавычками но такие
01:53:47
комментарии обычно используются в
01:53:49
функциях для описания того что функция
01:53:52
делает об этом поговорим в разделе
01:53:55
посвящённом функциям Ну а ваши
01:53:57
комментарии следует добавлять используя
01:54:00
знак решётки но теперь важный момент не
01:54:04
нужно добавлять комментарии которые
01:54:06
описывают то что выполняет код то есть
01:54:10
код должен быть читабельный и понятным
01:54:13
другим пользователям то есть пишите код
01:54:15
так чтобы он был понятен сам по себе не
01:54:18
нужно с помощью коммента
01:54:20
описывать Что вы делаете вместо этого с
01:54:22
помощью комментариев Вы можете описать
01:54:25
цель кода который написан в том или ином
01:54:28
файле либо Как его правильно
01:54:30
использовать в других файлах если
01:54:32
например вы создали модуль то есть
01:54:34
написать рекомендации по использованию
01:54:37
но не нужно описывать то что делает код
01:54:40
сам по себе Теперь давайте перейдём в
01:54:43
Редактор кода и добавим несколько
01:54:45
комментариев Итак в редакторе кода
01:54:48
Давайте поставим т и здесь напишем This
01:54:51
is com вот так далее добавим
01:54:55
многострочный комментарии Можно написать
01:54:58
например This is comand Вот так А можно написать
01:55:03
таким образом This is com вот так далее
01:55:08
выбрать три
01:55:10
строки vs Code можно выбрать несколько
01:55:12
строк с зажатой клавишей Shift и
01:55:15
кнопками вверх-вниз и теперь нажать
01:55:17
комбинацию клавиш Ctrl Windows либо
01:55:20
Command Mac и комментарий добавится
01:55:23
автоматически этой же комбинацией можно
01:55:26
раскомментировать блоки кода выбираем
01:55:28
комментарии и нажимаем Ctrl Windows либо
01:55:32
Command Mac и комментарий был убран вот
01:55:35
таким образом перь Давайте добавим так я
01:55:38
удалю этот коментарий и ниже я добавлю
01:55:41
коментарий после строки кода Print
01:55:44
например 10 и здесь добавляю после двух
01:55:47
пробелов решётку This is Inline com то
01:55:52
есть комментарий на строке
01:55:55
кода и если например Здесь я не добавлю
01:55:59
два пробела сохраню файл то autopep8
01:56:02
автоматически добавит два пробела перед
01:56:05
этим комментарием потому что здесь два
01:56:08
пробела должно быть Согласно
01:56:10
рекомендациям p8 А если будет больше
01:56:13
пробелов допустим вот таким образом
01:56:15
сохраняем код пробелы остались То есть
01:56:18
можно использовать два и больше пробелов
01:56:21
Согласно pep8 почему это так потому что
01:56:24
допустим если у нас есть ещё одна строка
01:56:26
выше и эта строка длиннее чем следующая
01:56:28
то можно добавить например Здесь также
01:56:31
комментарий Another Comment и
01:56:34
комментарии будут удобно расположены
01:56:36
один под другим То есть это для удобства
01:56:39
чтения
01:56:40
комментариев допустим такие комментарии
01:56:42
можно использовать тогда когда вы в
01:56:45
каком-то файле описываете какие-то
01:56:47
константы то есть допустим в вашей
01:56:48
программе могут быть несколько констант
01:56:50
которые содержат например адрес
01:56:52
удалённого сервера логин и пароль для
01:56:55
подключения к этому серверу и
01:56:57
комментариями вы описываете например что
01:57:00
выполняет каждая из констант Для чего
01:57:02
она используется и в таком случае можно
01:57:04
комментарии расположить один под другим
01:57:07
как сейчас на экране если я сохраняю
01:57:10
изменения то autopep8 не удаляет пробелы
01:57:14
потому что допускается два и более
01:57:17
пробелов Это всё что касается
01:57:19
однострочный
01:57:21
и комментариев на строках кода удаляем
01:57:26
весь код и идём
01:57:30
[музыка]
01:57:35
дальше сейчас давайте поговорим с вами о
01:57:38
функциях и рассмотрим функции на
01:57:40
практике Хотя в дальнейшем в этом курсе
01:57:43
будет большая секция посвященная именно
01:57:45
детальному разбору функций но так как в
01:57:48
этом курсе Мы уже с вами использовали
01:57:50
некоторые функции такие как Print Input
01:57:52
DIR то Вам следует сейчас уже знать что
01:57:55
такое функция Как она вызывается какая
01:57:57
разница между аргументами и параметрами
01:57:59
и что такое ключевое слово Return Итак
01:58:02
давайте сейчас коротко поговорим о
01:58:04
функциях И начнём сразу с практики и на
01:58:07
практике мы с вами создадим несколько
01:58:09
разных функций Итак переходим в Редактор
01:58:12
кода Visual Studio Code и Давайте здесь
01:58:14
объявим функцию функции объявляются
01:58:17
Используя ключевое слово Def Def
01:58:20
и далее идт имя функции и Давайте
01:58:22
назовём функцию Hello после названия
01:58:25
функции добавляется пара круглых скобок
01:58:28
это блок параметров и в этом блоке можно
01:58:30
указывать один либо несколько параметров
01:58:33
также Функция может быть без параметров
01:58:35
тогда круглые скобки остаются пустыми
01:58:38
давайте пока оставим их пустыми То есть
01:58:40
у этой функции нет параметров и далее
01:58:43
идёт двоеточие после двоеточия
01:58:45
начинается блок кода в функции если нам
01:58:49
enter то vs за вас автоматически добавит
01:58:53
четыре пробела Это отступ в начале
01:58:55
функции и здесь Давайте допустим вызовем
01:58:58
функцию Print и здесь напишем строку
01:59:02
Hello вот таким образом то есть это
01:59:05
функция вызывается внутри функции Hello
01:59:09
Давайте выполним этот код выполняем код
01:59:12
и я в выводе ничего не вижу это
01:59:15
происходит из-за того что мы с вами уже
01:59:17
создали функцию
01:59:20
Но мы её не вызываем ещ а для того чтобы
01:59:23
код в функции был выполнен функцию
01:59:26
необходимо вызвать Давайте вызовем
01:59:28
функцию ниже и Мы это сделаем под Def И
01:59:32
для этого пишем название функции Hello И
01:59:35
если мы выполним код сейчас то мы снова
01:59:38
таки ничего в выводе здесь не увидим
01:59:40
потому что для того чтобы вызвать
01:59:41
функцию необходимо добавить пару круглых
01:59:44
скобок после названия функции вот таким
01:59:46
образом и только теперь Python вызовет
01:59:49
функцию Hello И следовательно блок кода
01:59:52
функции выполнится Давайте выполним код
01:59:55
сейчас И теперь я уже вижу в выводе
01:59:58
Hello there Это означает что сейчас
02:00:01
функция Hello Была выполнена одну и ту
02:00:05
же функцию можно вызывать многократно
02:00:07
если я добавлю здесь Hello снова и
02:00:09
добавлю вызов функции И выполню код я
02:00:12
увижу Hello there дважды здесь в выводе
02:00:16
это подтверждает то что функции можно
02:00:18
вызывать
02:00:19
И на самом деле для этого как раз
02:00:21
функции и создаются чтобы можно было их
02:00:24
вызывать многократно Итак здесь мы с
02:00:26
вами создали функцию под названием Hello
02:00:29
у этой функции нет ни одного параметра и
02:00:31
в теле функции мы вызываем функцию Print
02:00:34
Кроме этого в теле функции может быть
02:00:37
несколько разных строк кода Давайте
02:00:39
добавим Print ещ раз Print и напишу H
02:00:43
выполняем код ещё раз и я вижу два таких
02:00:46
блока то есть мы функцию снова вызываем
02:00:48
дважды но если мы напишем какую-то
02:00:51
строку кода вне функции Вот здесь
02:00:53
например Print Outside of the FN и
02:00:57
выполним код то мы увидим Outside of the
02:01:00
FN в самом верху потому что вызов
02:01:03
функции Print находится вне функции то
02:01:06
есть Сначала мы вызываем функцию Print А
02:01:08
после этого вызываем функцию Hello
02:01:11
дважды то есть эта строка не принадлежит
02:01:14
телу функции а Python понимает Где
02:01:17
находится тело функции на основании
02:01:19
отступов то есть здесь есть отступ и
02:01:21
здесь Следовательно эти две строки
02:01:23
находятся в теле функции Итак Давайте
02:01:25
удалим эту строку и Давайте теперь
02:01:28
добавим параметр для функции Hello Я
02:01:31
скрою пока вывод и параметры Как вы
02:01:33
знаете добавляются здесь в круглых
02:01:35
скобках и Давайте укажем параметр
02:01:37
допустим name Вот так и теперь Давайте
02:01:41
напишем Hello there и поставим запятую и
02:01:44
напишем name Вот так и тоже самое
02:01:47
сделаем на следующей строке запятая
02:01:49
то есть мы хотим вывести текст Hello
02:01:51
there и далее имя Что такое параметр
02:01:54
параметр воспринимайте пожалуйста как
02:01:56
переменную которая доступна внутри
02:01:59
функции и значение для этой переменной
02:02:02
задаётся в момент вызова функции потому
02:02:06
если Мы попытаемся выполнить код сейчас
02:02:08
давайте это сделаем то мы увидим ошибку
02:02:11
а именно Type eror Hell missing
02:02:16
requ То есть сейчас когда мы задали с
02:02:19
вами уже параметр здесь в функции Мы
02:02:23
обязаны вызывать функцию с аргументом
02:02:26
именно об этом говорит нам эта ошибка
02:02:28
потому Давайте уберём здесь Второй вызов
02:02:30
функции и в первом я укажу своё имя в
02:02:34
качестве аргумента вот так то сейчас
02:02:37
здесь Я указываю аргумент аргумент - это
02:02:40
значение для параметра name и в момент
02:02:43
вызова функции Hello переменная name -
02:02:46
это параметр функции Hello получает
02:02:48
чение Богдан Давайте выполним код ещ раз
02:02:52
И теперь я вижу Hello there Богдан Я
02:02:54
давайте заменю знак восклицания на
02:02:56
запятую и здесь напишу также there
02:02:59
запятая И выполню код ещё раз и вижу
02:03:02
Hello Богдан и there Богдан то есть вот
02:03:06
таким образом внутри функции мы получили
02:03:08
доступ к значению переменной name это
02:03:12
параметр функции Hell и конечно у
02:03:15
функции может быть несколько параметров
02:03:17
но мы оставим только один параметр в
02:03:19
этой функции Итак резюмируя сейчас в
02:03:22
этой функции Hello есть один параметр
02:03:25
называется name И теперь мы должны
02:03:27
вызывать функцию с аргументом в данном
02:03:30
примере это просто строка и в момент
02:03:32
вызова функции параметр name получает
02:03:35
значение Богдан мы можем вызвать функцию
02:03:39
ещё раз Hello и здесь я напишу elice вот
02:03:42
так выполняем код И теперь я получаю
02:03:44
Hello there Alice и H there Alice то
02:03:48
есть меняя аргументы мы можем влиять на
02:03:51
то Как выполняется
02:03:53
функция в каждом вызове у нас значение
02:03:56
для параметра name может быть
02:03:59
новым и конечно параметр name недоступен
02:04:03
вне функции он доступен только в теле
02:04:07
функции вот здесь Итак это параметры и
02:04:10
аргументы ещё раз запомните что здесь
02:04:13
указываются параметры функции если их
02:04:15
несколько то Они разделяются запятыми
02:04:17
Вот так например name H и и так далее ну
02:04:19
оставим один параметр А здесь
02:04:21
указываются аргументы Итак name - это
02:04:25
параметр а Богдан и elice - это
02:04:27
аргументы в разных вызовах функции Hello
02:04:31
и конечно вызовы функции Hello не
02:04:33
зависят друг от друга Это разные
02:04:38
[музыка]
02:04:42
вызовы теперь Давайте удалим этот код и
02:04:46
здесь создадим функцию которая будет
02:04:48
называться
02:04:50
Итак объявление функции са nums и у этой
02:04:54
функции будет два параметра A и B и
02:04:57
внутри этой функции Мы будем выполнять
02:04:59
суммирование значений A и B и Давайте
02:05:02
здесь добавим A п B А результат мы
02:05:07
присвоив сам Вот так и Давайте выведем
02:05:11
значение переменной сам здесь
02:05:13
Непосредственно функции и как всегда
02:05:15
если я выполню код сейчас то я ничего
02:05:18
выводе вижу потому что мы сейчас функцию
02:05:20
ещё не вызвали давайте это сделаем ниже
02:05:23
са nums и здесь при вызове функции я
02:05:27
должен указать два аргумента потому что
02:05:29
у нас два параметра A и B Давайте укажем
02:05:32
допустим 10 и 5 и выполним код и я вижу
02:05:36
15 это означает что функция Была
02:05:39
выполнена параметр A получил значение 10
02:05:42
а параметр B получил значение 5 далее
02:05:46
внутри функции Мы создали новую ю под
02:05:49
названием са и эта переменная доступна
02:05:52
только внутри функции и далее внутри
02:05:55
функции мы вызвали Print и ей передали
02:05:57
сам Вот именно из-за этого мы и получили
02:06:00
15 здесь в выводе То есть это благодаря
02:06:02
строке номер три вот таким образом мы
02:06:05
вызвали функцию са nums используя два
02:06:08
аргумента Давайте добавим ещё один вызов
02:06:11
са nums можно нажимать для
02:06:13
автозавершение названия функции и здесь
02:06:16
будет Допустим 50.5
02:06:19
это число с плавающей точкой и допустим
02:06:21
20 Давайте выполним код и здесь получаю
02:06:25
70.5 это результат второго вызова этой
02:06:28
же функции и снова таки принцип тот же
02:06:30
самый параметр A получил значение 50.5
02:06:34
параметр B получил значение 20 и Давайте
02:06:38
убедимся в том что переменные A и B
02:06:41
недоступны вне функции я попытаюсь здесь
02:06:44
написать выполню код и я получаю ошибку
02:06:48
name Error name A is not defined это
02:06:51
подтверждает то что переменная A не
02:06:54
доступна за рамками
02:06:56
функции Итак Давайте удалим Print A вот
02:06:59
таким образом и Мы закончили с этим
02:07:01
примером в котором мы использовали два
02:07:04
параметра A и B здесь Мы создали новую
02:07:07
переменную внутри функции она также
02:07:10
недоступна за рамками функции и здесь мы
02:07:12
вызвали Print и ей передали результат
02:07:15
суммирования A и B Ну и здесь мы просто
02:07:17
вызываем функцию some nums дважды и
02:07:21
теперь давайте поговорим о том что такое
02:07:23
ключевое слово Return и здесь вместо
02:07:26
того чтобы выводить са в терминал мы
02:07:30
можем вернуть сам используя ключевое
02:07:32
слово Return вот так Return са И если мы
02:07:37
выполним код сейчас то мы ничего здесь в
02:07:40
выводе не видим потому что у нас в этом
02:07:43
примере нет вызова функции Print но
02:07:46
теперь функция nums возвра значение вот
02:07:49
на этой строке что значит возвращать
02:07:53
значение Это означает что функция
02:07:55
выполнила свою работу и определённое
02:07:58
значение вернуло как результат своей
02:08:01
работы и потом вы можете использовать
02:08:04
этот результат например для того чтобы
02:08:06
присвоить его переменной либо же чтобы
02:08:08
передать его вызове другой функции
02:08:10
давайте это сделаем здесь у нас уже есть
02:08:13
вызов сас вот здесь и мы просто берм
02:08:16
результат вызова функции присваиваем
02:08:19
переменной допустим
02:08:21
First Вот так и теперь мы можем
02:08:23
использовать значение переменной First
02:08:26
допустим вызове Print Print First вот
02:08:30
так выполняем код сейчас и я вижу 15 То
02:08:34
есть сейчас мы вызвали функцию са nums
02:08:37
мы е передали 10 и5 эта функция
02:08:40
посчитала сумму A + B и вернула эту
02:08:45
сумму И следовательно мы можем
02:08:48
присвоить результат вызова функции
02:08:50
переменной
02:08:52
допустим название выбираете вы сами и
02:08:55
далее Вы можете использовать результат
02:08:57
функции и Допустим можно выводить
02:09:00
результат вызова функции в терминал как
02:09:02
мы сделали на строке
02:09:04
7 при этом результат второй функции мы
02:09:07
пока не
02:09:08
используем но мы можем использовать его
02:09:10
также и мы можем непосредственно
02:09:13
передать результат вызова функции в
02:09:15
функцию Print вот так то есть мы
02:09:18
присваиваем результат переменной FR А
02:09:21
здесь мы передаём результат вызова
02:09:23
функции в другую функцию Print это
02:09:26
допускается Итак давайте выполним код и
02:09:29
я вижу 15 здесь как результат вызова
02:09:32
функции print на строке 7 и 70.5 как
02:09:35
результат вызова функции Print с
02:09:37
немедленной передачей результата вызова
02:09:39
SU nums в этом
02:09:41
случае то есть как вы видите результат
02:09:44
который возвращает функция можно
02:09:46
использовать либо пум присвоения его
02:09:49
переменной как мы сделали здесь либо
02:09:52
путём передачи вызове другой функции при
02:09:55
этом это может быть не обязательно
02:09:57
функция Print это может быть и другая
02:10:00
функция Допустим можно как сделать
02:10:03
Давайте Скопируй вот эту часть отсюда и
02:10:06
здесь я вызову са nums и в вызове
02:10:09
функции са nums я передаю результат
02:10:13
вызова и Кроме этого я должен передать
02:10:15
ещ один аргумент допустим укажу здесь 30
02:10:18
вот так то есть я вызываю сам наз ещё
02:10:21
раз и передаю вот такое значение это
02:10:24
результат вызова сам nams И вот такое и
02:10:27
конечно чтобы увидеть результат в
02:10:28
терминале Я должен передать его в
02:10:31
функцию Print вот так то есть Давайте
02:10:34
посмотрим на всю строку Вот такая строка
02:10:37
Давайте выполним код то здесь я вижу
02:10:39
100.5 вот таким образом можно результат
02:10:42
вызова функции передавать допустим
02:10:45
вызове этой же функции либо другой и Как
02:10:48
видите у нас здесь трижды вызываются
02:10:50
разные функции Print some nums и some
02:10:53
nums это допускается в Python и конечно
02:10:57
всё начинается с вызова вот этой функции
02:11:00
потом вызывается эта функция а потом
02:11:03
эта вот таким образом можно использовать
02:11:05
ключевое слово Return и с помощью него
02:11:08
возвращать значение из
02:11:11
функции и в Python Return называется
02:11:14
statement то есть инструкция а
02:11:16
инструкции выполняют определённые
02:11:19
а допустим вызов функции - это выражение
02:11:22
о выражениях и о инструкциях поговорим
02:11:24
детальнее дальше в курсе а что же будет
02:11:27
если в функции не будет ключевого сло
02:11:29
Return Давайте проверим это И для этого
02:11:32
я удалю вот эти строки и Оставлю только
02:11:36
один вызов функции some nums и здесь я
02:11:38
просто удалю Return Вот так и Давайте
02:11:41
выполним код и я вижу
02:11:44
N это результат вызова функции print на
02:11:48
на шестой строке вот здесь И
02:11:50
следовательно Это означает что значение
02:11:52
переменной First - это N и это как раз
02:11:56
то значение которое любая функция
02:11:59
возвращает по умолчанию если нет
02:12:02
ключевого слова Return а его сейчас нет
02:12:05
то есть если нет ключевого слова Return
02:12:08
то любая функция возвращает всегда N и
02:12:12
Допустим можно посмотреть что возвращает
02:12:14
функция Print Давайте вызовем и ей дадим
02:12:18
допустим Print и здесь будет Богдан вот
02:12:21
так давайте выполним код и здесь я вижу
02:12:24
Богдан это результат вызова этой функции
02:12:26
Print но эта функция Print возвращает
02:12:30
None это то что возвращает функция Print
02:12:32
абсолютно всегда если навести курсор
02:12:35
мышки на Print то вы увидите N после
02:12:37
стрелки это как раз говорит о том что
02:12:39
функция Print всегда возвращает N И
02:12:43
следовательно мы передали N в вызове
02:12:45
функции Print потому мы здесь видим None
02:12:48
это равносильно тому что мы здесь
02:12:49
напишем просто Print и здесь будет NAN
02:12:52
выполним код здесь мы видим NAN дважды
02:12:55
но уже не видим Богдан потому что я
02:12:57
удалил вызов функции Print то есть вот
02:13:00
что возвращает функция Print по
02:13:02
умолчанию тоже самое что и возвращает
02:13:05
функция SU nums сейчас в этом примере
02:13:08
Давайте удалим эту строку Я скрою вывод
02:13:11
Давайте вернёмся к Return SU и Давайте
02:13:15
после Return SU напишем следующее Print
02:13:18
и здесь напишу L is not execut вот так
02:13:23
давайте выполним код сейчас и я не вижу
02:13:26
вот эту строку здесь в выводе это
02:13:29
означает что как только функция
02:13:31
возвращает результат то есть как только
02:13:34
функция доходит до Return она прекращает
02:13:37
свою работу и все остальные строки в
02:13:40
этом блоке кода не выполняются и vscode
02:13:44
подсвечивает эту строку серым это И
02:13:47
подтверждает то что до этой строки
02:13:50
выполнение кода не дойдёт то есть
02:13:52
правило такое как только функция доходит
02:13:54
до Return и возвращая значение далее
02:13:57
функция не
02:14:03
[музыка]
02:14:06
выполняется Итак мы с вами рассмотрели
02:14:08
то что такое функция она объявляется
02:14:11
используя Def далее идёт имя функции и
02:14:15
после названия идут круглые скобки в
02:14:17
которых указываются параметры функции
02:14:19
причём у функции может быть один
02:14:21
параметр может быть несколько А может и
02:14:23
не быть параметров вовсе потом идёт
02:14:26
двоеточие и после двоеточия начинается
02:14:29
блок кода функции и обязательно здесь
02:14:32
должен быть отступ это четыре пробела
02:14:34
как правило внутри функции можно
02:14:37
создавать переменные допустим переменная
02:14:38
сам - это локальная в функции переменная
02:14:41
и воспринимайте параметры функции также
02:14:44
как переменные которые доступны только
02:14:47
внутри функции
02:14:48
И следовательно можно выполнять разные
02:14:50
действия с этими параметрами при этом
02:14:53
кстати отмечу что можно присваивать и
02:14:55
новое значения параметрам A и B и далее
02:15:00
В этой функции Мы также возвращаем сам
02:15:03
используя Return statement инструкцию
02:15:06
Return И как только функция возвращает
02:15:09
результат она прекращает свою работу и
02:15:11
до этой строки кода выполнение функции
02:15:14
не дойдёт Ну и конечно для того чтобы
02:15:18
бло кода необходимо функцию вызвать как
02:15:20
мы делаем это вот здесь и в вызове
02:15:23
функции мы передам
02:15:25
аргументы это аргументы А это параметры
02:15:28
и в данном случае количество аргументов
02:15:31
такое же как и количество параметров
02:15:34
если допустим мы передадим только один
02:15:36
аргумент и выполним код то мы немедленно
02:15:38
получаем ошибку
02:15:40
typ
02:15:43
Miss то есть мы долж передать значение
02:15:46
для второго
02:15:49
так как было до этого 10 и 5 выполняем
02:15:52
код и получаем 15 как и
02:15:55
ране и в случае если функция возвращает
02:15:58
результат его можно использовать
02:16:01
допустим путём присвоения результата
02:16:03
вызова функции переменной как мы сделали
02:16:05
здесь Мы создали новую переменную вне
02:16:08
функции конечно же переменная называется
02:16:11
сам и далее мы можем выполнять разные
02:16:13
действия с этой переменной допустим
02:16:16
выводить значение переменной в термина
02:16:19
это то что вам следует знать о функциях
02:16:21
На данном этапе но снова таки повторюсь
02:16:23
что мы вернёмся к функциям Далее в этом
02:16:25
курсе и очень детально их рассмотрим Ну
02:16:28
а сейчас Мы закончили с рассмотрением
02:16:31
того что такое функции как их вызывать
02:16:33
что такое параметры Аргументы и что
02:16:36
такое ключевое слово
02:16:43
Return теперь пришло время поговорить о
02:16:46
выражениях и инструкциях в Python И
02:16:49
начнём с выражений выражение
02:16:51
по-английски Expression Итак результатом
02:16:55
выражения является значение и как
02:16:58
правило в выражениях находится один либо
02:17:01
несколько операторов таких как плюс or
02:17:04
in и так далее и результат выражения
02:17:08
можно использовать например в вызове
02:17:10
функции либо для того чтобы присвоить
02:17:13
такой результат другой
02:17:15
переменной повторюсь результат выражение
02:17:18
всегда является какое-то одно значение
02:17:21
определённого
02:17:22
типа Давайте посмотрим на примеры
02:17:26
выражений первый пример результат суммы
02:17:29
двух целых чисел то есть 5 + 3 - это
02:17:32
выражение а 8 - это результат этого
02:17:36
выражения и результат - это сумма
02:17:39
значений 5 и
02:17:42
3 Второй пример A бо B в данном случае и
02:17:46
A и B это переменная
02:17:49
и в этом случае результатом выражения
02:17:52
будет либо логическая True либо
02:17:55
логическая
02:17:56
fse то есть мы сравниваем значение двух
02:17:59
переменных и может быть один из двух
02:18:02
результатов либо TR либо
02:18:04
false ещё один пример Hello п World и
02:18:09
Hello и World - это строки если мы
02:18:11
используем оператор п то Python соединит
02:18:15
две строки и в результате получим
02:18:18
значение Hello world это результат
02:18:20
выражения Hello п World и ещё один
02:18:24
пример вызов функции вызов функции в
02:18:28
Python - это также выражение Почему
02:18:31
Потому что как вы уже знаете любая
02:18:32
функция возвращает определённое значение
02:18:36
и это значение и является результатом
02:18:39
выражения то есть здесь вызов функции -
02:18:42
это
02:18:43
выражение и например эта функция может
02:18:46
возвращать сумму двух чисел либо
02:18:49
результат умножения двух чисел либо же
02:18:52
Функция может возвращать Нан это пустое
02:18:55
значение об этом поговорим чуть позже но
02:18:57
любая функция всегда возвращает значение
02:19:01
Но если вы просто вызываете функцию в
02:19:03
коде то вы никак не используете
02:19:06
результат который возвращает функция А
02:19:09
если вы хотите такой результат
02:19:10
использовать То следует присвоить
02:19:12
результат вызова функции определённой
02:19:15
переменной либо же например передать
02:19:18
результат вызова одной функции в другую
02:19:20
функцию помните мы вызывали функцию DIR
02:19:24
и результат вызова функции de передавали
02:19:27
другой функции функции Print это именно
02:19:31
то о чём я только что сказал То есть
02:19:33
можно результат вызова функции
02:19:35
использовать в вызовах других
02:19:38
функций потому что вызов функции - это
02:19:41
выражение Как проверить где выражение А
02:19:45
где нет Можно проверить очень просто
02:19:48
например путём вызова любой функции Если
02:19:51
вы вызовете Print и в круглых скобках
02:19:54
Напишите выражение то Никакой ошибки не
02:19:57
будет Если же вы напишите не выражение В
02:20:00
круглых скобках а инструкцию то Python
02:20:03
выдаст вам
02:20:04
ошибку Итак это были примеры некоторых
02:20:07
выражений и сейчас Давайте попробуем
02:20:10
вместе посо здавать некоторые выражения
02:20:13
в редакторе кода Итак напишем здесь 10 +
02:20:18
5 если мы выполним код то в выводе мы
02:20:21
ничего не увидим потому что мы ничего не
02:20:24
выводим в терминал для того чтобы
02:20:26
получить результат необходимо добавить
02:20:27
Print вот таким образом и выполнить код
02:20:30
И теперь я увижу результат этого
02:20:34
выражения теперь вызов функции Print сам
02:20:37
по себе является выражением и у
02:20:40
выражения Как вы знаете есть
02:20:42
определённый результат Давайте выведем в
02:20:45
терминал результат этого выражения как
02:20:48
это можно сделать очень просто вызвав
02:20:51
снова функцию Print Вот так и передать
02:20:54
ей результат вызова функции
02:20:57
Print Давайте посмотрим что мы получим в
02:21:00
терминале мы видим 15 а потом None 15 -
02:21:05
это то что вывело в терминал эта функция
02:21:09
то есть это то что находится в теле
02:21:12
функции Print То есть то что она
02:21:14
выполняет она выводит в терминал
02:21:16
определённое значение
02:21:18
а вот функция Print вернула значение N и
02:21:22
это значение n было передано в эту
02:21:25
функцию Print и это значение NAN и было
02:21:28
выведено в терминал то есть функция
02:21:30
Print всегда возвращает N это пустое
02:21:34
значение и можно навести курсор на
02:21:37
название функции Print Напоминаю что я
02:21:40
поставил задержку для этого всплывающего
02:21:42
окна чтобы всплывающие окна сразу Не
02:21:44
появлялись при случайном наведении РСО и
02:21:47
здесь можно в описании функции Print
02:21:50
найти что же эта функция возвращает то
02:21:53
есть видите справа здесь находится None
02:21:56
Это означает что функция Print всегда
02:21:59
возвращает None и это находится в
02:22:02
описании функции Print А давайте
02:22:05
посмотрим что же возвращает функция
02:22:08
Input о ней мы говорили ранее Давайте
02:22:10
эту строку удалим напоминаю комбинацию
02:22:13
клавиш Ctrl Shift K на Windows либо же
02:22:16
Command Shift K на ma вот так либо же
02:22:18
можно поставить курсор в конец строки и
02:22:21
нажать на Mac Command Delete на Windows
02:22:24
Control Backspace и строка будет удалена
02:22:27
но как видите остаётся пустая строка А
02:22:30
вот предыдущая комбинация клавиш удаляет
02:22:32
полностью строку
02:22:34
целиком вот так то есть видите было
02:22:36
четыре строки стало три строки Давайте
02:22:39
напишем inp вызываем функцию и Давайте
02:22:42
здесь напишем Enter name как мы это
02:22:46
делали ранее и наведём курсор на функцию
02:22:49
Input здесь Как видите Мы видим что
02:22:52
функция Input возвращает строку вот
02:22:55
здесь STR и мы это уже использовали
02:22:59
ранее когда мы присваивали результат
02:23:01
вызова функции Input переменной А потом
02:23:04
мы выводили переменную в терминал то
02:23:06
есть снова таки в данном случае это
02:23:09
выражение и это выражение возвращает
02:23:12
определённый результат результат типа
02:23:16
строка потому результат вызова этой
02:23:19
функции можно присваивать переменной
02:23:21
либо же передавать другой функции То
02:23:24
есть можно например сделать так пишем
02:23:26
здесь Print и передаём в Print результат
02:23:30
вызова функции Input Вот так это
02:23:32
возможно А вот если мы напишем Print и
02:23:35
здесь напишем Def My
02:23:38
FN круглые скобки двоеточие и попытаемся
02:23:42
добавить здесь функцию например вот так
02:23:44
Print допустим bogan вот так
02:23:47
в данном случае мы получим ошибку потому
02:23:50
что мы в этих круглых скобках написали
02:23:53
инструкцию то есть мы объявили функцию и
02:23:57
сразу немедленно Мы видим здесь что
02:23:59
возникла ошибка expected Expression
02:24:02
видите ожидается выражение А мы добавили
02:24:05
не выражение Давайте попробуем вместо
02:24:07
объявления функции здесь написать
02:24:09
условную инструкцию например
02:24:12
If здесь двоеточие и здесь напишем
02:24:15
например Print
02:24:18
Здесь также возникла ошибка наводим
02:24:20
курсор и видим ту же ошибку expected
02:24:23
Expression потому что я здесь написал
02:24:26
инструкцию это условная инструкция а её
02:24:29
здесь быть не может то есть мы не можем
02:24:31
использовать инструкцию на месте где
02:24:34
Python ожидает от вас
02:24:35
выражение Итак это то что такое
02:24:39
выражение и мы поговорили с вами о
02:24:41
некоторых примерах выражений и далее мы
02:24:44
поговорим об инструкциях
02:24:50
[музыка]
02:24:52
теперь мы поговорим с вами об
02:24:54
инструкциях хотя мы только что уже
02:24:56
затронули тему инструкций в предыдущей
02:24:58
лекции Итак инструкции по-английски
02:25:01
statements на самом деле прямого
02:25:04
перевода слова statements на русский нет
02:25:06
и я решил называть statements
02:25:08
инструкциями потому что они передают
02:25:10
некоторые инструкции интерпретатору
02:25:12
Python касательно выполнения кода
02:25:14
например инструкция создать функцию либо
02:25:17
же инструкция запустить цикл потому На
02:25:20
мой взгляд инструкция - это наиболее
02:25:23
точное слово которое следует
02:25:25
использовать для описания statements
02:25:28
Итак давайте поговорим о том что такое
02:25:31
инструкция инструкция выполняет действие
02:25:34
как я уже сказал Да например создаёт
02:25:36
функцию либо запускает цикл либо же с
02:25:39
помощью инструкции можно вернуть
02:25:41
результат функции либо же импортировать
02:25:44
другой модуль это всё инструкция
02:25:48
Давайте посмотрим на примеры инструкции
02:25:50
первый пример присвоение значения в
02:25:54
языке Python - это инструкция то есть
02:25:56
здесь мы объявляем переменную myname и
02:25:59
сразу присваиваем ей значение Богдан с
02:26:02
помощью оператора
02:26:04
присвоения в других языках
02:26:06
программирования например в JavaScript
02:26:08
присвоение значения переменной считается
02:26:11
выражением в Python же это всегда
02:26:14
инструкция следующий пример в следующем
02:26:17
примере вы видите условную инструкцию
02:26:21
условная инструкция состоит из ключевого
02:26:24
слова If вот оно далее идёт выражение My
02:26:30
Name в данном случае это выражение и
02:26:32
зависимо от того ложно это выражение
02:26:35
либо правдиво Мы выполняем либо не
02:26:38
выполняем вот этот блок кода это
02:26:42
называется условная инструкция кстати
02:26:44
говоря Вы также видите здесь отступ
02:26:46
перед Print потому что блок условной
02:26:49
инструкции необходимо также отделять от
02:26:53
другой части кода с помощью отступа то
02:26:56
же самое что мы обсуждали в функциях
02:26:59
Итак это условная инструкция и ещё один
02:27:02
пример импортирование модуля с помощью
02:27:05
ключевого слова import можно
02:27:07
импортировать другие модуля например
02:27:10
import Date Time импортирует встроенный
02:27:14
в Python модуль под названием Date Time
02:27:17
и после такого импорта можно
02:27:19
использовать все функции которые
02:27:22
находятся в этом модуле непосредственно
02:27:24
в вашем файле импорт - это инструкция в
02:27:28
Python есть и другие примеры инструкции
02:27:31
это объявление функции либо же
02:27:34
использование ключевого слова Return
02:27:36
внутри функции это всё инструкции
02:27:39
Давайте посмотрим на примеры инструкции
02:27:42
и Давайте здесь начнём с импорта напишем
02:27:45
Date Time пишем Date Time нажимаем Tab и
02:27:50
далее можно использовать атрибуты
02:27:52
объекта Date Time то есть пишем Date
02:27:55
Time точка И после точки есть например
02:27:58
Max Year это атрибут не метод И
02:28:02
следовательно можно вывести значение
02:28:05
этого атрибута в терминал вот так
02:28:07
давайте выполним код и мы видим вот
02:28:10
такой год
02:28:13
9999 есть также атрибут Min вот такой
02:28:17
выводим его в терминал видим
02:28:20
один это то как можно импортировать
02:28:22
модуля но Наша задача сейчас проверить
02:28:26
что это является инструкцией а не
02:28:29
выражением как Мы это можем сделать
02:28:31
путём копирования этой строки кода и
02:28:34
добавление здесь в вызове функции и мы
02:28:37
сразу видим что импорт был подчеркнут
02:28:40
наводим курсор сюда и видим ошибку
02:28:43
expected expr ту ошибку которую мы уже
02:28:47
видели ранее в предыдущем уроке Это
02:28:49
означает что импорт является инструкцией
02:28:52
в
02:28:53
Python теперь задание для вас пожалуйста
02:28:56
Создайте функцию и добавьте в конце
02:28:58
функции в теле функции ключевое слово
02:29:01
Return и убедитесь перед этим в том что
02:29:04
Return является инструкцией а не
02:29:06
выражением И после этого вы можете
02:29:08
вызвать функцию Ну а касательно
02:29:11
инструкции всё и Мы двигаемся
02:29:15
дальше пожалуйста Поделитесь этим видео
02:29:17
с друзьями и коллегами для того чтобы
02:29:20
они также могли изучить Python и узнать
02:29:22
как можно с помощью Python решать много
02:29:25
различных
02:29:30
задач сейчас пришло время поговорить о
02:29:33
переменных в Python на самом деле ранее
02:29:36
мы уже использовали переменные несколько
02:29:38
раз и мы им присваивали значения Но если
02:29:41
вспомните то в начале этого курса в
02:29:43
интерактивном интерпретаторе Python мы
02:29:45
просто вводили некоторые выражения
02:29:48
например мы вводили Число два либо же
02:29:51
строку Богдан либо ваше имя И В таком
02:29:54
случае мы эти значения два либо Богдан
02:29:58
не присваивали каким-либо переменным то
02:30:01
есть мы не могли их использовать в
02:30:03
дальнейшем так вот переменные как раз
02:30:06
Дают возможность повторного доступа к
02:30:09
значениям которые этим переменным
02:30:12
присвоены можно рассматривать название
02:30:15
переменной как коробку в которую мы
02:30:18
ложим значение например строку Богдан и
02:30:21
в любой момент мы можем распаковать эту
02:30:23
коробку и достать оттуда значение и
02:30:26
выполнить определённые действия с этим
02:30:29
значением более того Мы из этой коробки
02:30:32
можем взять одно значение и положить
02:30:35
другое это возможно в языке
02:30:37
программирования Python Ну и для того
02:30:39
чтобы можно было обратиться к переменной
02:30:41
ей необходимо дать имя например имя
02:30:44
myname и этой переменной myname мы можем
02:30:48
присвоить например строку
02:30:50
Богдан далее имена в Python это очень
02:30:53
важно то есть как называть те или иные
02:30:56
переменные в Python начнём с самого
02:31:00
популярного названия которая называется
02:31:03
Snake Case с помощью такого формата дают
02:31:06
имена переменным функциям методам и
02:31:11
модулям То есть это самый популярный
02:31:13
подход к созданию названий переменных
02:31:17
все символы в Нижнем регистре и слова
02:31:20
разделяются знаками подчеркивания это
02:31:23
называется Snake Case далее Pascal Case
02:31:27
в Pascal кес нотации слова пишутся
02:31:30
слитно но все слова включая первое
02:31:33
написаны с большой буквы так вот Pascal
02:31:36
Case в Python используется для
02:31:39
именования классов то есть когда вы
02:31:42
создаёте ваши собственные
02:31:43
пользовательские классы об этом будем
02:31:45
говорить отдельной большой секции
02:31:47
посвящённой классам то имена этим
02:31:50
классам следует давать исходя из такой
02:31:53
нотации Pascal Case первая буква всегда
02:31:56
заглавная далее Пакеты пакеты - это
02:32:00
наборы модулей в Python ранее в одном из
02:32:03
примеров мы уже
02:32:15
импортировались ржиться такого подхода к
02:32:18
именовани пакетов например My Def
02:32:22
package без знаков
02:32:24
подчёркивания и последний вариант
02:32:27
написания названий переменных - это
02:32:30
Snake Case но в верхнем регистре
02:32:33
например db знак подчеркивания Password
02:32:36
и такие названия следует давать тем
02:32:39
переменным которые содержат константы
02:32:42
которые не изменяются на протяжении
02:32:45
жизненного цикла программы Python
02:32:48
например какие-то пароли либо же адреса
02:32:51
удалённых серверов к которым вы хотите
02:32:53
подключаться либо же Номера портов
02:32:56
серверов и так далее То есть это те
02:32:59
значения которые не меняются на
02:33:01
протяжении работы программы в таком
02:33:04
случае в названии следует писать все
02:33:06
буквы в верхнем регистре и разделять
02:33:09
слова знаками подчёркивания хочу
02:33:12
отметить что в Python нет отличия между
02:33:15
константами и
02:33:16
переменными есть переменные и любой
02:33:19
переменной в Python можно присваивать
02:33:21
новое значение Но если вы называете
02:33:24
переменную вот таким образом например db
02:33:27
Password это будет являться индикатором
02:33:30
и для вас и для других разработчиков
02:33:33
если несколько человек работают над
02:33:34
одним проектором что значение
02:33:37
присвоенное такой переменной не следует
02:33:39
изменять то есть не следует присваивать
02:33:42
новое значение такой переменной потому
02:33:44
что значение не Должно менять
02:33:46
на протяжении жизненного цикла
02:33:48
программы но самым популярным подходом к
02:33:52
созданию имн в Python является Snake
02:33:55
Case используется чаще всего для
02:33:58
переменных для функций для методов и для
02:34:02
модулей Но прошу вас всегда называть
02:34:07
переменные понятным языком чтобы из
02:34:10
название переменной было понятно что э
02:34:12
переменная делает нужно использовать
02:34:15
коро
02:34:16
A C D либо Bar Test xyz и так далее
02:34:21
такие названия
02:34:23
Бессмысленны Пусть лучше название будет
02:34:25
длиннее Но из этого названия будет сразу
02:34:28
понятно что переменная содержит либо же
02:34:31
например что функция выполняет если это
02:34:34
функция всегда называете переменное
02:34:38
понятным языком даже если для вас
02:34:40
очевидно что делает код то возможно в
02:34:43
будущем даже если вы сами вернётесь к
02:34:45
своему же коду вы не сможете разобраться
02:34:47
в нём из-за того что название переменных
02:34:54
[музыка]
02:34:56
непонятны далее объявление и присвоение
02:35:00
значений в Python не нужно отдельно
02:35:03
Объявлять переменные и далее присваивать
02:35:06
значение переменным объявление и
02:35:09
присвоение значения происходит на одной
02:35:11
строке как в данном примере My Number
02:35:14
знак присваивания 10
02:35:16
и по бокам от знака присваивания следует
02:35:19
добавлять по одному
02:35:21
пробелу справа значение слева название
02:35:24
переменной которую мы создаём и которой
02:35:27
мы присваиваем значение если такая
02:35:30
переменная уже была создано ранее то ей
02:35:33
просто присваивается новое значение это
02:35:36
объявление и присвоение
02:35:39
значения хочу отметить что Python
02:35:41
является языком с динамической
02:35:44
типизацией что это означает
02:35:46
это означает то что одной и той же
02:35:49
переменной можно присваивать разные
02:35:52
значения то есть на этой строке Мы
02:35:55
создали переменную с именем My variable
02:35:58
и присвоили ей значение 10 это целое
02:36:01
число Ир int а далее в коде мы можем
02:36:04
присвоить этой же переменной другое
02:36:07
значение другого типа например строка И
02:36:10
это не является ошибкой в Python потому
02:36:13
что Python является языком с ческой
02:36:17
типизации Ну и ниже мы можем ещё раз
02:36:20
присвоить другое значение этой же
02:36:22
переменной например логическое значение
02:36:25
True И это не является ошибкой в Python
02:36:28
потому что Python - это язык с
02:36:30
динамической типизацией и переменным
02:36:33
можно присваивать новые значения Когда
02:36:36
вам это необходимо сделать в
02:36:39
коде и получается что тип любой
02:36:43
переменной определяется типом
02:36:45
присвоенного значения Например если вы
02:36:49
присваивает переменной то можно говорить
02:36:52
что переменная - это целое число либо
02:36:54
переменная содержит целое
02:36:57
число Вы можете всегда использовать
02:37:01
значение которая была присвоена
02:37:03
переменной по имени переменной То есть
02:37:05
вы можете обратиться к значению например
02:37:08
значению 10 используя название
02:37:11
переменной My Number получается Здесь мы
02:37:16
объявили переменную My Number и
02:37:18
присвоили ей значение 10 а далее мы
02:37:21
обратились к значению переменной My
02:37:24
Number по имени этой переменной и в
02:37:27
результате на такой строке мы получим в
02:37:30
терминале 10 это значение которое
02:37:33
содержит переменная My
02:37:35
Number таким же образом можно создать
02:37:37
другую переменную например My buan
02:37:40
присвоить значение True и далее Также
02:37:43
вывести допустим в терминал значение
02:37:45
этой переменной
02:37:46
то есть Таким образом мы Обращаемся к
02:37:49
значению которое переменная
02:37:52
содержит Как вы знаете в языке Python
02:37:55
есть разные типы и в данном примере мы
02:38:00
переменной My Number присваиваем целое
02:38:03
число integer сокращённо int и каждое
02:38:07
число - это экземпляр класса int integer
02:38:11
потому что вы знаете что в Python все
02:38:13
сущности - это объекты это же касается и
02:38:17
другого примера где мы присваиваем
02:38:19
строку ABC переменной My string строка
02:38:23
ABC справа является экземпляром класса
02:38:26
STR string сейчас пожалуйста
02:38:29
самостоятельно попрактиковаться
02:38:45
называете переменные исходя из того что
02:38:48
эти переменные содержат и по выводите
02:38:51
значение тех переменных которые вы
02:38:54
создадите в терминал Ну а далее мы
02:38:56
поговорим с вами чуть детальнее о
02:38:58
динамической
02:39:06
типизации в предыдущей лекции Мы с вами
02:39:09
уже коротко затронули вопрос
02:39:10
динамической типизации но Давайте
02:39:12
поговорим об этом чуть детальнее Итак
02:39:15
динамическая
02:39:16
типизация языки программирования делятся
02:39:18
на две категории языки с статической
02:39:21
типизацией и динамической типизацией
02:39:23
Давайте посмотрим на пример кода в языке
02:39:27
С статической типизацией в этом примере
02:39:31
Как видно мы перед названием переменной
02:39:34
указываем тип переменной например string
02:39:38
и далее после знака присваивания идёт
02:39:40
непосредственно значение которое
02:39:42
присваивается этой переменной A в
02:39:46
следующем примере мы делаем тоже самое с
02:39:48
другой переменной но перед названием
02:39:50
переменной мы написали int integer Это
02:39:54
говорит интерпретатору о том что мы
02:39:57
будем присваивать переменной B только
02:40:00
целые числа только integer и если Мы
02:40:03
попытаемся присвоить переменной B другое
02:40:06
значение например строку то мы получим
02:40:10
ошибку и это возможно в случае если язык
02:40:16
поддерживает статическую типизацию но
02:40:19
это не Python то есть в Python не нужно
02:40:22
указывать тип для переменной перед
02:40:25
названием переменной и в Python создание
02:40:28
переменных и присвоение значений
02:40:30
выглядит таким образом A знак
02:40:33
присваивания ABC и здесь мы не указываем
02:40:37
тип для переменной
02:40:39
A Но если Мы выполняем присвоение таким
02:40:42
образом то Следовательно тип для
02:40:45
переменной A будет строка но вы всегда
02:40:48
Далее в коде сможете присвоить
02:40:50
переменной A значение другого типа
02:40:53
например целое
02:40:54
число и теперь уже значение переменной A
02:40:58
будет другое и тип переменной A будет
02:41:01
другой то есть сначала у переменной A
02:41:04
был тип строка а потом тип переменной A
02:41:07
поменялся на целое число int integer и
02:41:10
это как раз пример кода в языке Python в
02:41:14
Python возможно присвоение новых
02:41:17
значений других типов одной и той же
02:41:20
переменной потому что Python - это
02:41:23
динамически типизировать
02:41:25
язык и Python вполне возможно наличие
02:41:30
такого блока кода когда мы создаём
02:41:32
переменную присваиваем ей например число
02:41:34
10 потом присваиваем этой же переменной
02:41:37
другое значение True и так далее То есть
02:41:40
мы одной и той же переменной присваиваем
02:41:43
значения разных типов И это не является
02:41:47
ошибкой в Python То есть получается что
02:41:50
Python перекладывает на разработчика
02:41:53
ответственность за то чтобы код был
02:41:56
корректен чтобы где-то Случайно у
02:41:59
переменной не поменялся тип почему это
02:42:03
важно потому что возможна такая вот
02:42:05
ситуация Давайте посмотрим на такой
02:42:07
пример кода в котором объявлена функция
02:42:10
под названием Print name вот эта функция
02:42:13
и в этой функции Мы выполняем
02:42:15
определённые действия далее мы эту
02:42:18
функцию вызываем и передаём ей какой-то
02:42:20
аргумент допустим строку Богдан и
02:42:23
функция в результате выведет в терминал
02:42:26
Благодаря этой строке кода то что мы
02:42:28
передали в вызове функции то есть мы
02:42:30
увидим в терминале имя Богдан далее ниже
02:42:34
в коде мы можем поменять значение
02:42:36
переменной Print name то есть видите имя
02:42:39
здесь и имя здесь совпадают ранее это
02:42:42
была функция а потом мы переменно Print
02:42:45
name присвоили значение другого типа в
02:42:48
данном примере это значение типа int
02:42:51
integer и если после этого Мы попытаемся
02:42:55
вызвать функцию Print name то есть ранее
02:42:58
это была функция А после такого
02:43:00
присвоения Это уже не функция мы получим
02:43:04
ошибку Type Error int object is not
02:43:07
callable То есть вы не можете вызывать
02:43:11
объект типа int потому что ещё раз после
02:43:15
этой строки переменная Print name
02:43:18
содержит объект типа int integer И
02:43:22
следовательно функция Print name уже
02:43:25
недоступна и такую ошибку можно легко
02:43:28
допустить и такой код вполне допустимой
02:43:32
в Python Если хотите вы можете поставить
02:43:34
видео на паузу и попробовать написать
02:43:36
такой код и выполнить его вы увидите ту
02:43:39
же ошибку Type Error int object is not
02:43:42
callable Но для Python нет Проблемы в
02:43:46
том что здесь вы
02:43:50
присваивает переменная Print name ранее
02:43:53
была функцией потому что Python является
02:43:56
языком с динамической типизацией и это
02:43:59
ваша ответственность как разработчика
02:44:01
следить за тем чтобы таких вот ситуаций
02:44:04
не было чтобы вы не присваивали
02:44:07
переменной которая ранее содержала
02:44:08
функцию другое значение другого типа и
02:44:12
потому пожалуйста будьте внимательны
02:44:14
чтобы не допустить Вот таких ошибок как
02:44:16
в этом примере А теперь давайте
02:44:18
поговорим о правилах работы с
02:44:21
переменными точнее рекомендациях работы
02:44:24
с переменными первое всегда Выбирайте
02:44:28
осмысленные названия переменных чтобы из
02:44:30
названия переменной было понятно что
02:44:33
переменная делает либо что она содержит
02:44:36
далее В названиях переменных Используйте
02:44:40
имя
02:44:41
существительное например
02:44:43
либо либо
02:44:46
То есть если название переменной
02:44:48
допустим name то понятно что такая
02:44:50
переменная должна содержать
02:44:53
строку и позже Очень сложно будет
02:44:56
присвоить ей например целое число либо
02:44:59
же список потому что из названия понятно
02:45:01
что переменная должна содержать строку
02:45:04
из этого названия понятно что переменная
02:45:07
содержит последовательность комментариев
02:45:10
и тип такого значения может быть
02:45:13
допустим
02:45:14
список Тип который позволяет сохранять
02:45:17
последовательности элементов и в этом
02:45:20
примере New photos также понятно что
02:45:23
значением будет последовательность
02:45:25
фотографии например список словарей а
02:45:28
каждый словарь описывает ту или иную
02:45:31
фотографию и в каждом словаре есть ключи
02:45:33
с значениями которые описывают
02:45:35
конкретную фотографию и далее в коде
02:45:39
будет вам очень сложно присвоить
02:45:41
переменной New photos например функцию
02:45:44
правильно либо же присвоить функцию
02:45:46
переменной name То есть если
02:45:49
резюмировать то имя переменных которые
02:45:52
содержат такие значения как целое числа
02:45:55
строки списки словари кортежи и так
02:45:57
далее должны отвечать на вопрос что
02:46:00
содержит то есть что содержит переменной
02:46:04
переменная содержит имя либо переменная
02:46:06
содержит комментарии
02:46:08
да Если же вы создаёте функцию либо же
02:46:12
метод объекта то название функции либо
02:46:15
метода следует начинать с глагола
02:46:18
например Get Data получить данные Create
02:46:23
request создать
02:46:25
запрос merge names объединить имена то
02:46:29
есть из названий понятно что должно
02:46:32
выполняться определённое действие а
02:46:35
функция всегда выполняет
02:46:38
действие метод - это напоминаю атрибут
02:46:41
объекта значением которого является
02:46:44
функция то есть название методов следует
02:46:46
формировать также исходя из этой
02:46:49
рекомендации То есть первый всегда идёт
02:46:51
глагол дали знак подчёркивания и
02:46:54
конкретизация того что мы делаем
02:46:56
получаем данные отправляем запрос
02:46:59
формируем список комментариев и так
02:47:01
далее название функции и методов следует
02:47:04
начинать с глагола это очень важно И
02:47:07
следовательно такое имя должно отвечать
02:47:10
на вопрос что выполняет либо что
02:47:14
возвращает
02:47:15
либо что изменяет Да всегда начинаете
02:47:19
название функции методов с глагола и
02:47:23
тогда для вас во-первых будет понятно
02:47:26
где функция где метод А где обычная
02:47:28
переменная которая содержит значение и
02:47:31
вам будет очень сложно где-то в коде
02:47:34
присвоить другое значение той или иной
02:47:36
переменной и поменять тип значения как
02:47:39
мы это рассмотрели в предыдущем примере
02:47:42
на предыдущем слайде Итак это бы были
02:47:45
правила работы с переменными и я крайне
02:47:48
Рекомендую вам их придерживаться и это
02:47:51
касается не только языка
02:47:53
программирования Python это касается
02:47:55
любого языка программирования всегда
02:47:57
Называйте переменное
02:48:00
осмысленно Итак Это то что касается
02:48:03
переменных и далее мы с вами поговорим о
02:48:06
типах и структурах
02:48:09
[музыка]
02:48:13
данных ранее мы с вами поговорили уже о
02:48:16
переменных и о том что Python является
02:48:20
языком с динамической типизацией Кроме
02:48:22
этого мы поговорили с вами о нескольких
02:48:25
основных типах которые используются в
02:48:28
Python А теперь давайте поговорим о
02:48:31
типах и структурах
02:48:33
данных очень важно в Python отсутствуют
02:48:36
примитивные
02:48:38
типы мы с вами ранее говорили что в
02:48:41
Python все сущности - это объекты То
02:48:43
есть даже Если вы создаёте например
02:48:46
число и присваивается его переменной то
02:48:49
в памяти компьютера создаётся на самом
02:48:52
деле объект типа int и этот объект
02:48:56
является экземпляром класса int и если
02:48:59
вы например создали число 10 то создался
02:49:02
один объект в памяти если вы создали
02:49:04
другое число например 15 и присвоили его
02:49:07
другой либо даже той же переменной то
02:49:10
создаётся Новый объект в памяти этот
02:49:13
объект также является экземпляром класса
02:49:16
int но он не зависит от объекта который
02:49:20
содержит число 10 это два разных
02:49:25
объекта то есть в Python отсутствуют
02:49:28
примитивные типы в Python всё является
02:49:31
объектом и это означает что в Python
02:49:35
существуют изменяемые и неизменяемые
02:49:39
объекты То есть например объект у
02:49:42
которого тип значения integer является
02:49:46
неизменяемым то есть нельзя изменить
02:49:48
такой объект можно создать другой объект
02:49:51
с другим
02:49:52
значением А вот например
02:49:55
список является изменяемым объектом и
02:49:59
список можно изменять добавлять в него
02:50:01
элементы удалять элементы и так далее
02:50:04
при этом сам объект остаётся в памяти И
02:50:07
мы изменяем этот объект то есть важный
02:50:10
момент в Python существует изменяемое и
02:50:15
обе изменяемые объекты называют
02:50:18
по-английски object и часто говорят
02:50:21
мутировать объект изменять объект без
02:50:24
создания нового объекта а неизменяемые
02:50:27
объекты называются imut objects то есть
02:50:30
неизменяемые объекты и такие объекты
02:50:33
изменять нельзя Теперь давайте поговорим
02:50:36
о том какие объекты в Python являются
02:50:41
неизменяемыми строки являтся обекта То
02:50:46
есть если вы присвоили какое-то значение
02:50:49
типа строка переменной то изменить этот
02:50:52
объект нельзя но можно создать новый
02:50:55
объект и присвоить его той же
02:50:58
переменной далее бу логический тип
02:51:02
соответствующий класс называется Бул и
02:51:05
объекты которые содержат логическое
02:51:07
значение также
02:51:10
неизменяемые далее integer целое число
02:51:13
соответствующий класс называется int
02:51:16
объекты типа integer также неизменяемые
02:51:20
в Python кроме integer есть также числа
02:51:23
с десятичной точкой например 5.5
02:51:27
10.5 такие объекты тоже неизменяемые в
02:51:30
Python immutable
02:51:32
objects кроме этих объектов есть также
02:51:36
Тип tle ctege и объекты такого типа
02:51:41
также
02:51:42
неизменяемые есть ещё один ти Non Type и
02:51:46
соответствующие объекты также являются
02:51:50
неизменяемыми но здесь возможно только
02:51:52
одно значение None кроме этих типов есть
02:51:56
также некоторые другие в Python которые
02:51:59
также являются неизменяемыми например
02:52:02
Range объект типа Range также
02:52:05
неизменяемый о Range мы будем говорить
02:52:08
чуть позже когда мы будем говорить о
02:52:10
циклах в Python Итак это были основные
02:52:13
типы неизменяемых объектов ещё раз
02:52:17
повторюсь такие объекты изменять
02:52:20
невозможно то есть можно создавать
02:52:21
другие объекты с другими
02:52:24
значениями А теперь давайте поговорим о
02:52:27
типах изменяемых объектов mutable
02:52:30
objects в Python есть следующие
02:52:34
изменяемые типы объектов лист список
02:52:37
соответствующий класс называется list
02:52:41
следующий тип Dictionary словарь соотве
02:52:44
класс называется dict далее есть также
02:52:48
Set набор и соответствующий класс
02:52:51
называется Set сет отличается от списка
02:52:56
тем что в наборах могут быть только
02:52:59
уникальные элементы при этом в списках
02:53:02
могут быть и не уникальные элементы
02:53:05
детальнее о списках и о наборах Мы будем
02:53:08
говорить чуть позже и кроме списков
02:53:11
словарей и наборов изменяемыми же
02:53:15
являются экземпляры ваших классов
02:53:18
которые вы сами создаёте то есть User CL
02:53:22
пользовательские классы объекты которые
02:53:25
вы создаёте на основании своих классов
02:53:28
которые вы сами создали являются
02:53:31
изменяемыми Итак это Четыре типа
02:53:35
изменяемых объектов и вы всегда можете
02:53:39
изменять любой список любой словарь
02:53:42
любой набор И при этом новые объекты для
02:53:45
этого не будут создаваться То есть вы
02:53:47
будете мутировать Объект который ранее
02:53:50
уже был создан в памяти очень важно
02:53:53
понимать отличие между изменяемыми и
02:53:56
неизменяемыми объектами и я хочу чтобы
02:53:59
вы постарались запомнить какие объекты
02:54:01
являются изменяемыми а какие
02:54:03
неизменяемыми Потому что от этого
02:54:05
зависит как переменные ведут себя в коде
02:54:09
и в следующей лекции мы поговорим с вами
02:54:12
о переменных и о объектах и о том как же
02:54:16
всё-таки на практике отличаются объекты
02:54:18
изменяемых и неизменяемых
02:54:25
типов ранее мы с вами создавали уже
02:54:28
значения разных типов целые числа строки
02:54:31
логические значения но мы никак с вами
02:54:34
не проверяли что это на самом деле
02:54:37
объекты а не обычные примитивное
02:54:39
значения потому сейчас Давайте поговорим
02:54:42
о том как можно проверить что переменная
02:54:45
является объектом и о том какие же
02:54:49
идентификаторы есть у каждого объекта
02:54:52
Итак при создании значения и присвоении
02:54:56
его переменной создаётся объект объект
02:55:00
определённого типа int integer STR
02:55:04
string и так далее создаётся имя имя
02:55:08
переменной и переменная содержит только
02:55:11
ссылку на обект
02:55:16
это просто ссылка на объект памяти не
02:55:18
более и при обращении к
02:55:22
переменной происходит переход по ссылке
02:55:26
К объекту который находится в памяти и
02:55:29
далее уже выполняются определённые
02:55:31
действия с этим объектом в памяти то
02:55:34
есть переменные - это всего-навсего
02:55:35
ссылки на объекты в памяти не более
02:55:39
получается что если мы создам несколько
02:55:43
переменных наме переменная My ссылается
02:55:46
на один объект переменная Profile Photo
02:55:49
ссылается на другой объект то эти
02:55:51
переменные независимы друг от друга
02:55:54
потому что объекты находятся в разных
02:55:56
местах памяти и это разные независимые
02:55:59
объекты точно также можно создать ещё
02:56:02
один объект и переменную other name
02:56:05
которая будет ссылаться на этот третий
02:56:07
объект в
02:56:09
памяти пока существует переменная
02:56:12
например
02:56:13
My объект сохраняется в памяти если
02:56:16
например переменной myname присвоить
02:56:19
другое значение создастся другой объект
02:56:23
А этот объект через некоторое время
02:56:25
будет удалён
02:56:28
Python Итак разные объекты и разные
02:56:31
ссылки переменная - Это всего-навсего
02:56:33
ссылка на определённый объект в
02:56:37
[музыка]
02:56:41
памяти Итак переменная содержит ссылку
02:56:43
на объект Это я надеюсь понятно И теперь
02:56:47
давайте поговорим о том как же можно
02:56:49
узнать какую именно ссылку содержит та
02:56:52
или иная переменная для этого существует
02:56:56
встроенная функция в Python которая
02:56:59
называется ID и эта функция служит для
02:57:03
того чтобы по имени переменной получить
02:57:07
адрес в памяти на который ссылается эта
02:57:11
переменная и по которому находится
02:57:14
определённый Объект который был присвоен
02:57:17
этой переменной в данном примере
02:57:19
переменная называется My Country то есть
02:57:21
ещё раз ID - это встроенная функция и
02:57:25
результатом вызова этой функции является
02:57:28
идентификатор объекта в памяти либо
02:57:31
адрес объекта в памяти Ну и в качестве
02:57:35
аргумента этой функции мы передаём
02:57:37
просто название
02:57:39
переменной Давайте посмотрим на такой
02:57:42
пример в котором мы выводим результат
02:57:45
вызова функции ID в терминал то есть для
02:57:48
этого мы берём результат вызова функции
02:57:52
ID и передаём его в качестве аргумента
02:57:55
функции Print и в таком случае в
02:57:58
терминале вы увидите идентификатор
02:58:01
объекта на который ссылается переменная
02:58:03
My Number в данном примере то есть путём
02:58:07
передачи результата функции ID в функцию
02:58:10
Print вы увидите идентификатор объекта
02:58:13
непосредственно в выводе в терминале
02:58:16
Давайте посмотрим на некоторые
02:58:18
примеры в этом примере создаётся
02:58:21
переменная My Number и ей присваивается
02:58:24
значение значение типа int integer и
02:58:29
далее Мы выводим в терминал результат
02:58:32
вызова функции ID и на моём компьютере я
02:58:36
получил например вот такой
02:58:38
идентификатор Это адрес объекта который
02:58:41
содержит Вот это число причём каждый раз
02:58:45
этот идентификатор будет новым потому
02:58:48
что объекты в памяти создаются в разных
02:58:51
местах даже если вы запускаете один и
02:58:54
тот же код и в другом примере получается
02:58:58
что мы создаём другую переменную My
02:59:02
string и ей присваиваем значение типа
02:59:05
строка и в этом случае идентификатор у
02:59:09
этого объекта который содержит эту
02:59:11
строку будет другой в данном примере вот
02:59:13
такой то есть этот ID и этот ID разные
02:59:18
потому что объекты 10 и ABC находятся в
02:59:21
разных местах памяти таким образом можно
02:59:25
получить адрес объекта в памяти путём
02:59:28
вывода в терминал результата вызова
02:59:30
функции
02:59:31
ID и сейчас Давайте поговорим о том как
02:59:35
же происходит так что несколько
02:59:39
переменных ссылаются на один объект в
02:59:42
памяти то есть смотрите у нас есть
02:59:45
например три переменных My Name other
02:59:47
name и New name и они ссылаются на один
02:59:51
и тот же объект в памяти вопрос возможно
02:59:54
ли это или нет конечно возможно потому
02:59:58
что Как Мы только что выяснили каждая
03:00:01
переменная содержит всего-навсего ссылку
03:00:03
на объект и если вы копируете одну
03:00:07
переменную в другую то копируется
03:00:10
всего-навсего
03:00:12
ссылка Новый объект для этого не
03:00:16
создаётся и таким образом можно например
03:00:18
создать одну переменную myname присвоить
03:00:21
е какое-то значение создастся один
03:00:23
объект потом переменную myname
03:00:26
скопировать в переменную other name и
03:00:29
New name И тогда все три переменные
03:00:32
будут просто содержать одни и те же
03:00:35
ссылки на один и тот же объект
03:00:37
памяти то есть в Python возможна
03:00:41
ситуация когда разные переменные
03:00:43
ссылаются на один объект в памяти
03:00:46
Давайте посмотрим на пример в этом
03:00:48
примере мы создаём снова переменную My
03:00:51
Number присваиваем ей число допустим 10
03:00:54
ID у этого объекта будет Допустим вот
03:00:58
такое далее мы копируем переменную My
03:01:02
Number в переменную other Number то есть
03:01:06
мы не создаём новое значение а копируем
03:01:09
My Number в other Number И если мы
03:01:13
выведем терминал результат вызова
03:01:15
функции ID для переменной other Number
03:01:18
мы получим тот же ID что и
03:01:21
здесь то есть получается что в таком
03:01:24
случае адреса объектов My Number и other
03:01:28
Number
03:01:29
одинаковые потому что здесь вот мы
03:01:32
скопировали одну переменную в
03:01:39
другую и теперь Давайте попробуем это
03:01:42
вместе с вами на практике перейдя в
03:01:45
Редактор кода Давайте создадим
03:01:48
переменную например My Name и значение
03:01:52
будет в моём случае как всегда Богдан
03:01:54
ничего нового и далее Давайте выведем
03:01:57
терминал результат вызова функции ID и
03:02:01
этой функции мы передадим My Name если
03:02:04
мы наведём курсор на название функции ID
03:02:08
то всплывающей подсказке мы увидим что
03:02:11
эта функция возвращает результат типа
03:02:14
int integer То есть это адрес объекта в
03:02:19
памяти Давайте выполним этот код и
03:02:22
сейчас я вижу Вот такой ID Это адрес
03:02:26
объекта который содержит вот эту строку
03:02:29
причём каждый раз когда я буду выполнять
03:02:31
этот код я буду видеть новый
03:02:33
идентификатор потому что каждый раз при
03:02:36
новом запуске кода объект создаётся
03:02:39
заново то есть мы не можем использовать
03:02:41
объекты которые мы создали ранее при
03:02:44
предыдущих запусках кода потому каждый
03:02:46
раз мы видим новый ID вот здесь Теперь
03:02:50
давайте создадим ещё одну переменную
03:02:52
например My num и значение будет
03:02:55
например 100 это целое число и и давайте
03:02:59
тоже самое можно скопировать эту строку
03:03:02
и перенести её сюда я скопировал
03:03:04
используя комбинацию клавиш Alt Shift
03:03:08
вниз а перемещать строку можно с помощю
03:03:12
Alt и ввер вниз вот так то есть ещ раз
03:03:16
давайте я удалю эту строку ставлю курсор
03:03:18
на эту строку копирую и далее с Alt
03:03:22
просто перемещаю вниз вот так далее
03:03:24
можно быстро перейти в конец строки либо
03:03:26
в начало используя Ctrl вправо-влево на
03:03:30
Windows либо же comand вправо влево на
03:03:32
Mac Вот так и Давайте теперь удалим вот
03:03:36
эту переменную myname точнее заменим её
03:03:39
на My и с помощью другой комбинации на
03:03:42
Windows ctr D на Mac Command D можно
03:03:46
быстро выделить текущее название в
03:03:48
данном случае было выделено название My
03:03:50
Name и теперь просто можем набрать My
03:03:53
знак подчёркивания нам вот так
03:03:56
запоминать все горячие комбинации сейчас
03:03:58
не нужно и возможно я допускаю ошибки
03:04:01
когда перевожу комбинации на Windows
03:04:04
скажем так но вы всегда можете найти
03:04:06
комбинации в настройках Visual Studio
03:04:09
Code и я Рекомендую вам как я
03:04:11
рекомендовал уже ранее основные
03:04:12
комбинации выучить и использовать для
03:04:15
быстрой навигации по коду и я Рекомендую
03:04:18
вам использовать мышку по минимуму то
03:04:21
есть Старайтесь все действия в коде
03:04:23
выполнять с помощью клавиш на клавиатуре
03:04:26
Итак давайте выведем в терминал
03:04:28
результат вызова функции ID для
03:04:30
переменной myn и запустим код и теперь я
03:04:34
вижу уже два разных идентификатора
03:04:37
потому что были созданы два разные
03:04:39
объекта один типа строка и один типа идр
03:04:43
in целое число И следовательно у
03:04:46
переменных myn и myname разные ссылки на
03:04:50
разные места в
03:04:51
памяти Теперь давайте создадим ещё одну
03:04:54
переменную other num и
03:05:08
присвоить написание названия той или
03:05:11
иной переменной выполняем и ожидаемо два
03:05:15
последних идентификатора У нас сейчас
03:05:18
одинаковые потому что мы скопировали My
03:05:21
вот здесь в переменную other num и две
03:05:24
переменные other и My ссылаются сейчас
03:05:28
на один и тот же объект в памяти потому
03:05:31
мы здесь видим одинаковое ID вот здесь и
03:05:34
вот здесь Но ещё раз Каждый раз при
03:05:37
запуске кода мы будем видеть новое ID но
03:05:41
второй и третий в текущем выводе будут
03:05:44
всегда одинаковы важный момент если
03:05:47
курсор у вас находится здесь в правой
03:05:49
панели и если попытаться выполнить код с
03:05:51
помощью комбинации клавиш то вы увидите
03:05:54
вот такое сообщение Code Language not
03:05:57
supported or defined для того чтобы
03:06:00
корректно выполнить код с помощью Code
03:06:02
Runner необходимо курсор поместить в
03:06:04
левом окне и тогда с помощью комбинации
03:06:07
клавиш код будет успешно выполнен Итак
03:06:11
Это то что касается идентификатора
03:06:13
объектов и в этой лекции Давайте удалим
03:06:16
всё в этой лекции мы поговорили о том
03:06:20
что у каждого объекта есть идентификатор
03:06:23
Это ссылка на место в памяти Где
03:06:26
сохраняется объект и каждая переменная
03:06:29
содержит всего-навсего эту
03:06:31
ссылку то есть переменные не содержат
03:06:34
непосредственно значения они содержат
03:06:37
ссылки на объекты в памяти и с помощью
03:06:40
функции ID которая встроена в Python Мы
03:06:43
только что с вами В этом
03:06:51
убедились вы уже знаете многое о том
03:06:54
какие объекты бывают в Python Что такое
03:06:57
изменяемые и неизменяемые объекты и что
03:07:00
переменные содержат просто-напросто
03:07:02
ссылки на объекты в памяти и теперь
03:07:06
пришло время поговорить детальнее о
03:07:08
каждом из основных типов в Python И
03:07:11
начнём мы с типа STR строка каждая
03:07:15
строка - это экземпляр класса
03:07:19
STR причём такой класс является
03:07:21
встроенным классом в Python и строка -
03:07:24
это всего-навсего последовательность
03:07:28
символов далее структура и синтаксис в
03:07:32
строках очень простая мы уже с вами
03:07:34
ранее создавали строки и присваивали их
03:07:36
переменной и то что вы видите в примере
03:07:39
на экране мы уже несколько раз делали в
03:07:42
этом курсе то есть мы присваиваем
03:07:44
значение типа строка переменной myname и
03:07:47
далее с помощью функции Print которая
03:07:50
является встроенной функцию Python мы
03:07:52
выводим значение переменной myname в
03:07:54
терминал и при этом переменная myname
03:07:57
содержит всего-навсего ссылку на объект
03:08:00
типа строка в
03:08:03
памяти второй пример присваиваем строку
03:08:06
Hello From Python
03:08:09
переменной Как видите в данном случае Я
03:08:12
использовал дво кавычки А в этом случае
03:08:15
Я использовал одинарные кавычки я ранее
03:08:18
вам говорил что я предпочитаю
03:08:20
использовать одинарные кавычки всегда
03:08:22
когда в строке только одно слово Если же
03:08:26
создаётся длинная строка То следует
03:08:29
использовать двойные
03:08:31
кавычки получается что в данных примерах
03:08:34
Мы создали две разные строки и присвоили
03:08:37
их разным переменным My Name и greeting
03:08:40
и далее вывели значение переменных My
03:08:43
Name и greeting в
03:08:45
терминал из этих примеров Вам следует
03:08:48
вынести то что двойные кавычки обычно
03:08:51
используют для многословный строк но в
03:08:54
документе pep8 о котором мы ранее с вами
03:08:57
говорили нет конкретных рекомендаций по
03:09:00
этому вопросу Вы можете использовать
03:09:02
либо одинарные либо двойные кавычки но я
03:09:05
прошу вас быть постоянным и если вы
03:09:08
решили использовать везде двойные
03:09:10
кавычки Используйте двойные кавычки
03:09:12
везде если одинарные то одинарные
03:09:15
придерживайтесь пожалуйста одного стиля
03:09:17
написания кода такой код намного более
03:09:20
приятно читать будет другим
03:09:23
разработчиком далее тип строк Если вы
03:09:27
создаёте значение типа строка и
03:09:30
присваивается такое значение переменной
03:09:32
то при использовании другой встроенной
03:09:35
функции Type можно получить тип того или
03:09:39
иного объекта если мы в данном примере
03:09:43
передаём функции Type в качестве
03:09:45
аргумента название переменной myname вот
03:09:49
здесь то в выводе вы увидите класс
03:09:53
STR Это означает что значение на которое
03:09:57
ссылается переменная myname является
03:10:01
экземпляром класса STR
03:10:04
строка то есть создаётся объект типа
03:10:07
строка объект является экземпляром
03:10:10
класса STR очень важно и Кроме этого
03:10:15
используя уже известную вам встроенную
03:10:18
функцию ID можно получить адрес объекта
03:10:21
в памяти в данном примере адрес объекта
03:10:24
в котором хранится эта строка вот
03:10:27
такой и на вашем компьютере этот адрес
03:10:31
будет абсолютно другим Итак две функции
03:10:34
Type и ID с помощью Type можно всегда
03:10:38
узнать класс определённого объекта то
03:10:41
есть класс из которого был был создан
03:10:43
объект идём Далее в Python можно
03:10:47
создавать многострочные строки используя
03:10:50
тройные одинарные либо двойные кавычки
03:10:54
но так как я вам советую использовать
03:10:56
двойные кавычки для длинных строк то
03:10:59
здесь Я рекомендую использовать
03:11:01
соответственно три пары двойных кавычек
03:11:04
и в данном примере создаётся
03:11:10
многострочный info message
03:11:13
и далее ниже Мы выводим в терминал
03:11:16
значение переменной inf message и в
03:11:18
выводе в таком случае вы увидите
03:11:26
многострочный всё это попробуем сейчас
03:11:28
вместе Итак перейдём в Редактор и здесь
03:11:32
Давайте создадим переменную Long STR и
03:11:35
значением будет длинная
03:11:38
строка Long Вот так и Давайте выведем
03:11:42
эту строку терминал С помощью функции
03:11:44
Print Long STR выполним код и здесь я
03:11:47
вижу эту длинную строку Давайте теперь
03:11:51
вызовем функцию Type Type И если мы
03:11:55
добавим круглые скобки и если я нажму
03:11:58
комбинацию клавиш Command Shift пробел
03:12:00
то я увижу подсказку параметров в вашем
03:12:03
случае если вы не отключали подсказки
03:12:05
они будут появляться автоматически то
03:12:07
здесь я увижу что функция Type ожидает
03:12:10
от вас объект Давайте передадим объект
03:12:14
Long STR который ссылается на объект
03:12:17
типа строка и результат вызова функции
03:12:20
Type мы передадим в функцию Print
03:12:23
выполняем код и здесь я вижу класс STR
03:12:27
Это означает
03:12:29
что эта строка находится в объекте
03:12:33
который был создан на основании класса
03:12:35
STR то есть этот объект является
03:12:38
экземпляром класса STR этот класс
03:12:42
встроенный в
03:12:43
Python если набрать здесь вместо Long
03:12:46
STR STR вот так выполнить код то здесь в
03:12:51
выводе мы увидим ла Type то есть видите
03:12:55
мы здесь указали название класса из
03:12:59
которого создаются все строки так вот
03:13:03
тип класса всегда будет Вот такой ла
03:13:07
Type то есть по этому ключевому слову
03:13:10
Type можно понять что то что вы передали
03:13:12
в функцию Type является классом и STR в
03:13:16
данном случае - это встроенный в Python
03:13:18
CL как например и int Давайте выполним
03:13:22
код тоже самое CL Type то есть int - это
03:13:26
ещё один класс в Python на основании
03:13:28
которого создаются целые числа
03:13:31
экземпляры класса
03:13:33
int Давайте вернём обратно здесь Long
03:13:36
STR и на другой строке Давайте выведем
03:13:39
терминал также ID Long
03:13:43
выполним код и идентификатор объекта в
03:13:46
котором сохраняется вот эта длинная
03:13:48
строка вот такой В моём
03:13:50
случае теперь Давайте попробуем разбить
03:13:52
эту длинную строку на несколько например
03:13:55
вот таким образом Но если я буду
03:13:57
разбивать строку вот так то я немедленно
03:14:00
получу ошибку Какая же ошибка возникает
03:14:02
string Literal is unterminated то есть
03:14:06
не закрытая строка Это означает что
03:14:09
Python ожидает от вас двойных кавычек
03:14:12
здесь на этой строке кода чтобы закрыть
03:14:16
эту строку вот открывающая кавычка и на
03:14:19
этой же строке должна быть закрывающая
03:14:21
то есть таким образом разбивать строку
03:14:23
на несколько нельзя для того чтобы

Описание:

🔵 Полный курс Python [45 ЧАСОВ] https://sale.stashchuk.com/python 🟠 Полный курс Python (English) [50 ЧАСОВ] https://sale.stashchuk.com/python-en 🟣 Полный курс JavaScript [130 ЧАСОВ] https://sale.stashchuk.com/js 🟢 Полный курс Node.js [18 ЧАСОВ] https://sale.stashchuk.com/nodejs ⭐️ Все мои курсы https://stashchuk.com 🎦 Подпишись на канал YouTube https://www.youtube.com/CodingTutorials?sub_confirmation=1 🙍 LinkedIn https://www.linkedin.com/in/bogdanstashchuk/ 📪 Twitter https://twitter.com/BogdanStashchuk Настройки редактора Visual Studio Code https://github.com/bstashchuk/vs-code-settings/blob/main/settings.json 🔥 Профиль Udemy https://www.udemy.com/user/bogdanstashchuk/ Содержание видео: 00:00:00 Введение в курс Python 00:12:20 Установка Python 00:14:56 Установка редактора кода VS Code 00:20:34 Начало работы в VS Code 00:23:02 Изменение настроек редактора VS Code 00:30:28 Знакомство с интерпретатором Python 00:43:43 Установка и использование PyCharm 00:51:48 Самое важное в Python 00:55:02 Основные типы в Python 00:58:39 Практика в интерактивном интерпретаторе Python 01:04:19 Встроенные функции 01:11:13 Функция dir и атрибуты объектов 01:33:42 Отступы в Python 01:41:46 Форматирование кода Python и PEP8 01:57:30 Введение в функции 02:16:40 Выражения 02:29:27 Переменные 02:39:02 Динамическая типизация 02:48:10 Типы и структуры данных 02:54:22 Переменные и объекты 03:06:47 Строки - str 03:27:57 Целые числа - int 03:40:56 Числа с десятичной точкой - float 03:49:40 Логический тип - bool 04:00:27 Конвертация типов 04:12:31 Магические методы 04:27:38 Списки - list 04:40:10 Методы списков 05:19:28 Словари - dict 05:27:25 Изменение значений в словарях 05:34:46 Переменные в словарях 05:39:45 Длина словаря 06:02:25 ЗАДАЧА - Словари 06:10:19 Кортежи - tuple 06:31:46 Наборы - set 06:49:40 Методы наборов 07:18:56 Диапазоны - range 07:36:47 Сравнение типов последовательностей 07:43:32 Встроенная функция zip 07:53:52 Изменение объектов в Python 08:18:34 Функции 08:29:27 Самая корткая функция и pass 08:45:31 ЗАДАЧА - Функции 08:54:17 Аргументы функций 09:16:43 ЗАДАЧИ - Именованые аргументы функций 09:41:02 Колбэк функции 09:52:20 Правила работы с функциями 10:03:27 Области видимости 10:23:13 Операторы 10:29:27 Операторы и магические методы 10:43:09 ЗАДАЧА - Операторы 10:54:04 Ложные значения 11:02:49 Логические операторы 11:19:47 Оператор распаковки словаря 11:24:58 Объединение словарей 11:34:11 Соединение строк 11:44:28 Лямбда функции 11:56:52 Обработка ошибок 12:03:58 Получение информации об ошибке 12:19:47 Создание ошибок 12:25:08 ЗАДАЧА - Обработка ошибок 12:38:07 Распаковка списков и кортежей 12:59:24 Условные инструкции 13:29:15 ЗАДАЧА - Условные инструкции 13:45:51 Тернарный оператор 14:04:24 Циклы 14:08:47 Цикл for in 14:22:02 Цикл for in для наборов 14:25:23 ЗАДАЧИ - Цикл for in 14:45:45 Встроенная функция filter 14:56:57 Цикл while 15:00:35 Использование continue в циклах 15:05:07 ЗАДАЧА - Цикл while 15:14:31 Сокращенный цикл for in 15:31:39 ЗАДАЧИ - Сокращенный цикл for in

Медиафайл доступен в форматах

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

question iconКак можно скачать видео "Python - Полный Курс по Python [15 ЧАСОВ]"?arrow icon

    Сайт http://unidownloader.ru/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений.
    Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

    Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

    UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

question iconКакой формат видео "Python - Полный Курс по Python [15 ЧАСОВ]" выбрать?arrow icon

    Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

question iconПочему компьютер зависает при загрузке видео "Python - Полный Курс по Python [15 ЧАСОВ]"?arrow icon

    Полностью зависать браузер/компьютер не должен! Если это произошло, просьба сообщить об этом, указав ссылку на видео. Иногда видео нельзя скачать напрямую в подходящем формате, поэтому мы добавили возможность конвертации файла в нужный формат. В отдельных случаях этот процесс может активно использовать ресурсы компьютера.

question iconКак скачать видео "Python - Полный Курс по Python [15 ЧАСОВ]" на телефон?arrow icon

    Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

question iconКак скачать аудиодорожку (музыку) в MP3 "Python - Полный Курс по Python [15 ЧАСОВ]"?arrow icon

    Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

question iconКак сохранить кадр из видео "Python - Полный Курс по Python [15 ЧАСОВ]"?arrow icon

    Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

question iconКак воспроизвести и скачать потоковое видео?arrow icon

    Для этого понадобится VLC-плеер, скачать его можно бесплатно с официального сайта https://www.videolan.org/vlc/

    Как воспроизвести потоковое видео через VLC-плеер:

    • в форматах видео наведите курсор мыши на "Потоковое видео**";
    • правым кликом выберите "Копировать ссылку";
    • откройте VLC-плеер;
    • в меню выберите Медиа - Открыть URL - Сеть;
    • в поле ввода вставьте скопированную ссылку;
    • нажмите "Воспроизвести".

    Для скачивания потокового видео через VLC-плеер необходимо его конвертировать:

    • скопируйте адрес видео (URL);
    • в пункте “Медиа” проигрывателя VLC выберите “Открыть URL…” и вставьте ссылку на видео в поле ввода;
    • нажмите на стрелочку на кнопке “Воспроизвести” и в списке выберите пункт “Конвертировать”;
    • в строке “Профиль” выберите “Video - H.264 + MP3 (MP4)”;
    • нажмите кнопку “Обзор”, чтобы выбрать папку для сохранения конвертированного видео и нажмите кнопку “Начать”;
    • скорость конвертации зависит от разрешения и продолжительности видео.

    Внимание: данный способ скачивания больше не работает с большинством видеороликов с YouTube.

question iconСколько это всё стоит?arrow icon

    Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.

Следите за обновлениями в наших социальных сетях