background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Python - Курс Python Для Начинающих [1.5 ЧАСА]"

input logo icon
Обложка аудиозаписи
Подождите немного, мы готовим ссылки для удобного просмотра видео без рекламы и его скачивания.
console placeholder icon
Оглавление
|

Оглавление

0:00
Обзор ускоренного курса Python
1:41
Привет от Питона
2:58
Базовые типы
4:17
Преобразование между типами
5:15
Ложные значения
6:04
Выбор названий для переменных и констант
7:08
Переменные и динамическая типизация
8:26
Базовые типы копируются по значению
9:28
Увеличение и уменьшение переменных
10:46
Списки
13:59
Tuples
15:50
Словари
22:07
Копирование по ссылке
24:38
Наборы
27:13
Итоги по типам контейнеров
30:09
Установка и настройка Code Runner в VS Code
36:26
Функции
41:45
Позиционные аргументы
44:00
Именованные аргументы
45:23
Сбор всех аргументов в tuple
47:20
Перебор значений с использованием цикла for...in
49:29
Использование kwargs в функциях
53:54
Описание функций
55:24
Операторы сравнения
57:22
Логический оператор and
59:58
Оценка короткого замыкания
1:02:53
Логический оператор or
1:05:27
Логический оператор not
1:06:30
Комбинация операторов и приоритет
1:07:56
Условные инструкции if
1:12:30
Форматирование строк
1:14:40
Обработка ошибок с использованием try…except
1:17:18
Модули Python
Похожие ролики из нашего каталога
|

Похожие ролики из нашего каталога

Уроки Python / Рекурсия
5:31

Уроки Python / Рекурсия

Канал: Изучаем мир ИТ / Олег Шпагин / Программирование
Урок №9 | Вторая PyQt5 Программа - Объектно-Ориентированная | Python 3 - разработка GUI на PyQt5
20:21

Урок №9 | Вторая PyQt5 Программа - Объектно-Ориентированная | Python 3 - разработка GUI на PyQt5

Канал: Masters of Code
Урок №14 | Наследование | Python 3 - разработка GUI на PyQt5 | Python 3 Уроки Для Начинающих
13:17

Урок №14 | Наследование | Python 3 - разработка GUI на PyQt5 | Python 3 Уроки Для Начинающих

Канал: Masters of Code
Урок №15 | Приватные Свойства И Методы | Python 3 - разработка GUI на PyQt5
9:44

Урок №15 | Приватные Свойства И Методы | Python 3 - разработка GUI на PyQt5

Канал: Masters of Code
Урок №10 | Сигналы и Слоты | Python 3 - разработка GUI на PyQt5 | Python 3 Уроки Для Начинающих
5:04

Урок №10 | Сигналы и Слоты | Python 3 - разработка GUI на PyQt5 | Python 3 Уроки Для Начинающих

Канал: Masters of Code
Эти ошибки совершает каждый новичок Python / 11 Ошибок которые нужно исправить
14:05

Эти ошибки совершает каждый новичок Python / 11 Ошибок которые нужно исправить

Канал: ZProger [ IT ]
🚀 Python С НУЛЯ. #4 | Уроки для начинающих. | Методы для работы со строками.join/ split/ find/ index
1:04:46

🚀 Python С НУЛЯ. #4 | Уроки для начинающих. | Методы для работы со строками.join/ split/ find/ index

Канал: SENATOROV.Уроки математики.Программирование.Python
Урок №17 | Диалог QMessageBox | Python 3 - разработка GUI на PyQt5 | Python 3 Уроки Для Начинающих
21:36

Урок №17 | Диалог QMessageBox | Python 3 - разработка GUI на PyQt5 | Python 3 Уроки Для Начинающих

Канал: Masters of Code
Урок №12 | Определение Класса И Создание Объектов | Python 3 - разработка GUI на PyQt5
19:45

Урок №12 | Определение Класса И Создание Объектов | Python 3 - разработка GUI на PyQt5

Канал: Masters of Code
Как понять, что происходит в коде? Отладка python кода на pythontutor.com
5:21

Как понять, что происходит в коде? Отладка python кода на pythontutor.com

Канал: egoroff_channel
Теги видео
|

