ym104432846
Вставьте ссылку на видео из Youtube, Rutube, VK видео
Задайте вопрос по видео
Что вас интересует?
00:00:16
Организация онлайн-курса по изучению Python:
  • Преподаватель проводит проверку технической готовности трансляции и объясняет структуру курса.
  • Курс ориентирован на обучение программированию на Python с нуля, включая глубокие аспекты, выходящие за рамки ЕГЭ.
  • Участники получают доступ к материалам, практическим занятиям и конспектам.
  • Предлагается возможность личного наставничества преподавателя.
00:01:35
Цели и особенности курса:
  • Цель курса – подготовка участников к сдаче ЕГЭ по информатике и освоение Python на продвинутом уровне.
  • Материал курса выходит за пределы требований ЕГЭ, углубляя знания о работе интерпретатора Python.
  • Преподаватель анонсирует изменение ценовой политики курса с 8 сентября.
00:09:46
Представление материалов курса:
  • Преподаватель демонстрирует учебные материалы и рассказывает о преимуществах использования конспектов.
  • Доступ к учебникам предоставляется участникам закрытой группы.
  • Проводится разъяснение преимуществ и особенностей преподаваемого подхода.
00:14:57
Работа с типами данных в Python:
  • Рассмотрены основные типы данных Python, используемые в ЕГЭ и программировании.
  • Подробно обсуждаются различия между изменяемыми и неизменяемыми типами данных.
  • Показаны способы создания и манипуляции различными типами данных.
00:36:51
Хранение данных в памяти Python:
  • Объясняется механизм хранения данных в памяти Python.
  • Рассматривается концепция ссылок на объекты и их влияние на работу с данными.
  • Демонстрируется важность понимания изменяемости и неизменяемости типов данных.
00:46:51
Динамическая типизация в Python:
  • Описывается динамическая типизация Python и ее применение.
  • Обсуждаются правила преобразования типов данных и необходимость явного указания типов при необходимости.
00:56:36
Операции в Python:
  • Подробно рассматриваются различные виды операций в Python: арифметические, логические, побитовые.
  • Особое внимание уделяется особенностям работы с остатками и целочисленным делением.
01:17:38
Приоритеты операций и их использование:
  • Рассказывается о приоритетах выполнения операций в Python.
  • Приводятся практические примеры применения приоритетов операций.
01:23:00
Ввод и вывод данных в Python:
  • Обсуждается работа с функцией ввода-вывода в Python.
  • Примеры использования функций input() и print(), а также преобразование типов данных.
00:00:00
Использование условных операторов в Python:
  • Детальное объяснение работы условных операторов if-else и тернарного оператора.
  • Практические примеры написания и отладки условных конструкций.
00:00:00
Отладка программ с использованием дебаггера:
  • Демонстрируются возможности дебаггера для отслеживания изменений переменных и поиска ошибок в программе.
  • Пример пошаговой отладки программы с использованием дебаггера.
00:00:00
Заключение и анонсы:
  • Преподаватель подводит итоги занятия и напоминает о домашних заданиях.
  • Сообщается о доступности дополнительных учебных материалов и групповых занятий.
00:00:00
Информация о курсе и завершение трансляции:
  • Повторяется информация о стоимости курса и условиях участия.
  • Преподаватель благодарит участников и завершает трансляцию.
