Первая программа на Python занимает одну строку: print("Hello, World!"). Сохраните её в файл hello.py и запустите в терминале командой python3 hello.py на macOS и Linux или python hello.py на Windows. На экране появится Hello, World!, и это значит, что Python установлен и работает.
Если Python ещё не стоит, начните с инструкции как скачать Python с официального сайта. Ниже пять программ по нарастающей: от приветствия до калькулятора и игры. Каждую мы запустили в Python 3.14, вывод в статье настоящий.
Программа Hello World на Python: как написать и запустить

Функция print() выводит на экран то, что стоит в скобках. Текст берут в кавычки, одинарные или двойные, Python их не различает.
- Создайте пустой файл
hello.pyв любом редакторе. Подойдёт даже «Блокнот», но удобнее VS Code: как его настроить, мы разобрали в статье как создать и запустить файл Python в VS Code. - Напишите в файле одну строку:
print("Hello, World!") - Сохраните файл и откройте терминал в той же папке.
- Запустите программу командой из таблицы ниже.
| Система | Команда |
|---|---|
| Windows | python hello.py или py hello.py |
| macOS | python3 hello.py |
| Linux | python3 hello.py |
Вывод:
Hello, World!
На Windows обе команды ставит Python Install Manager, это официальный установщик с python.org. Ставить ничего не хочется совсем? Код можно запустить в браузере, например в Google Colab.
Традиция начинать с фразы «Hello, world» пришла из книги Кернигана и Ритчи «Язык программирования Си» 1978 года, пишет Википедия. С тех пор так проверяют, что язык настроен и программа вообще запускается.
Что ещё умеет print
В print() можно передать несколько значений через запятую. По документации между ними встаёт разделитель sep (по умолчанию пробел), а в конце строки символ end (по умолчанию перевод строки).
print("Hello", "World", sep=", ", end="!\n")
print("Python", 3, True)
print("Загрузка", end="...")
print("готово")
Вывод:
Hello, World!
Python 3 True
Загрузка...готово
Числа и True печатаются без кавычек: print сам превращает их в текст. А end="..." оставил курсор на той же строке, поэтому «готово» встало рядом.
Пример 2: программа спрашивает имя
Вторая программа уже разговаривает с человеком. Функция input() показывает вопрос, ждёт, пока вы что-то наберёте и нажмёте Enter, и возвращает набранное.
name = input("Как вас зовут? ")
print(f"Привет, {name}! Это ваша вторая программа на Python.")
Вывод:
Как вас зовут? Аня
Привет, Аня! Это ваша вторая программа на Python.
Здесь две новые вещи:
- переменная
nameхранит ответ, чтобы использовать его ниже; - f-строка: буква
fперед кавычками разрешает вставлять переменные прямо в текст через фигурные скобки. Такие строки появились в Python 3.6 (PEP 498).
Важная деталь на будущее: по документации input() всегда возвращает строку. Даже если ввести 25, в переменной окажется текст «25», а не число.
Пример 3: калькулятор на Python

