[МУЗЫКА] [МУЗЫКА] Посмотрим, что интересного мы можем сделать со строками в Python. Убираем наш старый код и думаем, что можно сделать. Во-первых, в строку можно положить что-то и сохранить это в переменной. Например, мы хотим вывести фразу из фильма про Терминатора Hasta la vista, baby. Мы можем сделать переменную, как я уже говорил, кавычки могут быть любые. Мои знания испанского не очень хороши, но сейчас я попробую написать. Итак, вот она наша фразу и к кому она обращена. Мы можем сохранить это в отдельной переменной. Фраза — Hasta la vista, а к кому — к baby. Кавычки я вам показал, просто разные, чтобы вы видели, что это работает. На самом деле лучше пользоваться одним типом, чтобы все было единообразно. Потому что когда разные кавычки, у людей сразу возникает вопрос, зачем так сделано, почему так. На самом деле, разные кавычки могут пригодиться в таком простом случае, что делать, если вы хотите использовать кавычки внутри строки. Например, мы хотим, чтобы выражение baby выглядело иронично и окружить его двойными кавычками. Тогда мы всю строку окружаем одинарными кавычками, и двойные уже не будут выступать признаком конца строки. Это будет просто выводиться, когда мы напечатаем. Итак, мы хотим напечатать сначала фразу, а затем — к кому она обращена. Две переменные через запятую. Отлично. Вот оно напечатало не очень красиво. У нас проблема с пунктуацией. Как можно избежать проблем с пунктуацией? Например, мы хотим вставить запятую, которой у нас нет в нашей переменной, мы можем просто печатать как переменные в print, так и какие-то конкретные строки, и все это перемешать между собой. Мы уже помним, что у нас есть разделитель, который подставляется на место запятой, и по умолчанию это пробел. Мы хотим сделать, чтобы у нас пробела не было, а было пустое место. Пишем sep- равно пустому месту. И можем, например, поставить в конце восклицательный знак для убедительности, хотя на испанском по-хорошему еще и в начале нужно ставить перевернутый восклицательный знак. Но я не умею набирать его на клавиатуре, поэтому у нас будет такой не настоящий испанский. Отлично. Теперь оно вывелось ровно так, как мы хотели. И суть была в том, чтобы научиться сохранять строки в какие-то конкретные переменные. Как мы уже пробовали сделать, сложить строку с числом, так сделать нельзя. Но если очень хочется, то можно превратить число в строку. Для этого существует специальная функция str — сокращение от string. Немного отвлекусь: string — это «нить» по-английски. На нее как бы нанизываются отдельные символы. Вообще русскому слову «строка» соответствует несколько английских слов, и string можно рассматривать как последовательность символов. Итак, наша цель — научиться превращать число в строку. Например, возвращаясь к нашему сложению чисел 2 и 3, мы можем посчитать результат вычисления этого выражения, сделать строку, содержащую текстовую запись, то есть символы, 2, пробел, плюс, пробел, 3 и, например, равно. Вот оно, наше текстовое представление. И затем напечатать склеенные две строки. Что такое склеивание строк? Вообще, по-научному это называется конкатенация. Этим словом мы будем пользоваться. Это значит, просто сначала записать одну строку, а потом сразу же к ней приделать вторую строку. То есть мы можем написать: строковая переменная плюс другая строковая переменная. В принципе, вместо переменной может сразу быть вставлена какая-то строка в кавычках. Запускаем, и опять не работает. Строку с числом по-прежнему нельзя сложить. Но мы знаем теперь, что у нас существует функция str, и можем прямо здесь ее вызвать. Что такое функция, мы сейчас не будем глубоко вникать. Пока можно понимать, что это как в математике функция. То есть у вас есть какой-то параметр в скобочках, и применяется функция к этому параметру, и подставляется значение, которое было вычислено. Вот здесь у нас будет текстовое представление результата вычисления переменной ans, то есть пятерка. Отлично. Оно сработало и даже вывело то, что мы хотим. То есть после того как мы применили функцию str, у нас это уже не число, а строка. При этом значение переменной ans по-прежнему будет числом. То есть только подставится на место вызова функции str от ans строка, а ans само не изменится, то есть параметр функции не изменяется. Мы можем это проверить легко. Например, вывести наш ответ +1. Должна появиться шестерка, а если бы оно превратилось в строку, тогда бы вывелось... ничего. Была бы ошибка. Но у нас ошибки нет. То есть понятно, в функцию параметр, которой передается, он остается неизменяемым, только подставляется результат вычисления функции в том месте, где она была вызвана. Это иногда бывает удобно в случае, если вы хотите каким-то образом собрать сложную строку, то есть какое-то сложное выражение, вставляя туда результаты вычислений. Даже более сложную, чем наша, потому что нашу, естественно, можно было сделать printом. Иногда это получается слишком громоздко, приходится вставлять, придумывать какие-то пробелы, и плюсиками гораздо проще скомпоновать эту строку так, чтобы она выглядела ровно так, как мы хотим. Если случайно вы сделаете str от уже строки, то есть вызовете функцию преобразования в строку для строки, то ничего страшного не произойдет. Строка так и останется строкой. Конечно, специально этого делать не нужно, потому что это неразумно преобразовывать строку в строку. Но если случайно так произошло, или вы не знаете, что вам передадут — или число или строку, то ничего страшного не происходит, бояться этого не нужно, но и специально делать этого тоже не нужно. Кстати, в процессе разработки, возможно, вы заметите много таких проблем. Сейчас я навел курсор, и у меня всплыла подсказка: PEP 8 no newline at end of file. PEP 8 — это требование к стилю оформлению программ. Если я не соблюдаю требования, то программа работать будет, но это считается некруто. Это как писать с грамматическими ошибками или не ставить пробел после запятой или еще что-то. Мы будем проверять ваши программы на соответствие стилю. Они должны выглядеть хорошо, стиль специально придумали так, чтобы читать людям было удобно, комфортно, символы не слипались, но и не было вообще никаких неприятностей. Поэтому если у вас вдруг всплывает такая подсказка, то обычно понятно, что от нас хотят. Например, здесь нам говорят, что нет новой строки в конце файла. Это момент, с которым не все согласны, что нужно ставить, такой дискуссионный. Но если уж хотят от нас, то давайте поставим. Пусть у нас будет пустая строка в самом конце, нам она не мешает, но если стиль того требует, то почему бы и не сделать. Иногда бывают и другие ошибки, которые тоже можно увидеть. Или не увидеть. Поэтому если вдруг вы написали программу, которая у вас работает, отправили на проверку и получили какое-то сообщение о том, что у вас плохой стиль, то постарайтесь понять, там пишется, к какой строке это относится, и исправить эту ошибку, чтобы ваши программы выглядели красиво. А красивые программы мы, конечно же, будем принимать с радостью, ну и чего мы не можем проверить автоматически — это осмысленность названия переменных. Пожалуйста, здесь старайтесь сами называть переменные так, чтобы было понятно, к чему они относятся, и не пользоваться транслитом, а писать нормальные английские слова. Почему? Потому что, опять же, когда вы напишете какой-то большой классный проект, выложите его, например, в общий доступ, и люди со всего мира захотят немножко поправить его под свои нужды или помочь вам в разработке, и когда они увидят ваши слова, написанные транслитом, они ничего не смогут понять и не смогут помочь вам и забросят это дело, и разочаруются в программировании. Поэтому пользуйтесь онлайн-переводчиком, если чего-то не знаете, и старайтесь называть переменные так, чтобы они выглядели понятно, и все было легко, просто, как будто вы читаете художественную литературу. [МУЗЫКА] [МУЗЫКА]