Теги видео

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

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:00
Добро пожаловать на курс по питону для
00:00:02
начинающих в этом курсе я научу вас
00:00:05
ключевым функциям питона который чаще
00:00:07
всего используется в реальных проектах и
00:00:09
мы рассмотрим следующие темы базовые
00:00:12
типы такие как строки или целые числа
00:00:14
контейнерные типы такие как списки или
00:00:17
словари присваивание значений переменным
00:00:19
конвертация значение различных типов
00:00:21
логические операторы и операторы
00:00:24
сравнения условные инструкции Элос
00:00:27
функции циклы и форматирования строк
00:00:29
Давайте начинать и Сначала вам нужно
00:00:32
проверить установлен ли питон на вашем
00:00:34
компьютере для этого Откройте любой
00:00:36
терминал на Mac я использую it ram-ту
00:00:39
Также можно использовать терминал по
00:00:42
умолчанию Если вы пользователь Windows
00:00:44
Вы можете например использовать
00:00:45
powershell или git Bash
00:00:48
здесь в терминале введите пайтон минус
00:00:50
Минус ворошило Если вы работаете на Мэг
00:00:53
введите Python Free минус Минус varusion
00:00:56
потому что на macos доступны две
00:00:59
различные версии питона в этом
00:01:01
ускоренном курсе Мы будем использовать
00:01:02
третью версию питона на Windows или
00:01:06
Linux Просто введите Python минус Минус
00:01:08
ворошин Давайте проверим версию я вижу
00:01:11
что на моем компьютере установлен питон
00:01:13
версии 3.9.4 Если вы видите ошибку
00:01:17
вместо версии Значит вам нужно
00:01:19
установить питон
00:01:21
чтобы установить питон перейдите на
00:01:23
страницу загрузки python.org и загрузите
00:01:26
питон для вашей операционной системы он
00:01:29
доступен для Windows Linux и macos
00:01:32
И после этого перепроверьте версию
00:01:35
питона Если вы видите конкретную версию
00:01:38
в этом выводе значит питон установлен
00:01:41
[музыка]
00:01:45
давайте начнем изучение питона и в
00:01:48
первой части этого курса мы будем
00:01:50
использовать интерактивную оболочку
00:01:51
питона чтобы войти в такую оболочку вам
00:01:54
нужно просто ввести Python в терминале
00:01:56
на Windows или Linux или Python 3 на
00:01:59
macos И после этого нажать Enter
00:02:02
интерактивная оболочка была запущена и
00:02:04
здесь я вижу подробности о конкретной
00:02:06
версии питона в моем случае я использую
00:02:09
питона 3.9.4 и вот точная версия а также
00:02:14
ниже вы видите интерактивную командную
00:02:16
строку состоящую из трех знаков больше И
00:02:19
теперь здесь вы можете вводить любые
00:02:21
команды питона и интерпретатор Python
00:02:24
будет интерпретировать их и возвращать
00:02:26
результат например Давайте вызовем
00:02:29
функцию Print которая будет печатать
00:02:31
результат определенного выражения в
00:02:33
терминал и здесь в этих скобках где мы
00:02:36
вызываем функцию печати мы можем вести
00:02:38
скажем строку
00:02:40
и нажать
00:02:42
Enter
00:02:43
и я вижу Hello From Python здесь в этой
00:02:46
интерактивной оболочке вы также можете
00:02:49
передать функции Print несколько
00:02:51
выражений например строку ABC и число 10
00:02:54
и я вижу ABC и 10 в терминале
00:02:58
[музыка]
00:03:02
Теперь давайте поговорим о базовых типах
00:03:05
в питоне есть такие типы как integer
00:03:07
целое число без десятичной части флот
00:03:10
число с десятичной частью например 2.5
00:03:14
string строка ABC причем Вы можете
00:03:18
использовать либо двойные либо одинарные
00:03:20
кавычки бу Лен
00:03:22
логическое True или Falls NAN
00:03:26
используется для представления
00:03:28
неопределенного значения вы также можете
00:03:31
проверить тип любого значения с помощью
00:03:33
функции Type
00:03:35
и Давайте проверим тип числа 2 я вижу
00:03:39
класс Почему класс потому что питон
00:03:43
является объектом ориентированным языком
00:03:45
программирования и любое значение в
00:03:48
питоне является экземпляром
00:03:50
определенного класса и здесь мы видим
00:03:52
что число 2 является экземпляром класса
00:03:54
integer Давайте проверим тип числа
00:03:58
сплавающей запятой 1.5 я вижу флот
00:04:01
Давайте проверим тип строки ABC например
00:04:05
класс string Давайте проверим тип
00:04:08
значения false или True видим boolean и
00:04:11
Давайте проверим тип значения NAN видим
00:04:14
класс NAN Type
00:04:16
[музыка]
00:04:20
Вы можете очень легко преобразовать
00:04:23
значение одного типа в другой используя
00:04:26
такие функции как STR строка int целое
00:04:30
число float число с плавающей запятой и
00:04:33
Бул я могу преобразовать в строку
00:04:35
например число 100 получаем строку 100
00:04:38
также я могу преобразовать в строку
00:04:40
логическое значение например True Я
00:04:43
получаю строку True Давайте преобразуем
00:04:46
в целое число строку 50 Я получаю целое
00:04:51
число 50 Давайте преобразуем в целое
00:04:53
число логическое значение True Я получаю
00:04:56
один а если я преобразую Фолз то конечно
00:04:59
я получаю 0 Давайте попробуем
00:05:01
преобразовать в целое число строку
00:05:04
например ABC и питон конечно же не смог
00:05:07
преобразовать такую строку в целое число
00:05:09
и я получил ошибку
00:05:15
[музыка]
00:05:19
в петунии Как и во многих других языках
00:05:22
программирования есть ложные значения
00:05:24
ложное значение это значение разных
00:05:27
типов которые преобразуются в логическое
00:05:30
значение false а в питоне Вы можете
00:05:32
преобразовать любое значение в
00:05:34
логическое значение с помощью функции
00:05:36
bool есть следующая ложное значение
00:05:38
целое число 0 при конвертации мы
00:05:41
получаем ложное значение false число с
00:05:44
плавающей запятой 0.0 пустая строка
00:05:47
конечно же логическое значение false и
00:05:50
NAN
00:05:51
также ложными являются пустые значения
00:05:54
контейнерных типов например пустой
00:05:57
список или пустой словарь мы поговорим о
00:06:00
контейнерных типах чуть позже в этом
00:06:02
курсе
00:06:04
[музыка]
00:06:08
петуния Вы можете Объявлять новые
00:06:10
переменные и присваивать им значение
00:06:13
принято называть переменные строчными
00:06:15
буквами знаками подчеркивания между
00:06:18
словами например май знак подчеркивания
00:06:20
name Или например май знак подчеркивания
00:06:23
fairate знак подчеркивания сон
00:06:26
Если вы хотите создать константу
00:06:28
значение которой не будет изменяться в
00:06:31
течение жизненного цикла приложения
00:06:32
питон Вам следует использовать заглавные
00:06:35
буквы например май знак подчеркивания
00:06:37
API и знак подчеркивания ки но Обратите
00:06:40
внимание что питон не различает
00:06:42
переменные и константы и для питона Нет
00:06:46
разницы называете ли вы переменную майки
00:06:49
в верхнем регистре или майки в нижнем
00:06:52
регистре в обоих случаях вы сможете
00:06:54
позже переназначить другое значение этой
00:06:57
переменной Но если вы назовете
00:06:59
переменную таким образом это будет для
00:07:02
вас индикатором что вам не следует
00:07:04
присваивать новое значение такой
00:07:06
переменной
00:07:07
[музыка]
00:07:11
объявить переменную и присвоить ей
00:07:14
значение можно очень просто My Name знак
00:07:17
равно Богдан Теперь я могу получить
00:07:20
доступ к значению этой переменной в
00:07:23
любое время я получаю строку Богдан
00:07:25
также я могу проверить тип переменной My
00:07:28
Name Я получаю класс STR строка питон
00:07:32
это язык с динамической типизацией и это
00:07:35
означает что вы можете изменять тип
00:07:37
значения который присвоено переменной
00:07:39
Например я могу присвоить новое значение
00:07:41
True переменной My Name и теперь если я
00:07:45
прочту значение переменной My Name я
00:07:47
получу True и теперь тип переменной Bull
00:07:51
Именно поэтому вы должны использовать
00:07:53
осмысленное имя для переменной Чтобы
00:07:56
избежать такого случайного
00:07:58
переназначения значений если имя
00:08:00
переменной My Name то конечно же вы
00:08:03
понимаете что следует присвоить строку
00:08:05
такой переменной Давайте изменим
00:08:07
значение этой переменной обратно на
00:08:09
Богдан Если вы хотите например
00:08:11
присваивать логическое значение
00:08:12
переменной Вам следует называть ее
00:08:15
соответственно к примеру подходящим
00:08:17
названием будет из локт-in для
00:08:20
переменной которая отслеживает
00:08:22
авторизовалось ли пользователь
00:08:25
[музыка]
00:08:29
Также вы можете копировать переменные
00:08:32
например name может быть копией My Name
00:08:35
и теперь если получает доступ к
00:08:38
adoraname Я получаю Богдан если я
00:08:41
получаю доступ к minname я также вижу
00:08:43
Богдан если я присвою другое значение
00:08:45
переменной скажем Майк и получу доступ я
00:08:51
увижу значение Майк Но если я получу
00:08:54
доступ к Майами она по-прежнему содержит
00:08:56
значение Богдан и это означает что с
00:08:59
базовыми типами Когда вы копируете одну
00:09:01
переменную в другую и меняете значение
00:09:03
другой переменной значение исходной
00:09:06
переменной такой как My Name не
00:09:08
изменяется и Это связано с тем что при
00:09:11
копировании переменной содержащая
00:09:13
значение базового типа фактически
00:09:15
копируются значения из одной переменной
00:09:17
в другую и поэтому когда мы изменили
00:09:21
значение переменной atername в этой
00:09:23
строке значение переменной My Name не
00:09:26
изменилось
00:09:28
[музыка]
00:09:31
Теперь давайте определим новую
00:09:34
переменную и Давайте назовем ее H ее
00:09:37
значение будет целое число 21 и теперь
00:09:40
давайте предположим Что вы хотите
00:09:42
увеличить значение этой переменной H на
00:09:44
единицу Вы можете сделать это следующим
00:09:47
образом H знак присваивания H + 1 мы
00:09:51
фактически используем текущее значение
00:09:53
переменной H и увеличиваем его на один а
00:09:57
затем новое значение присваиваем той же
00:09:59
переменной Edge после этого значение
00:10:01
переменной Edge станет 22 Также вы
00:10:04
можете Выполнять ту же операцию
00:10:06
используя оператор плюс равно и Давайте
00:10:09
предположим что теперь мы хотим
00:10:11
увеличить значение переменной H2 H плюс
00:10:14
равно 2 нет необходимости в двух разных
00:10:16
операторах Вы можете использовать только
00:10:18
один оператор плюс равно и теперь
00:10:20
переменная H содержит значение 24
00:10:23
аналогичным образом вы можете уменьшить
00:10:26
значение переменной используя оператора
00:10:28
минус равно H минус равно скажем 5 и
00:10:32
теперь H равно 19
00:10:34
Также вы можете присвоить NAN в качестве
00:10:37
значения любой переменной А также вы
00:10:40
можете удалить определенную переменную
00:10:41
используя оператору Dell и теперь такой
00:10:44
переменной нет
00:10:46
[музыка]
00:10:50
мы уже обсуждали базовые типы такие как
00:10:52
string или integer и теперь пришло время
00:10:55
поговорить о контейнерных типах в питоне
00:10:57
есть такие контейнерные типы Как лист
00:11:01
Table
00:11:05
это не упорядоченные последовательности
00:11:08
значений
00:11:10
упорядочены давайте начнем со списков вы
00:11:14
можете создать список используя
00:11:16
квадратные скобки и вот пустой список Вы
00:11:20
можете присвоить пустой список любой
00:11:22
переменной например теперь переменная A
00:11:25
содержит список и сейчас он пустой Вы
00:11:28
можете проверить длину списка используя
00:11:31
функцию и сейчас длина списка равна нулю
00:11:34
в нем нет ни одного элемента как
00:11:37
экземпляр списка имеет много разных
00:11:40
методов которые вы можете вызывать с
00:11:42
помощью точечной записи если набрать A
00:11:45
поставить точку и дважды нажать вы
00:11:47
увидите какие методы доступны для
00:11:49
использования
00:11:50
такие методы как апенд копии Count Clear
00:11:53
и так далее метод opent используется для
00:11:57
добавления новых элементов в
00:11:59
существующий список Давайте попробуем Эй
00:12:02
точка opent И давайте добавим число 2
00:12:04
теперь в списке A есть один элемент и
00:12:08
теперь длина этого списка 1 Давайте
00:12:11
добавим еще один элемент в этот список и
00:12:13
добавим например строку ABC и после
00:12:16
этого список A уже содержат два разных
00:12:19
элемента и соответственно длина A
00:12:22
конечно же 2 Вы можете получить доступ к
00:12:25
определенному элементу списка используя
00:12:27
его индекс при этом индексы начинаются с
00:12:30
нуля то есть индекс первого элемента 0 А
00:12:33
индекс второго элемента 1 Для получения
00:12:35
доступа к элементам списка используется
00:12:37
квадратные скобки например и квадратные
00:12:40
скобки 0 Я получаю 2 Это первый элемент
00:12:42
в этом списке Он имеет индекс 0 Давайте
00:12:45
прочтем второй элемент и теперь вместо 0
00:12:47
будет 1 я получаю ABC Но если я
00:12:50
попытаюсь получить доступ к
00:12:52
несуществующему элементу например
00:12:53
Давайте здесь укажу индекс 10 я получу
00:12:56
ошибку индекса индекс вне диапазона
00:12:59
Давайте добавим еще один элемент в этот
00:13:02
список apend кстати говоря вы всегда
00:13:05
можете использовать Темп для
00:13:06
автодополнения например имени метода
00:13:08
которые вы хотите использовать и здесь
00:13:11
Давайте добавим элемент True это
00:13:13
логическое значение теперь длина списка
00:13:15
будет равна 3 и допустим вы хотите
00:13:17
получить доступ к последнему элементу в
00:13:19
этом списке для этого вы можете
00:13:21
использовать такой синтаксис как Эй
00:13:23
квадратные скобки минус 1 отрицательные
00:13:26
индексы такие как -1 -2 позволяют вам
00:13:29
получать доступ к элементам начиная с
00:13:31
конца списка теперь в списке есть Три
00:13:35
разных элемента Если вы хотите удалить
00:13:37
Последний элемент в этом списке можно
00:13:39
использовать метод
00:13:41
без каких-нибудь аргументов он
00:13:44
возвращает элемент который был только
00:13:46
что удален и теперь имеет только два
00:13:48
элемента также удалить все элементы из
00:13:51
списка Используя метод Clear и теперь
00:13:53
список пуст теперь Давайте удалим
00:13:57
переменную
00:13:58
[музыка]
00:14:03
списки являются изменяемыми в питоне
00:14:05
именно по этой причине мы смогли
00:14:08
изменять значение переменной A
00:14:10
предыдущих примерах также есть
00:14:12
неизменяемый контейнерный тип называется
00:14:15
Table Давайте создадим новую переменную
00:14:17
B и справа знака присваивания напишем в
00:14:20
круглых скобках например 2 и ABC нажмем
00:14:25
Enter и Давайте получим доступ мы видим
00:14:28
два Элемента 2 и ABC и тип тапу Если я
00:14:34
сейчас напишу by точка и дважды нажму
00:14:36
Tap я увижу только два доступных метода
00:14:39
для taple которые можно использовать
00:14:41
каунт и индекс здесь нет таких методов
00:14:44
как апенд или поп и разница между
00:14:48
tapple и лист заключается в том что
00:14:50
tapple неизменяемый вы не можете
00:14:53
добавлять новые элементы Apple Например
00:14:56
если даже попытаюсь ввести
00:14:59
bynd и веду здесь например 10 я получу
00:15:02
ошиб объект Table не имеет атрибута
00:15:06
apend но вы можете получать доступ к
00:15:09
элементам в Table также как мы делали
00:15:11
это со списками используя нотацию с
00:15:13
квадратными скобками Bi квадратные
00:15:15
скобки 0 и я вижу два Это первый элемент
00:15:19
в taple с индексом 0 Аналогично я могу
00:15:22
получить доступ ко второму элементу с
00:15:24
индексом 1 мы видим строку ABC также
00:15:27
Используя метод Index можно получить
00:15:29
индекс определенного элемента например
00:15:32
индекс строки abc-1 Я рекомендую вам
00:15:35
использовать
00:15:36
Table тогда когда нужно создавать
00:15:38
упорядочный список с разными значениями
00:15:40
и вы не планируете изменять эти значения
00:15:43
или добавлять новое значение в будущем
00:15:46
Вот для чего тапала подходит лучше всего
00:15:50
[музыка]
00:15:54
Давайте двигаться дальше и далее Давайте
00:15:56
обсудим неупорядочные контейнерные типы
00:15:58
словари и наборы и давайте начнем со
00:16:01
словарей словари создаются с помощью
00:16:03
пары фигурных скобок внутри которых
00:16:06
находятся пары ключ значения Давайте
00:16:08
добавим Q1 со значением True и kitu со
00:16:13
значением допустим 10
00:16:15
отмечу что порядок ключей в словаре не
00:16:19
имеет значения можно ввести Q1 и после
00:16:22
него киту или же поменять порядок и
00:16:25
сначала ввести кету с его значением а
00:16:28
затем Q1 со значением True Хорошо
00:16:31
давайте создадим новую переменную и
00:16:33
назовем ее Person и присвоим ей словарь
00:16:36
с одним ключом name значение которого
00:16:38
будет строка например Богдан если сейчас
00:16:42
получу доступ я увижу словарь с одним
00:16:44
ключом name а тип переменной конечно же
00:16:48
теперь словарь
00:17:48
И теперь я получаю строку NAN вы также
00:17:53
можете назначить значение по умолчанию
00:17:55
вызове этой функции если определенный
00:17:57
ключ отсутствует в словаре используя
00:18:00
следующий синтаксис парусом точка Get
00:18:03
Age и здесь после запятой указывается
00:18:05
значение по умолчанию для этого ключа
00:18:07
например 18 И теперь я вижу 18 как
00:18:11
результат вызова этой функции Поэтому
00:18:13
если вы не уверены присутствуют ли
00:18:15
конкретный ключ в словаре или нет Я
00:18:17
рекомендую вам использовать метод Get
00:18:19
вместо квадратных скобок при
00:18:21
использовании которых вы получите ошибку
00:18:23
ключа В случае отсутствия определенного
00:18:26
ключа в словаре А теперь Давайте
00:18:28
проверим какие методы кроме Get доступны
00:18:30
к использованию для словаря Person
00:18:32
Давайте напишем точка и дважды нажмем
00:18:36
теп и здесь видны такие методы как Clear
00:18:39
Kiss или velos но к сожалению такого
00:18:42
метода как апенд у словарей нет тогда
00:18:46
как же добавлять новые ключи
00:18:48
очень просто используя квадратные скобки
00:18:52
напишем proston и здесь квадратных
00:18:55
скобках укажем строку с новым ключом и
00:18:57
скажем Happy и значение этого ключа
00:18:59
будет True сейчас в словаре Person я
00:19:02
увижу два разных ключа name и Happy
00:19:06
Также вы всегда можете изменять значение
00:19:09
определенного ключа используя ту же
00:19:12
нотацию Давайте изменим значение ключа
00:19:15
Happy например на false и теперь
00:19:17
значение ключа Happy это false давайте
00:19:21
обратно изменим Натру вы также можете
00:19:23
получить длину словаря используя функцию
00:19:26
LAN вызовем ее Land parson я вижу два
00:19:31
сейчас этот словарь имеет два разных
00:19:33
ключа используя parrotion.kz и
00:19:37
parson.vlius вы можете получать ключи и
00:19:40
значения определенного словаря Давайте
00:19:43
сначала попробуем парусом точка Kiss в
00:19:46
результате Я получаю ключи словаря и
00:19:50
здесь вы видите структуру которая очень
00:19:52
похожа на список с двумя элементами name
00:19:55
и Happy но этот результат не список это
00:19:58
экземпляр диккис Давайте проверим это
00:20:02
используя функцию Type и здесь будет Pro
00:20:04
Kiss я вижу класс
00:20:07
вы всегда можете преобразовать диктkiss
00:20:11
в список Если необходимо используя
00:20:13
функцию list Person Kiss И теперь я вижу
00:20:17
список с двумя элементами name и Happy
00:20:20
аналогичным образом вы можете получить
00:20:22
значение ключей словаря
00:20:25
parason.vels И теперь я вижу диктовал с
00:20:29
двумя элементами Богдан и True
00:20:32
аналогичным образом можно преобразовать
00:20:34
его в список используя лист и здесь
00:20:37
будет proso.vels И теперь виден список с
00:20:40
двумя элементами Богдан и True напоминаю
00:20:43
что в списках Вы можете получить
00:20:45
конкретный элемент используя аннотацию с
00:20:47
квадратными скобками Например я могу
00:20:50
получить первый элемент добавив
00:20:51
квадратные скобки и здесь будет 0 и я
00:20:55
вижу конечно же Богдан также значение в
00:20:57
словаре могут иметь контейнерные типы
00:20:59
например список или словарь Давайте
00:21:02
добавим новый ключ в словарь паруса
00:21:04
используя квадратные скобки и здесь
00:21:06
будет Допустим хоббис и значением будет
00:21:09
список и здесь мы используем квадратные
00:21:12
скобки и здесь в списке я напишу букс и
00:21:15
Сноубординг теперь список парасон был
00:21:18
добавлен новый ключ hobbies Давайте
00:21:20
проверим это и теперь в этом словаре
00:21:23
perosson есть ключи name Happy и хоббис
00:21:25
и теперь Если вы хотите можно изменить
00:21:28
этот список либо добавить новые элементы
00:21:30
либо удалить элементы либо изменить
00:21:32
элементы используя такой синтаксис как
00:21:35
Person квадратные скобки хоббис и далее
00:21:39
мы воспользуемся методом поп и удалим
00:21:42
последний элемент в этом списке Итак
00:21:45
элемент Сноубординг был удален и теперь
00:21:48
в списке остался только один элемент
00:21:50
Также можно удалить конкретный ключ из
00:21:52
словаря используя оператору то есть
00:21:56
wassin.dl и здесь вы квадратных скобках
00:21:59
будет имя ключа например хоббис и ключ
00:22:03
hobbies был только что удален
00:22:06
[музыка]
00:22:10
теперь переменная парасон является
00:22:12
словарем И что если я хочу скопировать
00:22:15
этот словарь в другую переменную
00:22:17
например
00:22:20
давайте сделаем так чтобы
00:22:25
имеет то же значение что и парусом
00:22:28
теперь Давайте попробуем изменить
00:22:31
переменную на droperson и например
00:22:33
Давайте изменим имя
00:22:37
квадратные скобки name и изменим имя
00:22:40
например на Боб Теперь имя в parason
00:22:45
было изменено на Боб Но если я попытаюсь
00:22:47
получить доступ к Person я увижу что имя
00:22:50
было изменено также и здесь на Боб и
00:22:53
причина этого в том что словарю питоне
00:22:55
является ссылочным типом и теперь обе
00:22:58
переменные Паруса и надо пороссон на
00:23:00
самом деле указывают на одно и то же
00:23:02
место в памяти то место где находится
00:23:05
этот словарь
00:23:07
И когда вы изменяете Другими словами
00:23:09
мутируете это словарь изменения
00:23:12
происходят только в одном месте в памяти
00:23:14
на которое продолжает указывать
00:23:17
переменные парусом и аналогов просон
00:23:20
Именно поэтому здесь мы видим одинаковое
00:23:23
значение Это называется копировать по
00:23:26
ссылке
00:23:27
при копировании значений базового типа
00:23:29
например строки или логические значения
00:23:32
копируются фактическое значение из одной
00:23:34
переменной в другую со словарями
00:23:37
ситуация обратная мы копируем только
00:23:40
указатели что очень важно всегда помнить
00:23:43
это же касается из списков Давайте
00:23:46
создадим список нам просто с числами
00:23:48
например один и два и затем скопируем на
00:23:53
амброз вы переменную набрус вот так
00:23:57
и теперь давайте добавим еще один
00:23:59
элемент в список numbrus Используя метод
00:24:02
opent и Давайте добавим число например 3
00:24:05
я вижу что она Дана образ и numbros
00:24:09
одинаковы и причина здесь такая же как и
00:24:12
для словарей список это также ссылочный
00:24:16
тип в питоне и здесь в этой строке мы
00:24:19
скопировали только ссылку а не
00:24:22
фактическое значение значение же
00:24:24
одинаковое для обеих переменных Нам
00:24:27
просто надо намброс Итак это то что
00:24:30
называется копированием по ссылке и
00:24:31
пожалуйста всегда Будьте очень
00:24:33
внимательны Когда вы копируете значение
00:24:35
таких типов как словарь или список
00:24:38
[музыка]
00:24:41
Теперь давайте посмотрим на еще один
00:24:44
контейнерный тип в питоне который
00:24:46
называется сет набор наборы создаются с
00:24:49
использованием фигурных скобок как и
00:24:51
словари но в наборе нет ключей с
00:24:54
значениями как у словарей вместо этого
00:24:57
набор состоит из элементов и Каждый
00:24:59
элемент не должен быть мутируемым это
00:25:02
означает что вы не можете вставлять
00:25:05
набор другие словари или списки например
00:25:08
набор может содержать следующие элементы
00:25:12
10 Теперь давайте присвоим такое
00:25:15
значение переменной например myset и
00:25:18
теперь давайте посмотрим на тип этой
00:25:20
переменной и я вижу что myset является
00:25:23
экземпляром класса Set Теперь давайте
00:25:26
посмотрим какие методы доступны для
00:25:28
переменной myset Я здесь дважды нажму
00:25:31
Tap и увижу много методов таких как
00:25:34
копия difference из сапсет и так далее в
00:25:40
наборах даже больше чему словарей Но чем
00:25:43
наборы на самом деле отличаются от
00:25:45
словарей Позвольте мне показать вам
00:25:47
Давайте попробуем добавить еще один
00:25:50
элемент в myset который сейчас имеет
00:25:52
только три элемента abc-10 и B Обратите
00:25:56
внимание что порядок этих элементов
00:25:57
здесь в этом выводе отличается от
00:26:00
порядка в котором я изначально добавлял
00:26:02
элементы когда я присваивал значение
00:26:04
переменной myset порядок был ABC B и 10
00:26:07
но здесь в этом выводе я вижу ABC 10b
00:26:10
Это означает что порядок в наборах не
00:26:13
имеет значения как и в словарях Давайте
00:26:16
попробуем добавить новые элементы в
00:26:18
myset для этого есть метод Давайте
00:26:21
добавим новый элемент True прочтем
00:26:24
значение переменной myset и теперь в
00:26:27
наборе уже 4 элемента Давайте добавим
00:26:29
еще один элемент например число 20 и
00:26:31
теперь в наборе 5 элементов Но если я
00:26:34
попытаюсь добавить элемент который уже
00:26:36
есть в наборе например Давайте добавим
00:26:38
число 10 я увижу что сет не изменился И
00:26:43
в нем по-прежнему всего Пять элементов и
00:26:46
это то что делает наборы уникальными в
00:26:49
питоне набор содержит только уникальные
00:26:51
значения и не добавляет дубликатов и В
00:26:55
некоторых случаях эта характеристика
00:26:56
наборов может быть очень и очень
00:26:58
полезной наборы не сохраняют дубликаты
00:27:01
Вы конечно можете удалить определенные
00:27:04
элементы из набора Используя метод и
00:27:07
Давайте удалим число 20 и оно было
00:27:10
успешно удалено из набора
00:27:13
[музыка]
00:27:16
Теперь давайте коротко подведем итоги по
00:27:19
контейнерным типам в питоне начнем со
00:27:22
списка списки создаются с помощью
00:27:24
квадратных скобок и в них могут быть
00:27:26
элементы разных типов например integer
00:27:29
boolean или string это список далее есть
00:27:34
tapple создается с помощью пары круглых
00:27:36
скобок и здесь могут быть те же элементы
00:27:38
что и в первом списке один True и ABC
00:27:42
также есть словари которые создаются с
00:27:45
помощью фигурных скобок и словари
00:27:48
содержат пары ключ значений например
00:27:51
словаре может быть киван со значением 1
00:27:54
и ту с значением строка ABC также есть
00:27:59
наборы создаваемые также с помощью пары
00:28:02
фигурных скобок но наборы имеют только
00:28:04
значение например один и ABC разница
00:28:08
между этими четырьмя типами заключается
00:28:10
в том что список этапов упорядочены и
00:28:15
любой элемент в списке этапов имеет свой
00:28:18
уникальный индекс индекс начинается с
00:28:21
нуля индекс этого элемента равен 0
00:28:24
индекс этого элемента равен 1 и так
00:28:26
далее разница между списком и тапов
00:28:29
заключается в том что списки можно
00:28:32
изменять Вы можете изменить любое
00:28:35
значение добавить новые элементы удалить
00:28:37
элементы и так далее с другой стороны
00:28:39
значение типа taple неизменяемые и вы не
00:28:42
можете изменять эти значения а также в
00:28:45
tapple вы не можете добавлять или
00:28:47
удалять элементы словари и наборы не
00:28:49
упорядочены в питоне порядок ключей
00:28:51
здесь не имеет значения также как и
00:28:54
порядок элементов в наборе и вы можете
00:28:57
получить доступ к любому элементу в
00:28:59
словаре по ключу например используя ключ
00:29:02
k1 или kitum а также можно добавлять
00:29:06
новые ключи если есть необходимость
00:29:10
используя оператор Dell Вы можете
00:29:12
удалить конкретный ключ из словаря Это
00:29:15
означает что словари и наборы изменяемые
00:29:18
в питоне Вы можете изменить набор
00:29:20
добавить новые элементы удалить элементы
00:29:23
и так далее
00:29:25
отличие набора от списка в том что
00:29:28
список может содержать одинаковое
00:29:30
значение а набор может содержать только
00:29:33
уникальное значение и если вы
00:29:36
попытаетесь Добавить новый элемент
00:29:37
например ABC этот набор ничего не
00:29:40
изменится и набор по-прежнему будет
00:29:42
содержать только два элемента один и ABC
00:29:45
в этом разница между четырьмя разными
00:29:48
контейнерными типами Лис и
00:29:53
Теперь давайте выйдем из интерактивной
00:29:56
оболочки питона вызвав функцию Exit а
00:29:59
оставшуюся часть курса мы проведем в
00:30:01
редакторе Visual Studio Code и далее мы
00:30:04
поговорим о функциях инструкциях и fls и
00:30:07
других функциях питона
00:30:08
[музыка]
00:30:12
в оставшейся части курса мы будем
00:30:14
использовать редактор кода Visual Studio
00:30:17
Code потому что мы будем создавать
00:30:18
многострочные блоки кодов в питоне и
00:30:21
запускать его и потому не рекомендуется
00:30:23
продолжать работу в интерактивной
00:30:25
оболочке и если на вашем компьютере не
00:30:27
установлен vscout я Настоятельно
00:30:29
рекомендую установить его потому что мы
00:30:32
будем использовать одно из его
00:30:33
расширений которое позволит нам
00:30:35
автоматически выполнять код с помощью
00:30:37
комбинации клавиш или кнопки запуска
00:30:39
кода потому если у вас нет vscout
00:30:42
пожалуйста скачайте его точка Visual
00:30:45
studiocode.com Установите И после этого
00:30:47
пожалуйста откройте терминал на вашем
00:30:50
компьютере и Давайте создадим папку для
00:30:53
нашего проекта Я сделаю это на рабочем
00:30:56
столе И я создам папку под названием
00:30:58
pythones
00:31:01
Давайте перейдем в эту вновь созданную
00:31:04
папку и Давайте откроем ее с помощью
00:31:06
команды Cold
00:31:08
Если в вашем случае эта команда
00:31:11
недоступна Вы можете открыть vscold
00:31:14
вручную и в меню выбрать файл Open и
00:31:17
открыть эту вновь созданную папку но я
00:31:20
открою ее с помощью команды Cold в
00:31:23
терминале Итак проект был открыт я
00:31:26
разверну приложение на весь экран и
00:31:28
также я закрою эту страницу приветствия
00:31:30
Теперь давайте создадим новые файлы
00:31:33
здесь в этой папке Python clashcores для
00:31:36
этого Нажмите на эту иконку и Давайте
00:31:37
назовем файл main.pi Давайте закроем эту
00:31:41
левую панель и Давайте напишем код питон
00:31:43
прямо в этом файле main.ua например
00:31:47
Давайте напишем Print и в скобках будет
00:31:50
Hello From Python Давайте сохраним
00:31:52
изменения и теперь возникает вопрос как
00:31:54
запустить это приложение питон прямо
00:31:57
здесь вископ мы можем сделать это
00:31:59
вручную перейдя в меню термина и выбрав
00:32:02
New Terminal новый терминал был открыт и
00:32:05
вы заметили что теперь вы находитесь в
00:32:07
папке Python clashcores поэтому здесь
00:32:09
введите Python и имя файла которые вы
00:32:12
хотите запустить main.ui вам нужно
00:32:15
ввести эту команду Если вы используете
00:32:17
Windows или Linux Если же вы работаете
00:32:19
на Mac пожалуйста Измените Python на
00:32:22
Python Free Давайте нажмем Enter и питон
00:32:25
выполнит указанный файл и вот результат
00:32:27
выполнения этого файла main.ui Hello
00:32:31
From pite но войди такую команду Каждый
00:32:33
раз когда мы хотим выполнить код не
00:32:36
совсем удобно поэтому для простоты
00:32:38
Давайте установим одно из расширений
00:32:40
vscout которое называется Cold Runner и
00:32:44
с помощью мы сможем выполнять этот код
00:32:47
намного проще и быстрее
00:32:49
используя комбинацию клавиш или вот эту
00:32:51
кнопку Давайте перейдем в расширение и
00:32:54
здесь в поиске введите Call droneer
00:32:56
выберите Call 2 и нажмите Install Cold
00:33:01
Warner был успешно установлен и если вы
00:33:04
Прокрутите немного вниз в описании вы
00:33:06
найдете как его запустить Давайте найдем
00:33:09
комбинацию клавиш Вот она в этом разделе
00:33:11
чтобы запустить код Вы можете
00:33:14
использовать комбинацию клавиш Control
00:33:16
alt-n или использовать вот эту кнопку
00:33:18
здесь Давайте перейдем файл main.ua и
00:33:22
сначала Давайте нажмем эту кнопку и
00:33:24
выберем runcold и здесь я вижу результат
00:33:27
выполнения этого файла с помощью я вижу
00:33:31
такие секции как и дан но я не хочу их
00:33:34
видеть каждый раз когда я запускаю эту
00:33:36
программу с помощью
00:33:38
и поэтому я покажу вам как изменить эти
00:33:41
настройки так чтобы убрать из вывода эти
00:33:44
сообщения также мы будем очищать
00:33:46
предыдущий вывод Каждый раз когда мы
00:33:48
снова будем запускать джанр также
00:33:51
Обратите внимание на эту строку на моем
00:33:53
компьютере использовался интерпретатор
00:33:55
Python Если Вы являетесь пользователем
00:33:58
Мэг я покажу вам как изменить бетон на
00:34:01
питон 3 Давайте откроем настройки Cold
00:34:03
preferences settings или нажав
00:34:05
комбинацию Control запятая или команд
00:34:08
запятая и в поиске введем Code Wonder и
00:34:11
вы найдете настройки coldroneer которые
00:34:13
содержат текст Cold wanner в названии
00:34:15
или описании и Давайте уточним поиск
00:34:18
добавив здесь Save и вы найдете два
00:34:21
варианта
00:34:22
Сохранить все файлы перезапуском и
00:34:24
сохранить файл перезапуском я выберу
00:34:27
второй вариант И когда вы будете
00:34:29
запускать любой файл с помощью то он
00:34:32
сначала автоматически сохранит файл а
00:34:35
затем выполнит код Теперь давайте здесь
00:34:38
найдем Clear и поставим здесь галочку
00:34:40
очищать предыдущий вывод теперь напишем
00:34:44
здесь message и вы увидите шоу execution
00:34:47
message Давайте уберем эту галочку и
00:34:51
если Вы являетесь пользователем Mac
00:34:53
введите также здесь в поиске exec И вы
00:34:57
найдете Call oner executer
00:35:00
и Вам нужно открыть файл с этих точка
00:35:03
Джейсон и изменить в нем интерпретатор
00:35:06
Python пожалуйста нажмите здесь Edit в
00:35:09
settings.json Найдите опцию Python и
00:35:12
Измените Python на Python 3 и сохраните
00:35:16
изменения в этом файле settings.js Итак
00:35:20
теперь у нас все готово Давайте
00:35:22
попробуем снова выполнить файл main.pi
00:35:24
нажмите здесь Run Cold И теперь я вижу
00:35:28
только текст Hello From Python если я
00:35:32
изменю файл и добавлю здесь например
00:35:33
восклицательный знак и сохраню изменения
00:35:36
файле запущу его слова Run Cold я увижу
00:35:39
что предыдущий вывод был очищен Также вы
00:35:43
можете использовать комбинацию Control
00:35:45
alt-n чтобы выполнять код быстрее
00:35:47
Давайте изменим файлы еще раз и нажмем
00:35:50
эту комбинацию клавиш Control alt-n и вы
00:35:52
увидите обновленный результат здесь
00:35:55
двумя восклицательными знаками Также вы
00:35:58
можете изменить положение термина сейчас
00:36:01
по умолчанию он находится под файлом и
00:36:04
если вы хотите переместить его направо
00:36:06
Вы можете нажать правую кнопку мыши
00:36:08
здесь и выбрать переместить панель
00:36:10
направо и теперь терминал находится
00:36:12
здесь справа от файла мне это более
00:36:14
удобно Итак все уже настроено Cold
00:36:17
Runner установлен и в любое время когда
00:36:20
вы хотите запустить код вам нужно нажать
00:36:22
комбинацию клавиш Control alt-m
00:36:25
[музыка]
00:36:29
мы успешно установили и настроили
00:36:31
расширение Cold wanner и мы готовы
00:36:33
продолжать следующая тема функции в
00:36:36
питоне функции создаются используя
00:36:39
ключевое слово Def далее имя функции
00:36:42
например My Name за ним идет пара
00:36:45
круглых скобок и в них Вы можете указать
00:36:48
параметры функции давайте пока не будем
00:36:51
добавлять параметры после этого идет
00:36:54
двоеточие и на следующей строке после
00:36:57
тэп Обратите внимание что теп был
00:37:00
добавлен автоматически Вы можете
00:37:02
добавить тело функции с инструкциями
00:37:04
Давайте напишем здесь просто ключевое
00:37:07
слово пас а затем ниже Давайте вызовем
00:37:11
эту функцию My Name с помощью круглых
00:37:14
скобок и запустим этот код код был
00:37:18
выполнен но здесь выводе я ничего не
00:37:21
вижу Давайте попробуем напечатать
00:37:23
результат вызова этой функции с помощью
00:37:28
My N вот так теперь снова выполним код и
00:37:32
сейчас здесь я вижу NAN и этот результат
00:37:35
возвращается функцией My Name это
00:37:39
ключевое слово Pass здесь на самом деле
00:37:41
ничего не делает и можно использовать
00:37:44
такое ключевое слово в теле функции
00:37:46
когда функция не содержит кода Но вам
00:37:49
нужно добавить хотя бы одну строку кода
00:37:51
в теле функции потому в таком случае
00:37:54
следует использовать ПАЗ чтобы тело
00:37:56
функции не было пустым Теперь когда
00:37:58
функция объявлена мы можем вызывать
00:38:00
многократно Например я могу скопировать
00:38:02
эту строку и вызвать ее еще раз И теперь
00:38:05
я вижу на Дважды Итак Теперь у этой
00:38:07
функции My Name есть имя но нет
00:38:10
каких-либо параметров и по умолчанию
00:38:12
функция возвращает NAN если нет
00:38:15
инструкция Давайте добавим строку он
00:38:18
вместо пас и Давайте вернем например
00:38:20
число 10 вот так если я запущу
00:38:24
приложение сейчас то увижу дважды число
00:38:27
10 вот как Вы можете вернуть
00:38:30
определенное значение из функции
00:38:31
Используя ключевое слово Return Теперь
00:38:34
давайте добавим параметры функцию My
00:38:37
Name параметры функции добавляются здесь
00:38:39
в круглых скобках и Давайте добавим
00:38:41
параметр name Теперь мы можем вызывать
00:38:44
функцию My Name с аргументом я могу
00:38:47
добавить здесь аргумент например Богдан
00:38:50
А в следующем вызове функции я могу
00:38:52
добавить другой аргумент например Боб и
00:38:56
теперь пусть функция возвращает name
00:38:58
вместо числа 10 Давайте после этих
00:39:01
изменений снова запустим приложение И
00:39:03
теперь я вижу Богдан и Боб как
00:39:06
результаты вызова функции Обратите
00:39:08
внимание что вот это параметр А это
00:39:11
аргументы здесь аргумент и здесь
00:39:14
аргумент Каждый раз когда вы вызываете
00:39:16
функцию вы передаете разные аргументы
00:39:20
также Обратите внимание что если вы не
00:39:22
укажете аргумент например Здесь вы
00:39:25
получите ошибку отсутствует обязательный
00:39:27
позиционный аргумент и в таком случае вы
00:39:31
можете назначить значение по умолчанию
00:39:33
для определенного параметра синтакси
00:39:35
следующий после параметра добавляем знак
00:39:38
равно и здесь может быть имя по
00:39:41
умолчанию например No Name specifite вот
00:39:43
так давайте теперь запустим приложение и
00:39:47
теперь для этого вызова функции я вижу
00:39:49
Богдан А в этом вызове функции Я вижу
00:39:51
ноунейм спецэфайт потому что теперь для
00:39:55
этого параметра функции указано значение
00:39:58
по умолчанию No Name spicefight это
00:40:01
дефолтное значение для параметра name на
00:40:04
самом деле внутри этой функции этот
00:40:07
параметр name является переменной и
00:40:10
можно выполнять различные действия с
00:40:13
такой переменной например вместо
00:40:14
возврата name мы можем вернуть
00:40:17
name.app и вызвать этот метод вот так
00:40:19
давайте сейчас запустим приложение и
00:40:22
теперь здесь я вижу Богдан и ноунейм
00:40:24
спецэфайт верхнем регистре потому что
00:40:27
здесь на этой строке мы вызвали апр
00:40:30
переменная name содержит строку А каждая
00:40:33
строка является экземпляром класса
00:40:34
string А в классе string доступна много
00:40:37
методов включая Apple поэтому мы можем
00:40:40
вызвать его используя точечную ротацию
00:40:42
вот так также внутри тела функции Вы
00:40:45
можете выполнять некоторые действия
00:40:47
например Здесь Давайте выведем терминал
00:40:48
name valve is А после запятой напишем
00:40:52
name Теперь давайте запустим приложение
00:40:55
и здесь я вижу name Welly из Богдана Что
00:41:00
является результатом этого выражения
00:41:02
затем я вижу Богдан Что является
00:41:05
результатом вызова функции который мы
00:41:07
печатаем здесь на этой строке затем я
00:41:10
вижу name Wild is No Name specified это
00:41:12
результат вызова функции Print внутри
00:41:14
функции My Name и в конце мы видим
00:41:16
ноунейм специфит в верхнем регистре что
00:41:20
возвращается функцией My Name в этом
00:41:22
вызове функции Это означает что функцию
00:41:25
питоне могут выполнять некоторые
00:41:27
действия как мы сделали например в этой
00:41:28
строке возвращать результат как мы
00:41:31
сделали здесь в этой строке также
00:41:33
Обратите внимание что если вы не
00:41:36
используете рацион внутри тела функции
00:41:37
то любая функция не явно возвращает NAN
00:41:40
и это то что мы видели в начале этого
00:41:43
урока
00:41:44
[музыка]
00:41:48
теперь Давайте удалим эту функцию и
00:41:51
давайте определим другую функцию снова
00:41:54
используем ключевое слово DF А имя
00:41:56
функции будет Person знак подчеркивания
00:41:58
info и здесь в разделе параметров
00:42:01
Давайте добавим два параметра и H далее
00:42:05
двоеточие а на следующей строке будет
00:42:08
тело функции Обратите внимание что если
00:42:10
вы попытаетесь написать блок функции без
00:42:12
отступа например так
00:42:15
запустим код вы увидите ошибку отступа
00:42:19
ожидается блок кода с отступом потому
00:42:22
что питон с помощью отступов фактически
00:42:25
понимает Где начинается тело функции
00:42:27
поэтому вы должны всегда добавлять вот
00:42:30
здесь отступ и если сейчас выполню код я
00:42:33
не получу уже ошибок Итак давайте теперь
00:42:36
в этой функции инфо выведем в терминал
00:42:39
возраст и имя
00:42:42
и в следующей строке
00:42:46
ниже Давайте вызовем функцию
00:42:48
с двумя аргументами например Боб и 25
00:42:53
Давайте запустим приложение и здесь
00:42:55
выводе я вижу Боб и число 25 Это
00:43:00
означает что в момент вызова этой
00:43:03
функции параметру name было присвоено
00:43:05
значение Боб а параметр H получил
00:43:08
значение 25 и эти аргументы здесь в этом
00:43:12
вызове функции называются позиционными
00:43:15
аргументами если я изменю порядок здесь
00:43:18
и Например если я передам первым 25 а
00:43:21
следующий Боб я получу другой результат
00:43:24
25 это будет имя H будет Боб и это
00:43:29
конечно же не то что вы ожидаете от этой
00:43:32
функции Это означает что с позиционными
00:43:35
аргументами важен порядок поэтому Когда
00:43:37
вы вызываете функцию паруса инфо и
00:43:40
добавляете пару круглых скобок без Скотт
00:43:44
фактически покажет вам Какие аргументы
00:43:46
ожидаются
00:43:47
первый ожидаем аргумент это name Здесь
00:43:50
вы видите что name подчеркнуто если
00:43:53
наберу Боб и добавлю запятую я увижу что
00:43:56
теперь мне нужно добавить H как второй
00:43:58
позиционный аргумент
00:44:00
[музыка]
00:44:04
но также в питоне Вы можете использовать
00:44:07
аргументы с ключевыми словами вот так
00:44:10
name далее знак равенства Боб запятая
00:44:15
далее знак равенства 25 Давайте теперь
00:44:19
запустим этот код и я вижу что функция
00:44:21
Была выполнена и вот ожидаемый результат
00:44:24
namebop и h25 И теперь я могу изменить
00:44:29
порядок этих именованных аргументов вот
00:44:31
так сначала будет H значением 25 а
00:44:35
следующим будет уже name с значением Боб
00:44:40
Давайте теперь запустим приложение и
00:44:43
результат тот же это означает что с
00:44:46
аргументами с ключевыми словами где мы
00:44:48
явно указываем имя параметра порядок
00:44:50
аргументов не имеет значения если вы
00:44:54
хотите вы можете даже смешивать
00:44:56
позиционные Аргументы и аргументы с
00:44:58
ключевыми словами например сначала будет
00:45:00
Допустим Боб Давайте удалим этот
00:45:03
аргумент с ключевым словом name и
00:45:05
Давайте передадим Боб через позиционный
00:45:08
аргумент он будет первым а следующим
00:45:11
будет аргумент с ключевым словом Давайте
00:45:13
теперь запустим код и результат тот же
00:45:15
Боб и 25 Это означает что вы можете
00:45:18
смешивать позиционные Аргументы и
00:45:21
именованные аргументы
00:45:23
[музыка]
00:45:27
Теперь давайте создадим еще одну функцию
00:45:30
и назовем ее допустим сам Dev Sam и
00:45:34
здесь будет скажем два параметра A и B и
00:45:38
я хочу вернуть сумму a/b Вот так и
00:45:43
Давайте ниже вызовем эту функцию и
00:45:46
Давайте напечатаем результат вызова
00:45:48
функции в терминал здесь будет сам с
00:45:51
двумя аргументами 5.2 Давайте теперь
00:45:53
запустим приложение и я получаю 7 выводе
00:45:57
А если я хочу суммировать все аргументы
00:46:00
которые передаются вызове функции
00:46:02
например 5 2 10 15 и так далее если я
00:46:07
попытаюсь запустить приложение сейчас я
00:46:09
получу ошибку типа сам Принимает два
00:46:12
позиционные аргумента но были переданы 4
00:46:15
это логично здесь мы указали только два
00:46:18
параметра но мы передали четыре
00:46:20
аргумента и это приводит к такой ошибке
00:46:23
в питоне но как мы можем решить эту
00:46:26
проблему что если я хочу вызвать функцию
00:46:28
с любым количеством аргументов и здесь
00:46:31
внутри функции Я хочу суммировать все
00:46:33
переданные аргументы для этого внутри
00:46:36
раздела параметров я могу использовать
00:46:38
следующий синтаксис звезда arks и вот
00:46:42
теперь давайте напечатаем терминал arks
00:46:45
вот так давайте посмотрим что мы получим
00:46:47
выводе и я вижу тапу со значениями 5 2
00:46:51
10 и 15 это означает что теперь мы можем
00:46:54
вызывать эту функцию сам с любым
00:46:57
количеством аргументов
00:46:59
используя такой синтаксис в разделе
00:47:01
параметров это переменная arks будет
00:47:03
определена внутри функции и она будет на
00:47:06
самом деле содержать все аргументы
00:47:08
которые использовались в вызове функции
00:47:11
Давайте напечатаем также тип переменной
00:47:14
arx вот так запустим код и я здесь вижу
00:47:18
класс тату
00:47:19
[музыка]
00:47:23
И теперь я могу перебирать все значения
00:47:26
в arks и суммировать все значения чисел
00:47:29
и Давайте приступим к этому но для
00:47:32
начала Давайте объявим новую переменную
00:47:34
Total ее начальное значение будет равно
00:47:37
нулю
00:47:39
Теперь давайте переберем Аргументы и вы
00:47:42
можете выполнить итерацию используя цикл
00:47:45
for ark in ark двоеточие и здесь Давайте
00:47:49
выполним следующую операцию Тотал плюс
00:47:52
равно и в конце Давайте вернем Тотал
00:47:55
скоро Я объясню вам что происходит здесь
00:47:58
Но теперь давайте Просто запустим этот
00:48:00
код и я вижу результат 32
00:48:03
Итак что же происходит здесь здесь в
00:48:07
этой строке мы перебираем аргументы
00:48:09
каждое значение контейнерного типа
00:48:11
является ирируемым Мы только что видели
00:48:14
здесь что arx это пол исследовательно мы
00:48:17
можем перебирать элементы Table и
00:48:19
Давайте здесь внутри цикла for выведем
00:48:22
допустим в терминал просто А давайте
00:48:26
запустим код я вижу 5 2 10 15 и в конце
00:48:30
вижу 32 Что является результатом вызова
00:48:32
этой функции и это означает что внутри
00:48:35
цикла for-in есть переменная с именем
00:48:38
именно в цикле это переменная
00:48:40
определяется и мы можем выполнять
00:48:42
некоторые действия с такой переменной в
00:48:45
этом примере это целое число и в этой
00:48:48
строке мы просто добавляем Edge к
00:48:50
значению переменной Total которая была
00:48:53
объявлено здесь перед фор-ин используя
00:48:56
оператор плюс равно И после этого цикла
00:48:58
for in значение переменной Total будет
00:49:01
содержать сумму всех аргументов и
00:49:04
поэтому здесь когда мы возвращаем Тотал
00:49:06
мы получаем сумму всех аргументов
00:49:08
переданных в этом вызове функции если
00:49:11
удалю эту строку и добавлю например еще
00:49:13
один элемент здесь Давайте добавим 10 и
00:49:16
запустим приложение мы получим 42 и не
00:49:20
имеет значения Какое количество
00:49:22
аргументов Здесь вы передаете в этом
00:49:24
вызове функции все они будут
00:49:25
суммироваться здесь в этом цикле for
00:49:29
[музыка]
00:49:33
сейчас давайте поговорим об аргументах с
00:49:35
ключевыми словами Давайте удалим все от
00:49:38
отсюда и Давайте снова объявим функцию
00:49:40
инфо здесь мы добавим снова два
00:49:43
параметра и Давайте выведем терминал
00:49:46
name.h вот так давайте ниже вызовем эту
00:49:50
функцию info с двумя аргументами Боб и
00:49:54
25 как мы делали это раньше и Давайте
00:49:57
теперь запустим снова приложения и я
00:50:00
увижу в терминале Боб и 25 Но что если
00:50:03
вы хотите указать здесь переменное
00:50:05
количество параметров а не только два
00:50:07
например и скажем что вы хотите
00:50:11
расширить эту функцию и добавить другие
00:50:13
параметры например город страну хобби и
00:50:17
так далее ну не во всех вызовах функции
00:50:20
должны присутствовать все Аргументы и вы
00:50:23
хотите иметь возможность вызывать эту
00:50:24
функцию скажем только с двумя
00:50:26
аргументами именем и возрастом но В
00:50:29
некоторых случаях вы хотите передавать
00:50:31
больше аргументов например
00:50:33
возраст возраст и город как выполнять
00:50:35
такие задачи Вы можете использовать KW
00:50:39
arks и синтаксисы следующие Две
00:50:42
звездочки arks Вот так давайте здесь
00:50:46
выведем терминал arks и запустим
00:50:48
приложение
00:50:50
и я получаю теперь в терминале ошибку
00:50:53
типа
00:50:54
принимает 0 позиционных аргументов но
00:50:58
было передано два Это означает что с
00:51:01
таким синтаксисом в разделе параметров
00:51:03
вам не разрешено использовать
00:51:06
позиционный аргументы так как в этом
00:51:09
вызове функции
00:51:10
Вы должны использовать только
00:51:12
именованные аргументы или аргументы с
00:51:16
ключевыми словами давайте изменим здесь
00:51:19
позиционные аргументы наименованные
00:51:21
аргументы здесь будет name А здесь будет
00:51:24
H вот так давайте теперь запустим
00:51:27
приложение И сейчас выводе я вижу
00:51:30
словарь с двумя ключами name с значением
00:51:33
Боб и H со значением 25 Это означает что
00:51:37
при использовании именованных аргументов
00:51:39
и двух звездочек перед arks аргументы
00:51:42
преобразуются в словарь Давайте
00:51:45
удостоверимся что-то словарь Давайте
00:51:47
выведем Тип arax и запустим приложение и
00:51:50
Да мы здесь видим класс словарь и теперь
00:51:53
здесь внутри этой функции Вы можете
00:51:55
работать с переменной Axe также как вы
00:51:58
работаете с любым словарем
00:52:00
Вы можете получать доступ ключам Вы
00:52:02
можете добавлять новые ключи можно
00:52:04
изменять значение ключей и так далее
00:52:06
Например можно вывести arx квадратные
00:52:09
скобки name и теперь вы получите
00:52:12
значение ключа name в этом словаре и в
00:52:16
этом примере это Боб
00:52:18
также Давайте добавим сюда например
00:52:20
город допустим Париж и теперь я могу
00:52:24
получить доступ к этому городу вот так
00:52:27
давайте запустим код и я увижу в
00:52:30
терминале Париж но что если город не
00:52:33
будет передан здесь в качестве именного
00:52:35
аргумента что я получу я получу ошибку
00:52:38
ошибка это ошибка ключа сети и это то
00:52:42
что мы обсуждали ранее Если вы
00:52:44
попытаетесь получить доступ к
00:52:46
определенному ключу в словаре с
00:52:47
использованием квадратных скобок и
00:52:49
такого ключа нет в словаре вы получите
00:52:51
ошибку Ключа если же ключ может
00:52:54
присутствовать А может и нет Вам следует
00:52:57
использовать метод Вот так arks.g и
00:53:01
здесь будет например сети если я выполню
00:53:04
код Сейчас я увижу вывод Один потому что
00:53:06
это то значение которое возвращается
00:53:08
методом Get если заброшенный ключ
00:53:11
отсутствует в словаре А сейчас в этом
00:53:13
вызове функции нет именованного
00:53:15
аргумента сети и поэтому в словаре arks
00:53:18
ключа City и конечно если вы хотите вы
00:53:21
можете назначить значение по умолчанию
00:53:23
для этого ключа например нью-йорк И
00:53:26
теперь я получу нью-йорк здесь на этой
00:53:28
строке вот так можно собрать все
00:53:30
именованные аргументы в словарь с
00:53:32
помощью двух звездочек в блоке
00:53:34
параметров А имя переменной конечно же
00:53:37
может быть другим не обязательно
00:53:39
Например можно изменить здесь arox на
00:53:42
Person и поменять в других местах и
00:53:44
также после запуска кода я увижу такой
00:53:47
же результат Итак это все что касается
00:53:50
аргументов с ключевыми словами в питоне
00:53:53
[музыка]
00:53:57
признаком хорошего тона является
00:53:59
добавление описания к каждой функции
00:54:02
которую вы объявляете в питоне и это
00:54:04
делается следующим образом Давайте
00:54:06
объявим функцию с именем сам с двумя
00:54:08
параметрами a/b и здесь будет кило
00:54:11
функция описание добавляется в начало
00:54:13
тела функции с использованием 3 двойных
00:54:16
или одинарных кавычек поэтому Давайте
00:54:19
Добавим их и здесь между ними добавим
00:54:22
описание этой функции суммирует два
00:54:25
числа Вот так давайте вернем A + B и
00:54:30
теперь если ниже я вызову эту функцию я
00:54:34
увижу описание здесь в этом всплывающем
00:54:37
окне суммирует два числа И теперь я могу
00:54:40
вызвать эту функцию с двумя аргументами
00:54:42
скажем 2 и 5 и в результате я получу 7 и
00:54:46
если вы хотите вы можете вывести этот
00:54:49
результат в терминал вот так запускаем
00:54:51
приложение и я вижу 7 выводе вот так
00:54:54
добавляется описание функции также Если
00:54:57
вы хотите вы можете разделить его на
00:54:59
несколько строк вот так суммируя два
00:55:01
числа числа должны быть целыми
00:55:05
запускаем после этого приложение и я
00:55:08
вижу тот же результат и теперь если я
00:55:11
наведу мышку на сам я увижу измененное
00:55:14
описание суммирую два числа числа должны
00:55:16
быть целыми это многострочное описание
00:55:19
функции Итак Это всё что касается
00:55:21
функции питоне
00:55:23
[музыка]
00:55:27
Давайте теперь поговорим об операторах
00:55:29
сравнения в питоне равно не равно больше
00:55:34
меньше больше или равно и меньше или
00:55:38
равно и выражение со всеми этими
00:55:40
операторами преобразуются в логическое
00:55:43
значение True Или false давайте объявим
00:55:45
две переменные и целое число 10 и bir
00:55:49
целое число 12 и Давайте выведем
00:55:52
терминал знак сравнения B выполним код и
00:55:56
мы получим false потому что это
00:55:58
выражение вернуло логическое значение
00:56:00
false потому что Эй не равно b если я
00:56:04
изменю B на 10 то я получу логическое
00:56:07
значение True Но что если будет строкой
00:56:10
допустим 10 вот так давайте посмотрим
00:56:12
что мы получим мы получим false потому
00:56:15
что теперь эти переменные имеют разные
00:56:17
типы здесь целое число intenger а здесь
00:56:21
строка и в этом случае такое выражение с
00:56:23
оператором сравнение вернет false
00:56:25
Хорошо давайте вернемся к числу 5 к
00:56:28
примеру и Давайте продублируем эту
00:56:31
строку несколько раз здесь будет не
00:56:34
равно здесь будет больше здесь будет
00:56:38
меньше далее будет больше или равно и в
00:56:42
конце будет меньше или равно Давайте
00:56:44
выполним код и я получу следующие
00:56:47
результаты которые довольно очевидные
00:56:49
это на самом деле базовая математика
00:56:51
если эти значения будут одинаковые
00:56:54
Давайте изменим значение переменной A на
00:56:57
5 и запустим код Я получил True на этой
00:57:00
строке A равно B И я также получу на
00:57:04
этих строках Эй больше или равно B и
00:57:07
меньше или равно B
00:57:10
Вот так работают операторы сравнения и
00:57:13
снова таки выражение с такими
00:57:16
операторами всегда возвращает логическое
00:57:18
значение либо True либо false
00:57:21
[музыка]
00:57:25
теперь поговорим о логических операторах
00:57:27
в питоне таких как и или и не
00:57:32
выражение с логическим операторами или
00:57:35
возвращают определенное значение
00:57:39
выражение с оператором не возвращает
00:57:42
True Или false давайте Сначала посмотрим
00:57:46
на оператора и Давайте объявим две
00:57:49
переменные со значением ABC и B
00:57:52
значением 5 и здесь Давайте выведем
00:57:55
результат такого выражения как Эй и
00:58:01
Давайте посмотрим что мы получим и я
00:58:04
вижу 5 и это на самом деле значение
00:58:07
второго операнда в этом выражении с
00:58:10
оператором и
00:58:11
если я изменю Эй на пустую строку Вот
00:58:15
так я получу пустую строку как результат
00:58:17
этого выражения Почему Потому что
00:58:21
оператор и всегда возвращает первое
00:58:24
ложное значение а значение A является
00:58:27
ложным это пустая строка Или например
00:58:30
если ей будет 0 это также ложное
00:58:33
значение мы обсуждали ложное значение
00:58:35
ранее я получу 0 после запуска такого
00:58:38
кода Но обычно такие операторы как и или
00:58:41
и не используются в условных инструкциях
00:58:44
и мы поговорим о них чуть позже и
00:58:47
результат такого выражения будет
00:58:48
истинным если оба операнда этот и этот
00:58:52
истины Но если хотя бы один из операндов
00:58:56
этот или этот ложный тогда результат
00:59:00
такого выражения будет ложным Давайте
00:59:03
для ясности напечатаем в терминале
00:59:05
результат преобразования в логическое
00:59:07
значение выражение a и b Давайте
00:59:10
выполним код И теперь я вижу false
00:59:14
Потому что одно из этих значений ложно
00:59:17
Вот это если я изменю Эй на число 10 и
00:59:22
запущу код я получу True потому что
00:59:25
теперь это выражение истина оба значения
00:59:28
истины
00:59:30
Если же by допустим будет ложным скажем
00:59:33
NAN результатом будет false потому что
00:59:37
NAN также ложное значение Если же ей
00:59:41
будет NAN а би будет скажем числом 5
00:59:44
результат будет таким же потому что не
00:59:47
имеет значения какой из операндов ложный
00:59:50
либо этот либо этот в обоих случаях мы
00:59:54
получим здесь в этой строке false
00:59:57
[музыка]
01:00:01
также если я добавлю здесь еще одну
01:00:04
переменную например си ее значение будет
01:00:06
строка A и здесь я добавлю ее к этому
01:00:09
выражению и C и Давайте добавим Ее также
01:00:13
сюда и все и запустим код я получу точно
01:00:17
такой же результат как и ранее здесь в
01:00:19
этой строке я получу Нан это значение
01:00:21
первого операнда и здесь в этом
01:00:24
выражении А в этой строке я получу false
01:00:28
и это означает что на самом деле не
01:00:30
играет роли какие значения имеют BBC
01:00:33
здесь в этом выражении потому что питон
01:00:36
видит что значение и является ложным
01:00:39
поэтому нет необходимости оценивать все
01:00:41
следующие выражения здесь и здесь Потому
01:00:44
что здесь мы видим на самом деле
01:00:46
выражение и питон останавливается здесь
01:00:48
в этом примере после оценки первого
01:00:51
выражения потому что это выражение ложно
01:00:54
Но если эй красиво например в строка ABC
01:00:59
то питон продолжит оценку других
01:01:02
операндов И теперь я получаю A это
01:01:05
значение последней переменной C потому
01:01:08
что значение A истина поэтому переходим
01:01:11
к следующему выражению значение B также
01:01:15
истина поэтому мы продолжаем и наконец
01:01:18
мы оцениваем последнее выражение оно
01:01:21
также истина и поэтому его значение
01:01:23
возвращается в результате всего
01:01:25
выражения с двумя операторами и
01:01:27
результат В итоге является истинным если
01:01:30
его преобразовать логическое значение Но
01:01:33
если by ложно например 0 тогда си не
01:01:36
будет оцениваться и питон остановится
01:01:39
здесь после вычисления выражения B и это
01:01:44
называется оценкой короткого замыкания
01:01:46
не имеет значения что будет дальше если
01:01:49
мы уже нашли первое ложное значение в
01:01:51
таком выражении
01:01:52
оно немедленно возвращается как
01:01:55
результат всего выражения оставшаяся
01:01:58
часть не обрабатывается Например я могу
01:02:01
заменить здесь Си на вызов функции Print
01:02:04
not Cold вот так давайте выполним этот
01:02:07
код и я не вижу чтобы функция Print
01:02:10
вызвалась потому что до этого выражения
01:02:12
оценка не дошла этот вызов функции на
01:02:16
самом деле здесь является выражением Но
01:02:20
если изменить значение bin на истинное
01:02:22
значение например 2 то я увижу в
01:02:24
терминале not Cold потому что теперь это
01:02:27
выражение было оценено
01:02:29
функция функция print на самом деле
01:02:31
возвращает NAN Поэтому здесь на этой
01:02:33
строке мы получаем NAN в результате
01:02:35
всего этого выражения Но в этой строке
01:02:38
мы по-прежнему видим True Потому что
01:02:41
здесь я не изменил Си на Print esi
01:02:44
по-прежнему истина поэтому все это
01:02:46
выражение является истинным это
01:02:48
называется оценкой короткого замыкания в
01:02:51
питоне
01:02:52
[музыка]
01:02:56
хорошо Идем дальше И теперь поговорим об
01:02:59
операторе или Давайте удалим и отсюда
01:03:02
вот так и Давайте удалим и также отсюда
01:03:05
и Давайте заменим здесь и на или и
01:03:10
давайте избавимся от переменной C вот
01:03:13
так давайте теперь запустим код и я
01:03:16
получаю ABC как результат выражения или
01:03:20
B и это выражение является истинным
01:03:23
поэтому здесь я получаю True И как вы
01:03:26
видите результатом всего выражения
01:03:28
является первое истинное значение то
01:03:32
есть значение вот этого выражения если я
01:03:35
поменяю значение и например на пустую
01:03:38
строку это ложное значение то в итоге мы
01:03:41
получим 2 это значение B но все же все
01:03:44
это выражение или истина оно будет
01:03:47
ложным только в одном случае если оба
01:03:51
операнда ложные
01:03:53
например A пустая строка AB NAN Давайте
01:03:58
посмотрим что мы получим сейчас я вижу
01:04:00
нам это значение последнего операнда B в
01:04:03
этом выражении и конечно же такое
01:04:06
значение ложно поэтому здесь я получаю
01:04:09
false и это доказывает что такое
01:04:11
выражение будет преобразовано false
01:04:14
только в том случае если оба операнда
01:04:17
ложны Вы конечно можете добавить еще
01:04:20
один оператор или здесь например или си
01:04:23
и Здесь также добавим или си и Давайте
01:04:27
объявим переменную си и присвоим ей
01:04:30
число например 10 Давайте выполним код И
01:04:33
теперь я получаю истинное значение
01:04:35
потому что один из операндов является
01:04:37
истинным это сил и его значение
01:04:40
возвращается как результат всего
01:04:42
выражения правило Здесь такое же как и
01:04:44
до этого результатом всего выражения
01:04:46
является первое правдивое значение Но
01:04:49
если также будет ложным например 0 я
01:04:52
получу в результате всего выражения A
01:04:56
или B или SIM и конечно же такое
01:04:58
значение является ложным поэтому здесь я
01:05:02
получаю фолд в результате преобразования
01:05:03
этого выражения в логическое Но как
01:05:06
только питон найдет первое истинное
01:05:09
значение например строку ABC Давайте
01:05:12
запустим код оно будет возвращено как
01:05:15
результат всего выражения и питон
01:05:17
останавливается и не оценивает все
01:05:20
оставшиеся выражения Вот это это
01:05:22
оператор или также является оператором
01:05:25
короткого замыкания
01:05:26
[музыка]
01:05:31
Теперь давайте посмотрим на оператор не
01:05:33
который возвращает или True Или false
01:05:36
давайте объявим только одну переменную A
01:05:39
и Давайте присвоим ей строку Вот так и
01:05:42
Давайте выведем терминал не A Давайте
01:05:44
посмотрим что мы получим мы видим false
01:05:47
Потому что сейчас значение A истина не A
01:05:51
является ложью Но если A будет пустой
01:05:54
строкой Я конечно же получу True потому
01:05:57
что теперь значение L ложно а отрицание
01:06:00
ложного значения дает True можно
01:06:04
использовать оператор не дважды вот так
01:06:06
не не в этом примере Я получаю false
01:06:10
потому что Эй сейчас имеет ложное
01:06:12
значение это выражение равносильно
01:06:15
такому
01:06:16
вызов функции в обоих случаях Я получаю
01:06:19
false Если вы хотите проверить является
01:06:22
ли конкретно значение ложным или нет
01:06:24
лучше использовать такое преобразование
01:06:26
в логическое значение а не двойное
01:06:28
отрицание
01:06:29
[музыка]
01:06:33
Конечно вы можете комбинировать
01:06:35
различные логические операторы и
01:06:37
операторы сравнения например такое
01:06:39
выражение как 5 и строка ABC и не число
01:06:44
3 является допустимым выражением питоне
01:06:47
Давайте посмотрим на результат такого
01:06:50
выражения и результат false но
01:06:52
пожалуйста будьте внимательны Когда вы
01:06:54
комбинируете операторы и Или например
01:06:57
если здесь будет оператор или я получу В
01:07:00
итоге 5 Но если я помещу вот эту часть
01:07:04
выражения в круглые скобки и здесь будет
01:07:07
Вот открывающая скобка здесь закрывающая
01:07:10
скобка я получу другой результат Я
01:07:13
получил false потому что теперь с этими
01:07:15
скобками это выражение должно быть
01:07:17
правдивым и это должно быть правдивым но
01:07:21
если я удалю скобки и вернусь к
01:07:23
предыдущему варианту Вот так это
01:07:25
значение будет возвращено как результат
01:07:27
всего выражения потому что питон
01:07:30
обрабатывает операнды один за другим и
01:07:33
здесь мы находим первое правдивое
01:07:35
значение перед оператором или и поэтому
01:07:38
оно возвращается в результате всего
01:07:40
этого выражения Поэтому если вы хотите
01:07:43
комбинировать операторы или Используйте
01:07:45
круглые скобки чтобы влиять на порядок
01:07:48
интерпретации выражений питоном Итак это
01:07:52
все что касается логических операторов в
01:07:54
питоне
01:07:55
[музыка]
01:07:59
условные и логические операторы чаще
01:08:02
всего используются в условных
01:08:04
инструкциях и теперь давайте поговорим о
01:08:07
них синтаксис состоит из таких ключевых
01:08:10
слов как If lif и ЛС давайте начнем
01:08:14
только с ключевого слова If Давайте
01:08:17
объявим новую переменную и назовем ее
01:08:19
name Давайте присвоим ей значение
01:08:21
например Богдан и здесь будет условия If
01:08:25
name Давайте выполним какое-то действие
01:08:27
Давайте напечатаем в терминал выполним
01:08:30
код и я вижу Богдан здесь в терминале
01:08:33
Потому что сейчас это условие истина Это
01:08:38
означает что в условной инструкции If
01:08:40
этот блок кода выполняется только если
01:08:42
условие истина Вы можете Добавить сюда
01:08:45
несколько других строк кода как это
01:08:47
делается функциях например Вы можете
01:08:49
напечатать имя дважды это полностью
01:08:51
допустимый блок кода внутри инструкции
01:08:55
Но если это условие ложно Например если
01:08:58
имя является пустой строкой то этот блок
01:09:01
кода не будет выполнен
01:09:04
и если вы хотите выполнить другой блок
01:09:06
кодов в случае если это условие ложно Вы
01:09:09
можете использовать блок els вот таким
01:09:12
образом и здесь Давайте напечатаем
01:09:15
терминале строку name is empty имя
01:09:18
пустое Давайте запустим код и я вижу
01:09:21
вывод один
01:09:23
Также можно добавить блог
01:09:26
в этой инструкции с If Давайте вернемся
01:09:30
к значению Богдана и также Давайте
01:09:32
добавим фамилию я укажу свою фамилию
01:09:35
здесь вот таким образом и сейчас Давайте
01:09:38
сделаем следующее если name то
01:09:41
напечатаем name после этого If добавим
01:09:44
еще ЛС и блог сокращенно lif и здесь
01:09:49
будет еще одно условие
01:09:51
и Давайте напечатаем вот так а в блоке
01:09:56
EOS вместо name is ampty напишем name
01:09:59
and
01:10:02
Давайте запустим код И теперь я вижу
01:10:05
Богдан потому что name правдиво Если же
01:10:08
здесь будет пустая строка или NAN я
01:10:11
должен увидеть фамилию и Да вот она
01:10:14
выводе если значение сравнением также
01:10:16
ложное например пустая строка мы увидим
01:10:19
name and
01:10:21
Но что если я хочу добавить еще одно
01:10:24
условие и вывести и имя и фамилию если
01:10:28
оба значения не ложные Давайте вернемся
01:10:31
к реальным значениям здесь и Давайте
01:10:34
подумаем где же мы должны добавить еще
01:10:37
одно условие Давайте попробуем Добавить
01:10:40
его здесь
01:10:42
Давайте напечатаем имя и фамилию в
01:10:46
терминал вот таким образом Давайте
01:10:49
теперь запустим код и я вижу Богдан
01:10:51
потому что их останавливается вот здесь
01:10:55
если это условие истинное
01:10:59
питон не переходит к другим инструкциям
01:11:01
lif здесь здесь и здесь поэтому более
01:11:06
конкретные условия например вот это в
01:11:09
нашем примере мы должны разместить выше
01:11:11
перед менее конкретными условиями вот
01:11:14
этим и этим Давайте вырежем это отсюда и
01:11:18
вставим здесь в начале этой условной
01:11:21
инструкции If и конечно же необходимо
01:11:23
изменить Live на If вот здесь и их на Л
01:11:28
И вот здесь Давайте теперь запустим этот
01:11:31
код И теперь я получаю имя и фамилию а
01:11:36
вот если имя ложное Вот так я получу
01:11:39
здесь только фамилию
01:11:42
вот как работают условные инструкции в
01:11:44
питоне выполняется только один блок кода
01:11:47
либо этот либо этот либо этот либо
01:11:50
последний Если все предыдущие Условия
01:11:53
были ложными как например сейчас
01:11:56
И на самом деле внутри Python
01:11:59
преобразует каждое выражение В
01:12:01
логическое значение Это означает что
01:12:04
такое условие и условия Bull вызов
01:12:07
функции name and равно True идентичны Но
01:12:12
вам не нужно выполнять такое
01:12:14
преобразование самостоятельно питон
01:12:16
делает это за вас поэтому вам нужно
01:12:19
только указать определенные выражение в
01:12:21
условии и не заботиться о его
01:12:23
преобразовании в логическое значение
01:12:25
Итак это все что касается инструкции в
01:12:28
питоне
01:12:30
[музыка]
01:12:33
теперь поговорим о форматировании строк
01:12:36
в питоне форматирование строк требуется
01:12:38
Когда вы например хотите создать строку
01:12:41
и вставить в нее значение некоторых
01:12:43
переменных или целых выражений допустим
01:12:46
что есть переменная name значение Богдан
01:12:49
а также из переменная скажем drink и ее
01:12:51
значение T и я хочу создать новую строку
01:12:54
Богдан любит пить чай и я могу это
01:12:58
сделать следующим образом напечатать
01:13:00
Принт далее вызов функции name оператор
01:13:03
плюс строка в ней Пробел потом лайк еще
01:13:08
один пробел снова оператор плюс вот так
01:13:12
давайте выполним этот код и я вижу
01:13:14
строку Богдан лайк
01:13:16
но этот подход неудобен для
01:13:19
использования в питоне есть функция
01:13:21
интерполяции строк и можно вместо всего
01:13:25
этого выражения написать следующее F
01:13:28
далее идут двойные кавычки или же
01:13:31
одинарные кавычки здесь будет имя в
01:13:34
фигурных скобках далее просто продолжаем
01:13:37
писать строку лайк to drink Вот так и
01:13:41
здесь будет еще одно выражение фигурных
01:13:44
скобках drink Давайте теперь запустим
01:13:46
код и я получаю точно такой же результат
01:13:49
это называется интерполяция строк и
01:13:52
питон интерпретирует такое выражение во
01:13:55
время выполнения программы когда он
01:13:57
может определить значение вот этих
01:13:59
выражений потому что здесь вы можете
01:14:01
использовать любое выражение например
01:14:04
name uper вызов функции и мы видим имя
01:14:07
Богдан в верхнем регистре между этими
01:14:10
фигурными скобками Вы можете поместить
01:14:12
любое выражение даже вызов функции Если
01:14:15
хотите эта функция стала доступна в
01:14:17
питоне начиная с версии 3.6
01:14:21
и есть другие доступные способы
01:14:23
форматирования строк но этот самый
01:14:25
простой На мой взгляд и поэтому я не
01:14:29
буду вам показывать более старые и
01:14:31
честно говоря более сложные подходы к
01:14:34
форматированию строк таким образом вы
01:14:36
можете очень легко форматировать строки
01:14:38
в питоне
01:14:39
[музыка]
01:14:43
Давайте теперь поговорим об ошибках
01:14:46
программах питон и например Давайте
01:14:48
напишем 10 и разделим его на 0 Давайте
01:14:51
выполним этот код и я вижу ошибку
01:14:53
деления на ноль и если вы попытаетесь
01:14:56
выполнить некоторые другие действия
01:14:59
после этой строки кода например Давайте
01:15:02
допустим выведем терминал Continuous
01:15:05
Давайте запустим такой код то мы не
01:15:08
увидим continue здесь выводе Потому что
01:15:11
на самом деле программа прервалась на
01:15:14
этой строке там где мы выполняли деление
01:15:17
на ноль возникла ошибка и вот детали
01:15:20
такой ошибки Поэтому если вы хотите
01:15:23
перейти в этом примере к этой строке и
01:15:25
вызвать функцию Принт вам нужно обернуть
01:15:27
эту строку кода в блок Type except
01:15:31
используя следующий синтаксис здесь
01:15:34
Выберите из выпадающего меню эту опцию и
01:15:37
После выбора вы увидите что вискоуд
01:15:40
автоматически добавит шаблон кода Strike
01:15:43
и здесь Давайте переместим эту строку в
01:15:46
блок вот так Какие ранее Давайте
01:15:49
разделим 10 на 0 А здесь секциях Set
01:15:52
Давайте просто оставим ПАЗ Напоминаю что
01:15:56
пас является специальной инструкцией
01:15:57
которая ничего не делает используется
01:16:00
там где питон ожидает от вас блок кода
01:16:04
Давайте запустим этот код сейчас и я
01:16:06
увижу continue здесь выводе это означает
01:16:10
что эта ошибка которая возникла здесь на
01:16:12
этой строке не вышла за рамки этого
01:16:15
блока и при необходимости Вы можете
01:16:17
определенным образом обработать эту
01:16:20
ошибку которая возникла здесь в этом
01:16:22
блоке Трой Давайте еще раз посмотрим на
01:16:25
тип ошибки переместим эту строку назад
01:16:27
выполним код и ошибка была деление на 0
01:16:31
сделать движня эру Мы можем взять этот
01:16:34
тип ошибки отсюда и поместить его в блок
01:16:36
except except Zero division
01:16:40
и здесь будет переменной и Давайте
01:16:43
выведем терминал И вот так и Давайте
01:16:47
конечно избавимся от строки пас она
01:16:49
больше не нужна Давайте выполним код я
01:16:52
вижу просто строку
01:16:53
это значение переменной и здесь внутри
01:16:56
блока except и это то что мы получаем
01:16:59
при использовании конкретного типа
01:17:01
ошибки Zero Division
01:17:04
и выполнение кода продолжилось Поэтому
01:17:06
здесь на этой строке я вижу continue в
01:17:09
терминале вот так вы можете обрабатывать
01:17:11
различные типы исключений используя Try
01:17:14
except Block в питоне
01:17:17
[музыка]
01:17:22
последняя тема в этом курсе это модули
01:17:25
питон и с помощью модулей в питоне Вы
01:17:27
можете разделять свое приложение на
01:17:30
разные файлы и создавать разные части
01:17:32
вашего кода в разных файлах и по сути
01:17:36
каждый файл в вашем проекте который
01:17:38
имеет расширение точка UI является
01:17:41
модулем питон и сейчас в приложении есть
01:17:44
только один модуль под названием main.ua
01:17:46
есть системные модули которые вы можете
01:17:49
использовать в своих модулях например
01:17:52
есть модуль под названием
01:17:53
также есть внешние модули которые вы
01:17:56
можете устанавливать если вам нужно их
01:17:58
использовать давайте начнем с
01:18:00
использованием встроенных модулей в
01:18:02
питоне и если вы хотите импортировать
01:18:04
некоторые переменные из другого модуля
01:18:06
вам нужно использовать ключевое слово
01:18:08
импорт Вы можете импортировать только
01:18:11
определенные переменные из другого
01:18:12
модуля или же Вы можете импортировать
01:18:14
модуль целиком например Давайте Мы
01:18:17
блокируем весь модуль с именем он
01:18:19
встроен в питон и Здесь вы можете
01:18:21
прочитать что этот модуль mess
01:18:23
обеспечивает доступ к разным
01:18:25
математическим функциям Давайте выполним
01:18:27
импорт всего модуля и теперь здесь файле
01:18:30
main.ua мы можем получить доступ к любым
01:18:33
переменным определенным в этом
01:18:35
математическим модуле Если вы напишете и
01:18:39
поставите точку то после точки вы
01:18:41
увидите все возможные переменные которые
01:18:43
присутствуют в этом модуле и вы можете
01:18:46
использовать любую из этих переменных
01:18:48
внутри файла main.ua в вашем собственно
01:18:51
модуле Например у вас есть доступ к
01:18:54
переменной с именем пай это на самом
01:18:56
деле Константа пи Если вы напечатать ее
01:18:59
в терминал то вы увидите число Пи вот
01:19:02
оно таким же образом вы можете получить
01:19:05
доступ к любым переменным определенным
01:19:08
вы математическом модуле Давайте теперь
01:19:10
создадим наш собственный модуль Давайте
01:19:13
удалим это отсюда и Давайте создадим в
01:19:16
нашем проекте новые файл и назовем его
01:19:18
on Mad Mobil имя здесь может быть любым
01:19:22
Каким захотите и добавим расширение
01:19:25
точка UI в этом нашем собственном модуле
01:19:28
Давайте определим функцию с именем сам с
01:19:31
двумя параметрами A и B и здесь Давайте
01:19:35
добавим описание для этой функции
01:19:37
например сам стул Numbers похожим
01:19:41
образом как мы делали это ранее Давайте
01:19:42
вернем плюс B Вот так это все что вам
01:19:47
нужно сделать здесь в этом файле И
01:19:50
теперь мы можем очень легко
01:19:51
импортировать эту функцию сам из
01:19:54
собственного модуля в модуль main.ua
01:19:57
используя тоже ключевое слово импорт
01:20:01
Обратите внимание что вес код предлагает
01:20:03
мне имя этого модуля потому что теперь
01:20:06
он знает о наличии такого модуля в нашем
01:20:10
приложении питон потому Давайте нажмем
01:20:13
Темп чтобы автоматически завершить имя
01:20:15
этого модуля и теперь здесь я могу
01:20:17
получить доступ к любым переменным
01:20:19
определенным в этом модуле Давайте
01:20:22
вызовем функцию сам объявленную в этом
01:20:24
модуле он Maps modial точка сам здесь вы
01:20:28
видите этот вариант в списке и Давайте
01:20:30
вызовем эту функцию с двумя аргументами
01:20:33
также Здесь вы видите имена двух
01:20:36
параметров
01:20:37
и описание функции сам что намброс Итак
01:20:40
5,6 а также Давайте выведем результат в
01:20:43
терминал вот так давайте запустим код я
01:20:46
вижу 11
01:20:48
вот как очень легко с помощью ключевого
01:20:50
слова импорт Вы можете использовать
01:20:52
функционал созданный в других модулях
01:20:55
питон Если вы хотите вы также можете
01:20:58
импортировать только конкретные
01:21:00
переменные используя следующий синтаксис
01:21:02
From on Med Model import сам и теперь на
01:21:07
этой строке нам не нужно обращаться к он
01:21:10
мэтмобил а просто нужно вызвать функцию
01:21:13
сам Давайте выполним код и результат
01:21:15
будет тот же это означает что если вы
01:21:18
хотите выполнить выборочный импорт
01:21:19
только некоторых переменных из модуля Вы
01:21:22
можете использовать такой синтаксис From
01:21:24
имя модуля импорт и далее идут имена
01:21:28
переменных которые вы хотите
01:21:30
импортировать Если вы хотите
01:21:32
импортировать весь модуль Вы можете
01:21:34
использовать просто ключевое слово
01:21:35
импорт Это все что касается модулей в
01:21:38
питоне и это конец этого курса по питону
01:21:40
Как вы убедились питон относительно
01:21:43
простой язык и он очень близок к
01:21:45
человеческому языку Есть такие слова как
01:21:48
про нот и нет большого количества
01:21:50
специальных символов Теперь вы знаете
01:21:53
основы языка Python И я желаю вам удачи
01:21:55
в дальнейшем изучении питона Не забудьте
01:21:58
поставить лайк под этим видео написать
01:22:00
комментарий а также поделиться этим
01:22:02
видео в социальных сетях увидимся в
01:22:04
следующих видео