Калькулятор часто дают первым учебным заданием. На нём учатся переводить ввод в число, сравнивать значения и выбирать ветку через if.
a = float(input("Первое число: "))
b = float(input("Второе число: "))
op = input("Действие (+, -, *, /): ")
if op == "+":
print("Результат:", a + b)
elif op == "-":
print("Результат:", a - b)
elif op == "*":
print("Результат:", a * b)
elif op == "/":
if b == 0:
print("На ноль делить нельзя")
else:
print("Результат:", a / b)
else:
print("Такого действия нет")
Вывод:
Первое число: 7
Второе число: 2
Действие (+, -, *, /): /
Результат: 3.5
float() превращает строку из input() в дробное число. Без неё "7" + "2" дало бы склейку «72». Что значат /, // и % и чем они отличаются, разобрано в статье операторы в Python.
Калькулятор, который не закрывается после первого примера
Первая версия считает один раз и завершается. Если ввести букву вместо числа, программа падает с ошибкой. Вторая версия крутится в цикле и переживает неверный ввод.
while True:
op = input("Действие (+, -, *, /) или q для выхода: ")
if op == "q":
print("Пока!")
break
if op not in ("+", "-", "*", "/"):
print("Такого действия нет")
continue
try:
a = float(input("Первое число: "))
b = float(input("Второе число: "))
except ValueError:
print("Нужно число, например 12 или 3.5")
continue
if op == "+":
result = a + b
elif op == "-":
result = a - b
elif op == "*":
result = a * b
elif b == 0:
print("На ноль делить нельзя")
continue
else:
result = a / b
print("Результат:", result)
Вывод:
Действие (+, -, *, /) или q для выхода: *
Первое число: 2.5
Второе число: 4
Результат: 10.0
Действие (+, -, *, /) или q для выхода: /
Первое число: 10
Второе число: 0
На ноль делить нельзя
Действие (+, -, *, /) или q для выхода: +
Первое число: два
Нужно число, например 12 или 3.5
Действие (+, -, *, /) или q для выхода: q
Пока!
while Trueповторяет блок бесконечно,breakвыходит из цикла,continueсразу начинает новый круг. Подробнее про такой цикл есть в статье цикл while в Python.tryиexcept ValueErrorловят ошибку перевода «два» в число, и программа просит ввести число заново вместо аварийного выхода.
Одна особенность дробей пугает новичков. print(0.1 + 0.2) выводит 0.30000000000000004. Калькулятор тут ни при чём: так компьютер хранит дробные числа, объясняет документация Python. Для красивого вывода результат округляют через round().
Пример 4: игра «Угадай число»
Компьютер загадывает число от 1 до 100, вы угадываете, программа подсказывает «больше» или «меньше». Здесь появляется модуль random и счётчик попыток.
import random
secret = random.randint(1, 100)
tries = 0
print("Я загадал число от 1 до 100. Угадайте!")
while True:
guess = int(input("Ваш вариант: "))
tries += 1
if guess < secret:
print("Больше")
elif guess > secret:
print("Меньше")
else:
print(f"Угадали за {tries} попыток")
break
Вывод одной партии:
Я загадал число от 1 до 100. Угадайте!
Ваш вариант: 50
Меньше
Ваш вариант: 25
Меньше
Ваш вариант: 12
Больше
Ваш вариант: 18
Меньше
Ваш вариант: 15
Больше
Ваш вариант: 16
Угадали за 6 попыток
random.randint(1, 100) возвращает целое число, где обе границы входят в диапазон. tries += 1 короче записи tries = tries + 1.
Хитрость для игрока: называйте середину оставшегося отрезка, как в партии выше. Так любое число от 1 до 100 находится максимум за 7 попыток, потому что каждый ответ отсекает половину вариантов.
Захочется сделать игру с окном и картинками вместо текста в терминале? Следующий шаг обычно библиотека pygame, вот как установить pygame.
Пример 5: средний балл по списку оценок
Последняя программа работает со списком. Вы вводите оценки через пробел, она считает, сколько их, лучшую, худшую и средний балл.
line = input("Оценки через пробел: ")
marks = [int(x) for x in line.split()]
average = sum(marks) / len(marks)
print("Оценок:", len(marks))
print("Лучшая:", max(marks), "| худшая:", min(marks))
print("Средний балл:", round(average, 2))
Вывод:
Оценки через пробел: 5 4 4 3 5 5 4
Оценок: 7
Лучшая: 5 | худшая: 3
Средний балл: 4.29
Как это работает:
line.split()режет строку по пробелам на кусочки:['5', '4', '4', ...].[int(x) for x in ...]переводит каждый кусочек в число. Такая запись называется списковым включением.sum(),len(),max()иmin()считают сумму, длину, максимум и минимум. Проsum()и другие способы сложить список есть отдельная инструкция как суммировать список в Python.
Если ввести оценки через запятую, «5, 4, 4», программа упадёт: split() оставит запятые внутри кусочков, и int('5,') не сработает. Лечится так: line.replace(",", " ").split().
Частые ошибки новичков и что они значат

