Python курсы для начинающих: Экранированные последовательности | Python

Содержание

Экранированные последовательности | Python

Мы хотим показать диалог Матери Драконов со своим ребенком:

- Are you hungry?
- Aaaarrrgh!

Если вывести на экран строку с таким текстом:

print("- Are you hungry?- Aaaarrrgh!")

то получится так:

- Are you hungry?- Aaaarrrgh!

Не то, что мы хотели. Строки расположены друг за другом, а не одна ниже другой. Нам нужно как-то сказать интерпретатору «нажать на энтер» — сделать перевод строки после вопросительного знака. Это можно сделать, используя символ перевода строки: \n.

print("- Are you hungry?\n- Aaaarrrgh!")

результат:

- Are you hungry?
- Aaaarrrgh!

\n — это пример экранированной последовательности (escape sequence). Их еще называют управляющими конструкциями. Эти конструкции не являются видимой частью строки, их нельзя увидеть глазами в том же виде, в котором они были набраны.

Набирая текст в каком-нибудь Word, вы нажимаете на Enter в конце строчки. Редактор при этом ставит в конец строчки специальный невидимый символ, который называется LINE FEED (LF, перевод строчки). В некоторых редакторах можно даже включить отображение невидимых символов. Тогда текст будет выглядеть примерно так:

- Привет!¶
- О, привет!¶
- Как дела?

Устройство, которое выводит соответствующий текст, учитывает этот символ. Например, принтер при встрече с LF протаскивает бумагу вверх на одну строку, а текстовый редактор переносит весь последующий текст ниже, также на одну строку.

Хотя таких символов не один десяток, в программировании часто встречаются всего несколько. Кроме перевода строки, к таким символам относятся табуляция \t (разрыв, получаемый при нажатии на кнопку Tab) и возврат каретки \r (только в Windows). Распознать управляющую конструкцию в тексте проще всего по символу \. Нам, программистам, часто нужно использовать, например, перевод строки \n для правильного форматирования текста.

print("Gregor Clegane\nDunsen\nPolliver\nChiswyck")

На экран выведется:

Gregor Clegane
Dunsen
Polliver
Chiswyck

Обратите внимание на следующие моменты:

1. Не имеет значения, что стоит перед или после \n: символ или пустая строка. Перевод будет обнаружен и выполнен в любом случае.

2. Помните, что строка может содержать лишь один символ или вообще ноль символов? А еще строка может содержать только \n:

print('Gregor Clegane')
print("\n")
print('Dunsen')

Здесь мы выводим одну строку с именем, потом одну строку «перевод строки», а потом еще одну строку. Программа выведет на экран:

Gregor Clegane


Dunsen

3. Несмотря на то, что в исходном тексте программы последовательность типа

\n выглядит как два символа, с точки зрения интерпретатора это один специальный символ.

4. Если нам понадобится вывести \n именно как текст (два отдельных печатных символа), то можно воспользоваться уже известным нам способом экранирования, добавив еще один \ в начале. То есть последовательность \\n отобразится как символы \ и n, идущие друг за другом.

print("Joffrey loves using \\n")

На экран выйдет:

Joffrey loves using \n

Небольшое, но важное замечание про Windows. В Windows для перевода строк по умолчанию используется

\r\n. Такая комбинация хорошо работает только в Windows, но создает проблемы при переносе в другие системы (например, когда в команде разработчиков есть пользователи как Windows, так и Linux). Дело в том, что последовательность \r\n имеет разную трактовку в зависимости от выбранной кодировки (рассматривается позже). По этой причине в среде разработчиков принято всегда использовать \n без \r, так как LF всегда трактуется одинаково и отлично работает в любой системе. Не забудьте настроить ваш редактор на использование \n.

Задание

Напишите программу, которая выводит на экран:

- Did Joffrey agree?
- He did.
He also said "I love using \n".

