Python для начинающих: первая программа за 5 минут
Этот урок переведён с английского оригинала.Read in EnglishLeer en españolСообщить об ошибке в переводе
Вы когда-нибудь задумывались, как на самом деле устроены Telegram, YouTube или Instagram? За каждым приложением, сайтом и игрой стоит код: инструкции, в которых человек объясняет компьютеру, что делать.
Python входит в число самых популярных языков для написания таких инструкций. Код на нём читается почти как обычный английский текст, поэтому вы можете сосредоточиться на решении задач, а не на борьбе с запутанным синтаксисом.
В этом уроке вы напишете первую программу на Python, узнаете, как Python работает с текстом и числами, и начнёте хранить информацию в переменных. Каждый пример кода на этой странице живой: можно нажать «Запустить», что-нибудь изменить и сразу увидеть результат. Ничего устанавливать не нужно.
Как написать первую программу на Python
В программировании есть забавная традиция: в любом новом языке первым делом нужно заставить программу сказать «Hello, World!» («Привет, мир!»). Это короткое рукопожатие между вами и языком, доказательство того, что всё работает.
В некоторых языках для этого нужно 5 строк кода или больше. В Python хватит одной:
Hello, World!
Нажмите кнопку Запустить выше. Под кодом должно появиться Hello, World!. Вот и всё: вы только что запустили программу на Python!
Разберём, что сейчас произошло:
() передаются данные. Программисты называют их «аргументом».Попробуйте изменить сообщение в кавычках и запустить код снова. Выведите своё имя. Добавьте второй print() на новой строке:
Hello, World! My name is Python. Nice to meet you!
Каждый print() выводит текст на отдельной строке. Python читает код сверху вниз, строку за строкой, как книгу.
В каком порядке вы пишете команды, в таком они и выполняются. Это одна из самых важных идей в программировании.
Что такое комментарии в Python?
Комментарий представляет собой заметку внутри кода, которую Python полностью игнорирует. Чтобы его создать, начните строку с символа #.
Зачем просить Python что-то игнорировать? Потому что комментарии пишутся для людей, а не для компьютеров. Они помогают вам (и всем, кто читает ваш код) понять, что происходит.
This line runs!
Комментарии похожи на стикеры на листке с рецептом. Духовка их не читает, но они помогают вам вспомнить, зачем вы добавили больше соли или при какой температуре всё получилось лучше всего.
Строки и числа в Python: в чём разница?
В Python у всего есть тип. Тип похож на ярлык: он сообщает Python, что это за данные и что с ними можно делать.
Два самых базовых типа: строки (текст) и числа. Если вы поймёте разницу между ними, то избежите множества непонятных ошибок.
Как создавать строки в Python
Строка представляет собой любой текст в кавычках. Можно использовать одинарные кавычки ('hello') или двойные ("hello"): работают они совершенно одинаково.
Hello! Hello! It's a sunny day! She said "wow!"
В строке может быть что угодно: буквы, цифры, пробелы, знаки препинания и даже эмодзи. Если это стоит в кавычках, Python считает это текстом.
Числовые типы в Python: целые числа и числа с плавающей точкой
Числа в Python бывают двух видов:
42, -7 или 1000000. Десятичной точки у них нет.3.14, -0.5 или 100.0. Десятичная точка у них есть всегда.42 3.14 -7 1000000
Почему в Python важен тип данных?
Вот на чём спотыкается почти каждый новичок. "42" (в кавычках) и 42 (без кавычек) для Python совершенно разные вещи.
Одно из них текст, другое число. При выводе они выглядят одинаково, но ведут себя совсем по-разному:
42 42 <class 'str'> <class 'int'> 428 50
"42" + "8" даёт "428", потому что + между строками означает «склеить их». Это называется конкатенацией.
42 + 8 даёт 50, потому что + между числами означает «сложить их». Один и тот же оператор ведёт себя совершенно по-разному в зависимости от типа.
Функция type() точно скажет, с какими данными вы работаете. Если что-то ведёт себя не так, как вы ожидали, первым делом обычно стоит проверить тип.
Как выполнять вычисления в Python
Python отлично работает как калькулятор. Он без труда справляется с числами любого размера, тогда как некоторые другие языки на больших числах спотыкаются.
Вот все математические операторы, которые вам понадобятся:
5 6 21 3.75 3 3 1024
Большинство из них работают так же, как на уроке математики. Но некоторые могут оказаться для вас новыми.
`/` (деление) всегда даёт дробный результат, даже когда числа делятся нацело. 10 / 2 даёт 5.0, а не 5. Многих это застаёт врасплох.
`//` (целочисленное деление) делит и округляет результат вниз до ближайшего целого числа. Можно представить это как «деление, после которого отбрасывается всё, что стоит после точки».
`%` (деление по модулю) даёт остаток от деления. Например, 15 ÷ 4 = 3 и 3 в остатке. Этот оператор неожиданно полезен: с ним можно проверить, чётное ли число (n % 2 == 0), заставить значения идти по кругу (как стрелки часов: 13 % 12 = 1) и сделать многое другое.
` (возведение в степень)** возводит число в степень. 2 ** 10` означает «перемножить 10 двоек», в результате получается 1024.
Python соблюдает привычный по школьной математике порядок действий. Чтобы его изменить, используйте скобки:
14 20 25°C = 77.0°F
# "Division gives a whole number, right?"
result = 10 / 3
print(result) # Expects: 3# / always gives a decimal (float)
result = 10 / 3
print(result) # 3.3333333333333335
# Use // to get a whole number
result = 10 // 3
print(result) # 3Что такое переменные в Python и как ими пользоваться?
До сих пор мы работали со значениями напрямую: print(42), print(2 + 3). Для быстрых вычислений этого хватает, но настоящим программам нужно запоминать значения и использовать их позже.
Для этого и нужны переменные. Представьте переменную как подписанный контейнер. Вы даёте ему имя, кладёте внутрь значение и потом обращаетесь к нему по имени, когда значение понадобится.
Alice 15 5.4 True
name = "Alice" создаёт переменную с именем name и сохраняет в ней строку "Alice". Знак = является оператором присваивания: он не означает «равно», как в математике. Он означает «сохранить это значение под этим именем».
Читайте name = "Alice" так: «name получает значение Alice». Это различие важно, и позже оно убережёт вас от путаницы.
Обратите внимание: здесь нет ключевых слов let, var или const. В JavaScript вы бы написали let name = "Alice", а в Python достаточно name = "Alice". Объявлять тип в Python тоже не нужно: он сам определяет тип по значению.
Переменные могут меняться. Новое значение можно присвоить в любой момент:
Starting score: 0 After first round: 10 After bonus: 15 After doubling: 30
Строка score = score + 5 выглядит странно, если считать = знаком «равно». Но помните: = означает «присвоить».
Читайте её так: «взять текущее значение score (10), прибавить 5, получить 15 и сохранить результат обратно в score». Такой приём, когда переменная обновляется на основе своего текущего значения, встречается в программировании повсюду.
Как использовать f-строки в Python (форматирование строк)
Почти в любой программе нужно вставлять значения переменных в текст. Приветствие с именем человека, вывод счёта, печать чека: везде данные приходится объединять с текстом.
Для этого в Python есть замечательный инструмент, f-строки (буква «f» означает formatted, то есть «форматированная»). Поставьте букву f перед открывающей кавычкой, а внутри фигурных скобок {curly braces} укажите любую переменную или выражение:
Hi, my name is Alice! I am 15 years old. Next year I'll be 16. My name has 5 letters. My name in uppercase: ALICE
Всё волшебство происходит в фигурных скобках {curly braces}. Python вычисляет выражение внутри них, превращает результат в текст и подставляет его в строку.
В фигурные скобки можно поместить почти что угодно: переменные, вычисления, вызовы функций и даже сравнения. Посмотрим на более практичный пример:
Item: coffee Price: $4.5 x 3 Total: $13.5
Сравните это со старым способом, когда строку собирают из кусочков с помощью +:
name = "Alice"
age = 15
# Have to convert age, lots of + signs
print("Hi, my name is " + name + "!")
print("I am " + str(age) + " years old.")name = "Alice"
age = 15
# Just put variables inside {braces}
print(f"Hi, my name is {name}!")
print(f"I am {age} years old.")При старом способе приходится вызывать str(age), чтобы вручную превратить число в текст. Напомним: оператором + нельзя напрямую соединить строку и число.
f-строки выполняют это преобразование автоматически. Они чище, быстрее и реже приводят к ошибкам. В новом коде всегда используйте их.
Собираем всё вместе: мини-проект
Объединим всё изученное в одну небольшую программу. Она показывает схему, которую вы будете применять в любом проекте на Python: сохранить данные в переменных, выполнить вычисления и вывести результат.
============================
TIP CALCULATOR
============================
Meal: $52.50
Tax (8%): $4.20
Subtotal: $56.70
Tip (20%): $11.34
----------------------------
TOTAL: $68.04
============================Пока не обращайте внимания на :.2f: эта запись означает «показать ровно 2 знака после запятой» (поэтому 4.5 выводится как 4.50). Форматирование мы подробно разберём позже.
Главное здесь сама схема: сохранить данные → выполнить вычисления → вывести результат. На ней построена любая программа, будь в ней 10 строк или 10 000.
Попробуйте изменить meal_cost, tax_rate или tip_rate и запустить код снова!
Упражнения
Теперь ваша очередь! Упражнения идут от простых к сложным, и в каждом пригодится то, что вы уже изучили.
Несколько советов перед началом:
Напишите программу, которая выводит ровно:
Hello, Python!Тест проверяет точное совпадение, включая запятую, пробел и восклицательный знак.
Обед стоит 24,50 $, налог составляет 2,45 $, а чаевые 5,00 $. Переменные уже созданы за вас.
Вычислите итоговую сумму и выведите её точно в таком формате:
Total: $31.95Создайте две переменные:
name со значением "Alice"language со значением "Python"Затем с помощью f-строки выведите:
Hi, I'm Alice and I love Python!Этот код должен вычислить площадь прямоугольника (ширина × высота) и вывести её. Но в нём две ошибки!
Сначала запустите неисправный код и прочитайте сообщение об ошибке. Затем исправьте обе ошибки, чтобы вывод был таким:
Area: 35Итоги: что вы узнали в этом уроке
Отличная работа, вы прошли свой первый урок по Python! Вот что вы теперь знаете:
| Понятие | Что делает | Пример |
|---|---|---|
print() | Выводит данные на экран | print("hello") |
Комментарии (#) | Заметки, которые Python игнорирует | # this is a note |
| Строки | Текст в кавычках | "hello" или 'hello' |
| Целые числа | Числа без дробной части | 42, -7 |
| Числа с плавающей точкой | Дробные числа | 3.14, 0.5 |
| Математические операторы | + - * / // % ** | 2 ** 10 → 1024 |
type() | Сообщает тип данных | type(42) → int |
| Переменные | Именованные контейнеры для данных | age = 15 |
| f-строки | Вставляют переменные в текст | f"Age: {age}" |
Это не те азы, из которых вы со временем вырастете. На них держится любая программа на Python. Даже самый продвинутый код складывается из творческих сочетаний этих кирпичиков.
Что дальше?
В следующем уроке, [Переменные и типы данных](/python/variables-and-data-types), вы подробнее узнаете, как Python хранит данные. Вы познакомитесь с логическими значениями (True/False), значением None и преобразованием типов.
А ещё вы узнаете, почему 0.1 + 0.2 не равно 0.3 в Python (и в любом другом языке программирования) и что с этим делать.