Все сообщения ниже мы получили сами, запустив неверный код. Python пишет причину в последней строке ошибки, читать стоит её.
| Что написали | Что ответил Python | Как исправить |
|---|---|---|
Helloworld("print") |
NameError: name 'Helloworld' is not defined |
Сначала имя функции, потом текст в скобках: print("Hello, World!") |
Print("Hello, World!") |
NameError: name 'Print' is not defined. Did you mean: 'print'? |
Python различает регистр, функция пишется строчными |
print "Hello, World!" |
SyntaxError: Missing parentheses in call to 'print' |
Добавить скобки. Запись без скобок осталась от Python 2 |
print("Hello, World!) |
SyntaxError: unterminated string literal |
Закрыть кавычку |
| Кавычки-лапки из Word или с сайта | SyntaxError: invalid character '“' (U+201C) |
Перепечатать кавычки с клавиатуры в редакторе кода |
Длинное тире вместо минуса: a – b |
SyntaxError: invalid character '–' (U+2013) |
Заменить на обычный дефис-минус |
Строка после if без отступа |
IndentationError: expected an indented block |
Сдвинуть тело блока на 4 пробела |
"2" + 3 |
TypeError: can only concatenate str (not "int") to str |
Перевести строку в число через int() или float() |
float("7,5") |
ValueError: could not convert string to float: '7,5' |
Дробную часть отделять точкой: 7.5 |
Ошибка из первой строки настолько типична, что запись Helloworld("print") стала у программистов шуткой: в ней функция и текст поменялись местами.
Две ошибки с кавычками и тире появляются при копировании кода из текстовых редакторов и статей. Word и многие сайты автоматически меняют прямые кавычки на типографские, а дефис на тире. Глазом разница почти не видна, а Python такие символы не принимает.
Python 2, откуда пришла запись print без скобок, не поддерживается с 1 января 2020 года. Если учебник показывает такой код, он устарел.
Что попробовать после этих пяти программ
Каждую программу из статьи поменяйте под себя: на собственных правках синтаксис запоминается быстрее, чем при перечитывании, а новые условия с решениями ищите в подборке задач по Python для начинающих.
- В калькулятор добавьте возведение в степень
**и остаток от деления%. - В «Угадай число» дайте игроку только 7 попыток, а после них покажите загаданное число.
- В программу с оценками добавьте проверку, что введены числа от 1 до 5.
Когда эти задачи пойдут легко, переходите к функциям и классам: с них начинается объектно-ориентированное программирование. Если Python рассматриваете как профессию, посмотрите, как стать Python-разработчиком с нуля и чем занимается Python-разработчик.
Где освоить Python системно
Пять программ показывают, как устроен язык, но до первой работы ещё далеко: функции, файлы, библиотеки, Git, базы данных. Системно это дают курсы с проверкой домашних заданий. На checkroi.ru собраны курсы по Python разных школ с ценами и отзывами, ниже первые пять из рейтинга.
| Курс | Школа | Стоимость со скидкой | В рассрочку | Длительность | Обзор курса от Checkroi |
|---|---|---|---|---|---|
| Профессия «Python-разработчик» Перейти на сайт курса | 157 335 ₽ | 5987 ₽/мес. | 10 месяцев | Обзор курса | |
| Fullstack-разработчик на Python Перейти на сайт курса | 161 200 ₽ | 7125 ₽/мес. | 21 месяц | Обзор курса | |
| ДО Профессия Python-разработчик Перейти на сайт курса | 149 001 ₽ | 3167 ₽/мес. | 10 месяцев | Обзор курса | |
| Автоматизированное тестирование на Python Перейти на сайт курса | 118 666 ₽ | 4108 ₽/мес. | 9 месяцев | Обзор курса | |
| Программирование на Python ПРО Перейти на сайт курса | 119 600 ₽ | - | 17 месяцев | Обзор курса |
Больше программ — в полном каталоге курсов по Python