При этом программа использует только один print(), но результат на экране должен выглядеть в точности, как показано выше.

Проверка не проходит и я не знаю что делать 😶

Если вы зашли в тупик, то самое время задать вопрос в обсуждениях. Как правильно задать вопрос:

  • Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет 🤨

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы отловить этот момент, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Мой код отличается от решения учителя 🤔

Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.

В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Ничего не понятно 🙄

Создавать обучающие материалы, понятные для всех без исключения — занятие довольно сложное. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, то опишите его в обсуждениях. Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.

Полезное

Определения

  • Экранированная последовательность — специальная комбинация символов в тексте. Например, \n — это перевод строки.

Привет, Мир! | Python

По традиции начнем с написания программы «Hello, World!». Эта программа будет выводить на экран текст:

  Hello, World!

Чтобы вывести что-то на экран, нужно дать компьютеру специальную команду. В языке Python такая команда — print().

Задание

Наберите в редакторе код из задания символ в символ и нажмите «Проверить».

print('Hello, World!')

Внимание: если вы напишете heLLo, woRld! вместо Hello, World!, то это будет считаться другим текстом, потому что заглавные и строчные буквы — это разные символы, отличающиеся регистром. В программировании регистр практически всегда имеет значение, поэтому привыкайте всегда обращать на него внимание!

Проверка не проходит и я не знаю что делать 😶

Если вы зашли в тупик, то самое время задать вопрос в обсуждениях. Как правильно задать вопрос:

  • Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет 🤨

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы отловить этот момент, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Мой код отличается от решения учителя 🤔

Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.

В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Ничего не понятно 🙄

Создавать обучающие материалы, понятные для всех без исключения — занятие довольно сложное. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, то опишите его в обсуждениях. Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.

Полезное

Конкатенация | Python

В веб-разработке программы постоянно оперируют строками. Всё, что мы видим на сайтах, так или иначе представлено в виде текста. Этот текст чаще всего динамический, то есть полученный из разных частей, которые соединяются вместе. Операция соединения строк в программировании называется конкатенацией.

# Оператор такой же, как и при сложении чисел
# но здесь он имеет другой смысл (семантику)
print('Dragon' + 'stone')
# => 'Dragonstone'

Склеивание строк всегда происходит в том же порядке, в котором записаны операнды. Левый операнд становится левой частью строки, а правый — правой.

Вот еще несколько примеров:

print('Kings' + 'wood')      # => Kingswood

# Обратный порядок слов
print('road' + 'Kings')      # => roadKings

# Конкатенировать можно абсолютно любые строки
print("King's" + 'Landing')  # => King'sLanding

Как видите, строки можно склеивать, даже если они записаны с разными кавычками.

В последнем примере название города получилось с ошибкой: King’s Landing нужно писать через пробел! Но в наших начальных строках не было пробелов, а пробелы в самом коде слева и справа от символа + не имеют значения, потому что они не являются частью строк.

Попробуем решить эту проблему разными способами:

# Оба способа равнозначны

# Ставим пробел в левой части
print("King's " + 'Landing')  # => King's Landing
# Ставим пробел в правой части
print("King's" + ' Landing')  # => King's Landing

Пробел — такой же символ, как и другие. Чем больше пробелов, тем шире отступы:

print("King's " + ' Landing')    # => King's  Landing

print("King's  " + '  Landing')  # => King's    Landing

Задание

Выведите на экран

Winter came for the House of Frey.

используя конкатенацию слов.

Проверка не проходит и я не знаю что делать 😶

Если вы зашли в тупик, то самое время задать вопрос в обсуждениях. Как правильно задать вопрос:

  • Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет 🤨

Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы отловить этот момент, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.

Мой код отличается от решения учителя 🤔

Это нормально 🙆, в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.

В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.

Ничего не понятно 🙄

Создавать обучающие материалы, понятные для всех без исключения — занятие довольно сложное. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, то опишите его в обсуждениях. Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.

Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.