0: Народ, всем приветы. Надеюсь меня видно и слышно. Вот если видно, слышно че-нибудь в чатик, напишите, чтобы я понимал, что все хорошо.
1: Потому что сейчас пока непонятно. То есть я вроде вижу себя и там, и тут вопрос, видите ли меня, вы вот если тихо, громко или че то другое, какая-то проблема тоже пишите, постараемся исправить в начале.
2: И потом уже пойдём учиться. Так, я пока давайте чатик, почитаю. Надеюсь, начнём с Азов планы в этом году выучить с нуля. Ой, Наталья, мы начнём прям с самого нуля, то есть нулевее просто некуда. То есть поэт.
3: Сегодня прямо основа, основа, причём такая основа, которую на самом деле не все те, кто думает, что умеет программировать, знают. Вот, потому что достаточно глубокое занятие, кто на закрытой части курса конспект уже почитал, в курсе, насколько оно
4: Несколько отличается от того, что обычно проходят в начале программирования в школке. Вот.
5: Так, ну я вижу, что все хорошо, меня слышно прекрасно. Вот, то есть сразу давайте, то есть курс и его цели. То есть я традиционно дисклеймер включаю.
6: Вот мы учимся, но учимся так, чтобы потом сдать экзамен, поэтому материал данного курса он более широкий, он не столько на подготовку к егэ.
7: Только на изучение информатики, чтобы сдать егэ, то есть немножечко по другому. То есть с другого конца, скажем так, обозреваем то, что мы сегодня будем рассматривать, пожалуй, для егэ как такового вообще не нужно, но это нужно для того, чтобы понимать, как работает питон.
8: Вообще, в принципе, как работает интерпретатор. Вот, потому что вот эти маленькие нюансы, которые мы сегодня будем рассматривать, они как раз помогают разобраться в некоторых вещах, которые значительно отличают питон от других Языков. Вот, поэтому мы смотрим
9: Именно с самого начала и копаем достаточно глубоко. На самом деле, сегодня так, вопросы читаю ваш курс за 100 ₽ полностью готовит к егэ, к егэ ты готовишься сам, если ты за 100 ₽ покупаешь доступ, то есть весь материал, который я выдаю его хва.
10: Хватит для егэ. То есть то, насколько ты его хорошо отработаешь или нет, зависит уже больше от тебя, от того, насколько ты умеешь задавать вопросы в чате от того, насколько ты умеешь себя контролировать. Вот, то есть есть опция, где я тебя контролирую.
11: Выдают задания, проверяю их они чуть позже. Но вообще этот курс, он в 1 очередь нацелен на то, чтобы дать людям, которые хотят готовиться более менее самостоятельно. Просто базу для этой подготовки, материал для подготовки. Ну а дальше уже
12: Эти люди либо тут будут уточнять какие-то моменты, либо сами искать продолжение. Ну то есть если им нужно что-то ещё отработать. То есть идея такая курса за сотку си плюс плюс, нет, не в этом году и, пожалуй, даже не в следующем, потому что все-таки
13: Я позиционируюсь пока что от егэ, а на егэ си плюс плюс это на самом деле самый неправильный выбор. То есть, если мы говорим про егэ непосредственно, не про изучение программирования, а именно про егэ, то есть на егэ си плюс плюс, если как 1.
14: Язык рассматривать, наверное, не самый лучший выбор. Вот, потому что он просто сложнее. А если уже знаешь, основы шарпа, нужно ли смотреть? Ой, слушай, конечно, нужно, потому что в питоне основы совсем другие. Начнём с того.
15: Мы рассматриваем сегодня именно как работает интерпретатор на самых базовых понятиях. То есть мы не говорим, что там есть присваивание условий, и они вот так вот работают. В каком-то вот логическом смысле мы смотрим именно как это все организовано.
16: В интерпретаторе и как он работает. То есть поэтому данное занятие, оно именно по питону, а не по программированию.
17: Где курс?
18: Курс по ссылке в описании. Можешь пройти посмотреть, там тебя бот уже проведёт куда надо. Так обязательно питон знать. Для егэ, для егэ обязательно уметь программировать на базовом уровне. Вот на чем ты программируешь. На самом деле не столь
19: Важно, но если мы говорим непосредственно, скажем так, с точки зрения простоты,
20: Процесса доведения тебя от нуля до уровня егэ, то питон в этом плане гораздо проще, чем остальные языки. Да, есть паскаль ибиси дотнет, который тоже замечательный язык. Я всецело
21: Присоединяюсь к тем, кто считает, что pascal abc это хорошая штука так, Евгений, есть ошибка в названии эфира так давайте посмотрим какая там ошибка.
22: Основы питона информатика. К егэ. 20 22. А программирование? Да, согласен, сейчас поправлю. Спасибо.
23: Это я, случайно, не специально. Вот. То есть, я надеюсь, что все, кто сейчас здесь, они понимают, что здесь будет. То есть сегодня как такового егэ, наверное, не будет совсем. То есть эта база, конечно, нужна, но её можно изучать гораздо
24: Меньшими усилиями, чем сегодня мы прикладываем. Для этого сегодня мы разбираемся непосредственно в организации базовых моментов в питоне. То есть вот какой-то базой питона разбираемся. Вот.
25: Для егэ, ну, скажем так, для егэ вообще немного материала надо. То есть, в принципе, обзора синтаксиса, питона плюс несколько алгоритмов типа метода части сумм и так далее. Хватит. То есть в целом, если есть
26: Голова и не хочется погружаться непосредственно в питон, то хватит, наверное, материала. Ну, часа на 3 видеоматериала можно найти, изучить и потом это все использовать. Опять же, это занятие не совсем про егэ массивы сего.
27: Сегодня упомяну. То есть мы о них скажем так, в общем виде немножечко поговорим, но про сами массивы, перечисляемые структуры вообще мы поговорим, наверное, через неделю. То есть я че то подумал, что, наверное, будет правильнее массивы дать, ну, в списке дать на следующем занятии, потому что мы потом так или иначе,
28: К ним обращаться и лучше сначала их пройти, а потом к ним обращаться, чтобы понимать, че это такое. Вообще хауди хо, надо смотреть от хауди. Ни на что не смотрите курсы. Ну, здесь личные предпочтения каждого. Я, честно говоря, хауди хо, не смотрел особо. То есть
29: Не могу о нём сказать что-то более или менее взвешенное, поэтому здесь уже, смотрите сами, на самом деле для егэ материала надо немного. Фух ладно, ответил на вопросы, сказал о чем?
30: Курс вообще, в принципе, и план на сегодня. То есть сегодня мы смотрим с вами, какие есть типы данных, которые, скажем так, полезны для егэ. Их на самом деле чуть больше. Те, кто конспект почитал, там их раза в полтора больше видели перечисления. Мы посмо,
31: Смотрим, каким образом данные представляются в памяти, что такое переменные, можно ли вообще их переменными называть. Разберёмся с тем, как работает присваивание и какое оно бывает. Потом разберёмся, какие операции вообще есть в языке программирования. Питон, то есть
32: Тически логические и так далее. Быстренько посмотрим, что такое ввод. Вывод это не сложно. Рассмотрим условный оператор и его форму расширенную, сокращённую тернарную и посмотрим каким образом запускать и отлаживать программки. Пока что простень.
33: И выдали.
34: Вот так пуджи карамелька. Я точно знаю, что Алексей Богданов, в принципе, шарп знает и хотел курс запускать, но это лучше у него спросить. По моему, у него особо ничего нет по этому поводу. Вот рассмотрим. Сегодня мап нет.
35: Скорее всего, рассмотрит как раз на следующем занятии, потому что там необходимо сначала разобраться с тем, с тем, что такое трируемые объекты. Это нужно разобрать списки и генераторы. Поэтому это на следующем занятии, это не сегодня.
36: Итак, про то, что сегодня происходит. То есть у нас сегодня открытый курс, 5 занятие получается. То есть условия Фана, к сожалению, не было. Ну или, к счастью, там была демо версия, мы разбирались, че там нового появилось, поэтому сегодня мы 5
37: Разбираем основы бесплатно. Мы разбираем собственно теорию на занятие домашка с ключами и материал, который в группе выходят доны получают ещё конспект к этому занятию и ко всем остальным тоже. То есть уже накопилась такая
38: Книжица на 100 страниц с начала августа, то есть они получают подборки для тренировки. Ну ещё дополнительные занятия мы проводим практически по средам. Вот, то есть, кто хочет ссылочка внизу в описании, что важно знать.
39: С 8 сентября я меняю ценник на подписку для Новеньких. То есть он будет уже 150, а не 100 ₽ в месяц. И с октября я делаю платный вход, то есть с тестовым таким периодом на месяц. И потом, если вам понра,
40: Понравилось. Вы оформляете подписку внутри уже закрытой группы e, занимаетесь. То есть поэтому смотрите, кому это интересно. То есть вы можете пока что, скажем так, урвать себе место гораздо выгоднее, чем-то, что будет с октября. Вот
41: Так, Евгений, мы же к фано вернёмся. Конечно, нет, конечно, мы рассмотрим кодирование обязательно. Я думаю, что, скорее всего, вот в ноябре будет сначала у нас занятие по кодированию. Я вот пока думаю, какой лучше сначала взять. То есть, пока выбираю, ещё то ест.
42: И, короче, её будут условия Фана, а потом кодирование, все остальное будет. То есть 7, 14 числа, я пока думаю, какой порядок будет, пока ещё не решил. То есть, fan мы возьмём в начале ноября, то есть точно точно оно будет не пропустим. Вот, ну, если вот сейчас смотреть, то есть,
43: Сейчас я вот сюда 11 числа ставлю немножечко другое занятие. В общем, я немножко пересматриваю расписание по ходу того, как пишу конспекты, поэтому, может быть че то изменится, но ориентировочно это будет в ноябре.
44: А если сейчас оформить, то потом 100 ₽, да, то есть кто сейчас оформляет, кто успевает до 8 сентября, те будут платить 100 ₽ в месяц до конца года. То есть это вот давайте я такое некоторое обещание на себя возьму. Вот. То есть такое вот акция, скажем так.
45: С сентября по октябрь, кто успевает 150 платит в месяц, ну а потом уже вот платит за вход. И если нравится, продолжает оформлять подписку. То есть вот такая логика.
46: Да, да, да. То есть с октября я просто говорю, что вот у нас уже 2 месяца прошло, там уже есть дофига материала, там будет, наверное, страниц 200 конспект уже такой микро, учебник уже не микро, уже нормальный учебник получается полноценный, там уже будет записи 2 интенс.
47: Там уже будут записи 8 практических занятий, то есть разборы 8 домашек. То есть там уже будет много материала, который вполне себе адекватно можно продавать за 1 500 ₽. Ну и потом, если вот ты месяц занимаешься, тебе нравится, ты оформляеш
48: Подписку, то есть вот такая история, то есть до конца сентября вот есть возможность во все это пасть дешевле, то есть дешевле, причём в рамках года даже, то есть будет дешевле.
49: Вот, то есть вот такой вот момент, то есть потом, ну, тут много, короче, с чем связано, в основном это связано с тем, что в августе сентябре очень тяжело набирать народ, то есть очень тяжело идёт, поэтому я делаю такую, скажем так, акцию, не знаю, как это.
50: Раздача Слонов акция безумной щедрости. Как хотите. Мой учебник можно получить, оформив подписку. То есть оформляешь подписку в акции. В закрытой группе. Для подписчиков есть уже все учебники. Дальше.
51: Кто хочет понять, че такое учебник. Давайте я покажу 1 страничку.
52: То есть вот здесь, на стене группы, это я в группе сейчас есть пост от 2 сентября, то есть там 4 записи, занятия открытого курса и пример конспекта по системам счисления, то есть по 1 теме. То есть вы можете посмотреть примерно, что такое конспект, понять.
53: И понять, нужно ли, нужны ли вам такие материалы к другим занятиям. Вот, то есть, хотите, посмотрите, есть вот можно посмотреть, не покупая, то есть, но не все естественно.
54: Вот надеюсь, на эти вопросы я ответил так сейчас немножечко, ребята, куда-то перешёл, не туда все нормально, иис, видео more for kids not safe.
55: Че то не понял сейчас, ребята, извините, я нажал на кнопочку случайно, когда в окно переходил в другое, и сейчас у меня че то немножечко отвалилось.
56: Life так идёт, вот она, комната.
57: Вот, ну здесь давайте такая традиционная для всех. Вот народ, который ко мне ходит, отзывы можете посмотреть в группе, в топике с отзывами. Есть ещё некоторые комментарии к постам, которые выходят. В общем, пока народ
58: Который занимается в основном, правда, сейчас отписываются учителя, что им нравится и все здорово, замечательно. Но я не знаю, если учителям нравится, я думаю, что и вам понравится. По крайней мере, вам будет полезно, даже если учителя думают, что это полезно.
59: Пару слов буквально про то, что я набираю пока ещё под личное наставничество людей вот вчера закончилась акция, что я по 5000 в месяц принимаю, осталось буквально 5 мест. То есть я сейчас 7 набрал, ещё 5 наберу, наверное, больше не boo'd.
60: Кому интересно, вот они условия здесь я все проверяю, контролирую вас, пинаю. В общем, если вы пинаетесь через сообщения в чатике, то для вас хороший вариант. Лично я введу вас по курсу. Вот.
61: Самого начала проверяю все ваши домашки, выставляю ваши рассуждения, заставляю вас думать так, чтобы вы пояссняли все, что делаете словами, а не просто там написали, что-то случайно получилось. Ну, в общем, полностью вас ваш процесс курирует.
62: Начала до конца. Интересно. Пишите мне в личку вконтакте, я отвечу, расскажу, че, как, где все засим закончено. То есть мы поговорили о том, что такое курс. Мы разобрались, че будем сегодня делать. И я немножко про открытый курс рассказал. Если какие-то вопросы есть, мо,
63: Задать, пока мы ещё не разогнались, я могу тоже на них ответить. Ну а я пока перехожу к тому, что непосредственно сегодня будет 1, что необходимо рассмотреть на самом деле, в любом языке. В 1 очередь, когда мы начинаем на нём программировать, это то какие типы?
64: Данных мы можем обрабатывать, потому что исходя из того, какие типы данных мы можем обрабатывать, мы можем заключить алгоритмы, какого рода мы должны делать. То есть надо ли нам какие-то сложные алгоритмы делать, чтобы обработать какие-то типы данных, которых нет, или мы можем уже
65: Использовать готовые
66: Типы данных, которые уже умеют то, что нам нужно. Вот базовых типов, на самом деле больше они для егэ не существенные. Здесь я выделил то, что в егэ может быть полезно. Вот наиболее полез
67: В егэ, естественно, это вот 1, 2 тип, то есть логический тип и целочисленный тип. Вещественные числа в егэ достаточно редко используются, ну, за счёт того, что там есть некоторые нюансы работы с округлениями, списки.
68: Используют списки очень полезные, и некоторые задачи решаются именно через них кортежи, они, ну, тут больше понимания. Наверное, нужно, что вообще кортежи бывают строка, естественно, 24 задание вообще не решается без типа строки, строки.
69: Множество неизменяемое множество, это типы, которые могут быть полезны в егэ. В принципе, их можно не использовать для решения задач из егэ, но некоторые задачи решать с помощью них гораздо проще. Ну, есть ещё словарь, словарь.
70: Вообще, удобная структура. В принципе, некоторые задачи, особенно 20 седьмые. Через них тоже достаточно удобно решать, чтобы не заводить, например, пустые массивы. Можно только вот определённые значения хранить, скажем так, по значению ключа. Так.
71: А пробники будут и домашки на вашем курсе. Домашки да, пробники пока нет. Пока. Я думаю, что где-то до конца ноября, наверное, может, даже до января пробников не будет. По той простой причине, что мы будем проходить материал. Ну, который самый начальный.
72: Короче, то есть пока проверять будет нечего особо. То есть, пока там вы баллов 60 70 набрать не сможете. С помощью этого материала я не вижу пока смысла думать с пробниками, с пробниками, скорее всего, будет история следующая. Я возьму прошлогодние пробники, поменяю в них задач.
73: Которые были раньше на актуальные и, скорее всего, с ними вы так и будете работать дальше по поводу авторских пробников. Нынче их, скорее всего, будет сильно меньше, потому что я настроен сделать открытый курс как раз теперь про
74: Типы данных. Смотрите, о, прекрасно. Уже можно рисовать. 1, мы понимаем, что у нас есть, по сути, ну, несколько таких классов, типов, ну, если их так разбить некоторую классик,
75: Сделать это простые типы, которые бул инт флот, часто применяемые типы типа листа списка тупл, редко применяемый. Просто нужно понимание, что он есть дальше строка, которая тоже применяется дальше, множество.
76: Вот редко применяемое, но полезное. И словарь словарь тоже полезная штука, без него можно решать, но с ним некоторые задачи решаются гораздо проще. Вот если мы говорим про типы булу,
77: True и false вот здесь написано int что такое это целые числа 2 там не знаю - 100 что прекрасно в целых числах в питоне они могут быть очень большие я честно сейчас диапазон сходу не помню, но там есть достаточно большие числа, потому что
78: Числа порядка вот такого, по моему, там ещё обрабатываются. Единственный момент, что при арифметике чисел больших необходимо помнить, что при целочисленных
79: Операциях. У нас точные получаются ответы, а при обычных операциях получаются ответы, где есть погрешность. Ну, например, если мы разделим 10 в 100, ну, условно говоря, там на какой-нибудь 17, то у нас будет очень
80: Большая погрешность и попытка так сделать, она приведёт к тому, что мы получим не совсем правильный ответ. Ну давайте я открою айдол и, наверное, продемонстрирую сразу. То есть я буду показывать, че айдол умеет сразу. Вот у нас есть
81: Idle смотрите, мы пишем икс равно 10 давайте, чтобы было лучше там, в 30, чтобы можно было его написать x. Я вот видите, много Ноликов, 30 штук, их там, скорее всего, считать не будем, поверим питону теперь.
82: Смотрите, мы хотим поделить на 17 e. Используем, например, нецелочисленную операцию, то есть вещественную операцию. Вот такую, получается, число вот такое. Ну, это так, здесь есть некоторая проблема. У нас формат, да, поменялся.
83: А я не помню, как формат менять, правильно? Ну, в общем, получилось вот такое число. Давайте сделаем поменьше число, там уже на 10, по моему, степени нет, на 10 ещё мало на 15 степени должно уже быть.
84: Должна быть заметна разница ой, че это я сделал то? Xx равно? 10, 15, x, 17. Вот. То есть у нас вот такое число получилось.
85: Вот, а теперь мы делаем вот так. Так, пока что все правильно и хорошо. Ну ладно, то есть здесь ещё погрешность нормально отрабатывает икс равно 10. Вот хороший вопрос, как найти это число? Ладно, пока ещё отражаем.
86: X mode 17 ну вот уже не очень удобно, не очень красиво отражается то есть скорее всего уже мало а если сделать вот так, то вот оно, наше число ну вот мы видим как раз ну вот здесь не очевидно это, в общем, сразу говорю, погрешность эта есть, я сейчас.
87: К сожалению, не могу её показать, потому что не помню, как формат строки делается для вывода. Вот забыл я это, к сожалению, через раунд можно, наверное. Ну, давайте попробуем раунд. Интересно, даже нормально он, ну,
88: Что он сделает, если я так сделаю?
89: Ооо, то есть вот мы видим погрешность, то есть если мы делим нацело, то получается вот это число это число, ну, если мы его сейчас умножим на 17, то получится число, ну и остаток 4 там получается. А если мы вот это число умножим за раунд? Спасибо.
90: Что я не догадался сам то мы получим, что остаток очень больше. То есть за счёт чего это организуется? Ну, за счёт того, что целочисленные большие, большие, точнее, целые числа, они хранятся в памяти определённым образом, и работа с ними происходит.
91: Тоже определённым образом там по алгоритмам работы с большими числами. Поэтому, когда мы большое число начинаем делить, то делить его нужно аккуратно. И нужно помнить, что целочисленное деление считает правильно. То есть оно всегда выдаёт правильную целую часть.
92: Если мы начинаем считать как дробное значение, то у нас уже, получается, накапливается ошибка. Чем больше число, тем больше ошибка накапливается. Ну давайте для примера вот 10 в 30 все-таки посмотрим.
93: Xxx равно 10:30.
94: Печатаем раунд.
95: X 17 получается вот такое число и печатаем число целочисленное деление. Мы видим, что у нас порядок, где ошибка начинается вот здесь. Ну вот представьте, да, то есть здесь эта погрешность была, ну, буквально там чуть меньше.
96: 1000 у нас получилось, а здесь мы уже миллиардные ошибки видим. То есть это очень важный момент, раунд это округление до целого, до целого округления.
97: Вот, вот, то есть, поэтому этот момент нужно держать в голове, если вы работаете с большими числами, поэтому с большими числами работа правильно происходит, если вы используете целочисленные операции, то есть они всегда правильно работают, потому что, ну, мы можем это проверить, вот этот
98: Сейчас умножим на 17.
99: Вот, мы получаем, что вот 8 остаток, ну, то есть мы можем проверить заодно, что x мот 17, это будет 8, вот 8, получается. Ну, мы до операции ещё дойдём. То есть вот сам пример, что у нас, чем больше число, то есть
100: Если число становится большим числом в понимании хранения данных, то работа с ним должна осуществляться очень аккуратно. Если мы говорим про деление, вот умножение правильно, всегда работает. Вот деление, оно целочисленное и не целочисленное отличается.
101: Для больших чисел. И надо помнить, что накапливается погрешность. Вот это касается чисел. То есть это вот целые числа, как они могут быть? Вещественное число. Ну вот, вот число, у которого есть дробная часть, там, не знаю, 12 точка.
102: Так, че то, че, че, че у меня зависло? Неприятно. Сейчас возьмём другой маркер. Нет, вроде все нормально. О, 345/1000. То есть мы можем помимо целой части указывать
103: Дробную часть, которая нам нужна. Ну, для каких-то вычислений сразу. Если мы можем придумать алгоритм, который работает в целых числах, а не в Дробных, то лучше использовать алгоритм, который работает с целыми числами. Это касается любого языка программирования, потому
104: Здесь вносит вклад принцип кодирования нецелых чисел, то есть Дробных, вещественных. И там всегда есть погрешность, потому что почти всегда дробь, которая у нас
105: Десятичная, она непредставима в двоичном представлении, поэтому всегда есть погрешность. С этим нужно быть очень аккуратным. И ещё раз повторяю, что если есть возможность сделать алгоритм, который работает в целых числах, лучше делать алгоритм, который работает в целых числах. Это
106: Теперь про bool, про логические значения они, как я уже сказал, есть.
107: 2 их это true и false, если мы говорим про выполнение их как ну то есть они преобразуемые, скажем так, на лету, в простые данные, то есть true, если мы какой-то
108: Выражение пишем и напишем тру, оно будет декларировано как 1, а false будет интерпретировано как 0 лучше интерпретировано слово вот это тоже важный факт, мы на него чуть позже посмотрим, когда будем операции проходить. Но вот такие вот интересные, занятные.
109: Вещи, то есть что здесь нужно зафиксировать, пока мы помним 3 типа логический тип, тип целых чисел и числа дробные.
110: 2 момент мы помним, что для работы с большими числами, если нам необходимо поделить, лучше использовать целочисленное деление, потому что оно точно правильно делит вот моменты, которые нам необходимо знать на старте работы с типами данных. Теперь что такое?
111: Список кортеж, ну и отчасти, наверное, множество и неизменяемое множество, наверное, их отдельно все-таки разберём список. Это такой, такой объект, который хранит в себе
112: Несколько значений. Ну, например, вот так. То есть это список из 5 элементов, и которые равны 1, 2, 3, 4, 5. Они пронумерованы от нуля.
113: До and - 1, где n это количество элементов, ну и соответственно, мы можем сюда что-то добавлять, изменять и так далее. То есть мы можем, например, вот такой список сделать. Это, конечно, плохой пример списка, но так делать можно. Здесь может быть ещё какой-нибудь список, например, внутри стоять как элемент списка здесь
114: Не знаю, множество может стоять там 2, 3, например. То есть можно в список, в питоне добавлять разнотипные элементы. Но, опять же, здесь все зависит от задачи, которую вы решаете вообще лучше строить такие алгоритмы, где
115: Списки хранят однотипные данные. Ну, это, скажем так, некоторая классика составления алгоритмов. Если так можно делать, лучше делать так, если необходимо делать вот такие разношёрстные списки, да, их тоже можно делать. Питон такое позволяет
116: И не ругается при этом вот это коротко, что такое списки, что такое кортеж? Кортеж это, ну, как бы тоже список, только его нельзя изменять. То есть, если мы его 1 раз задали, мы не
117: Можем, например, взять и убрать вот этот элемент из кортежа или изменить вот этот элемент, там, не знаю, на 8, например. То есть если мы объявляем кортеж, кортеж, это неизменяемый список, то есть все элементы, которые мы объявили при его
118: Здание, они там будут до тех пор, пока мы не изменим объект на другой объект, до этого тоже доберёмся до переменных. Но вот сам факт того, что список менять можно, а кортеж менять нельзя. То есть вот этим, по сути, они существенно
119: Отличается. Ну и исходя из этого, алгоритмы, которые существуют для обработки кортежей, они работают обычно гораздо быстрее, потому что здесь нет возможности изменения. Поэтому, ну, там, в общем,
120: Скорее всего, значение каким-то образом я особо не залазил в алгоритмы, но зачастую алгоритмы, которые реализованы на кортежах, они работают гораздо быстрее, чем такие же алгоритмы на списках. Вот.
121: 1 момент. Дальше что такое строка? Ну, строка это последовательность символов. В питоне не различается понятие символ и строка. То есть все это строки, что это, что?
122: Строки могут быть под строками других строк, символы в строке также пронумерованы от нуля.
123: До н. - 1, но, насколько я помню, символ в строке как раз менять нельзя. Давайте попробуем.
124: То есть, смотрите, я делаю опять переменную. Питон позволяет делать, например, вот так, давайте, бэ, цэ, дэ, е, эф, вот. То есть я теперь переменную икс использую для хранения строки, что я хочу сделать? Я хочу, ну, для начала вывести, например, не зна,
125: 3 символ, вот 3 символ можно вывести, а теперь я хочу 3 символ изменить.
126: Равно, ну, пусть он будет там, не знаю, например, the. Вот я хочу, чтобы у меня было не ц, а the вот нельзя так делать, потому что строка это неизменяемый тип данных. То есть мы не
127: Можем в строке что-то поменять, также как и в кортеже. То есть, по сути строка это, ну, некоторого рода расширение над кортежем символов, плохое сразу. То есть это не совсем правильное определение, потому что кортеж и строка все-таки различаются функции.
128: Банально, но если вот так вот несколько подходить обобщённо, то строка это неизменяемый кортеж символов, ну, неизменяемый список символов или кортеж символов, как хотите, не очень правильное определение. То есть запоминать его не нужно, но вот для аналогии можно
129: Наверное, его привести так тупо, в круглых скобках, а список квадратных да, да, ну то есть давайте приведу пример. То есть вот ix равно у нас 1, 2, 3, 4, вот он x. То есть я x вывожу вот x, 1, 2, 3, 4, я могу сделать x, 2.
130: Равно 10 вот x 2 равно 10 у меня будет, потому что с нуля нумеруется, если я хочу сделать x кортежем.
131: Я вот так вот делаю, пишу икс 2, он мне 2 элемент выводит, но если захочу икс 2 сделать равное 10, он мне скажет, иди-ка ты нафиг нельзя менять кортеж.
132: Вот, то есть, я надеюсь, сейчас понятно, о чем речь. Давайте кому понятно плюсик, кому не понятно минусик. То есть мы сегодня с самых основ смотрим, чем отличаются типы, например.
133: Потому что, ну, нужно понимать, чем они отличаются для того, чтобы программировать, потому что когда мы программируем, нам необходимо выбирать тот тип, который максимально подходит под нашу задачу.
134: Так, ну, я вижу плюсики. Хорошо. Вот. Ну, соответственно, строки можно складывать. То есть, если я, например, сделаю икс равно, а, бэ, цэ, а потом захочу сделать xx равно там, не знаю. X.
135: Плюс death так делать можно, как это работает мы разберёмся с вами чуть позже. Вот совсем чуть чуть буквально почти сейчас ну как только рассмотрим типы, теперь про множество множество это очень интересный и
136: Полезный тип данных, чем он полезен. Дело в том, что множество это такой набор данных, значения которых не повторяются. То есть, если мы хотим, например, узнать, какие уникальные элементы есть там, в строке, в списке, мы мо,
137: Можем преобразовать список или строку, например, к множеству. И в этом множестве будут только уникальные значения. Поэтому множество, оно очень полезно для решения некоторых задач, например, 20/4 прямо вот оно там очень хорошо заходит, потому что не нужно перебират.
138: Все символы, которые там, в строке, можно сразу строку запихать в множество, узнать, какие есть разные. И вот для уже для разных прогнать там весь наш алгоритм. То есть некоторые хитрые алгоритмы используют такую тактику, она не универсальная, но позволяет достаточно быстро решить задачу без
139: Траты каких-то больших умственных усилий, то есть без прилагания умственных усилий, решить просто в тупую задачу. Ну потому что это быстро, вот как списки обозначаются. Ой, не списки множества, извините, множество
140: Получается вот так. То есть фигурная скобка, открывающая здесь элемент 2 3. Можно повторять элементы, когда мы задаём список, но когда мы его уже создали, у нас в списке будут только элементы, которые разные.
141: Давайте пример сразу в айдле покажу. Ну, опять же, у нас x, мы многострадальный икс сегодня будем много использовать. Вот давайте там я много одинаковых элементов сделаю, чтоб было понятно, что они потом будут. Вот, то есть.
142: Я сделал много элементов, задал, а теперь я хочу вывести x. И он мне выводит только те, которые уникальные вот в этом большая прелесть множества, то есть множество, выдаёт только то, что уникальное, ну и, соответственно, есть ещё 2.
143: Тип данных, который называется неизменяемое множество. То есть в чем разница? Я могу, например, сказать, что вот я хочу в x сейчас добавить там, не знаю, 10.
144: Я вот смотрю, вот 10 добавилось прекрасно, то есть это изменяемое множество, то есть я могу туда добавлять, то есть оно в памяти гораздо более, ну то есть это гораздо более сложный объект в памяти, который позволяет добавлять, удалять, быстро искать. То есть там организованы бинарные всяки.
145: И деревья, и так далее. При добавлении там меняется структура, поэтому это не очень просто, скажем так. Поэтому объект больше, чем неизменяемое множество если же я хочу сделать изменяемое, неизменяемое множество, то есть я пишу вот так xx равно фрозе.
146: Сет и здесь пишу я не помню, можно так делать или нет.
147: Сейчас, если нельзя, я скобки возьму, правильно? Да, нельзя.
148: Вот, то есть я сюда задаю итерируемый объект, ну, например, список, который я вот здесь пытаюсь сделать. Вот я создал в x, у меня сейчас до сих пор уникальные значения, то есть только те, которые есть, и при этом они не повторяются, но если
149: Я захочу сейчас в x что-то добавить, он мне скажет, что, извините, это неизменяемое множество, его изменять, собственно, и нельзя да, да, конечно, останется запись стрима, то есть это отличие ну то, собственно, вот отличие было
150: Списка от кортежа и отличие множества от неизменяемого множества, то есть список и множество, это изменяемые типы данных кортежи и неизменяемые множество, ну, собственно, неизменяемые множества и последний тип данных, который нам нужно с вами рассмот.
151: Треть это словарь, словарь, это очень удобная структура, которая позволяет хранить значения по другому значению. Ну, например, то есть мы хотим узнать, ну то есть хотим хранить
152: Массив данных, где сохранять, сколько там, какое значение. Раз, например, было. Но при этом мы не знаем, какие максимально у нас могут быть значения. То есть мы не знаем диапазон, то есть мы не можем создать, например, массив там из 1000000 элементов и потом там с 1 до 1000000.
153: Говорить там + 1. То есть мы не знаем, какое значение, поэтому мы можем использовать для этой цели словарь и, соответственно, здесь в качестве ключей указывать те значения, ну, например, которые мы подсчитываем. То есть там может быть
154: Вот так. Ну и там, не знаю, минус.
155: Вот так, то есть, ну здесь, соответственно, какое-то значение, которое соответствует значению слева. То есть мы можем не указывать все возможные допустимые значения. Мы можем подсчитывать только те, которые нам нужны. Ну, вообще, это очень удобная структура в задачах егэ, она где
156: Это удобно, но не так, чтобы необходимо. То есть алгоритмы на структуре данных словарь, они больше, наверное, изучаются уже за рамками егэ, но сам факт того, что такие структуры вообще есть, ну, нужно знать,
157: В таблице Фрозен сет. Ой, да, да, да. Ну, это, извините, это я опечатался, да, там фрозенсет должен быть через set, естественно. Поэтому прошу прощения тех, кого это сбило с толку. То есть там должно быть z, вот здесь.
158: Здесь должно быть z. Вот это что касается типов данных, теперь давайте рассмотрим, каким образом данные хранятся в памяти ну, во первых, у нас в питоне ну, у нас в питоне, то есть в питон.
159: Эталонно каждый объект хранится в памяти следующим образом. То есть это указание типа данных. То есть ссылка на, ну, условно говоря, ссылка на объект, который указывает на тип данных. То есть как обрабатывать этот тип. Здесь указано значение.
160: И в качестве 3 аргу в качестве 3 параметра указано, сколько ссылок есть на объект, что такое ссылка на объект. Разберёмся чуть чуть позже. Буквально я отвечу на этот вопрос, но здесь
161: Гораздо важнее для начала понять, какие типы изменяемые, а какие нет, потому что вот эта штука, она на самом деле может очень сильно шокировать тех, кто не готов к этому Шоку. Скажем так. Дело в том, что простые типы данных типа логического
162: И числового, это неизменяемые типы данных. То есть, когда мы создаём, ну, объект там равный 5, например, и хотим к 5 + 2, то у нас создаётся новый объект. То есть, ну, например, у нас вот нужно
163: Делать принт.
164: 5 + 2. Ну, условно, пока такой условный пример создаётся объект.
165: 5 создаётся объект, 2. Они запихиваются, собственно, в сумму в
166: Функцию, которая сумму считает и на выходе получается новый объект 7. То есть если мы рассуждаем и программирования, в принципе, это очень похоже. На самом деле, если мы говорим про вычисления без переменных, то есть у нас есть
167: 1 число, 2 число получается 3 число. То есть всегда у нас получается таким образом, чем же отличается организация работы с объектами в питоне и языках программирования типа паскаля и си?
168: Плюс плюс, ну, во первых, для того, чтобы переменную определить, мы пользуемся следующей записью. То есть мы берём переменную, например, x y говорим, что переменная x равна 5. Что значит это в памяти? Это значит, что у нас
169: Создаётся объект со значением 5 типа integer, на который создаётся 1 ссылка, которая из x ссылается. Если мы сейчас скажем, что, например, игрек тоже равен 5, то у нас
170: Объект памяти не создастся, но создастся ещё 1 такая вот ссылка на этот объект, которая будет называться игрек. То есть и по сути своей переменные здесь являются только именами. То есть это имя, по которому мы можем обраща
171: К объекту, причём разные переменные могут обращаться к 1 и тому же объекту. То есть если мы говорим про языки типа паскаля и си, плюс плюс там для каждой переменной создаётся свой объект, то есть и потом с ними паскаль работает, если мы говорим про
172: Он здесь сначала создаётся объект, который не принадлежит переменной. То есть если мы ввели игрек равное 5, у нас просто вот здесь двоечка теперь была единичка. Стала двоечка. Что будет, если мы сделаем вот так?
173: Будет следующим образом. То есть у нас создастся новый элемент
174: Значение которого будет 7. Ну, соответственно, там ссылка будет 1, то есть и теперь x у нас будет перенаправлен вот сюда.
175: Тоже самое будет, если мы будем использовать plus. Равно почему это? Потому что у нас тип целочисленный. Ну и вообще вот эти типы, они неизменяемые. То есть поэтому если у нас получается значение, которого ещё не было, создаётся новый
176: Объект, ссылка на который именуется тем именем, которое мы выбрали для переменной. Это же касается
177: Кортежей. Это же касается строк. И это же касается неизменяемых множеств. Все остальные объекты, которые здесь перечислены, это список множества и словарь, они являются изменяемыми. Поэтому, если мы
178: Хотим что-то добавить, например, в словарь давайте лучше в список 1, 2, 3, то мы пишем вот так. X эд, например.
179: 5. Ну или мы можем написать, до этого тоже дойдём, плюс равно 5. Вот так. То есть это тоже изменит объект. Но вот здесь очень важный момент. Дело в том, что когда мы делаем вот так
180: Надо сейчас проверить, возможно получается другой объект. Вот сейчас проверим. Я вот че то подумал, что не помню, че получается, поэтому сейчас проконтролируем этот момент. Давайте пишем икс равно 1, 2, 3. Как понять, на какой объект ссылается.
181: У нас есть функция id, вот мы вводим id, видим, что у нас объект располагается вот по этому адресу в памяти.
182: Если мы сейчас сделаем икс точка эд, например, 10.
183: Ой, апен.
184: Это же.
185: Не множество. Вот, а то мы видим, что, ну, во первых, у нас x изменился, но при этом значение адреса у нас осталось тоже самое. То есть это тот же самый объект, то есть мы изменили содержимое объекта, то есть новый объект не создался.
186: То есть мы изменили объект, надеюсь, тоже понятно всем, кто сейчас меня смотрит. Вот. Но если мы делаем вот так
187: То есть вот у нас добавился новый элемент, что происходит тогда?
188: Тогда создаётся новый элемент, то есть новый объект создаётся, потому что у нас есть 1 объект, есть 2 объект из этих получается 3 объект, который заново объявляется в памяти и который, на который теперь
189: Есть ссылка в виде имени x. Это очень важный момент, потому что вроде бы x plus равно 2 тоже самое, но при этом у нас объект сохраняется, то есть вот.
190: Уже некоторая разница в том, что мы видим. То есть у нас, если мы
191: Записываем вот такое выражение. У нас создаётся новый объект. Если мы используем методы объекта иили используем сокращённый метод записи изменения объекта, то тогда объект не меняется. И вот это те маленькие нюансы, которые очень хорошо нужно понимать, когда
192: Когда вы начинаете программировать на питоне. То есть, ну да, наверное, сегодняшние задачи, которые, ну, скажем так, я хочу разобрать, они не влекут понимание этих моментов, но вот то, что будет в дальнейшем работа со списками и так далее, нам
193: Ну, для нас нужно будет понимать, что есть изменяемые типы данных, а есть неизменяемые типы данных для чисел. В принципе, это не страшно, а вот именно для работы со списками, множествами и словарями это очень важное понимание.
194: Вот, ну и если мы продолжаем тему присваивания, то есть ещё такой
195: Такое понятие, как множественное присваивание, то есть в данном занятии, на данном занятии, в контексте данного занятия мы рассматриваем множественное присваивание, ну, больше как форму, которая более удобна, более компактна. На самом деле, это гораздо
196: Это более мощный инструмент, там можно делать гораздо более интересные штуки с помощью кортежей и всяких троеточий и прочих моментов. Но сегодня мы рассматриваем н присваивание именно как, как какому-то списку переменных
197: Сопоставить какой-то список объектов. То есть что это значит? Это значит, что мы можем взять, например, несколько переменных и сказать, что они равны, не знаю, там 10, 20, а бц. То есть у нас x это
198: Это будет 10 игрек, это будет 20 set, это будет a b c.
199: Вот, и это очень важная штука, она очень полезная, она позволяет, например, менять переменные местами вот таким образом. То есть объекты, на которые ссылаются переменные. То есть мы можем вот так сделать. И у нас то, что было, иксом станет как бы подвластно игрек.
200: То, что было игреком, станет подвластно иксу.
201: Фу, ладно, я че то заговорился. Давайте кому понятно, че происходит. Плюс кому непонятно минус. То есть это вот очень важные такие моменты, которые нам нужно понимать, если мы собираемся программировать с вами на питоне, потому что в дальнейшем
202: На этих, на непонимании этих моментов могут возникать ошибки, которые вы допускаете. Когда пишите программу, чтобы их не допускать, нужно эти моменты сразу зафиксировать. Прекрасно. Теперь про
203: Ну, кстати, вот давайте я ещё про переменные немножко остановлюсь. То есть, почему это очень важно, потому что раньше, ну, скажем, в классических учебниках по программированию переменная, это была такая, не знаю, некоторая коробка, некоторая область памяти, которая хранила зна,
204: Значение. Так вот, в питоне это не так. В питоне есть объект, который хранит значение, и есть имя, которое с этим объектом связано. С 1 и тем же объектом могут быть связаны разные имена. Но если
205: Мы все имена убираем, у нас объект становится без связи, то объект этот тоже из памяти удаляется. И это очень интересное наблюдение, и очень важное, когда мы работаем со структурами, которые особенно не которые изменяемые.
206: Списки множества и словари.
207: Наталья пропустила первые 30 минут и не въезжаю. Ну, там, в первые 30 минут, да, был материал, который был бы полезен, чтобы въехать в то, что сейчас написано. Ну, сейчас написано. Ничего страшного. То, что я сказал больше, наверное, вот.
208: Что надо знать ещё про питон? Питон это динамический язык. Ну это язык программирования с динамической типизацией. Что такое динамическая типизация? Это такой тип типизации, когда тип объекта определяет
209: Значением выражения, которое этому объекту соответствует ну, например, я напишу в питоне икс не x. Давайте 10 + 4, + 2 точка 5 python, посчи.
210: Это все скажет, что это во первых равно 16 с половиной, а потом он скажет что это во вторых объект типа float.
211: То есть он посмотрел, какие есть.
212: Условно говоря слагаемые и понял, что если слагаемые вот такие, то будет float, если я напишу 2 + 3, + 5, у меня будет объект 10 типа int, если я напишу икс равно.
213: A b c. У меня будет объект типа строки со значением а б ц. То есть питон понимает, какого типа получается результат, и говорит, что значение ну.
214: Данный объект будет вот такого типа. И 2 важный момент про динамическую типизацию. Питон является строгим, типизированным языком, ну он строгим, динамически типизированным языком является. Что это значит? Это значит?
215: Если у нас есть 2 объекта взаимодействия, ну, в 1 выражении, взаимодействие которых неявно регламентировано, ну, например, как сложить строку и число, вот как его сложить. То есть, например, джаваскрипт, он такой, ага.
216: Это будет у нас строка, потому что у нас 1 элемент строка, если, наоборот, поставить, по моему, он скажет это число, потому что 1 элемент число, то есть он сделает преобразование. Питон скажет, что извини, вот это очень неявное преобразование. Если ты хочешь, чтобы я
217: С этим работал. Тебе нужно определить, какие типы будут у значения, которые есть в выражении. Поэтому, если мы хотим, чтобы получилась строка, нам нужно будет элемент
218: С числом преобразовать в строку.
219: Тогда получится строка, которая равна, собственно 1, 2, 3, 3, 5. Если мы хотим, чтобы получилось число, мы должны будем преобразовать строку в число, явно указать интерпретатор.
220: Что мы хотим, чтобы это было число. Тогда он скажет, что это будет хорошо. Инт, ну и, соответственно, результат у него будет. Че там, 158.
221: Ну, я на jazz давно программировал, да, скорее всего, там будет строка всегда. Ну, это так. То есть я к тому, что вполне возможно, что если у нас язык не строго типизированный, то, например, как вариант,
222: У нас все значения могут приводиться к тому типу, какой тип у 1 значения, ну, как вариант, почему нет? Ну либо как вот в джаваскрипте, видимо, там будет только
223: Строки ссылки есть в заданиях егэ.
224: Фу, не совсем понял твой вопрос. Понимание того, что ссылочная, как работает ссылочная модель в питоне, в егэ не необходимо, но если ты хочешь продвинуть на.
225: Питоне, её нужно понимать. Я вот могу только так тебе ответить. Задание непосредственно на работу с ссылками на объекты. Задания на егэ нет, но и быть не может, потому что, как мы видим, питоны си плюс плюс и паскаль очень сильно отличаются друг от друга.
226: Вот, вот, как делать преобразование типов, чтобы делать преобразование типов. У нас есть, собственно, специальные функции, которые соответствуют именам типов. Если мы хотим преобразовать в бульва значение, мы должны сюда напи.
227: Bool сюда то, что преобразуем нулевое значение пустой список 0 пустая строка, пустое множество, пустой словарь будут преобразованы в false ну, например, если мы напишем вот так, здесь будет у нас пусто.
228: Список это будет false.
229: Дальше инт инт преобразует, соответственно, что-то в целое число, что может быть преобразовано в целое число, в целое число может быть преобразовано. Ну, во первых, значение логическое может быть преобразовано в целое число.
230: Может быть преобразовано в целое число число вещественное.
231: Вот, и сейчас посмотрю, я где-то выписывал, ну вообще числовые данные могут преобразованы быть в целое число, и, соответственно, строка может быть в целое число преобразована, но для строк есть некоторое дополнение. Дело в том, что строка должна быть такого формата, как cheese.
232: И как лайфхак, например, мы можем здесь преобразовывать числа.
233: В системе счисления, основание которой указываем 2 параметром. То есть, если мы преобразуем строку, у нас появляется возможность строку преобразовать из строкового представления в число, которое, ну то есть представить, что число
234: Строка, которая записана, это число в системе счисления с основанием, которое указано вот здесь, и получить число, с которым потом мы будем работать. То есть получится двоичное число. Мы его будем видеть десятичной, если выведем. Ну и, соответственно, таким образом можно переводить из 1 системы счисления в другую. Очень удобно.
235: Так вот, примеры. Ну давайте, например.
236: Мы хотим перевести число. Давайте там 1, 2, 3, дэ, е, эф, из сариной системы счисления сделали вот это число, которое 1, 2, 3, дэ, е, эф, это число десятичное, то есть вот он.
237: В 1 операцию, в 1 функцию нам находят результат. Это очень удобно для решения некоторых заданий. То есть конкретное задание это не решает, но позволяет решить его быстрее, если вы это знаете.
238: Вот, ну и соответственно такие же есть преобразования для остальных типов, то есть типа float.
239: Дальше. Ну, например, лист так, лист, по моему, нет, тоже лист вот так пишется, да, целиком множество. Ну и строка, соответственно, тоже. Вот со строкой вообще интересные моменты. Дело в том, что в строку мы уже, по моему,
240: Все, что угодно, потому что, по сути, преобразование в строку это то, что будет выведено, если мы объект захотим просто через print показать. Ну то есть вот, например, я преобразую список в строку, получается вот такая строка, я
241: Образую число.
242: Строку получается вот такая строка, то есть в строку преобразуется все что угодно и на самом деле у всех
243: Типов данных базовых. У них есть преобразование в строку. Ну потому что все типы необходимо каким-то образом уметь выводить на экран. Вот дальше, если мы говорим про сет, что интересного в сети, например, мы хотим узнать, сколько уникальных букв в строке
244: Вот я набираю какую-то случайную строку, вот мы хотим узнать, сколько, какие там есть буквы нажимаем. Вот они такие есть, вот они все в списке перечислились, то есть все они разные, и мы все их теперь знаем. То есть
245: Например, из строки может получить все уникальные значения вот опять же в сет преобразуется не все в сет преобразуется у нас строки, списки и словари словари опять же преобразуются.
246: По принципу, что если мы не указываем другого, то в качестве элементов списка множества у нас будут ключи тоже самое про преобразование в списке. То есть вот здесь и здесь, если мы подаём слова
247: То получается только ключи, которые входят в этот словарь. Вот. Итак, давайте будем постепенно вас спрашивать, понятно или нет. Наталья, если какие, ну, я понимаю, что, скорее всего, сейчас вопросы возникают, типа, а что вообще?
248: Происходит. Тут надо, наверное, пересмотреть сначала занятия вот для остальных, ну и вообще для тех, кто сейчас про преобразование послушал, понятно, что такое преобразование, зачем оно нужно, как оно применяется.
249: То есть почему оно вообще есть в питоне. И на самом деле это очень часто применяемые операции.
250: Я жду ваших плюсов, понятно? Не знаю там, да, и так далее. Хочется просто понимать, насколько это Подъём, то, что я сейчас рассказываю.
251: Вот, ну вот такие вот у нас есть преобразования типов. Так вот они работают и нужны именно для того, чтобы питону говорить о том, как мы хотим преобразовать данные, если мы хотим преобразовать их как-то неявно.
252: Теперь поговорим про операции.
253: Начнём мы, естественно, с арифметических операций.
254: Так, нет, стрим Максим не удаляется. Стрим будет также там, где ты его смотришь. Денис, ну, я думаю, что, скажем так.
255: Для того, чтобы это понять, наверное, нужно будет несколько поэкспериментировать человеку. То есть, который смотрит запись, и подумать над тем, что я говорю, потому что, да, наверное, все-таки сходу все вот это вот уловить не очень просто здесь, наверное, я с тобой согласен, пожалуй.
256: Ты прав. Начнём мы с ритмических операций и посмотрим вот на них. То есть у нас есть базовые сложение, вычитание, умножение, деление есть возведение в степень, то есть возведение в степень. Например, мы хотим, если сделать 2 в степени, не знаю, 8 пишем вот так, это 200.
257: 56. Теперь есть ещё 2 операции. Чеки это операция целочисленного деления и взятие остатка. На них мы остановимся сейчас подробнее, потому что они работают.
258: Не так, как работают в языках программирования типа си плюс плюс и паскаль. Дело в том, что математически, если мы подходим все-таки к арифметике остатков как к сложению по модулю, то остаток не может быть 3.
259: Отрицательным. Так вот, в питоне остаток может быть отрицательным, как это все выглядит, выглядит следующим образом. Если мы хотим найти целочисленное деление икс на игрек, то по сути, мы делаем деле
260: Икс на игрек и округляем вниз. Вот если у нас числа целые положительные, то происходит все абсолютно так же, как всегда. То есть мы просто получаем число меньше, но если у нас получается отрицательный результат, то здесь эффект несколько неожиданный.
261: Например, если мы разделим минус там 12, предположим, разделим на 5 целочисленно, то мы получим
262: Вот такую штуку. Ну, я сейчас просто напишу её полностью. 2 и 4. И если мы округляем вниз вот такое значение, то получается не 2, получается - 3, потому что округление идёт вниз.
263: То есть в меньшую сторону и отсюда же у нас получается и вычисление остатка немножечко по другому. То есть, потому что если у нас было
264: Опять же, если мы сделаем - 12, делить на 5, то у нас получится, что остаток отделения, ну это - 3. Остаток отделения у нас получится.
265: 3.
266: Так, сейчас, подождите. Да, вроде 3. Угу. Угу. Мы это умножаем на это отнимаем его от того, да, получается 3. Все правильно. Вот. Что ещё интересного, если мы делаем?
267: Операцию, ну, немножко в обратную сторону. То есть, например, мы делаем 12 разделить на - 5, что у нас получается? Ну, здесь получается, тоже - 3.
268: Но вот тут получается уже, по моему, как раз вся разница, вся самая интересная. Дело в том, что остаток отделения 12 на - 5 будет - 3, потому что - 5 на минус.
269: 3:15 нам нужно, чтобы делитель, умноженный на, ну, точнее, значение саного деления, умноженное на делитель так, сейчас подождите, давайте б x plus ка напишем вот так вот.
270: У нас есть число игрек, оно равно-ка икс плюс бэ вот так напишем. То есть вот это у нас делитель.
271: Это у нас целая часть, это у нас остаток. Так вот, нам необходимо, чтобы это выполнялось. Поэтому если мы говорим, что у нас есть 12
272: И оно равно-ка у нас получилось - 3, умноженное на - 5. Нам необходимо, чтобы плюс бэ, давало нам 12. Ну, единственное, бэ, которое здесь даёт 12, это - 3. И вот это нюанс.
273: Который очень важен, если мы реализуем алгоритм на остатках, потому что на си плюс плюс это делается иначе, то есть на си плюс, плюс и паскале, если мы разделим вот та
274: Таким образом, у нас получится - 2 это часть и получится 2 в остатке, то есть, а 12, мол, 5 равно 2 получится.
275: Гульнара, ещё раз.
276: Я хочу повторить в питоне остаток может быть отрицательным в питоне. Давайте я вам продемонстрирую. Так неважно. Я сейчас чуть чуть позже отвечу. Сейчас разберёмся с программиро.
277: Если мы делаем вот так вот - 3, которая получилась, если мы хотим сделать остаток отделения, у нас получается - 3. Как вы можете видеть в питоне, отрицательный остаток существует?
278: Вот как курс оплачивать можно и как это сделать? Он оплачивается только картой, потому что подписочная модель работает только при оплате через карту и можно оплатить его по ссылке под видео там.
279: Есть ссылка, по моему, как раз на бота, который говорит, че нужно делать. Вот. И как раз вот этот вот случай с делением, с остатком необходимо очень, ну, короче, очень необходимо держать в голове, потому что некоторые алгоритмы, которые
280: Которые реализованы на остатках, они на языках программирования си плюс плюс и паскале, и на языке программирования python. Они по разному работают и нужно вот этот момент учитывать, если мы работаем с отрицательными числами, в том числе это такой вот важный момент теперь
281: Что хочется ещё сказать про арифметику, хочется сказать ещё следующее.
282: Так, че то у меня мышь не работает. Ну это не то, что я хочу сказать, это в смысле, я заметил, что у меня мышь, че то как-то не работает. Вот хочется сказать ещё следующее, что есть у нас тип данных, который был. Так вот, если мы сде,
283: Делаем вот так.
284: Например, то это будет тоже самое, что 1 + 0. Это будет 1. И если мы вот эти операции используем с логическими типами, ну то есть с логическим типом данных, с логическим значением, то они интерпретируются всегда как 1 и 0. Поэтому
285: Это тоже нужно в голове фиксировать. Иногда этот момент очень помогает решать некоторые задачи. Вот.
286: Ладно, идём далее. Так я здесь забыл переименовать рифмические операции в логические операции.
287: Вот логических операций в пайтоне, в питоне всего 3. Как бы вам не хотелось видеть. Тут логическое следование, эквивалентность и другие операции типа исключающего или таких логических операций в питоне. Нет, они реалии.
288: Но в питоне непосредственно их нет. Есть только 3 базовые это отрицание, дизъюнкция и конъюнкция. То есть, если вы хотите работать с логическими операциями именно в формализме, ну,
289: В формате алгебры логики, чтобы там все приоритеты были правильны. Вы можете использовать только вот эти значения. Если вы используете эквивалентные записи для обозначения других операций, вам нужно помнить момент с приоритетами, которые мы рассмотрим после того, как посмотрим вс.
290: Так, си плюс плюс и паскаль неправильно работает с остатками питон. Правильно? Так? И нужно ли следить за числами, когда используешь остаток отделения на питон? Следить? Конечно же, нужно. Кстати, я про остаток отделения давайте ещё кое че скажу. Дело в том,
291: Что в питоне, помимо того, что есть вот такие извращения с отрицательными остатками, можно делать ещё и вот такие вещи. То есть можно делать остаток отделения 1 числа на другое. Причём эти числа могут быть вещественными. То есть здесь опять же определяется
292: Что здесь будет 4, но остаток, соответственно, 0 будет. Или если мы разделим, например, 10 на 3 и 1 че-нибудь такое сделаем, у нас будет остаток здесь 0 7, ну и, соответственно, 10.
293: Целочисленно на 3 и 1 будет равно 3.
294: Сейчас, щас сейчас доберусь, доберусь, доберусь, доберусь до вопроса с тру плюс тру. Вот надеюсь, здесь понятный момент, то есть в питоне операции целочисленного деления и деления с остатком
295: Они немножечко шире, что ли, и немножечко иначе работают с отрицательными значениями. То есть это вот мы запоминаем, помним, потому что если мы будем потом когда-то работать с остатками отрицательных чисел, надо это держать в голове. Теперь про вопрос тру плюс тру ещё.
296: Если мы делаем вот так, ну то есть это тру плюс тру.
297: Получается 2.
298: Если мы делаем тру или true, получается true это тоже важно вот это у нас арифметическая операция, а вот это?
299: Это вот у нас логическая операция, работают они по разному. Не верите? Давайте проверим.
300: True?
301: Плюс true натёрли получилось 2, если мы натрём ещё больше.
302: Получится 3. Если же мы делаем вот так.
303: Получается, тру. Ну че, самое ещё интересное? Ну, я так, сейчас пример приведду, потом я поясню, как он работает.
304: То получится true об этом чуть позже, буквально, когда рассмотрим все операции так я надеюсь про сложение логических операций, про логические операции я ответил.
305: Ну да, там 0 имелось ввиду. Да, я 1 пишу, другое имею ввиду. Да, да, здесь имеется ввиду, что здесь 100 численное деление.
306: А здесь тоже самое. 2 и 5. То есть я
307: Иногда, к сожалению, мысль вперёд бежит и получаются такие описки. То есть это описка. То есть я не имел ввиду, что здесь остаток отделения. Итак,
308: Дальше, если мы переходим к дальнейшим темам, нам очень важно на самом деле понимать, что такое операция, сравнения, операций, сравнения у нас несколько, ну, 6 базовых равно не равно больше, больше, равно меньше, меньше или равно. И вот
309: Тут мы понимаем, что, ну, они, во первых, сравниваются, элементы те, которые могут быть сравнены вообще в принципе. То есть, если мы хотим сравнить, например, множество
310: И там, не знаю, число, скорее всего, нам скажут, что извините. А, ну да, мне вообще скажут, что так писать нельзя для начала.
311: Он скажет нам, что не поддерживается сравнение множества и числа нельзя так делать, то есть можно сравнивать только то, что сравнивается, можно сравнить, например, 2 множества там интересный алгоритм, кто кому интересно, могут почитать.
312: На самом деле.
313: В источниках, то есть вот это будут равные объекты.
314: Вот это будет 2, будет больше.
315: А вот сейчас у меня
316: Будет больше 1.
317: То есть, ну, там поэлементное сравнение идёт если с меньшим индексом элемент больше, чем в другом объекте, то этот объект считается большим, если так коротко разложить. Вот. То есть это вот те моменты, которые необходимо понимать.
318: Теперь смотрите, когда вы, ну вы наверняка уже кто-то, по крайней мере, смотрел разборы заданий по алгебре, логике, типа, там, 15 задания, там информатику проводил недавно. То есть, и, возможно, видели там что-то вот такое, что импли
319: И может быть заменена. То есть мы можем, если хотим в питоне сделать вот так мы можем написать.
320: Вот такую запись.
321: Почему это работает потому, что вот этот оператор сравнения, он сравнивает величины собственно по их числовому значению в данном случае, если мы говорим про true и false, и true это 1, а false.
322: Это 0, но это не импликация.
323: Не импликация это именно меньше или равно.
324: Это очень важно, потому что у импликации приоритет другой.
325: Вот это не логическая операция, это операция сравнения. Мы проритеты поговорим буквально через 2 слайда. Я покажу этот момент. Тоже самое. Возможно, вы думаете, что если вот так записать, это будет эквивалентность. Нет, это
326: Эквивалентная запись для операции эквиваленции, но нужно понимать, что опять же есть таблица приоритетов, которая немножечко рушит логику. То есть, если вы будете переписывать просто вот с языка на язык,
327: Операции и будете вот так заменять, у вас будет неправильно выполняться выражение. То есть, да, так можно заменять можно, но если вы так заменяете, вам необходимо будет указывать порядок.
328: Операции с помощью скобок обязательно, потому что иначе питон посчитает не так, как это написано в логическом выражении. Фу. Так давайте вот это важный момент. Кому он понятен? Плюс кому непонятно. Минус у вас новый подписчик 378.
329: Прекрасно. Поздравляю. Надеюсь, курс оправдает себя в твоих глазах. Вот заодно можешь конспекты почитать. Это все тоже самое написано в конспекте. Жду ваших плюсов, вижу от елены единиц.
330: Гульнара, хорошо, прекрасно. Так, дальше. Что такое побитовые операции мы с вами разбирали, когда разбирали алгебру, логики, поэтому более подробно вы можете познакомиться с этими побитовыми. Опера.
331: Как они представляются на том занятии. Единственное, что я хочу здесь сказать, это то, что побитовые операции для числовых данных, они работают с представлением чис.
332: В памяти компьютера. Если мы говорим, что у нас есть число, например, 5, то нужно понимать, что у этого числа в памяти
333: Есть beat, который отвечает за знак и есть набор битов, который отвечает за значение, когда мы делаем инверсию. Вот такого числа. Знак меняется тоже. Поэтому если мы сделаем, например, инверсию,
334: 5. Получится - 6. Пока что вы можете запомнить, что инверсия, а это равно минус, а + 1.
335: Я когда-нибудь дойду до темы представления данных в алге в памяти компьютера не в этом году. Скорее всего. Поэтому пока что мы принимаем вот такую штуку. Кому интересно, можете почитать про дополнительный код на википедии. Нормальная статья, её там хватит.
336: На самом деле, то есть это объясняется тем, как устроен принцип формирования дополнительного кода для формирования, для кодирования отрицательных чисел. Там с арифметикой связаны моменты. Поэтому кому интересно, можете почитать? Вот, ну, остальные, они
337: Работает абсолютно так же. То есть, если у нас есть число, например, не знаю, 13 и 9, 13, это вот такое число 9, это вот такое число. Нет, вру, не такое вот такое.
338: Умножение побитовое будет 1:00 1. Сложение побитовое будет 1 1 0 1 чаще или побитовое будет 0 1:00. Соответственно, это будет 9. Это будет 13. Это будет 4. Вот.
339: Такие вот дела сразу на них сейчас сильно не останавливаемся. Они полезны для решения задач номер пятнадцатых, например, программных, потому что программно, очень удобно решать задачи на побитовые операции. Очень удобно, прямо прекрасно.
340: Перебором решается вот такая вот информация про побитовые операции. Теперь к сокращённым записям. Смотрите, здесь есть важный нюанс. Да, мы можем вот такие записи.
341: Сокращать до вот таких записей.
342: И это тоже самое, если мы говорим про неизменяемые типы данных, ну потому что неизменяемые типы данных, они формируют все равно новый объект, этот новый объект потом присваивается, ну, на него ссылается потом переменная, то есть для логических значений, числовых значений.
343: Для неизменяемых множеств и кортежей это тоже самое вообще. То есть 1 в 1 абсолютно так же работает. Если мы захотим посмотреть что-нибудь вот такое, смотрите, а равно бэ равно 1, 2, 3, 4.
344: То есть мы сейчас понимаем, что id у них одинаковое, то есть адрес памяти абсолютно одинаковый, но в чем штука, если мы сделаем вот так?
345: То, а у нас будет вот такой бэ, будет вот такой, ну, соответственно, id, а у нас будет новый id бэ, будет старый, потому что объект б не менялся.
346: Если же мы с вами сделаем для списка вот так.
347: То нас ждёт неприятный сюрприз.
348: А, и б, будут одинаковые, ну, соответственно, id, а, и id б, они тоже будут одинаковые. Почему? Потому что вот эта операция, это операция изменения объекта. Если объект изменяемый, то
349: Объект меняется, и если у нас есть 2 ссылки, а, и б, которые ссылаются на один и тот же объект, и мы по 1 из этих ссылок объект меняем, то есть не создаём новый объект, а меняем объект, то меняется.
350: Именно объект, но так как ссылка в б остаётся та же самая, то, соответственно, значение объекта, которое получается по ссылке из б, оно тоже меняется. То есть, потому что меняется 1 объект, а на него ссылается 2 переменных. И вот
351: Это тот нюанс, который очень хорошо нужно понимать. То есть вот эта запись и вот эта запись, они не одно и то же делают. То есть, да, они делают с объектом, ну, скажем так, они делают один и тот же объект, одинаковый объект, получается.
352: По итогу, но в 1 случае вот в этом у нас создаётся новый объект.
353: На который потом будет ссылка по имени переменной. А вот в этом случае у нас изменяется старый объект, поэтому держим это в голове очень важная информация, потому что вот на этом основано очень большое количество ошибок.
354: Тех, кто начинает работать со списками. Вот именно поэтому эти ошибки получаются, потому что не фиксируем в голове и не держим. Я сам на самом деле очень долго разбирался, каким это образом выстроено. И пока конспект за не написал, у меня такая небольшая
355: Была в голове. Сейчас я вообще вот сейчас вот у меня прямо выстроено стало. То есть я теперь понимаю, почему, если я вот так массиву делаю и вот так вот сделаю с объектами, у меня вот так получается. То есть вот то, что я сейчас рассказываю, это на самом деле тот материал, который почти
356: Не даётся, это очень важно. Ну и теперь про приоритеты вычислений. Приоритет вот такой. Чем выше операция в таблице, тем быстрее она выполняется.
357: Здесь из интересного, смотрите, из интересного здесь то, что одноместные операции типа побитового отрицания, типа просто отрицания и все вроде, да, то есть они имеют
358: Приоритет, причём перед ними приоритет у операции возведения в степень. Ну, предположим, у нас ещё, может такое там, не знаю, а умноженное на бэ минус цэ эн.
359: А не знаю, там меньше или равно б, какой-нибудь там, и, ц, ну, я че то из головы придумал совсем из головы. То есть в 1 очередь у нас выполняется вот эта операции.
360: Потом, ага, потом выполняется вот эта операция and и сравнение. Сначала выполняется сравнение, то есть эта операция выполняется. Следующая. После этого выполняется операция побитового умножения, потому что она
361: По ритету выше 4 и потом выполняется вот эта операция. То есть вот этот, скажем так, алгоритм нахождения порядка выполнения операций, его нужно научиться делать. То есть, потому что если вы пони,
362: Понимаете, как это делается, вы всегда будете правильно, как минимум писать логические выражения, которые в условных операторах нужно писать, потому что очень часто из за этого бывают ошибки. Опять же, потому, что вы заменяете логические операции на
363: Им эквивалентные. То есть потому что нет импликации, например, и тождественности в питоне. Поэтому очень важно, почему сначала будет не б и ц, а. Ну потому что, смотри, мы идём слева направо, мы v
364: 1 переменную операцию, 2 переменную и видим следующую операцию. Мы понимаем, что вот эта операция по приоритету выше, чем вот эта операция. Поэтому вот эту операцию мы можем
365: Выполнить у нас будет. Давайте я сейчас возьму другой маркер, красненький то есть у нас будет вот так идём дальше. У нас есть вот это значение, теперь есть операция, есть вот это значение и есть следующая опера.
366: Мы должны выбрать какую операцию? 1 выполняем 1 операцию, мы выполняем вот эту, поэтому теперь у нас получается вот так мы идём дальше. У нас есть вот это значение, вот эта операция и вот это значение.
367: Дальше идёт вот эта операция. Мы смотрим, что, ага, операция сравнения 1 должна выполниться, поэтому мы такие хорошо, это мы потом выполняем, говорим, что вот так должно быть. Смотрим дальше. У нас есть опять опе.
368: Рация.
369: Значение, и ещё 1 операция, мы такие смотрим. Угу. В таблице приоритетов у нас. А, стоп сначала, да, сначала это выполняется. То есть у нас в таблице приоритетов сначала побитовое умножение. Извините, ребята, перепутал, да?
370: Сначала у нас получается вот так мы получаем значение, берём, теперь вот это значение, оно 4 получается. Вот. И у нас получается, потом последнее, 5, да, перепутал, извините, надеюсь, не
371: Страшно теперь пояснили.
372: Амперсент. Амперсент это побитовое умножение, это побитовая операция. Подробнее про побитовые операции можешь посмотреть опять же, в стриме открытого курса по алгебре, логике, по началам алгебры, логики, там написано, там более под
373: Я рассказал, что такое эти операции.
374: Да, да, да, вот как раз Андрей сейчас очень правильно говорит. То есть, если мы хотим какое-то выражение перенести, например, с алгебры логики в питон, ну, предположим, у нас есть вот такая вот логическая операция.
375: Вот так, например, у нас есть, мы че понимаем, мы понимаем, что у нас это будет 1 операция, это 2, это 3, это 4. Ну, потому что в алгебре, логике вот таким образом это делается, чтобы это все перенести на питон. Мы так и делаем. Пишем нот бэ.
376: Раз взяли в скобки, дальше должно быть and and c взяли в скобки. То есть это самый надёжный метод. Бэ ор взяли в скобки, ну а здесь сделали, а меньше или равно вот, то есть.
377: Мы использовали, да, эквивалентную операцию, но за счёт того, что мы расставили скобки, порядок выполнения операции не нарушается.
378: Вот понятно.
379: Вот это очень важно. Когда вы начнёте делать перебор алгоритм для 2 задания или для 15 задания. Вот это нужно учитывать всегда есть кому понятно. Плюс кому непонятно. Минус.
380: Прекрасно. Всем понятно. Пока. Фух. Дальше. Ну вот вывод через терминал. Понимаю, что очень простой материал, простые действия. Наверняка многие из вас уже посмотрели. Это что такое?
381: Ввод данных через терминал. Это значит, что у нас программа через терминал запрашивает у пользователя данные. То есть это делается с помощью функции input. И вот здесь мы можем указать приветственное сообщение, которое
382: Дать пользователю, чтобы он понял, что мы от него хотим. Ну, например, давайте инпут.
383: Давайте здесь напишем. Введи.
384: X. Ну, понятно, что я сейчас, чтобы им просто не дублировать, пишу в виде, чтобы было понятно, что отличается мы вот так вот делаем, он нас спросит, введи x. Мы такие ну ладно, вводим икс, вот ввели, он выводит то, что мы ввели. То есть, смотрите, как работает, опять же, вот этот Шёл.
385: Питоновский репл пакет, то есть он выполняет операцию, вот он здесь её выполняет, а потом вот здесь нам даёт результат, что сейчас важно в консольке, в
386: Шелли, которую я открыл. Дело в том, что результат вот этой операции это всегда строка. Любые данные, которые вы вводите, они вводятся через терминал в виде строки, если нам необходимо
387: Преобразовать эти данные, что нам нужно сделать? Смотрите, то есть мы такие говорим ладно, хорошо, икс равно инпут. Ну я сейчас не буду писать в виде x. Вот я пишу раз, 3, 4. Вот написал и теперь у меня в x. Смотрите, строка.
388: А я хочу чтобы это была не строка, а число я такой ну я хочу чтобы это была было число, поэтому пишу xxx равно int x да, вот так можно делать не очень красиво, но можно теперь я делаю x. Теперь x это у нас число что?
389: Это все делать в 1 строку мы пишем вот так. То есть мы сразу преобразовываем результат, который нам выдаст операция, импут, функция импут. Записали, оп, 1003 получили. Вот 1003 у нас
390: А, ну я стыр написал, извините, поэтому нам нужно int естественно логично, что строка в строку преобразовалась вот x 1, 2, 3, оть икс о, 1, 2, 3, 4. Все прекрасно да, Денис абсолютно прав. Вот так.
391: Такие моменты, то есть всегда все, что мы вводим через input, это изначально строка. Если мы хотим эту строку преобразовать в другой тип данных, нам необходимо это сделать с помощью методов преобразования типов, то есть которые мы
392: Разбирали с вами в самом начале. Вот. То есть если мы хотим число, мы пишем вот так хотим, не знаю, не целое число.
393: Пишем вот так.
394: Со списками, множествами и прочим. Мы поговорим на следующем занятии. То есть пока что самый простой вид работы с вводом. То есть это простые данные типа числа и типа тру не тру, кстати.
395: Интересно, че будет, если так сделать? Сейчас поэкспериментируем.
396: Скорее всего, будет все нормально.
397: Да, true есть все нормально, то есть вот он true и выводится, то есть, если мы хотим получить из терминала значение простого типа, мы преобразуем то, что нам вводится сразу в тот тип, который нужен, и вот.
398: Такие записи вы уже, скорее всего, видели в тех или иных решениях задач. То есть вот это как раз че происходит, мы вводим данные, а потом их сразу преобразуем в тот тип, который нам нужен. То есть такой делаем функцию функции. То есть сначала запускается Функ.
399: Функция input, она возвращает значение, сразу же передаёт её на вход функции преобразования типа, ну в данном случае логическое значение. И потом вот этот преобразователь типов возвращает то значение в том типе, который нам надо. Вот это очень важный момент.
400: Он важен, если мы хотим все данные обрабатывать, так как нам нужно обрабатывать и вывод данных на экран, опять же рассматриваем его в простом варианте, если мы хотим вывести 1 или несколько значений.
401: На экран мы указываем их в функции print через запятую, то есть хотим вывести 1 значение.
402: Так, print x a бэ вот я вывел 3 значения x ABSRAZUHOTM1.
403: Ну, выводим 1.
404: Не знаю. A5, например. Ой, да 5 есть.
405: Print. А, ну потому что надо print писать.
406: Вот вывел 1 значение.
407: Как бы я без тебя работала. Ой, не знаю, Наталья, честно. Ну, как-то без меня же работали раньше. Я думаю, что это было бы не критично. Вот. Ну, в общем, вот такие вот моменты.
408: То есть это то, что необходимо знать про самые самые базовые инструкции языка питон и на закусочку, скажем так, на дорожку у нас с вами условный оператор, то есть глубоко копать.
409: Работать мы не будем. То есть мы не будем разбирать модель, как устроен условный оператор со ссылками на разные блоки команд. Мы посмотрим просто, как он работает с точки зрения алгоритмики. То есть здесь копаться глубоко смысла не имеет, потому что лезть в представление в машинном коде
410: Это, ну, это, это сложно. То есть, я думаю, что большинство из тех, кто меня смотрит, как, ну, те, кто готовится к егэ, вообще это не поймут. Поэтому здесь мы рассматриваем это именно как конструкцию, которая позволяет нам алгоритм разветвлять. Итак, в общем виде
411: Условный оператор выглядит следующим образом то есть это всегда ключевое слово иф, после которого идёт условие потом идёт двоеточие как разделитель условия и следующего блока команд, потом идёт блок команд.
412: Это минимальная запись, дальше в условном операторе могут быть блоки эл иф, которые также устроены и в конце может быть блок else, то есть блоки эл, иф и элс могут не встречаться в условном операторе, когда он называется сокращённы.
413: Условным оператором. Если есть блок if и else это полный условный оператор, если есть if i, l, if, ну if all, if или else, то есть 1 из 2 вариантов, то это оператор множественного выбора, то есть
414: В питоне, ну, насколько я понял, нет отдельного оператора множественного выбора. Ну, то есть, там всякие Свич кейсов, которые в паскале и си, плюс, плюс, вроде есть, они в питоне реализуются либо через условный оператор, либо через словари, через сло,
415: Сейчас рассматривать не будем. Мы будем рассматривать именно через условные операторы. Что такое условный оператор. Ну, давайте, например, мы вводим икс игрек. Равно, давайте че-нибудь там. 10, 15. Я пока игрушечный пример при
416: Если x больше 5 энд игрек меньше 10, тогда мы, ну, давайте выводим.
417: 1, 1, 1 не знаю, че ещё можно вывести элс иф у нас x больше 5, и игрек больше или равен 10. Тогда мы выво.
418: 2, 2, 2. Ну а иначе?
419: Выводим 0 0 0, 1, 2, 3. Вот так работает. То есть айдол он сначала ждёт, пока мы завершим описание нашего, нашего
420: Сейчас скажу, как это называется. Это называется составной оператор. То есть мы, ну, с условный оператор это составной оператор, потому что он состоит из нескольких блоков, как минимум, условие блок команд. То есть, поэтому айдол, когда мы его запускаем в этом режиме, в Шелле, он
421: Ждёт, пока мы введём полное описание. Ну а полное описание у нас тогда, когда мы перешли после элса или после ифа на строку с тем же ограничением, сейчас разберёмся, что это за ограничение и отступы. Ну вот, может, напри,
422: Быть так может не быть с может не быть эл иф. То есть, может быть, вообще всего лишь вот так написано. X больше 5, например, then print.
423: Print 1 2 3 вообще вот так может быть записано.
424: Все, и это тоже правильно, это тоже хорошо и нормально, и ни у кого никаких не возникает отторжений. Но опять же, с точки зрения питон и тех рекомендаций, которые есть к оформлению кода на питоне писать.
425: Правильно, вот так.
426: Единственный момент. Есть ещё 1 случай для условного оператора. Называется тернарная условная операция. Давайте я сейчас покажу сразу 1 момент вам. То есть вот
427: Я открываю сейчас редактор кода валли файл нью файл и здесь пишу, ну, также икс игрек. Пусть будет равно 10:15. Пока что игрушечный пример.
428: И здесь пишу, что если у нас игрек больше 10, тогда у нас икс равно икс умножить на 2, иначе xx равно, ну, например, не знаю, там 20.
429: То есть, что мы видим? Мы видим, что у нас есть условный оператор в зависимости от выполнения условий, в котором у нас меняется 1 переменная. Так вот, чтобы описать это немножко покороче, можно тоже самое.
430: Вот так. То есть можно сказать, что x это икс умножить на 2. Если игрек больше 10, ну а если не больше 10, тогда 20.
431: То есть вот эта тернарная условная операция, она что делает? Она выбирает 1 из 2 вариантов слева или справа. Если выполняется условие, выбирается вариант слева. Если не выполняется, выполняется операция справа. Ну то есть значение справа присваи.
432: В в переменную. Ну то есть объект связывается с ним. Вот, то есть мы можем, давайте запустить 1, другое, принт икс, как запустить кнопочка ран.
433: Просит сохранить, да, сохраняем. Давайте так сохраняем оть. Вот у нас 20 вывелось. Теперь мы
434: Делаем комментарий многострочный и здесь пишем вот так запускаем ран, сохраняем вот тоже 20. То есть вот это, это тоже самое, что вот это прямо один и тот же алгоритм просто
435: Здесь он записан в короткой форме, потому что, ну, такие вот операции гораздо удобнее записываются именно в ветеринарной условно операции, потому что, ну, у нас 1 переменная меняется, и сразу понятно, что это вот 1 переменная, и вот именно 1 меняется.
436: Вот так. Кому про тернарную условную операцию. Понятно в чате. Плюс кому непонятно минус.
437: Так, вижу плюсики прекрасно. И последний момент, который я хочу вам показать, это как работать с дебаггером. Дебаггер. На самом деле это то средство, которое нужно рассматривать на самом, ну, с самого начала, в общем, программировани.
438: Потому что дебаггер позволяет нам отслеживать, как меняются переменные в ходе исполнения нашей программы. Ну давайте мы здесь теперь введём икс игрек икс равно инпут. Давайте это будет все-таки
439: Целое число. Ну, пока с целыми числами не работаем. Так просто удобнее. Инт, инпут тоже будет игрек. То есть мы вводим 2 числа с вами и здесь смотрим, если x больше 100, тогда мы игрек делаем равно.
440: Игрек - 2. Ну так, игрушечный пример all if i ix меньше 100. Тогда мы делаем игрек равно не знаю там, давайте, давайте икс изменим икс плюс.
441: Равно 100 и здесь выводим икс игрек. То есть мы пишем программу. Давайте игрушечный пример я надеюсь, что сейчас большинству понятно где будет ошибка. Ну вот мы просто пишем логику какую-то здесь простая, чтобы
442: Быстро проиллюстрировать то есть если у нас икс больше 100, тогда мы делаем игрек меньше на 2, если нет тогда мы делаем x больше на 100. То есть я написал, что если больше, то делаем вот это, если меньше, то делаем вот это и мы начинаем запускать программу запуска.
443: Run, run ок. Прекрасно. Он нас спрашивает 2 значения. Ну давайте введём значение там 100 150 и значение 200 от прекрасно как надо больше 100 получилось все хорошо мы вводим теперь
444: Ещё раз нажимаем f5, вводим другие 2 значения. Ну давайте 50 вводим.
445: И какое-нибудь там, ну пусть будет 90, вот 150 90, потому что мы KXPREBAVLE100, получилось 150, и мы такие смотрим, что, ага. Ну то есть мы написали какие-то тесты, у нас тесты работают, работают, работают.
446: И потом тест натыкается на вот такую детальку. То есть мы вводим 2 числа, 1 из них 100, а другое 200. И у нас оба числа не работают. Мы такие. Угу. А че, а почему не?
447: Работает. У нас же вот написано, если так, то так, если так, то так как вот быть то что нам нужно сделать, чтобы понять, где ошибка. Ну то есть здесь понятно, что ошибка в конкретном месте. То есть потому что алгоритм очень простой, но предположим, что у нас логика сложнее и нам
448: Непонятно, почему при таком положении дел у нас не изменяются 2 числа. Для этого есть режим дебаггера. Мы нажимаем на кнопочку дебаг, здесь вызываем дебаггер и вот он он у нас появился. Что делаем дальше? Нажимаем на кнопочку.
449: Rune. Вот и поехали. 100 вводим, 100 ввели 100, 200. А че не запустилось? Или запусти? А запустилось все прекрасно. Вот мы ввели 100, 200. Ну, они сейчас ещё
450: Не ввелись, потому что вот мы видим сейчас мы находимся на 1 строке, здесь мы выполняем команду икс, равно int input запускаем степ.
451: Вот здесь у нас делается считывание.
452: Давайте гоу сделаем. Нет, нет, нет, не сработало. Да. Так, сейчас, сейчас разберёмся, как правильно это сделать. О, вот. Итак, что нам нужно? Нам необходимо запустить. Запускаем модуль.
453: Так, у нас есть 2 кнопки степ овер по моему сейчас over, надо нажимать да, other итак мы должны ввести 100 вот теперь мы перешли на 2 линию ну опять же почему сейчас да, эта трассировка собственно и есть, то есть
454: Почему мы сейчас перешли сразу на 2 линию, а не просто как вот в прошлый раз?
455: Куда-то опускались, там непонятные какие-то действия были, потому что кнопочка овер, она переходит сразу же на следующий шаг, ну на следующую строку. То есть она не заходит ни в преобразователь, типа, ни в инпут. На самом деле, для того чтобы выполнить 1 строку, необходимо было сначала зайти в input.
456: Читать значение с терминала, потом считанное значение передать в инт, преобразовать его и только потом вернуть в игрек, то есть у нас эти подробности сейчас не нужны, поэтому мы пишем ещё раз over, так не ввело.
457: Вводим 200 оть, перешли к 3 операции. Мы что сейчас видим? Видим, что операция у нас дала икс 100 игрек 200 я не настроил здесь, к сожалению, побольше, чтобы было видно, может быть плохо, но здесь мы
458: Что вот здесь икс равен 100 игрек равен 200 и идём дальше. X больше 100. Мы такие. Ага, овер опа. Не попали в условия all if меньше 100 такие хорошо. Дальше и понимаем, что мы с
459: Сразу же переходим к принту. То есть мы не заходим не сюда, не сюда и понимаем, что какое-то условие у нас не дописано. Мы такие смотрим. Ага. То есть у нас условие для входного данного, где икс равен 100, не сработало, а нам нужно
460: Чтобы сработало, мы такие, ага. Ну то есть нам, наверное, нужно вот здесь поменять знак, мы вот его меняем, у нас получается правильное значение, да, можно это все с помощью принтов отлаживать. Но если у вас большая программа, там какие-то циклы, где много итераций и так далее, это очень
461: Неудобно, потому что большой вывод, поэтому трассировка с помощью дебаггера, она позволяет вам несколько сэкономить силы, ну и вообще привыкнуть к инструментам, которые позволяют анализировать, как работает ваш код. И это гораздо правильнее и лучшее решение. Ну и дальше мы нажимаем овер.
462: Вот вывелось 100 200, и дебаг завершился. Вот. То есть это то, что очень хорошо бы научиться делать сразу, потому что это позволит вам ловить ошибки, ну, на тех данных, которые вы вот не придумали, например, какого-то исключающего
463: Случая, то есть вам скажут, что, а есть вот такой случай, вы такие, ага, правда, работает для этого случая неправильно забили данные в программу, посмотрели, в каком месте он не заходит туда, куда вам нужно заходить. Это место поправили, и у вас программа работает, правильно?
464: Вот. Ну, в общем, это тот материал, который я хотел сегодня вам рассказать. Если у вас есть какие-то вопросы, задавайте, Бога ради, я на них отвечу, я на вопросы отвечаю.
465: И люблю даже отвечать, наверное, потому что тогда я понимаю, что нужно ещё до раскрыть дальше. Ну, про курс, информация на slider, информация под видео далее.
466: Ну да, то есть вот полтора часа, которые были обещаны, они как раз и прошли, опять уложились.
467: В полтора часа тьютер он тоже помогает ладить программу, показывает все шаги да да, arena может быть может быть, но мы сегодня рассматриваем базовые средства, которые точно будут и на экзамене, и хоть где, потому что
468: Питон без айдла, по моему, невозможно, потому что это приложе, ну, это приложение, которое к питону просто идёт. То есть это, по сути, как бы одно и то же, условно говоря. Поэтому мы смотрим именно в idle, а не в других сторонних программ.
469: Я вообще такими, ну, в таких случаях, если мне нужно отладить программу, я пользуюсь отладчиками в, ну, например, в, а так, Кирилл, благодарю. Очень приятно.
470: Что не забываешь. Так, Наталья Позднякова. Цена курса до 8 сентября 100 ₽ в месяц по подписке после 8 150 ₽, по подписке с октября вход 1500. Ну и дальше подписка 150, если вам все.
471: Понравилось. Вот. То есть цены вот такие. То есть пока что ещё 100 ₽ у вас ещё несколько дней для записи есть вот такие вот у нас бюджетные цены.
472: То есть, по сути, вы можете за 1000 приобрести годовой курс, если не будете подписку отменять.
473: Ну, с рассрочкой в год.
474: Интерпретатор.
475: Ну, я прочитал, вроде правильно, пожалуйста. Я надеюсь, что было полезно, интересно, занимательно. Ну, как вы понимаете, это материал не совсем для егэ, а больше именно для изучения программирования на питоне. Но, на мой взгляд, это
476: Очень важный материал, который нужно именно перед тем, как переходить к алгоритмам в голове, уложить
477: Вот, поэтому учитесь, занимайтесь. Домашняя работа на курсе. Ну, собственно, и в группе будет завтра, потому что мне необходимо её сделать, а там нужно сгенерировать все задачки прям, потому что их пока нету нигде.
478: Вот. Ну все, насем. Все. Всем спасибо. Всем пока, пока.