Описание:

🔵 Полный курс Python [43 ЧАСА] https://www.udemy.com/course/python-ru/?couponCode=PYTHONRUAPR2024 🟠 Полный курс Python (English) [50 ЧАСОВ] https://www.udemy.com/course/python-complete-guide/?couponCode=PYTHONENAPR2024 🔥 Полный курс JavaScript [24 ЧАСА] https://www.udemy.com/course/javascript-ru/?couponCode=JSRUAPR2024 🍺 🍺 Донаты и благодарности https://buymeacoffee.com/bstashchuk ⭐️ Все мои курсы https://stashchuk.com/ 🎦 Подпишись на канал YouTube https://www.youtube.com/CodingTutorials?sub_confirmation=1 🙍 LinkedIn https://www.linkedin.com/in/bogdanstashchuk/ 📪 Twitter https://twitter.com/BogdanStashchuk 🔥 Профиль Udemy https://www.udemy.com/user/bogdanstashchuk/ Написать мне 📧 [email protected] 00:00:00 Обзор ускоренного курса Python 00:01:41 Привет от Питона 00:02:58 Базовые типы 00:04:17 Преобразование между типами 00:05:15 Ложные значения 00:06:04 Выбор названий для переменных и констант 00:07:08 Переменные и динамическая типизация 00:08:26 Базовые типы копируются по значению 00:09:28 Увеличение и уменьшение переменных 00:10:46 Списки 00:13:59 Tuples 00:15:50 Словари 00:22:07 Копирование по ссылке 00:24:38 Наборы 00:27:13 Итоги по типам контейнеров 00:30:09 Установка и настройка Code Runner в VS Code 00:36:26 Функции 00:41:45 Позиционные аргументы 00:44:00 Именованные аргументы 00:45:23 Сбор всех аргументов в tuple 00:47:20 Перебор значений с использованием цикла for...in 00:49:29 Использование kwargs в функциях 00:53:54 Описание функций 00:55:24 Операторы сравнения 00:57:22 Логический оператор and 00:59:58 Оценка короткого замыкания 01:02:53 Логический оператор or 01:05:27 Логический оператор not 01:06:30 Комбинация операторов и приоритет 01:07:56 Условные инструкции if 01:12:30 Форматирование строк 01:14:40 Обработка ошибок с использованием try…except 01:17:18 Модули Python

Готовим варианты загрузки

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

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

mobile menu iconКак можно скачать видео "Python - Курс Python Для Начинающих [1.5 ЧАСА]"?mobile menu icon

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

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

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

mobile menu iconКакой формат видео "Python - Курс Python Для Начинающих [1.5 ЧАСА]" выбрать?mobile menu icon

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

mobile menu iconПочему компьютер зависает при загрузке видео "Python - Курс Python Для Начинающих [1.5 ЧАСА]"?mobile menu icon

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

mobile menu iconКак скачать видео "Python - Курс Python Для Начинающих [1.5 ЧАСА]" на телефон?mobile menu icon

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

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Python - Курс Python Для Начинающих [1.5 ЧАСА]"?mobile menu icon

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

mobile menu iconКак сохранить кадр из видео "Python - Курс Python Для Начинающих [1.5 ЧАСА]"?mobile menu icon

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

mobile menu iconСколько это всё стоит?mobile menu icon

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