Python учить язык: Самоучитель Python | Python 3 для начинающих и чайников

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

Мы хотим показать вот такой диалог:

- Are you hungry?
- Aaaarrrgh!

Попробуем вывести на экран строку с таким текстом:

print("- Are you hungry?- Aaaarrrgh!")
# => - Are you hungry?- Aaaarrrgh!

Как видите, результат получился не такой, как мы хотели. Строки расположились друг за другом, а не одна ниже другой. Нам нужно как-то сказать интерпретатору «нажать на Enter» — сделать перевод строки после вопросительного знака. Это можно сделать с помощью символа \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
  1. В коде последовательность \n выглядит как два символа, но с точки зрения интерпретатора — это один специальный символ

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

print("Joffrey loves using \\n")
# => Joffrey loves using \n

В Windows для перевода строк по умолчанию используется \r\n. Такая комбинация хорошо работает только в Windows, но создает проблемы при переносе в другие системы. Например, когда в команде разработчиков есть пользователи Linux.

Дело в том, что последовательность \r\n имеет разную трактовку в зависимости от выбранной кодировки, о чем мы поговорим позже. По этой причине в среде разработчиков принято всегда использовать \n без \r.

В таком случае перевод строки всегда трактуется одинаково и отлично работает в любой системе. Не забудьте настроить ваш редактор на использование \n.

Задание

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

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

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

Упражнение не проходит проверку — что делать? 😶

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

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

В моей среде код работает, а здесь нет 🤨

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

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

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

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

Прочитал урок — ничего не понятно 🙄

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

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

Полезное

Определения

←Предыдущий

Следующий→

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics

Арифметические операции | Python | CodeBasics

На базовом уровне компьютеры оперируют только числами. Даже в прикладных программах на высокоуровневых языках внутри много чисел и операций над ними. Но для старта достаточно знать обычную арифметику — с нее и начнем.

Например, для сложения двух чисел в математике мы пишем: 3 + 4. В программировании — то же самое. Вот программа, которая складывает два числа:

3 + 4

Арифметика в программировании практически не отличается от школьной арифметики.

Строчка кода 3 + 4 заставит интерпретатор сложить числа и узнать результат. Эта программа будет работать, но в ней нет смысла. По сути, мы не даем команду интерпретатору, мы просто говорим ему: «смотри, сумма трех и четырех». В реальной работе недостаточно сообщать интерпретатору о математическом выражении.

Например, если создавать интернет-магазин, недостаточно просить интерпретатор посчитать стоимость товаров в корзине. Нужно просить посчитать стоимость И показать цену покупателю.

Нам нужно попросить интерпретатор сложить 3 + 4 И дать команду сделать что-то с результатом. Например, вывести его на экран:

# Сначала вычисляется сумма,
# затем она передается в функцию печати
print(3 + 4)

После запуска на экране появится результат:

7

Кроме сложения доступны следующие операции:

  • - — вычитание
  • * — умножение
  • ** — возведение в степень
  • / — деление
  • // — целочисленное деление
  • % — остаток от деления

Теперь выведем на экран результат деления, а потом результат возведения в степень:

print(8 / 2)   # => 4. 0 (При делении двух чисел получается тип данных float)
print(3 ** 2)  # => 9

Иногда для удобства мы будем показывать в комментариях результат запуска строчек кода вот так: => РЕЗУЛЬТАТ. Например, # => 4.

Первая инструкция выведет на экран 4 (потому что 8 / 2 равно 4), а вторая инструкция выведет на экран 9 (потому что 32 равно 9).

Задание

Выведите на экран результат деления числа 81 на 9.

Упражнение не проходит проверку — что делать? 😶

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

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

В моей среде код работает, а здесь нет 🤨

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

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

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

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

Прочитал урок — ничего не понятно 🙄

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

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

Полезное

  • Всегда отбивайте арифметические операторы пробелами от самих чисел (операндов) – это хороший стиль программирования. Поэтому в наших примерах print(3 + 4), а не print(3+4).

  • Деление на ноль — порождает ошибку.

  • Деление с остатком

Определения

←Предыдущий

Следующий→

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics

Синтаксис Python | Codecademy

  1. 1

    Привет, мир!

    Если программирование — это процесс обучения компьютера разговору с пользователем, было бы очень полезно сначала научить компьютер говорить. В Python это выполняется командой print…

    Start

  2. 2

    Print Statements

    Существуют две разные версии Python. И Python 2, и Python 3 используются по всему миру. Наиболее существенное различие между ними заключается в том, как вы пишете оператор печати. В Python 3, стр…

    Start

  3. 3

    Строки

    При печати в Python мы предоставляем текстовый блок, который мы хотим распечатать. Текст в Python считается особым типом данных, называемым строкой . Строка, названная так потому, что она…

    Start

  4. 4

    Обработка ошибок

    По мере того, как мы знакомимся с языком программирования Python, мы сталкиваемся с ошибками и исключениями. Это жалобы Python, когда он не понимает, что вы от него хотите. Всем г…

    Начало

  5. 5

    Переменные

    В Python и вообще при программировании нам необходимо создавать системы для работы с данными, которые изменяются со временем. Этими данными могут быть местонахождение самолета, время суток, телевизор…

    Старт

  6. 6

    Арифметика

    Компьютеры способны исключительно хорошо выполнять арифметические операции. Сложение, вычитание, умножение, деление и другие числовые вычисления легко выполняются в большинстве программ…

    Старт

  7. 7

    Обновление переменных

    Изменение содержимого переменной является одной из основных операций. По мере выполнения программы данные должны обновляться, чтобы отражать произошедшие изменения. fish_in_clarks_pond = 50 …

    Start

  8. 8

    Комментарии

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

    Старт

  9. 9

    Числа

    Переменные также могут содержать числовые значения. Простейшим типом числа в Python является целое число, представляющее собой целое число без десятичной точки: int1 = 1 int2 = 10 int3 = -5 Число с десятичной точкой …

    Начало

  10. 10

    Два типа Division

    В Python 2, когда мы делим два целых числа, в результате мы получаем целое число. Когда частное представляет собой целое число, это работает нормально: частное = 6/2 # значение частного теперь равно 3, что имеет смысл Ho…

    Start

  11. 11

    Многострочные строки

    Мы видели, как определить строку с помощью одинарных и двойных кавычек. Если мы хотим, чтобы строка занимала несколько строк, мы также можем использовать тройные кавычки: address_string = «»»136 Whowho Rd Apt 7 Wh…

    Start

  12. 12

    Booleans

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

    Start

  13. 13

    ValueError

    Python автоматически присваивает переменной соответствующий тип данных на основе заданного значения. Переменная со значением 7 является целым числом, 7 — числом с плавающей запятой, а «7» — строкой. Иногда мы будем…

    Старт

  14. 14

    Обзор

    Отлично! До сих пор мы рассмотрели: — Операторы печати — Как создавать, изменять и использовать переменные — Арифметические операции, такие как сложение, вычитание, деление и умножение — Как использовать комментарии…

    Start

