[МУЗЫКА] Итак, посмотрим, как же работать с переменными и более продвинутыми возможностями команды Print. Для начала давайте посмотрим, как можно увидеть эталонный блокнот. Например, мы скачали в материалах курса эталонные блокноты. Они у нас лежат в папке «Загрузки», где-то там. Вот, например, эталонный блокнот к прошлому видео. Мы можем нажать по кнопке Upload, указать наш файлик, который мы хотим посмотреть. Нажать на кнопку Upload, и он у нас доступен теперь внутри программы Jupyter Notebook. Как видите, здесь есть весь эталонный блокнот для прошлого видео. Его можно запускать. Он будет работать. С ним можно экспериментировать и все такое. Давайте, наверное, теперь перейдем к текущей новой практике. Создадим новый файл. И попробуем вывести на экран несколько строчек сразу. В прошлый раз мы выводили всего одну строчку за одну программу. Давайте напишем какое-нибудь стихотворение. Например, давайте напишем стихотворение Сергея Есенина «Черный человек». И выведем его на экран так, как будто бы это стихотворение, то есть в четыре разные строки. [ЗВУК] Так как мы пока не знаем, как это работает, то мы просто пробуем вывести каждую строчку в отдельной команде Print. И оказывается, что команда Print каждый раз, когда она заканчивается (то есть вот она вывела строчку), она командует компьютеру следующую строчку начинать выводить с новой строки. Давайте теперь попробуем как-нибудь сэкономить себе текст. В одном из следующих кусочков стихотворения есть строчки, которые повторяются дважды. Это, непосредственно, строчка «черный человек». Давайте сохраним ее в переменную. Чтобы сохранить что-либо в переменную, нам нужно придумать этой переменной имя. Имя может быть любым. С некоторыми небольшими ограничениями: имя не может дублировать какую-то команду языка Python. Это будет плохо работать, если мы вдруг решим создать внутри языка что-то с названием Print, потому что тогда язык не будет понимать, что же он должен делать. Он должен выполнить команду Print или он должен вспомнить, что Print — это свежесозданная нами переменная. Соответственно, давайте уберем слово «черный человек» в переменную с названием text, а остальные строчки выведем на экран в том виде, в котором они есть. [ЗВУК] [ЗВУК] [ЗВУК] Как видите, переменные прекрасно работают. Вы сказали компьютеру: каждый раз, когда ты увидишь слово text, вспоминай, что это фраза «черный человек». И компьютер послушно это делает. Мы сказали: выведи, пожалуйста, то, что лежит внутри переменной text. И компьютер вспомнил, чему равна переменная text, и вывел ее. Но, к сожалению, зачастую мы, вообще говоря, не можем просто так взять и указать компьютеру, чему же равна переменная. Очень часто мы и сами не знаем, что же будет делать наша программа. Мы догадываемся, как ее будут использовать, но очень часто программист сам своей программой не пользуется. Например, мы можем сделать программу, которая поможет людям печатать пригласительные на спектакли студенческого театра, но, скорее всего, я как программист, который написал программу в помощь на печать таких пригласительных, сам эти пригласительные печатать не буду. Таким образом я, вообще говоря, не знаю, на чье имя это пригласительное нужно будет напечатать. И в этом случае мне нужно написать программу так, чтобы не другой человек разбирался с языком Python, открывал исходный код и менял какие-то переменные, а чтобы компьютер сам у человека спросил, человек ему что-то сказал, и компьютер этим воспользовался. Чтобы мы научили компьютер спрашивать, нам нужно воспользоваться командой input. Собственно, напишем программу, которая помогает печатать пригласительные, создавая тексты для того имени, которое было введено. Что мы делаем? Мы говорим компьютеру: создай, пожалуйста, переменную name (имя) и спроси ее у человека. В тот момент, когда компьютер увидит команду input, он создаст текстовое поле и будет покорно ждать, пока человек не укажет имя, для которого нужно напечатать пригласительные. [ЗВУК] [ЗВУК] [ЗВУК] Что мы сейчас сделали? Мы сказали компьютеру: «А теперь выведи, пожалуйста, на экран слово "Привет". И с небольшим отступом (компьютер поставит там просто пробел) выведи то имя, которое только что человек тебе сказал (которое хранится в переменной name)». Давайте пока проверим, что это действительно работает. Как видите, это действительно работает. Компьютер, как только я нажал на кнопку «Запустить программу», создал текстовое поле, дождался того момента, пока я не введу туда имя, (нажму Enter) и только после этого компьютер выполнил команду print и непосредственно поздоровался с Аней. Давайте напишем программу до конца, то есть укажем уже полное пригласительное. [ЗВУК] [ЗВУК] [ЗВУК] Мы просто повторили ту же самую программу, которую мы уже проверили, что точно работает. И теперь дописываем туда пригласительное на спектакль «Обыкновенное чудо». [ЗВУК] [ЗВУК] [ЗВУК] [ЗВУК] Обратите внимание, у нас есть два разных вида кавычек в одной команде. Первая кавычка — одинарная — говорит компьютеру о том, что все, что находится внутри этой кавычки, нужно вывести на экран, а те кавычки, которые видит человек, пишутся двойными. В целом, Python позволит нам сделать и наоборот, если мы, например, внешними кавычками (которые для компьютера) укажем двойную кавычку, а внутри будем использовать одинарную. Все тоже прекрасно будет работать. [ЗВУК] Единственное, чего нельзя делать, нельзя смешивать кавычки и случайно использовать в качестве кавычек для человека те же самые кавычки, что мы используем для того, чтобы объяснить компьютеру, что же надо вывести на экран. Сейчас, например, я использую ординарные кавычки, и для того чтобы сказать компьютеру о том, что весь текст нужно вывести на экран, и для того чтобы человек увидел внутри кавычек название спектакля и название театра. [ЗВУК] И в этом случае компьютер, опять же, как и в прошлый раз, будет нам жаловаться, что он не может понять, что мы от него хотим. С точки зрения компьютера, одинарная кавычка перед словом «обыкновенная» закрылась. А с точки зрения компьютера, слова́ «обыкновенное чудо» на экран выводиться не должны, и компьютер решительно не понимает, что же с ними делать, о чем он нам и говорит с помощью фразы SyntaxError. Какие же есть ограничения на переменные, о которых уже я говорил чуть-чуть выше? Кроме того, что переменная не должна повторять какое-то слово языка, то есть так лучше не делать, лучше не писать, что команда input чему-то там равна. Компьютер, вроде бы, нас поймет, но команда input после этого, скорее всего, работать не будет. Во-вторых, нельзя начинать переменную с цифры. Например, если мы хотим помнить имя человека, то есть его first name, и фамилию человека, то есть его last name, то слово first нельзя писать как 1st. Так как 1st name — это не очень хорошо, и компьютер нас просто не поймет. Он даже не даст нам создать такую переменную. С точки зрения компьютера любая переменная начинается только с буквы. И, наконец, последнее ограничение которое есть в языке Python: все переменные и вообще все слова, которые мы создаем для компьютера, должны быть написаны всегда одинаково. Например, если мы храним имя в переменной name (написано с маленькой буквы), а потом вдруг решили распечатать его на экран и написали имя с большой буквы, компьютер совершенно справедливо нам скажет, что у него есть ошибка с именами. И имя переменной Name (с большой буквы) не определено. Нет у него такого имени. Он его просто не знает. Вот так работать с переменными в языке Python. И такие главные ошибки может вам написать компьютер, когда вы будете выполнять самостоятельные задания по этой неделе. Спасибо. И до следующих встреч. [МУЗЫКА]