Transcription
Ладно, что-то я не понимаю. Весь день сегодня чат чинил, короче, а сейчас у меня обска отказывается просто даже браузерное окно захватывать. Я сегодня CS код на чат, вот это всё. В общем, ладно, давайте тогда так: вы меня видите? Да, трансляция идёт. Всё прекрасно, звук уберу сам, чтобы самому себе трансляцию не не суетиться.
Так, если трансляция идёт, может, мы теперь увидим чат? Нет, благодаря тому, что появился доступ, тран неладно. ВиДи видим. Я не знаю, может, я фильтр какой-то случайно прожил. Вроде нет, вроде нет, вроде всё должно работать. Новая браузер нано уже пробовал создавать. Ладно, всё, так, господа и дамы, и все остальные тоже, кто не господа и не дамы.
Значит, смотрите, сегодня будем прога с нуля. Будем учиться программировать. Если ты боишься программировать, тебе сюда. Если ты не боишься программировать, тебе тоже сюда, вероятно. Вот, а если ты уже давно меня знаешь, помоши мне ручкой в чат, скажи, тут слушаешь, существуешь, видишь. И бла-бла-бла. Если ты меня совсем не знаешь, давай знакомиться. Меня зовут Александр Романович, вотяков, и в общем, ближайшие, ну, часика полтора, наверное, я буду твоим проводником в мир прекрасного просто питона программирования, и будем учиться это делать.
Вот, а по судя по отзывам общим ребят на то, что я обычно делаю, я понятно и классно объясняю, и это обычно приятно. Ты обычно полтора часика проводишь с кайфом, с ощущением того, что ты что-то новое полезное узнал. Вот, к сожалению, чатик у меня всё ещё не хочет вообще никак взаимодействовать, у него просто не получается, меня это бесит ужасно. Ну ладно, прям подгонял, знаете, понимаете, процесс под то, чтобы ну чатик существовал, чатик берёт и не хочет существовать. Ну что это такое? Как это вообще, как это называется? Никак это не называется.
Ладно, тогда значит я буду просто сегодня большего размера без чати, буду зато большой. Вот так вот сейчас сделаем, так вот так вот стану огромный, стану просто насколько вообще позволяет совесть стать огромным. Вот таким стану. Вот, буду таким сегодня большим, высоким. Вот, вот таким буду. Вот, но спрячусь немножко за пайчарм, вот так немножко парик. Да, вот, короче, такой буду сегодня. Сегодня немножко уменьш в размерах тогда получается. Ну мы с вами поком чисто я и Ича вдвоём без Чака.
Ну чатик, я базовые конструкции перестанем вообще бояться программирования. Подойдёт этот вебинар вообще всем, кто хочет чуть-чуть хотя бы попробовать покорить, то есть от мало до велико. Если ты пятиклассник и хочешь немножко в основу питона залезть, будет нормально, кроме может быть нескольких мест, процентов 20 будет тебе сложно, например, потому что ты просто не знаешь, что такое проценты.
Если ты девятиклассник, десятиклассник, одиннадцатиклассник, школьник и хочешь готовиться к ЕГЭ, там КГ, ещё что-то такое, тебе вообще в лёд просто зайдёт, просто на ура, очень хорошо подходит, всё будет круто. Дальше, если ты значит постарше, типа там, ну условно, двенадцатый класс, тринадцатый класс, уже после школы, да, такой типа там первокурсниками, дор всё такое, тогда, ну просто можешь в чате посидеть, пот на вопросы ребятам.
Вот, собственно, да, можно первое время потратить на то, чтобы установить самому себе пайчарм. Я сегодня не буду объяснять, как это делать. Это просто типа гуглишь, гуглишь, делаешь, делаешь. Я не предполагаю, что гуглишь и делаешь. Это что-то лёгко, понятно, что это сложно, но вот так вот надо сделать. Если ты совершенно не хочешь этим заниматься, можешь сегодня просто тогда посмотреть стрим и типа посмотреть, как я код. Но, конечно, ты в 100 раз больше пользы получишь, если будешь параллельно сам то же самое делать.
Если у тебя совершенно такой опции нет, ты сейчас там, не знаю, идёшь куда-нибудь с телефона, смотришь стрим и так далее и так далее, ну что ж, поделать, тогда получается, телефон смотрим стрим. Какие ещё у нас варианты? Вариантов нет. Что ж, погнали тогда получается.
А значит, смотрите, первое действие: вот Print Hello world. Уже в чат написали, подсказывают мне, спасибо, а то я не знаю, как вообще стримы вести. Это команда, которая при выполнении питон выполняет и просто печатает Hello world на экран. Ну, кайфово, что мы получается уже что-то научились делать, печатать Hello world. Хорошо. Э, что это такое? Hello world? Типа привет мир по-английски. Это типа мы поздоровались, программа как бы начала исполнение. Такая, ну здравствуйте, добрый вечер, здравствуйте, там могу что-то вам предложить.
Вот, и значит, мы научились таким образом из кода что-то выводить. Погнали дальше. X равен 8, я хочу принта нуть X. Что выведет данная программа? Ну, а выведет 8. Почему? Потому что, ну, понятно, почему. Покачену, идём дальше. Если я значит напишу что-нибудь типа x = 8, а Y равен, например, 10 и выведу X + Y, что выведет данная программа? Ну, 18. Ну, удивительно, рядом прав 8 и 10 сложили. Пока как бы ничего сложного, даже для пятиклассников.
Ну давайте разберём все примеры арифметических операций, которые мы знаем. Давайте Print X - Y. Пишите в чат, какие ещё операции я, по-вашему, забыл или не учёл, а которые вы знаете арифметические, и мы сейчас со всеми с ними разберёмся. Каждую операцию узнаем, что каждая операция делает, что она вообще там из себя представляет. Значит, понятно, это сумма. Да, X - Y это разность. Звёздочка - это умножение операция. Вот такая вот дробная черта, одна такая черта слэш, та - это деление, обычное деление, типа полноценное. 8 / 10, ну, например, условно, давайте так, 16 / 10 = 1.6, то есть 1,6. Вот тут уже пошли сложности для пятиклассников, потому что дроби, некоторые пятиклассники знакомы с дробями, некоторые нет.
Вот все взрослые уже плюс-минус. Типа шарт, если это деление двойной дробной чертой, то это деление нацело. То есть это типа деление, которое позволяет разделить и отбросить дробную часть. Например, 38 разделить на 10 - это 3, условно. Деление на цело отвечает на вопрос: если у тебя есть 38 руб, одна футболка стоит 10 руб, сколько футболок ты сможешь купить? Три футболки сможешь купить. Процент - это остаток отделения. Вот тут как раз наоборот пятиклассник выигрывают над всеми остальными, потому что взрослые люди уже обычно не помнят, что такое остатки.
А вот пятиклассники только что недавно научились делить с остатком. Там всё наоборот. 38 / 10 - это 8, соответственно, это восьмёрка. В каком смысле? В том смысле, что если у тебя есть 38 руб и ты делишь на 10, то у тебя остаётся восемь в остатке. В процессе деления у тебя результат деления - это три, а остаток отделения - это во. То есть если у тебя есть 38 руб, одна футболка стоит 10 руб, то ты сможешь купить три футболки, при этом у тебя останется во. Неправильно написал остаток процен. Вот так вот.
Ну и, собственно, две звёздочки - это возведение в степень. Что такое возведение в степень? Это значит, что я пишу одно число, другое число, короче, это X умно сам на себя Y раз. То есть, например, 2 в степени 5 - это 2 x 2 x 2 x 2 x 2, п раз, и получается в итоге 32. Вот такой результат. Так, поставьте плюсик в чат, если все эти операции вам знакомы, математические, понятны абсолютно и так далее.
Я приведу запуск этой программы для чисел, например, 18 и 4. И тогда 18 + 4 = 22, 18 - 4 = 14, 18 x 4 = 72, 18 / 4 - это 4,5. А если делить без дробной части, то просто 4. А если остаток вычислять, то 2. А если 18 возводить в четвёртую степень, то получается 104.980. Ну, зашибись, всё как? Понятно, знакомо и так далее. Хорошо, с операциями разобрались, идём дальше.
Следующий шаг для нас - это попробовать чат починить ещё раз. Так, нажимаем на кнопку рефреш. Давай, работай, чат тупой, ё-моё. Давай создадим новое окно браузера, может, работает обска. Ты что, тупишь, ё-моё? Давай, браузер, Window. Почему не работает? Что это такое? Давай. Да, почему не работает? Не создат. Ладно, фиг с ним, идём дальше. Мы пытаемся создать, значит, знания в вашей голове. Значит, как мы это будем делать? Кроме арифметических операций пройдём.
Давайте ещё все операции логические. Что логические? Логические операции - это те операции, которые дают в ответе либо да, либо нет. То есть да или нет, истина или ложь. Или на это True, ложь - это False. Соответственно, какие бывают логические операции? Первая логическая операция - это знак двойного равенства. X равен Y? Запускаем. Это неправда. Это значит, X равен Y или нет. Это как бы вопрос, который мы задаём, когда берём пару чисел 18 и 4 и проверяем равнение друг другу или нет. Давайте, например, 18 и 18 попробуем. Они равны друг другу? Ответ True. True - это истина, а False - это ложь.
Соответственно, X равен Y или нет - это как бы вопрос, который мы задаём. Если я теперь попрошу его напечатать какие-то другие логические операции, какие вы ещё знаете логические операции? Например, сравнение больше, например, сравнение в другую сторону меньше, например, X больше либо равен, и, например, X меньше либо равен Y, например, X не равен. И это значит не равно. Все остальные самоочевидно.
Ну ладно, давайте я ещё вот эти два подпишу. Это значит больше либо равно, а это означает меньше либо равно. Ну и, соответственно, это больше, а это меньше. Раз уж мы всё подписываем, давайте всё подпишем. То, что я пишу после решёточника, X больше либо равен, и да, меньше либо равен, и да, не равен. ИС равен, то есть типа 18 не равен 18. Я попробовал, и это ложь, потому что 18 равен 18. Вот такие логические операции. Я буду их как-то друг с другом комбинировать, использовать вместе и так далее.
Давайте ещё раз сорм плюсики в чат, что мы поняли, как это работает. Да, по поводу плюсиков в чат. Эта трансляция сейчас происходит на ВК видео на live.ru vov piton. Если ты смотришь её где-то ещё, переходи на live vk видео и давай смотреть здесь. Вот, я не знаю, как ты вообще нашёл трансляцию где-то ещё. Вот, но это мой дебют на ВК видео, поэтому первый же видос, собственно, переходи и смотри. В описании к этому видосу есть две полезные ссылки.
Одна ссылка - это чат в телеграме, огромный чатик, где у нас куча программистов на питоне, начинающих программистов, не начинающих, в общем, общаются друг с другом, питани сы, и ты можешь Прити задавать любые вопросы. У нас там очень уютный чатик, очень мы там любим новичков. Вот и помогаем друг другу. А вторая штука - это просто бесплатный полный вводный курс по питону, где ты очень много всего узнаешь от меня. И там просто тоже по ссылке переходишь и забираешь его себе и кайфуешь люто.
Вот, значит, погнали. Плюсик в чат, говорю, если логические операции. То у меня опять не работает что-то или это что происходит? Я с этой новой площадкой что-то немножко, ну, не привыкший. Господа, есть хорошо, я понял. Это потому что у меня опять Т, собственно, не загрузился до сих пор, и в этом проблема. Не могу понять, что за проблема с чатом. Она вроде супер хорошо вся работала, а потом взяла и перестала, просто передумала, устала работать и всё, и не работает больше. Поэтому не очень понятно, как это устроено.
Может, что-то надо с браузер кэшем сделать, что-нибудь вырубить, что-нибудь выключить, что-то сделать. Мы пройдём комбинирование этих логических операций, а именно пройдём две штуки: and и or. And - это логическая и, а or - это логическая или. Ну или. Давайте, раз уж мы с вами уже прошли, как равенство в питоне записывается, будем потоски записывать вот так вот по программистски.
И or - это логическая или в том смысле, что я, когда пишу двойной знак равенства, я утверждаю, что это является этим. Одно другому равно. Ну и то есть я теперь могу, получается, комбинировать разные высказывания. Например, давайте такое высказывание скомбинируем: да, равно больше, меньше, больше ли равно, меньше равно, не равно. Скомбинировать. Давайте так: X больше Y, я поставлю вокруг него скобки, потом напишу так или X равен Y. Вот такую вот фразу скомбинировать. То это правда, потому что X больше Y.
А если взять, например, 18 и 18, то это правда, потому что X равен Y. А если взять, например, 18 и 20, то это неправда, потому что оба высказывания ложны. Логическая или просто проверяет верно ли утверждение, что первое или второе истинно. Если оно верно, то как бы круто, победа и так далее. Если неверно, то всё, конец, не победа. Так, короче, ладно, я понял, в чём проблема. В той же самой проблеме, из-за чего я стрим не мог запустить, у меня почему-то не грузят браузерные страницы. Я не очень понимаю, почему, что конкретно мешает и что конкретно случилось, вообще в чём ситуация, но видимо, ну как есть, так и работает.
Что же сделать? Там, так, а, о, здравствуйте, здорово всем, привет. Что, кого, как дела там? Ладно, давайте я, но я не понимаю, почему она может возникать от этого. Ну, короче, ладно, всё, вот я большой снова, здорово всем, всем привет, я огромный. Давайте отсюда тоже поудаляем всё. Вот, почему вот у меня, например, сейчас чат не захватывается? Должен же, но непонятно, видимо, не работает. Ладно, программист, короче, против технологий не вывожу. Значит, смотрите, пришёл вас учить программированию, не могу починить какую-то фигню. Ты ж программист, иди холодильник почини, правильно?
Погнали дальше. Значит, если я смог соединить логическое и логическое или, то есть X > Y или X равен Y, то дальше я смогу, получается, соединять вообще любые конструкции типа с помощью or или с помощью and. Например, я хочу соединить сразу две конструкции. Например, я хочу попробовать проверить, что X больше чем 50 или X отдаёт остаток отделения на 10 равен 7. Сейчас что это вообще такое? Давайте поймём. Вот, например, число я введу 37. Какой ответ выдаёт данная программа? Или я запускаю, как бы результат будет истина или ложь? Что я увижу в итоге на экране, когда запущу данную программу? Как работает данная конструкция X больше 50 или X про 10 равен 7?
Для этого мне надо вычислить значение каждого логического выражения. 37 больше 50? Нет, не правда. 37 % 10 равен 7? Давайте поймём, что такое 37 % 10. Это остаток отделения 37 на 10. 37 на 10 - это типа три целые футболки ты сможешь купить и ещё 7 руб у тебя останется. То есть 3 целые и се лишних остаток. Вот с помощью знака процент раз добывается. Это остаток, как сть рано 7, это получается истина. 7 действительно равно се. Получается false or true. Когда с помощью логического или соединяю две конструкции ложную и истинную, я получаю в итоге истину. Это значит, что в итоге, когда я запущу данную программу, всё это вычислит и получится истина.
Грубо говоря, такой калькулятор, но мы в нём уже не только числами оперируем, но и всякими конструкциями типа истина, ложь, правда, неправда, вот этими всеми штуками. Ну всё, супер. X = 37. Да, вот такие вещи. Мы научились делать логические выражения, комбинировать их. Научились теперь вид ветвления. Что такое вид ветвления? Это мы берём X, например, 18, потом мы такие типа: давайте с помощью специальной конструкции. В любом программировании, в любом языке вообще есть, это как раз и отличает программирование от просто выполнения ряда инструкций. Это вид ветвления. Типа если X, дальше какое-то логическое выражение, например, X больше чем 10, тогда yes, иначе что выведет данная программа? Запускаем, и получаем. Почему? Потому что 18 больше чем 10, 18 > 10, поэтому это выполнено, и она выполняет вот эту часть.
Если, а вот это означает иначе, и в итоге мы при запуске видим, потому что чем 10. А если бы был меньше чем 10, то мы при запуске увидели бы, что. Мы получаем разные ответы в зависимости от входных данных. То есть я написал что-то там типа 9 или там 19, и получаю в зависимости от этого разные числа. На самом деле здесь никаких входных данных нет. На самом деле я не получаю разные ответы в зависимости от входных данных, у меня постоянно одинаковые ответы, потому что у меня постоянно одинаковые входные данные. У меня одна конкретная прога есть, типа я её запускаю и вижу всё время один и тот же ответ. Видите, какая проблема?
Ну, соответственно, такое не годится, чтобы видеть разные входные данные, разные ответы в зависимости от входных данных. Мне надо получается как-то научить. [музыка] Почему слога с м делать не будем. Вместо этого сначала пройдём считывание. Перед тем как прой считывание, давайте мы пройм с вами строки. Мы с вами поработали пока с двумя типами данных: это числа и это исти или ложь. Давайте ещё один тип данных изучим - строка. Вот в строчку я запишу какой-нибудь, например, привет. И теперь я этот самый привет могу напечатать, а могу напечатать S у 2, это два привета. Привет, привет. А могу напечатать с нулевое. Что такое с нулевое? Это буква П. Что такое с первое? Это буква Р. С второе - это буква И. То есть в строке привет у нас есть шесть букв, и они нумеруются 0, 1, 2, 3, 4, 5. Я могу эти буквы вытаскивать с помощью вот таких вот квадратных скобок. S с квадратной скобочкой номер будет вытаскивать мне соответствующий символ строки.
Также строчки можно складывать друг с другом. Это то же самое, что умножать на два. Можно разные строчки складывать. Например, S будет привет, T будет мир, и мы в итоге будем делать так: S + T. Кавычки можно использовать одинарные или двойные. У меня вон при сохранении файла автоматически заменяет на двойные, потому что понятно, установлен нте и так далее и так далее. Сейчас про это не буду говорить. Привет, мир. Ну, то есть складываем две строки, можно S + T, X = 2, и тогда привет, мир. Умно на 2 раза получается.
Взяли букву Т. Вот, а что дальше-то, собственно? А дальше мы сейчас люто кайфовать начнём. Мы поняли, что такое строка, и мы поняли, что с ней можно разные действия делать. Также там, не знаю, есть, например, длина строки, там ещё какие-то штуки. S + T, вот сложили две строки, посчитали их длину, получили D, потому что привет - это 6, мир - это 3. Но прикольного можем приго считывать строчки с клавиатуры. Смотри внимательно, считывание. Значит, я напишу так: S = inp. Команда inp именно с пустыми скобками считывает строчку с клавиатуры. То есть мы запускаем данную программу, и программа ничего не выводит. Мы что-то сюда пишем, и она заканчивает свою работу, потому что, собственно, команда при отсутствует, она ничего не выводит.
Давайте, например, принт 5Т. Она считает какую-то строчку и умножит значение на пять. Например, пишу Hello, и она выводит Hello hello hello hello hello пять раз. Давайте попробуем ещё. Я напишу, например, не знаю, 10. Что выведет данная программа? Я сейчас нажму на кнопку Enter. Что вы видите, данная программа? Вот S = Input считывает строчку с клавиатуры, именно строчку. Это важно. 10 - это строчка. 10 - это не число, то есть 10 - это просто два символа: оди и ноль, и она выведет не 50, как хотелось бы, как казалось бы, она выйдет 10 10 10 10 10. Чтобы это исправить, нам надо строчку. Да, прекрасно, в чатике увидел оба ответа, как раз и 50, и 10 10 10 10. Чтобы это исправить, нам нужно переделать. Переделаем строчку. Для этого мы используем другую переменную, например, T равен int от английского слова integer, означает целое число. То есть команда int переделывает, чтобы вы ей не дали целое число. Если может, ну и теперь давайте сравним, как выглядит S у 5 и как выглядит у 5. Мы даём ей 1 0, она выдаёт нам вот такой вот ответ. Это S у 5, а этот у 5. Понятно, что число на 5 умножается по-другому, не так как строка.
То же самое можно сделать с любым числом. Вот это Чи, а вот э строчка. Умножила. Нап, а если я дам ей H, то у нас ошибка. Я не могу переделать в число строчку Hello. Не знаю, как это ещё делать. Че вы вообще от меня хотите? Я могу переделать число строчку, которая состоит из цифр, но я не могу переделать число строчку, которая состоит из букв. Логично. Что ж, мы научились что-то переделывать в числа, научились считывать. Давайте теперь это всё в одну строчку зам. Чтобы у нас сразу в S запись число. Как мы это сделаем? Мы возм кото прочитала строчку и засунем его внутрь. Вот так вот, скобки вокруг поставим. Внутри команды in скобках. Получилось много in, скобочка открывается, inp, скобка открывается, это скобка инпута, потом закрывается скобка инпута и потом закрывается внешняя скобка инта. Но итоговая вот эта команда считывает уже число с клавиатуры.
Ну и теперь мы можем прочитать два числа с клавиатуры. Вместо S давайте использовать X переменную, например, X равен inp и Y равен inp. И в итоге я могу эти и игре сложить X + Y. Вот то, что я написал, базовый калькулятор. 12 25, запускаем, получаем 37. Всё готово, прекрасно. Так, а можно, пожалуйста, господа уважаемые, вот в лайве я вижу много людей. Можно, пожалуйста, все эти люди напишут что-нибудь в чат? Мы с вами просто познакомимся, потому что я пока вижу в чате активно пишущих типа трёх человек. А можно все что-нибудь напишут, и мы такие типа здорово, ещё раз познакомимся, потому что я что-то пропустил, когда наплыв произошёл. Меня зовут Александр Романович, тяв, я тут что-то объясняю про программирование.
Вот я вообще очень много в жизни учил детей, готовил там к ЕГЭ, к олимпиадам, там ещё к каким-то разным вещам. Вот, а сейчас вот объясняю тебе прогу прямо сейчас, чтобы ты стал умнее. Вот занимаюсь разными вещами: от преподавания, учительской какой-то деятельности до бизнеса какого-то, там паблик спикинга в интернете, что-то вещаю разным людям. Ну вот, ладно, эти людей я видел, да, Камиль, лублу, АС, Екатерина Прекрасная. Можно все остальные тоже спалится, потому что, ну, я прямо вижу какой-то довольно большой лайв и хочется понять, это что это, кто эти люди? Привет, люди! Можете, пожалуйста, написать что-нибудь и показать свои лица? Да, я там про тайм менеджмент вон там что-то вебки вёл, ещё что-то такое. Вот, но там основной род деятельности я, наверное, не могу даже нормально назвать, если чисто по количеству часов, то, наверное, это предпринимательская деятельность, то есть разных проектов, разные вещи делаю и так далее и так далее.
Вот, прога, погнали дальше. При X + Y умеем читать числа и складывать числа. Почему-то никто не написал на фан-встречу, никто не пришёл. Грустно, знаете, вот этот мем с девочкой, вот этой, которая... Вот, короче, если уходите на вебке, ребята, пишите на вебке. Вот, и понятно, что сейчас пройдёт буквально, ну, совсем чуть-чуть на этих вебинарах будет типа дофига больше, больше людей, я уверен, что даже этот веб прямо сейчас в записи смотрит куча народу, но видимо не добрались по ссылкам или что-то такое произошло.
Сейчас, ну окей, окей, увидим. А, всё, идём дальше. Что мы ещё хотим делать? Ну, складывать, умножать можем, короче, калькулятор может просто люто работать, лютейший. Мы умеем складывать их, умеем это X, Y, два каких-то числа, мы умеем их считывать. Давайте напишем какую-нибудь программу, типа прочитаем, что с клавиатуры, и вот я напишу, какую программу, а ваша задача будет разгадать, что эта программа делает. If X про 2 равен, ну да, а вот здесь напишу, иначе принт нет. На какой вопрос отвечает программа? Я её запускаю и даю ей что-то на вход. Например, я напишу 18, она вот пишет. Да, что это за программа? Что она сейчас сделала? Я ей дал число, она ответила на какой-то вопрос. На какой? Что делает эта программа? В чём суть кода вообще, зачем она нужна и какой у неё смысл? Вот мой вопрос. Помогите, пожалуйста.
Давайте поможем Александру Романовичу разобраться, о чём эта программа. Чётная или нет, пишет Екатерина. Что это значит, чётная или нет? Почему она проверяет чётное или нет? Берём какое-то число на вход, да, сначала строчку переделаем его в int, в целое число, потом проверяем это число, подставляем сюда, и если это число при делении на два даёт остаток равный нулю. А что такое остаток? Это если ты берёшь число, пробуешь, например, купить, не знаю, жевательные резинки по 2 руб, сколько денег у тебя останется? Вот это остаток. Если жевательные резинки по 2 руб, у тебя должно ничего не остаться, если число чётное. Типа оно, если делится на два нацело, то ничего не должно остаться. А если оно не делится на два, то есть делится, но с остатком, у него остаётся остаток какой-то не нулевой, то она пойдёт вот сюда, в else, в иначе, напечатает нет. Простейшая программа, да, проверяет число на чётность. Если число чётное, то да, иначе число нечётное, ответ нет. То есть эта программа проверяет на чётность. Если я ей дам, например, число 101, то оно нечётное, нет. Если я дам ей чётное число 0, то он скажет да. Если я дам ей Hello, она напишет ошибку. Какую именно ошибку? Давайте прочитаем ошибку. Value Error, ошибка значения, invalid literal for int with base 10 Hello, некорректная литерал. Вот, типа строка какая-то, да, там набор символов для команды int с основанием системы исчисления 10. Это для десятичной системы счисления команды int. Вот это вот Hello - это типа последовательность букв, которую она в inp приняла и не смогла обработать с помощью int. Но она не вылетела, не сломалась, не сказала: "Ай, всё, пошёл нафиг", тогда программа выключается, вообще ничего не будем делать, и пайчарм вырубился, и компьютер вырубился, и всё сломалось и так далее.
Этого не произошло. Она сделала очень хорошую грамотную вещь. Она остановила свою работу вовремя и выдала программисту вот такое красное предупреждение. Сказала: "Чувак, смотри-ка, ты на свой код, у тебя там проблемы какие-то, у тебя в коде в каком-то месте твоя штука делает дичь". Такое, окей, постараюсь больше эту дичь не делать, не попадаться в эту ошибку. Это я к чему сейчас сказал? Ошибки надо читать. Вот тут вот четыре строки, они очень много информации несут. Ну, то есть они объясняют, особенно последняя вот эта строчка, она объясняет, что за тип ошибки, который у тебя произошёл. Вот, то есть что значит вообще, почему твоя программа не работает, что с ней случилось, и, собственно, из-за этого вот вылетел. Так, далее, так, далее, так, идём дальше.
Сейчас, за одним, отдайте мне секундочку, я проверю. Я хочу проверить, что у меня там запись сохраняется, всё как обычно работает, так далее и так далее. Так, сохранять трансляции, всё работает, скрыть, не скрыть, всё-всё-всё есть, содержит материалы 18п. Нет, не содержит, нет, всё красиво, да, е раз новино. [музыка] Зне, вот, да, ВС круто. Погнали дальше. Научились читать, получается, мы с клавиатуры числа и научились потом что-то с ними делать, немножко даже с прочитанными числами какими-то. Давайте я напишу программу, а вы мне скажете, что она делает. Это уже сложная программа. Если вот так вот напишем, так больше чем, тогда, а иначе вопрос. Следующий обычный ответ такой: это программа что-то там читает, X больше чем Y. Если да, то принт X, а иначе принт Y. Это хорошо, а такой ответ на этот вопрос принимается, но вы таким образом просто прочитали мне программу. Спасибо, я и сам могу, в принципе, прочитать, что делает моя программа. Это вообще неинтересно, да, читать код.
Окей, вы поняли, спасибо. А если бы вам надо было одним словом как-то наименовать смысл, то как бы тогда, как вообще тогда бы всё работало? Вот, расскажите мне, пожалуйста. Находит большее число. А, хорошо, она берёт два числа XY, и если одно число больше другого, то она его выводит. Если X больше чем Y, то есть если X больший из двух, то она его выведет, а если нет, то есть если Y больше из D, то она выведет Y. Ну и выходит, наша программа делает так: берёт два числа и выдаёт одно из них, какое-то, что больше. Значит, это программа, которая находит большее число. Есть программа, которая чисел наибольшее, типа максимум, типа самое большое число. Вот и всё, победа.
Смотрите, выбор максимума получается, да, типа я выбрал X или Y, и в итоге написал большее из двух. Как мы это получается вообще, как мы это поймём, оформим, что мы с этим сделаем? Ну, типа это программа выбора максимум. А если они равны? Например, если это одинаковые числа, то как она выбирает больше из двух чисел в случае, если одинаково? Но в случае, если они одинаковые, то эта программа просто получается укажет нам одно число конкретное, тоже самое. Вот, давайте посмотрим, как это будет себя вести на двух разных числах, например, 12 и 13. 13. А если я дам ей, например, 100 и 9, такая 100. А если я дам ей, например, 15 и -23, она выдаёт 15.
А если я дам ей два одинаковых числа, например, 15 и 15, то какой будет ответ у этой программы? Это вот вопрос к вам, вот я даю числа 15 и 15, то какой будет ответ у этой программы? Это вопрос к очень детальному пониманию, прям самой вот мельчайшей штучки, которую делает наша прога. Как понять, что делает наша прога? Нам надо просто запустить её и попробовать её провести. X равен 15, 15, 15. Да, счи 15. X равно 15. Y равно 15. Запускаем, смотрим, тоже 15. Дальше проверяем, если X больше чем Y. Если 15 больше чем 15, это выполнено или нет? 15 больше чем 15? Это или это к вам вопрос. 15 выведено 15 на экран. Как понять, что, собственно, вообще будет работать-то? Как, не, не понятно мне, непонятно вам тоже, непонятно кому непонятно, конечно.
ЛС, окей. Всё, появились ответы. Это почему это False? Потому что 15 не больше чем 15, меньше. Ну нет, равно, не равно. False - это False, потому что 15 не больше чем 15, потому что 15 равно 15, а не больше. Значит, это Ls. В случае FSE наш If не выполняется. Это значит, что мы должны прыгнуть вот сюда, в else, в иначе. False - это как бы ведёт в else. FSE ведёт в else, запомнили, да? И мы приходим вот сюда, Print Y. В итоге принтут Y, а Y - это второе число, то есть 15. В данном случае наша программа напишет 15.
Я это был 15, который спрятан внутри Y. То есть давайте так, кроме X напишем через запятую вот так вот. Я написала X, это типа программа говорит, а здесь Y, и через запятую вот так вот я написала Y, это тоже наша программа говорит. Вот, я сейчас запишу, запущу этот код и дам мне число 15 и 15. Что она выведет? Ещё раз проверка на понимание. Я нажму Enter, какой я увижу ответ сейчас после запуска данной программы? Понятно, что число 15. Это я уже понял, что я вижу число 15. В любой непонятной ситуации, что X, что Y, я в любом случае уже 15. Но это будет 15, и это будет, я написала Y, прекрасно, потому что это вот второе выполнение вот этого принта в случае двух равных чисел. Наша программа делает такой ответ.
Хорошо, вот я исправлю вот так вот программу, и теперь она всё, максимум. Например, 100 больше чем 9, 100 написала X. А вот, например, 7 и 10, она напишет 10, написала Y. А если я дам ей два одинаковых числа, например, 15 и 15, то что она выведет? Это сейчас будет ответ 15, я написала Y, как в прошлый раз, или это будет другой ответ? Сейчас будет 15, я написала X. Почему? Потому что 15 больше либо равно 15. Это уже потому что 15 равен 15. 15 ли равно 15, это тоже 15. 15. Да, больше либо равно, всё правильно, всё хорошо.
И поэтому 15, 15, я написала X в этот раз. Вот это мы сейчас пытаемся тонко разбираться в том, как наша программа себя ведёт в разных таких редких каких-то случаях. Это обычно помогает потом понимать очень хорошо вот эти вот базовые билдинг блоки, так сказать. Мы с вами сейчас проходим такие, знаете, как Lego блоки, Lego, из которых потом будем составлять большие конструкции. То есть вот всё в программировании состоит из маленьких элементов, поэтому критически важно очень хорошо понять маленькие элементы, чтобы потом понимать, как работает всё остальное.
Окей, мы разобрались с ветвлением, со считыванием и с ветвлением какой-то базовой конфигурации. Теперь давайте изучим циклы. Циклы - это вообще люто круто, и, собственно, это то, что делает программирование программированием. Мы приближаемся к чему-то достаточно интересненькому. Значит, поехали. Цикл while, например, что такое while? Это пока. Означает, давайте мы дола научимся одной вещи. Давайте для начала научимся изменять переменные. Мы с вами вот прошли всякие арифметические операции. Вот эти арифметические операции, оказывается, можно применять, так сказать, in прямо на саму переменную применять.
Давайте, например, возьмём вот так вот X и сделаем его, например, 7, а потом я напишу вот такую странную конструкцию. Что выведет данная программа, по-вашему? Варианты принимаются любые, например, ошибку или какой-нибудь ответ конкретный, число какое-то, ничего не выведет или ещё что-то такое. Напишите, что выведет данная программа, по вашему мнению, как вам интуитивно кажется, что она должна вывести. Вот чисто математически четвёртая строчка - это какой-то бред. X = X + 1. Но ведь X никогда не равно X + 1. Просто невозможно, чтобы X был равен X + 1. Но дело в том, что я здесь и не сравниваю X и X + 1. Я не пытаюсь утверждать, что они равны. Я пытаюсь приравнять. Я сказа, теперь берём X = 7 + 1, то есть теперь X = 8. Print X, и она делает восьмёрку. Вот такой фокус.
Следовательно, я могу это на самом деле сделать много раз. Вот, например, такая программа выводит 10, потому что к семёрке прибавилось 1 + 1 + 1, т раза. А могу ещё потом вот так вот сделать: X = X умножить на 2, и в итоге я получаю вот такой ответ 20. Типа 3Т раз привил 1, в итоге умножил на 2. Плюс-плюс в питоне не работает, но мы как раз приближаемся вот к такой штуке. Вместо X, но X + 1, которую писать лениво, ещё и два раза X писать, есть команда плюс равно. Она означает увеличить на. Команда, которая во многих языках программирования одинаковым образом выглядит.
Вот, например, Андрей спрашивает про команду плюс-плюс, которая типа просто увеличить на один. Вот так вот в C++ пишут именно так, поэтому он, собственно, называется C++. Я подозреваю, вот, потому что очень удобный способ записи. Вот такой команды нет, но есть вот такая команда. Ну, то есть X плюс равно 1 - это команда инкремента на единичку, увеличение на оди. Ну, её можно и на два сделать, например, X умножить на 2 и на 10. Вот. А ещё что прикольно, смотрите, X равен 7, а я сейчас напишу вот так вот. Что вы видите, данная программа? По-вашему, чисто интуитивно, как бы вы думали, она должна была бы работать? Да, она выйдет 14. Прикольно, правда?
Ну, то есть типа S равно H, S равно 2. То есть строка тоже умножается. Ладно, давайте посложнее что-нибудь. Вот такая программа, что выведет? Тут уже немножко мозг должен посри. Так, типа, а что такое две звёздочки? Вспоминаем, вспоминаем, где-то было в начале стрима. Там это 49. Это я типа вот это вот звёздочка равно типа возвести в степень. Вот это самое число в какую в степень. Давайте, например, Z равно 2. Вот так. Хорошо, хорошо, хорошо. А вот, например, такая, что вы видите? Обратите внимание на то, что питону вообще по барабану на типы. То есть у тебя изначально X был 7, это было целое число, потом я сказал X равно чему-то там, типа 7 / 2. Теперь это не целое число, и питон такой: "Окей, хорошо, теперь это не целое число, другой тип, нормально".
Можно вообще сделать так: X = 7, а теперь X = Hello, как бы, и питон такой: "Нормально, это число, а потом оно строчка, ни число больше". Всё абсолютно адекватно. То есть как человеческий мозг. В принципе, другие языки программирования к этому очень нетерпимы. Вот питон вообще много где прощает тебе разные штуки и выглядит достаточно удобным. Рима, поэтому он очень приятный как первый для изучения, потому что смотри, я просто взял, открыл прогу и прямо с первой строчки начал писать. Да, я никаких преамбул всегда ждёт тебя в начале любой программы, вот эти переменные объявить, там какой-то вот этой Бякова. Вот в питоне очень много всего, никаких ограничений на размеры данных, динамическое выделение памяти и так далее.
Ну, есть ограничения здравого смысла, но, например, я могу спокойно посчитать, не знаю, число 18 в степени 10.000. Вот, пожалуйста, и теперь просто выведите его. Вот такое число получится. Ну, как бы вот в плюсах оно там ни в integer, ни в longint не помещается, и надо уже специально какие-то контейнеры такле. В питоне просто ты такой: "Да, я хочу посчитать", он такой: "Окей, ладно". На ходу, по мере того, как число превышает нужные размеры, он такой: "Ну, надо просто выделить больше памяти". Само выделяется и так далее и так далее.
И так далее. Минус только в том, что питон из-за этого, из-за всего медленнее и жрёт гораздо больше памяти, чем другие языки. Поэтому если мы говорим про высоконагруженные системы или какие-нибудь там сложные механизмы, или мы говорим про программирование уже на таком, не знаю, очень высоко соревновательном уровне, то там ты просто перебуваешь с питона на плюсы. Благо это легко и быстро, потому что изучив один язык программирования, ты потом очень хорошо на другие языки переходишь. Плюс в современном мире на самом деле на очень небольшом количестве разных работ реально ценится вот это вот миллисекунд. Оно всё сейчас гораздо важнее в промышленной разработке с точки зрения времени, которое программист тратит на создание нужной проги и на сложность поддержания потом этого кода.
Потому что, ну, где-то ошибка случайно, её надо исправить, но идёт какой-то программист в другом месте, её исправлять. Поэтому удобство кода играет просто огромную роль сейчас в современной промышленной разработке. Из-за этого получается, что если ты изучаешь более удобный язык и лучшим образом привыкаешь к каким-то удобным практикам, ну вот я сейчас даже не про те вещи, которые мы уже с вами успели увидеть и потрогать, но про те, которые мы потом увидим, ну ещё многократно в питоне в разных местах. Просто это как типа, как должен выглядеть язык программирования, если его делать для людей.
Вот, ну если типа делать его для нормальных людей, которые классно потом будут такие сидеть, начили так вот программировать, кайфовать. Так вот, всё, там есть свои минусы глубже, кроме скорости, времени работы и так далее. Он там в некоторых местах так делает такие-то не совсем ожидаемые действия, но это уже в силу внутренней архитектуры. Такие конструкции появились изначально, как бы идея была сделать что-то, ну, очень удобное, красивое, приятное. Ну и с каждым апдейта оно выкатывается всё лучше и лучше. На мой взгляд, это один из лучших языков, с которых можно начинать освоение программирования, потому что в программировании там не так, как в языках, в реальных языках.
Типа если ты изучил русский, то потом английский изучать капец сложно. Всё ещё, а вот в программировании, если ты изучил один язык программирования, то изучить другой - это очень мало времени потратить для того, чтобы до того же уровня догнать своё понимание в плюсах. Ну, может быть, чуть-чуть будет непривычно, какие-то функции писать, всё ещё, потому что целый год привык набирать одно и то же, но это всё равно, я имею в виду уровень освоения. А с нуля, когда ты вообще не шаришь, условно в школе всю информатику пропустил и так далее, за год вот в программировании, то насколько ты вообще продвинется, догоняет потом в другом языке ещё за неделю, потому что тебе надо на самом деле, ну, буквально ещё немного, какие-то библиотеки подучить, чуть-чуть там походить, ещё что-то поделать. Реально одна неделя.
Вот, понятно, что если мы говорим про то, что ты там 5 лет, короче, в разработке на питоне, то ты уже слишком много каких-то встроенных конструкций питона запомнил, интернализм, уже образом мыслить прямо по питонски, и тебе будет очень сложно потом на другие языки и так далее. Поэтому какой-нибудь сир разработчик где-нибудь в питоне, он потом типа не переходит как стине разработчик, например, плюсы. Ну, типа для этого ему надо прямо сильно подбой. Плюсы очень много научиться делать и так далее. Это не так легко транслируется. Но если мы говорим про начинающего человека, то можешь не думать, короче, на каком бы языке мне начать. Там все всё время так типа задают тебе вопросы, ходят, разных преподов спрашивают, какой лучше, разные преподаватели, разные предпочитают и так далее.
Ответ такой: вот какой тебе под руку попался сейчас, вот на том и начинай. Вот ты сейчас пришёл на стрим по питону. Ну всё, поздравляю, всё как бы, твой первый язык питон. Не думай, если передумаешь через неделю, стоимость перехода вообще практически ничего. Без разни. Надеюсь, свива, идём дальше. Ну плюс приятный кайф. Ровней научились изменять переменные. Теперь давайте клы проходи. Значит, берём переменную, изначально она будет, например, ну не знаю, 10. Дальше я пишу: me 100. Что я сейчас написал? Двоеточие. Обратите внимание, X = me 100. Здесь я вместо если использую слово пока.
В чём отличие? Пока и если. Если проверит условие и выполнит действия один раз, пока выполняет условия и выполняет действия до тех пор, пока условия выполнено. Давайте пример. Запустим эту программу и поймём, что она сделала и почему она остановилась и что конкретно в ней произошло. К вам вопрос: объясните мне эту программу, пожалуйста. Ну то есть потратьте одно чатового сообщения. Да, они благо бесплатны. И просто скажите мне, как эта программа вообще работает, в чём её прикол, что она делает-то, собственно, вообще так хорошо.
А что если я захвачу окно с чатом? Что вы думаете? Я попробую. Может быть, такую конструкцию. Давайте-ка я попробую захватить целое окошко чата, ё. Да, я про вообще абсолютно. Почему я не догадался сразу? Почему через окно браузера пытался это сделать? Ладно, давайте погнали. Так, так, и я тогда захвачу вот этот, получается, вот это окно. Да, да, вот так у нас есть чат, какой-никакой, а чат. Прекрасно, я победитель получается по жизни и захватил чат. Теперь можно обратно себя уменьшить в размерах, правильно?
Ну, красота какая. А, ну какова красота вообще? Буду маленьким, но удаленьким. Просто мне это подходит. Починил, получается, вообще всё. Всё-таки немножко соображаю, получается, в этом вашем программировании, чуть-чуть, немножко у меня есть понимание. Вот, так тут вот всё сделали, тут всё сделали. Так, вот так вот получается. Всё, вот такого буду размера, чати будут сообщения. Ну всё, теперь вы тоже в телевизоре, господа. Это же прекрасно. Очень приятно быть в телевизоре, а не просто там чтото там. Аы, как там вообще? Кайф, всё захват браузерного окна произошёл.
Так что там, кроме пока вы что-то пишете, и у меня не обновляется окно браузера. А прикиньте, да, из-за того, что я, короче, не перехожу в браузер, то он типа не захватывает обновление браузера. Неприятная конструкция. Ладно, чертяка к Макар. Ладно, сейчас мы как-то его попытаемся тогда что с ним сделать-то, чтобы работало. Интересно, не понимаю. Непонимание. У меня есть, ну вот видимо, как-нибудь так вот сделаем. А я ещё в парми хочу одновременно писать. Ну, вообще люто. Мне надо получается 10 окон одновременно меджи и при этом не переключаться. Всё хорошо.
Вот так вот, да, увеличивает X в два раза, пока X меньше 100. То есть она берёт десяточку и говорит: X меньше 100? Да, 10 принтут 10 на экран, потом удваивает его, получается 20. 20 меньше 100? Да, принтут 20, удваивает его 40. 40 меньше 100? Да, удваивает, принтут 80. Меньше 100? Да, принтут 80, удваивает 160. Меньше 100? Нет. Запускаем. На этом месте она обрубают. Здесь напишем принт конец. Вот эта программа выводит так: 10, 20, 40, 80, конец.
Внимание, вопрос на понимание. Вот такая программа, что вы видите? Я изменил всего лишь чуть-чуть. Я изменил чисто одну табуляцию, добавил вот здесь вот кнопочку Tab, нажал, типа четыре пробела. Ну, 1, 2, 3, 4, четыре пробела поставил. 10 меньше 100? Да, 10, me 100, Print 10. Она выведет 10 на экран, потом X = X * 2, 10 стало в два раза больше, то есть стало 20. X стало 20. Потом происходит принт конец, то есть она напишет 10, а потом конец. Но потом она пойдёт в начало цикла while и снова проверит условия: 20 меньше чем 100? 20 меньше чем 100? Я при этом при запуске в итоге вижу вот так вот: 10, конец, 20, конец, 40, конец, 80, конец.
Да, Андрей, прикинь, смотри, ещё раз вот это убираем и видим вот такой ответ. Вот это вот такой ответ. То есть от того, что я поставил четыре пробела, зависит результат программирования. Это капец. Это очень непривычно для ребят, которые привыкли писать там на паскали, на плюсах, ещё на чём-нибудь. Но при этом, обратите внимание, это позволяет мне избавиться от вот этих вот всяких гиновян языке программирования, на котором все учились писать. Надо писать Бен в плюсах, надо писать аналогично фигурные скобки, начинающиеся и заканчивающиеся. И типа это немножко на самом деле, как бы, очень приятно, привычно для программистов, которые дофига пишут.
Ну и тогда ты, получается, благодаря фигурным скобкам можешь дальше не писать, что хочешь. Ну, типа ты вот, если ты хочешь вынести это из цикла, то ты пишешь это за пределами фигурных скобок. Вот так это в плюсах работает. Но, обратите внимание на то, насколько это неприятно выглядит для новичков, когда у тебя в огромном коде очень много всяких лишних служебных символов. Убираешь вот эти служебные символы, оставляешь вот тут вот двоеточие, чтобы он понял, что конец условия произошёл. А дальше ты визуалом как бы отличаешься, очередная строчка. На каком уровне в питоне, короче, очень важно то, ну на какой вот, на какой линии у тебя написана строка. Если эта строка написана как бы на четыре пробела вот так вот вправо, то она находится внутри цикла. Если она написана вот так вот, то она находится вне цикла, и таким образом выполняется один раз в конце. А вот это выполняется каждый раз после каждого удвоения. Вот такая штука.
А разобрались? Хорошо, прекрасно. Давай теперь, ну вот такая прога, что выведет? Что вы видите, данная прога? Ну, чисто к вам вопрос, кстати. Написать сообщение - это лишняя часть чата, я вот что осознал. Поэтому давайте сделаем вот так вот, и тогда вас будет больше видно. [музыка] Вот так вот сделаем, вот так теперь у вас больше видно и меньше лишних служебных символов видно. И вообще всё лучше и лучше становлюсь в этом деле. Ваши вопросы у меня решаются, видите, как хорошо. Ещё себя немножко уменьшить. Вот так вообще красота, кайф. Красота и кайф.
Он сто пишет Камиль, потом переобувается и пишет 099. Екатерина тоже пишет 099. Ну кто же из вас прав? Как по видимому, оба правы, раз у обоих 09 ответ. Запускаем и получаем ответ 99 в конце, ноль в начале. Ну да, прекрасно. А ещё давайте внимание, дурацкий вопрос. Сколько чисел наша программа написала? Сколько чисел на экране на данный момент? Типа чисто просто такой математический вопрос от, ну, до 99. Сколько чил? 100, красность. Например, если я попрошу её писать Hello, то она напишет Hello. Сколько раз? 100 раз, потому что она сейчас 100 раз выполнила операцию Print. Чтобы это увидеть, давайте напишем X зап Hello, и мы увидим ответы такие. Прекрасно, 100 чисел от нуля до 99.
А что вы видите, вот эта программа? Эта программа - это первая содержательная программа, которую мы сегодня написали. Предыдущие были все какими-то тренировочными упражнениями. А эта программа делает что-то солидное, что-то такое, что человек уже не осилил бы сделать руками сам, потому что это сложно, долго, муторно и так далее. Это уже такой пример автоматизации, немножко условно. Какой-нибудь школьник на уроке математики забыл о зал, таю про, вспомнил. Спасибо, Екатерина. Причём не просто в степени, а в степени именно 2, то есть в квадрате.
Ну, вводит таблицу квадратов. Да, смотрите, 0к - это 0, 1к - это 1, 2к - 4, 3к - 9, 4к - 16, 5к - 25, 6к - 36 и так далее, 99к - это 9801. Таблица квадратов получается для чисел от, ну, до 99. Ну, а если вам хочется от, ну, до 1000, то как бы без проблем. Вот, пожалуйста, от, ну, до 999 таблица к. Да, без проблем, вся совершенно. А хорошо, круто, что таблица квадратов. А давайте не все квадраты возьмём. Давайте этот принт будем выполнять не всегда. Давайте вообще не будем этот принт выполнять. Давайте, знаете, когда его выполним? Мы этот принт выполним вот так вот. Я с табуляцией его раз, ещё раз напишу, а тут напишу так: если X равно 27, тогда Print X.
Обратите внимание, я сделал ещё одну табуляцию вправо. Тогда эта программа перебирает 100 чисел от нуля до 99, но только на числе 27 делает такой принт. Можно было, конечно, просто эту программу заменить на Print 27, запи 27к. Да, давайте сделаем что-нибудь поинтереснее. Равно 27 неинтересно. Давайте, например, сделаем так: процент 10 = 7. Вот такая программа выведет таблицу квадратов, но только для тех чисел, у которых последняя цифра определена на 10, даёт остаток 7. Типа те числа, которые дают остаток 7 при делении на 10, то есть числа, у которых последняя цифра 7. Только для таких чисел она выдаёт таблицу квадратов.
Прикольно, да? Только для чисел, у которых квадрат больше чем 1000, надо выписать и при этом квадрат меньше чем 2000. Выписать все числа, у которых квадрат больше 1000, но меньше 2000. Давай их ещё посчитаем. Заведём специальную переменную K, которая будет увеличиваться каждый раз, когда мы нашли нужное число, и в конце принта нём количество таких чисел, запятая K. Офигенно! Я решил только что математическую задачу, но решил её с помощью программы. Сколько чисел квадрат которых больше тысячи, но меньше 2000? Руками решать такую задачу неприятно. Ну, надо найти число, которое в квадрате больше тысячи, это 32. Найти число, которое в квадрате меньше чем 2000, но такое самое большое 44. Ну, посчитать количество чисел от 32 до 44. Это надо Е не туну, потому что 32 - это 12, а ответ 13, потому что там принцип плюс-минус срабатывает. Знаешь, когда из 44 вычитает, получаешь неправильный ответ. Количество чисел на единицу больше, это как если взять бревно и сделать на нём три распила, получится четыре кусочка. Вот эта вот плюс-минус, лишняя единица, вот эта, она получается за счёт того, что у тебя количество чисел на 1 больше, чем количество расстояний между числами. 33 - это, хотя они вплотную находятся между ними, расстояние, но при этом два числа, 34 - 33 - 32, да, это получается 34 - 32 - это двоечка, хотя там три числа.
Здесь тоже самое. У тебя 13 кусочков, но 44 - 32 - это всего лишь 12 расстояние. Эс такое-то. Мы сейчас научились делать. Мы научились if вставлять внутрь цикла while. С помощью цикла мы научились перебирать дофига чисел, а с помощью if мы научились с этими перебрасывать. Давайте вот здесь напишем Print X. Что выведет данная программа? Вот такая, это к вам вопрос, что выводит данная прога? Ноль, а потом это же значит, что она принтут ноль. Он же меньше 100, да? Потом снова заходит в X, me 100, всё ещё.
Тогда заходит 100, да, заходит принтут 0. X меньше 100, заходит, да, принтут 0, принтут, но-но-но-но-но, конец отсутствует. Конца нет, без конца. Она выводит нули. Это называется бесконечный цикл. Ну, потому что он бесконечно действует, да. Конца у него нет. Чтобы это остановить, просто нажать стоп или там какой-нибудь Ctrl C, Command C, в зависимости от того, на чём вы пишите. Там сейчас, что, блин, какой-нибудь, короче, я забыл шорткат для Мака. Ну ладно, в общем, давайте убьём его. Просто тут какой-нибудь есть процесс. Короче, вот эта кнопка остановили, убили, получается, процесс, он перестал выводить нули.
Вот Keyboard interrupt - это тоже ошибка, которую он чувствует как полноценную ошибку, и он такой: "Чувак, а я понял". Я пытался Ctrl X нажать, будучи при этом в основном окне. Короче, вот что сейчас произошло. Он выводил, выводил, выводил, выводил, а потом в какой-то момент я отправил ему команду остановки, и он эту команду выполнил, и получилось при этом исключение, то есть ошибка, грубо говоря. И эта ошибка вот красным текстом, у неё есть название: keyboard interrupt. Короче, бесконечный цикл. Бесконечный цикл возникает, когда вот это условие выполняется всегда. То есть мы должны эту переменную X менять, чтобы оно типа работало, чтобы как-то могло меняться и менять нормальным способом.
Например, если я буду уменьшать на единичку, то у меня X будет просто уменьшаться и уходить в бесконечные минусовые числа. Вот эти, но при этом цикл никогда не остановится. Такой не годится, не работать, неинтересно. Давайте мы сделаем так, а будем увеличивать X, но поменяем тут как-то условие. Короче, условия с X. Зачем нам вообще X? Может, надо было просто как-то написать принт 0 и здесь написать просто пока 0 меньше чем 100. Никаких переменных не надо. Просто вот вам бесконечное количество нулей. Давайте не бесконечное количество. Ну давайте так: я у мамы программист. Вот так вот напишу. Вот это вот будем условие бесконечно выводить.
Ну а какое ещё условие выводить? Да, мам, смотри, я написал прогу, в которой я просто пишу: "Я у мамы программист". Бесконечно пишу. Ой, какой программист ужасный, страшный. Но меньше 100 всегда же. Ну да, 0 меньше 100. Какое-то страшное условие. Давай напишем 0 меньше чем 1. Вот условие попроще, которое тоже всегда выполнено. И оно тоже будет вечно выполняться. Совместно, вот оно выполняется, выполняется. Прекрасно. Давайте ещё какое-нибудь условие попроще, которое точно всегда выполнено. Давайте, например, напишем условие, которое всегда истинно. Это условие просто вот такое: True. True - это всегда правда. True - это правда, потому что по сути по своей правда.
While True, и он такой: "Ну, кажется, это просто всегда правда". И просто вот такая программа бесконечно выполняет что-то. Ну, например, что можно сюда поместить, чтобы это было содержательно, по смыслу и как-то нормально? Сюда можно поместить, например, считывание числа, считывание другого числа, потом принт вот так вот, и потом плюсик, потом Y, потом знак равенства, потом вопросительный знак. Потом мы будем вот так вот делать: Z равен int input, и потом мы такие: если X + Y реально равно Z, тогда принт: "Молодец", иначе принт: "Дурак". Здесь напишем вот так вот: принт: "Введите два числа". Вот такая программа. Она говорит мне: "Введите два числа". Я такой: "17", я такой: "13", и она такая: "17 + 13, сколько будет?" Я такой: "Просчитался".
Но где сам написал ей два числа, а она потом мне говорит: "17 + 133, это сколько?" И я такой: "40", она такая: "Дурачок, введите два числа". Ну и так, да, плюсик в чат, если вы полностью понимаете, как данная программа работает, всё в ней вам понятно, вопросов не вызывает. Иззи, сзи, как бы, ничего такого. Написали цикл бесконечный, ну такого прин, какой-то два и инпута, который считывает строчку, переделает в число, потом выписывает эти X и Y с какими-то ещё штуками, потом проверяет. Ну, типа, поздравляю, да, мы какие-то уже видите, кодики пишем, они что-то запускают, что-то делают интересно, типа даже какую-то штуку делают. Пока очень простую, понятно, но вы что хотели? Ну только начали, не получится.
Вот так вот, о, давайте там напишем сразу, короче, игру или там супер машину времени, сразу какой-нибудь там зать, ещё что-то такое. Но уже что-то прикольно. Давайте, чтобы эта игра работала нормально, давайте ещё очки считать. Давайте заведём переменную, которая будет очки считать. Например, назовём её типа очки. Переменная вообще часто называется английскими словами, которые обозначают по смыслу ровно вот то, что переменные обозначают изначально. Скор будет ноль. Если ты прав, то мы будем твой скор увеличивать на один и писать: "Молодец, у тебя СР очков". А тут мы будем писать так: будем уменьшать на один, если ты ошибся, и писать так: "Дурачок". А тут то же самое: "У тебя вот столько очков". Вот так вот, видите, два числа: 12 и 18. 12, 30, она такая: "Молодец, у тебя один очко".
Ну ладно, немножко с точки зрения русского языка не очень соглас. 99, п1, я такой: "100", она такая: "У тебя два очка". Ну и так далее. А если неправильный ответ, то она будет уменьшать количество очков, и таким образом она ведёт мой счёт. И это хорошо. Вот такая вот программа, приятная, прекрасная, что-то делает. Ну давайте мы ещё что-нибудь тогда изучим. Раз уж мы вышли за границы нашего базового понимания с ветвлением, ну мы типа циклы прошли, давайте мы пройдём цикл 4 сразу. Вот такая вот конструкция: здесь действие, а X увеличивается на один.
Настолько часто применимое, что вместо этой конструкции придумали другую, более короткую, более ярко записывающую конструкцию с циклом. 100 действий. Смотрите, вот это я всё закомментирую, только вот это, и она делает 100 действий. Смотрите, давайте вместо действия сделаю X, и вы поймёте, что происходит. Э, программа выводит от, ну, до 99, то есть программа for X in range 100 перебирает числа от нуля до 99. Таким образом перебирает 100 чисел. То есть если я напишу for X in range 3, то у нас будет 0, 1, 2, три числа. Да, вот то, что я в рендж написал - это количество операций, которое выполняется внутри этого фора. Эти операции всегда ноль, потом один, потом два, ну то есть по увеличению.
Да, от нуля, может, не от нуля. Можно написать, что я хочу, например, от 17 до 23. Тогда X будет 17, 18, 20, 21, 22, до 2 не добегает. Можно сказать от 17 до 90 с шагом 3. Тогда он будет так: 17, потом п 3, 20, п 3, 23, плюс 3, плюс 3, плюс 3, плюс 3, и так пока не дойдёт до числа. Вот 89 больше, дено уже нельзя. С шагом 2 можно сделать то же самое. Да, тоже до 89 добежал. Можно с шагом, не знаю, там 18, тогда типа 17 + 18 + 18 + 18, как я так пода в 9, почти всегда 89. Идеально. Я не понимаю, я не задумывал так. Давайте 19. Вот, всё, не попал. Видите, 74, короче, три параметра может быть у рендж. Если вы не указываете один из параметров, то он их воспринимает как начало и конец.
Если вы не указываете два параметра, оставляете только один, то он воспринимает как цикл от нуля до 90, не включительно. Вот такая штука. Вы можете задавать свои вопросы. Вт, я это на лайвстрим, и в связи с этим у вас есть особая прерогатива. Вы можете спрашивать, как работают те или иные штуки или что-то у вас, не знаю, интерес возник. Вы такие: "А может, оно вот так вот работать?" Или вот, ну что-то ещё там, вот, а вот такое получится или как, вот вообще это вот, ну что-то такое. Или это такая работа. Вот, задавайте эти вопросы, короче, цикл 4 у нас есть. Хорошо, хорошо, и цикл while у нас есть, и мы получается у int плюс строка как обработает.
А, я это не показывал. Он обработает как ошибку, запрет сложения int и строки. А смотри, X = число 18, Y равен Hello. Я попытаюсь сложить X + Y и получу ошибку Type Error. Давайте прочитаем ошибку. Это ошибка типа unsupported operand types for plus
True, fse, вот эти вот булевы какие-то данные, а массивы тоже являются типами данных на самом деле. То есть массив — это тип данных. У нас данные могут быть в форме массива, сразу как-то организованы.
И даже вот что-то немножко про Сеп и про энды. Потрогай, прошли и так далее. Мы на самом деле с вами за... А вот текущее время — это час 44. У нас стрим сейчас идёт, за это время мы прошли контента на несколько уроков.
Так-то, то есть если бы вы проходили это же самое, просто вот размазано в форме, не знаю, ну короче, на курсе на каком-нибудь или условно где-нибудь в форме уроков в школе. Вот в школе, например, если Питон девятиклассникам дают, то обычно весь контент, который я сейчас рассказал за час 45, размазывают на, ну, уроков, не знаю, на... на се совершенно спокойно.
То есть очень долго с детьми будут сидеть на самых первых базовых операциях, типа сложение, вычитание. Это не потому что дети тупые, а что школьная программа так устроена. Потому что надо типа сначала там сделать, закрепить и так далее.
Далее тут вопрос в том, что это на самом деле понятно. Если похо, то есть если правильно, под правильным углом, что ли, надо посмотреть. Я не знаю, в правильной форме, с правильными задачками сделать и так далее.
Вот, но давайте не обманываться. Челлендж, который перед вами сейчас стоит, вызов — это повторить всё это. Повторить в смысле у себя на компе, запустить какие-то программы, попробовать самостоятельно ручками что-то написать.
Потому что увидеть это на экране — это одна история, а попробовать это самостоятельно, самому сделать, задуматься, а что вот такое действие. Вот это сде... вот часть, которой я хочу вас снарядить.
Это попробуйте пообщаться с ChatGPT. Если вы ещё как бы не шарите за то, что сейчас GPT можно ботать прогу, то вот попробуйте. Это значит, вы можете прийти туда и спросить, а как работает та или иная штука.
А вот я в Питоне прошёл какой-то там базовый синтаксис. А дай мне какую-нибудь задачку, очень лёгкую, чтобы там, ну, использовалось, не знаю, if и print и циклы, что-нибудь такое.
И Python, ой, и ChatGPT даст тебе задачку, а ты напишешь в ответ код, и он такой: "О, это действительно правильно, оно действительно вот так делает", или "Вот что-то не учитывается", или "Что-то учится", ещё что-то такое.
И у тебя получается такой самоучитель автоматический. Вот, но превыше всего, конечно, я тебя зову на чат наш в телеге, чтобы ты там сидел и тусовался со мной. Я там в чате есть.
Я сейчас пойду и помашу там ручкой со своего личного аккаунта, и мы с тобой поговорим. Вообще, вот если ты сейчас на стриме со мной по взаимодействовал, тебе по кайфу, то приходи как бы на чат и взаимодействуй со мной дальше между этими стримами.
Это первый среди многих. В общем, вообще подписывайся на канал, тут будет дофига всего и так далее. Вот, а ну ещё в описании есть бесплатный курс вводный по Питону.
На вот если ты сейчас за 2 часа почувствовал, что как бы я тебе дал пользы, то подумай, сколько пользы я тебе могу дать, если ты пустишь меня в свою жизнь больше чем на 2 часа. Много спойлер, много могу объяснить тебе прог.
Вот, всё, на этом мы закончим. Спасибо за ваше внимание. А я не знаю, как там обрубить или не обрубили, потому что я первый раз стримлю на ВК видео.
Вот, а ну и, наверное, сейчас просто нажму на кнопку и как пойдёт. Да, пожалуйста, всё кайфу и давайте работать. А, и пока-пока, увидимся.