Дополнительные темы в Python | Codecademy

  1. 1

    Итераторы для словарей

    Начнем с перебора словаря. Напомним, что словарь — это просто набор ключей и значений. d = { «Имя»: «Гвидо», «Возраст»: 56, «BDFL»: True } print d.items() # => [(‘BDFL’…

    Start

  2. 2

    keys( ) и values()

    В то время как .items() возвращает массив из кортежи , где каждый кортеж состоит из пары ключ/значение из словаря: * Метод .keys() возвращает список ключей словаря, а * Метод .values() me…

    Start

  3. 3

    Оператор «in»

    Для перебора списков, кортежей, словарей и строк Python также включает специальное ключевое слово: in. Вы можете использовать in очень интуитивно, например так: для числа в диапазоне (5): вывести число, d = { …

    Старт

  4. 4

    Создание списков

    Допустим, вы хотите построить список чисел от 0 до 50 (включительно). Мы могли бы сделать это довольно легко: my_list = range(51) ​​Но что, если мы хотим сгенерировать список в соответствии с некоторой логикой…

    Start

  5. 5

    Синтаксис понимания списка

    Вот простой пример синтаксиса понимания списка : new_list = [x вместо x в диапазоне (1, 6)] # => [1, 2, 3, 4, 5] Это создаст новый_список, заполненный числами от одного до пяти. Если вы хотите эти…

    Старт

  6. 6

    Теперь попробуй!

    Отличная работа! Теперь пришло время создать понимание списка самостоятельно. c = [‘C’ для x в диапазоне (5), если x < 3] print c В приведенном выше примере создается и распечатывается список, содержащий ['C', 'C…

    Start

  7. 7

    List Slicing Синтаксис

    Иногда нам нужна только часть списка Python. Возможно, нам нужны только первые несколько элементов; может быть, нам нужны только последние несколько. Может быть, нам нужен любой другой элемент! Нарезка списка позволяет нам получить доступ к элементам…

    Start

  8. 8

    Пропуск индексов

    Если вы не передадите определенный индекс в срез списка, Python выберет значение по умолчанию. to_five = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’] print to_five[3:] # печатает [‘D’, ‘E’] print to_five[:2] # печатает [‘ A’, ‘…

    Начало

  9. 9

    Обращение списка

    Мы видели, что положительный шаг проходит по списку слева направо. Шаг с отрицательным значением продвигается по списку справа налево. буквы = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’] напечатать l…

    Начало

  10. 10

    Длина шага

    Положительная длина шага проходит по списку слева направо, а отрицательная — справа налево. Далее, длина шага 1 пересекает список «по единицам», длина шага…

    Начало

  11. 11

    Практика делает совершенным

    Отличная работа! Видеть? Этот бизнес по нарезке списка довольно прост. Давайте сделаем еще один, просто чтобы доказать, что вы действительно знаете свое дело.

    Start

  12. 12

    Анонимные функции

    Одним из наиболее мощных аспектов Python является то, что он допускает стиль программирования, называемый функциональным программированием , что означает, что вам разрешено передавать функции так же, как если они w…

    Start

  13. 13

    Лямбда-синтаксис

    Лямбда-функции определяются с использованием следующего синтаксиса: my_list = range(16) filter(lambda x: x % 3 == 0, my_list) Лямбда-функции полезны когда вам нужна быстрая функция, чтобы сделать некоторую работу за вас. Если…

    Старт

  14. 14

    Попробуйте!

    Хорошо! Пришло время протестировать filter() и лямбда-выражения. cubes = [x ** 3 for x in range(1, 11)] filter(lambda x: x % 3 == 0, cubes) Приведенный выше пример — это просто напоминание о синтаксисе.

    Начало

  15. 15

    Перебор словарей

    Сначала рассмотрим перебор словаря.

    Начало

  16. 16

    Понимание Понимание

    Хорошо! Теперь давайте еще раз взглянем на понимание списков. квадраты = [x ** 2 для x в диапазоне (5)]

    Начало

  17. 17

    Нарезка списка

    Отлично! Далее: нарезка списка. str = «ABCDEFGHIJ» start, end, step = 1, 6, 2 str[start:end:stride] Строку Python можно рассматривать как список символов.

    Начало

  18. 18

    Лямбда-выражения

    И последнее, но не менее важное: давайте рассмотрим некоторые лямбда-выражения.

Читайте также: