Python. Знакомство для бывалых.

Python – это мощный и популярный язык программирования, который идеально подходит как для новичков, так и для профессионалов. Он используется в различных областях, включая веб-разработку, анализ данных, искусственный интеллект и автоматизацию. Эта статья для тех, кто уже знает другие языки программирования и хочет быстро познакомиться с основами Python.
Преимущества и недостатки Python
Плюсы:
- Простота и читабельность: Python имеет интуитивно понятный синтаксис, что облегчает изучение.
- Большое сообщество: Широкая база пользователей обеспечивает доступ к множеству библиотек и ресурсов.
- Многофункциональность: Язык можно использовать в различных приложениях, от веб-разработки до научных исследований.
Минусы:
- Скорость выполнения: Python может быть медленнее по сравнению с компилируемыми языками, такими как C++.
- Ограниченная мобильная поддержка: Python не так широко используется в мобильной разработке, как, например, Java или Swift.
Установка Python
На момент написания статьи последняя версия Python – 3.12.6. Для начала работы необходимо установить интерпретатор. Скачать его можно здесь.
Во время установки поставьте галочку “Add python.exe to PATH”, чтобы терминал знал, где искать интерпретатор при запуске скриптов. Если возникнут ошибки, попробуйте выбрать опцию “Use admin privileges when installing py.exe”. После завершения установки запустите в консоли команду:
python --version
Эта команда выводит версию установленного интерпретатора.
Теперь давайте напишем простой скрипт и запустим его из консоли. Создайте файл hello.py со следующим содержимым:
print("Hello, World!")
и запустите его из командой:
python hello.py
На экране должна появиться строка “Hello, World!”.
Среда разработки
Для работы с Python существует несколько популярных сред разработки:
- IDLE – простая среда, которая идет с Python по умолчанию.
- PyCharm – мощная среда от JetBrains с коммерческой и бесплатной версиями. Однако, обратите внимание, что на момент написания статьи продукты JetBrains недоступны в России.
- VSCode – бесплатная и гибкая среда от Microsoft. Поддерживает различные расширения и языки программирования.
В данном руководстве мы будем использовать VSCode. Скачать её можно здесь.
После установки VSCode добавим пару расширений для более комфортной работы с Python. Для работы IntelliSense и возможности запуска и отладки скриптов нужно установить расширение Python (ID расширения – ms-python.python).
Также рекомендую установить расширение Black Formatter (ID расширения – ms-python.black-formatter), которое позволяет форматировать код по стандарту PEP8 (здесь можно почитать о нем подробнее). Чтобы настроить автоматическое форматирование при сохранении файла, откройте настройки (Ctrl + ,) и активируйте опцию
Text Editor -> Formatting -> Format On Save
Либо вы можете запускать форматирование вручную с помощью комбинации клавиш Shift + Alt + F.
Теперь давайте создадим python-скрипт и запустим его из редактора. Создайте новую директорию и откройте её в VSCode. Нажмите кнопку “New File…” в левой части окна и введите имя нового файла, например, hello2.py.
Добавьте в файл следующую строчку:
print("Hello from VSCode")
Дальше настроим возможность запуска и отладки python-скриптов. В левой части окна нажмите иконку Run and Debug (иконка в виде треугольника с жучком). В открывшейся панели нажмите ссылку “create a launch.json file” и выберите “Python Debugger” -> “Python File“.
Будет создан и открыт файл launch.json, который хранит настройки для выполнения и отладки. Пока можно не вникать в его содержимое. Просто сохраните и закройте файл. После создания launch.json должна появиться кнопка “Start Debugging“. Нажмите её, предварительно убедившись, что открыт файл hello2.py с нашим скриптом. Быстро запустить открытый скрипт также можно с помощью клавиши F5.
В окне терминала внизу VSCode вы должны увидеть текст “Hello from VSCode”.
Теперь, когда у нас есть настроенное окружение, изучим основные конструкции языка.
Типы данных
Целые числа
Целые числа в Python определяются типом int. Уникальность типа int в Python заключается в его безразмерности. Это значит, что в отличие от таких языков как C++ или Java, в Python нет ограничений на минимальные и максимальные значения.
Для целых чисел доступны стандартные арифметические операции:
a = 5
b = 3
c = a + b # Сложение
d = a - b # Вычитание
e = a * b # Умножение
f = a / b # Деление
g = a // b # Целочисленное деление
h = a % b # Остаток от деления
В приведенных примерах, кстати, используются комментарии. Python игнорирует все, что идет после символа # до конца строки.
Чтобы преобразовать строку в целое число, можно воспользоваться функцией int:
num = int('123') # => 123
Вещественные числа
Для представления вещественных чисел используется тип float. Он поддерживает те же арифметические операции, что и int, за исключением целочисленного деления.
3.5 + 2.3 # => 5.8
3.5 - 2.3 # => 1.2
3.4 * 2 # => 6.8
6.8 / 2 # => 3.4
5.5 ** 2 # => 30.25
Чтобы преобразовать строку в вещественное число, используйте функцию float:
num = float('123.321') # => 123.321
Логический тип
Логические значения обозначаются типом bool. В Python истинное значение представляется как True, а ложное как False.
Вот пара примеров применения булевой алгебры:
True and False # => False
False or True # => True
not True # => False
1 == 2 # => False
2 != 1 # => True
Как видите, логическое умножение, сложение и отрицание выполняется с помощью ключевых слов and, or и not соответственно.
Строки
Строки в Python обозначаются типом str. Для создания строковой переменной, нужно заключить нужный текст в одинарные или двойные кавычки. Некоторые операции, которые можно выполнять над строками:
len('Hello, World!') # => 13 (определить количество символов в строке)
'Hello' + ', ' + 'World!' # => Hello, World!
'Hello' * 3 # => HelloHelloHello (дублирует строку указанное количество раз)
Можно экранировать кавычку внутри строки с помощью символа косой черты:
'"Isn\'t," they said.' # => "Isn't," they said.
"\"Isn't,\" they said." # => "Isn't," they said.
Строки можно создавать с помощью тройных кавычек. В этом случае не нужно экранировать кавычки внутри строки. А также такие значения могут содержать переносы строк:
'''- Как его имя?
- Д'Артаньян!'''
# => - Как его имя?
# => - Д'Артаньян!
Ввод-вывод
Чтобы вывести текст в консоль, используется функция print:
print('Hello') # => Hello
Этой функции можно передать несколько аргументов. В этом случае, при выводе на консоль, они будут склеены через пробел:
print('Hello', ', ', 'World!') # => Hello , World!
Разделитель аргументов по умолчанию (пробел) можно изменить с помощью необязательного аргумента sep:
print('Hello', 'World', sep='*') # => Hello*World
Еще функция print по умолчанию делает перевод строки при каждом вызове. Это поведение можно изменить с помощью аргумента end:
print('Hello')
print('World')
# => Hello
# => World
print('Hello', end='!')
print('World', end='!')
# => Hello!World!
Для получения данных, введенных пользователем с клавиатуры, в Python есть функция input. Следующий код сохраняет ввод пользователя в переменную name и выводит ее на экран:
name = input()
print(name)
Можно указать “приглашение” пользователю:
name = input('Введите свое имя: ')
print(name)
Условный оператор
Для того, чтобы код выполнялся при определенных условиях, используется условный оператор. Оператор if проверяет, является ли условие истинным и если да, выполняет блок кода после себя:
age = 5
if age < 7:
print('Дошкольник')
print('Нужно идти в садик')
# => Дошкольник
# => Нужно идти в садик
Здесь при выполнении условия age < 7, выполняется не одна команда, а блок из двух команд print. В Си-подобных языках для обозначения блоков кода используют фигурные скобки. В Python блоки кода обозначаются с помощью отступов. Двоеточие в конце строки с инструкцией if указывает на то, что за ним следует блок команд. В этот блок входят все строки под инструкцией if, которые имеют отступ, до тех пор, пока не встретится следующая строка без отступа. Рекомендуется использовать отступ 4 пробела.
Чтобы выполнить блок в случае, если условие оказалось ложным, можно добавить инструкцию else:
age = 21
if age < 18:
print('Доступ запрещен')
else:
print('Доступ разрешен')
# => Доступ разрешен
Если нужно проверить несколько условий, в Python используется каскадный условный оператор elif. Инструкции if и elif проверяют свои условия одно за другим, пока очередное условие не будет истиной. Когда будет найдено истинное условие, блок после него выполняется, а остальная часть условного оператора игнорируется. Если ни одно условие не является истинным, то выполняется блок кода после выражения else.
age = 10
if age < 7:
print('Дошкольник')
elif 7 <= age <= 17:
print('Школьник')
elif 18 <= age <= 23:
print('Студент')
else:
print('Рабочий')
# => Школьник
Циклы
В Python есть два вида циклов:
- циклы, повторяющиеся определенное количество раз (
for); - циклы, повторяющиеся до наступления определенного условия (
while).
Следующий код выполняет оператор print 5 раз:
for i in range(5):
print('Hello', i)
# => Hello 0
# => Hello 1
# => Hello 2
# => Hello 3
# => Hello 4
Функция range(n) генерирует последовательность чисел от 0 до n-1, а цикл for последовательно перебирает эту последовательность.
Есть еще две полезные перегрузки:
range(n, m)– генерирует последовательность от n до m-1.range(n, m, k)– генерирует последовательность от n до m-1 с шагом k.
В случае, если заранее нельзя определить количество итераций, можно воспользоваться циклом while. Тело этого вида цикла будет выполняться, пока условие является истиной:
x = 0
while x != 0 and x % 4 != 0:
print(x)
x += 3
# => 3
# => 6
# => 9
Оператор break прерывает ближайший цикл, а continue – позволяет перейти к следующей итерации цикла:
for i in range(10):
if i % 2 == 0:
continue
elif i == 5:
break
print(i)
# => 1
# => 3
Практика
Для закрепления теоретического материала, давайте напишем простую программу на Python.
Задача:
Пользователь вводит число от 1 до 9. Программа выводит таблицу умножения для введенного числа. Дальше приложение запрашивает новое число и выводит таблицу умножения для него. Так повторяется, пока пользователь не введет пустую строку.
Решение:
Создадим новый файл скрипта в VSCode, назовем его multiply_table.py. Добавим в скрипт следующее содержимое:
# используем цикл while а не for
# так как мы не знаем заранее количество повторений.
# оно зависит от ввода пользователя.
while True:
# получаем текст, который ввел пользователь в консоли.
# предварительно выводим пользователю пояснение.
user_input = input("Введите число от 1 до 9. Для завершения нажмите Enter: ")
# если пользователь просто нажал Enter,
# то получим пустую строку.
# в таком случае прерываем выполнение цикла.
if user_input == "":
break
# если пользователь что то ввел,
# то преобразуем введенный текст в целое число.
x = int(user_input)
# если пользователь ввел некорректное число,
# то выводим ошибку и начинаем следующую итерацию цикла.
if not (1 <= x <= 9):
print("Некорректный ввод")
continue
# если было введено корректное число,
# то доходим до печати таблицы умножения
# переменная i будет принимать значения от 1 до 9
# и для каждого из этих значений выполнит команду print
for i in range(1, 10):
print(i, "*", x, "=", i * x)
Запустим скрипт при помощи клавиши F5. Результат работы программы может выглядеть так:
На это все. Спасибо, что дочитали статью до конца, надеюсь она была полезна.