Определения

Курсы Python онлайн — курсы Python для начинающих от Udemy

Python — один из самых популярных языков программирования. Его изучают для дальнейшего знакомства с пайтоновскими библиотеками Data Science и Machine Learning, для написания скриптов и автоматизации тривиальных задач или для веб-разработки.

Изучение можно начать с 10 бесплатных ресурсов, которые собрал Hackernoon для новичков и не только. 

Python Core and Advanced

Комплексный курс для изучения Python, который научит устанавливать Python и создавать свою первую программу. Вы изучите логику, синтаксис, командную строку, а также погрузитесь в объектно-ориентированное программирование.

За 8 часов вам детально расскажут о методе сопоставления с образцом, создании интерфейсов, чтении и записи файлов с помощью API и др.

Записаться

Programming with Python: Hands-On Introduction for Beginners

Курс ориентирован на практические навыки и направлен на устранение препятствий, с которыми сталкиваются многие начинающие программисты. Вас научат загружать и устанавливать Python, настраивать среду разработки и писать первый код. После этого в программе появятся ключевые концепции программирования на Python: переменные и типы данных, числа, операторы, строки, списки, словарь, условные выражения, циклы, функции и способы обработки исключений.

По окончании курса вы создадите свой первый проект и сможете получить скидку на другие курсы преподавателя.

Записаться

Deep Learning Prerequisites: The Numpy Stack in Python

Курс подойдет тем, кто изучает Data Science и Machine Learning на Python. Вы познакомитесь с библиотеками NumPy, SciPy, Pandas и Matplotlib, которые станут базой для дальнейшего погружения в глубинное или машинное обучение и искусственный интеллект.

Курс глубокий и практичный. Вы не только познакомитесь с библиотеками, но и узнаете все плюсы и минусы некоторых моделей машинного обучения, включая Deep Learning, Decision Trees, Random Forest, Linear Regression, Boosting и др.

Записаться

Learn Programming with Python in 100 Steps

Курс для пошагового изучения Python 3, который познакомит не только с самим языком, но и тулами, средами разработки вроде PyCharm и Python Shell.

У вас будет возможность решить множество практических задач, с помощью знаний о структуре данных, концепциях объектно-ориентированного программирования, обработке исключений и файлов.

Записаться

Learn Python 3.6 for Total Beginners

Курс не только учит Python, но и тому, как пользоваться Jupyter Notebook. Он охватывает основы программирования: типы данных, операторы, циклы, функции, обработку ошибок и общие операции со строками. Кроме этого, курс детально рассказывает о структуре данных в Python, включая списки и ранжирование, кортежи и словари. При этом вы постоянно будете делать упражнения, используя полученные знания.

Записаться

Работа на dev.by

The Four Pillars of OOP in Python 3 for Beginners

Бесплатный курс, который сосредоточен на обучении объектно-ориентированному программированию с использованием Python 3. Курс познакомит с основными объектно-ориентированными понятиями, такими как класс, объекты, атрибуты, методы, абстракция, инкапсуляция, наследование и полиморфизм.

К концу курса вы создадите полноценный проект используя объектно-ориентированное проектирование.

Записаться

Try Django 1.11 // Python Web Development

В этом курсе объясняются основы Django 1.11. Если вы учите Python, чтобы разрабатывать веб-приложения, то изучение библиотеки Django может быть очень полезным.

Вы начнете с основ веб-разработки, таких как HTML и Jango Templates, и перейдете к более сложным концепциям, таким как формы, представления, модели и др.

Записаться

Introduction To Python Programming

Курс для начинающих. Вы начнете с загрузки и установки Python, а затем перейдете к созданию своего первого проекта.

Курс объясняет основы языка Python: синтаксис, операторы, функции, циклы, классы, объекты и некоторые стандартные типы данных Python.

Записаться

Learn Python: Build a Virtual Assistant