Python с нуля. Часть 1

Python. Сферы применения.

Python – это высокоуровневый язык программирования общего назначения. Это значит, что данный язык нашел своё место практически в каждом направлении IT-сферы.

История языка

Язык Python разработал голландский программист Гвидо Ван Россум в 1991 году. Гвидо был фанатом британского комедийного сериала «Летающий цирк Монти Пайтона», откуда и пришло название языка. Причина возникновения названия не подтверждена, а является лишь одной из версий.

Прототипом послужил язык ABC. Интерес к Python возрос после 2004 года. Логотип же вообще появился только 2006 году.

Следует сказать, что существует 3 версии языка, которые сильно отличаются друг от друга. Python 1 давно уже забыт. Python 2 держится на старых программах, но уже отошел на задний план. Ходовой версией является Python 3, о котором и будет идти речь в данной книге.

Давайте посмотрим, где применяется изучаемый нами язык.

Data Science

XXI век назван информационным. Действительно, каждый день нас окружает колос-сальное количество информации, которую нужно хранить и обрабатывать. Этим и занимается Data Science. «Наука о данных» изучает методы обработки большого количества ин-формации «Big Data».

Python – один из тех языков, которые помогают автоматизировать сбор и обработку ин-формации. Ярким примером тому является программа, собирающая какую-либо информацию с сайта.

Программное обеспечение

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

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

Сценарии командной строки

Также на Python можно писать скрипты, программы, выполняющиеся в командной строке (терминале), которые будут выполнять некоторую работу. Например, программа-сортировщик файлов или автоматический установщик программ.

Разработка игр

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

WEB-разработка

WEB-разработка делится на два направления: frontend (то, что мы видим) и backend (то, чего мы не видим). К backend части относят автоматизацию процессов, сбор, обработку, систематизацию и генерацию информации. Всё это под силу Python.

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

Начало работы с Python

Установка языка

Чтобы начать работать нам понадобится установить язык на своё устройство. Это можно сделать на официальном сайте языка: https://www.python.org/.

Для пользователей Windows нужно скачать установщик «.exe», учитывая архитектуру процессора (x32 или x64), и следовать инструкциям.

Инструкцию по установке Python на разные ОС можно найти в сети Интернет.

Среды разработки

Не для кого не секрет, что программировать можно и в обычном текстовом редакторе «Блокнот», но удобнее делать это в специальной программе, называемой средой разработки.

Автор рекомендует PyCharm Community Edition или Visual Studio Code. Для пользователей Linux может подойти Sublime Text.

Все инструкции можно найти в сети Интернет.

Основные конструкции языка

Комментарии

Комментарий – это невыполняемая часть кода, которая служит для пояснения основного кода, составления аннотации. Комментарии бывают однострочными и многострочными. Ниже показаны способы комментирования.

#однострочный комментарий

”””
Это
многострочный
комментарий
”””

Однострочный комментарий пишется после знака «решётка» (#). Многострочный ком-ментарий ограничивается тремя кавычками (“) в начале и тремя кавычками (“) в конце.

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

Переменная. Типы данных.

Переменная – эта область памяти компьютера, хранящая информацию, имеющая своё название. Название может состоять из латинских букв, цифр и нижнего подчёркивания. При этом оно не может начинаться с цифры. В качестве имени переменной нельзя использовать служебные слова. Имя переменной уникально, регистр учитывается, то есть переменные «A» и «a» – разные.

Служебные слова представлены на прикрепленном рисунке.

Присваивание значения переменной происходит посредством знака равно «=». Напри-мер, a=1.

Любая информация имеет свой тип. Типы данных Python представлены в таблице.

Тип Значение         Пример
int целое число         1345
float вещественное число 2.21
str строка                “Hello”
list список                [1, True, “Hi”]
set коллекция         {1, 2, 3}
dict словарь          {key: value}
tup кортеж                (1, “str”)
bool логическое значение    True(1), False(0)

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

Арифметика и способы присваивания

С помощью программирования можно решать арифметические выражения.
Давайте рассмотрим возможности Python на примере выражений:

• 2+2==4 (сложение)
• 2-2==0 (вычитание)
• 2*2=4 (умножение)
• 2/2==1.0(деление)
• 2//2==1(целочисленное деление)
• 2**3==8 (возведение в степень)

В программировании бывают случаи, когда значение переменной меняется. Есть два вида изменения значения, давайте их рассмотрим.
1. x=0   2. x=1
   x=1      x+=1

В первом случае в переменной сохранится значение 2, а значение 1 потеряется.

Во втором случае к переменной присваивается значение суммы числа с этой же переменной. В результате значением переменной будет 4 (x = 1, x=1+3).

Для второго случая введены сокращения. Сопоставление полной и краткой форм записи представлено в таблице.

Полная форма Краткая форма
x=x+1         x+=1
x=x-1         x-=1
x=x*1         x*=1
x=x/1         x/=1
x=x//1         x//=1
x=x**1         x**=1

Ввод и вывод информации

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

Функция print()

Для вывода информации в консоль используется функция print()/
Выглядит она так:

print(значение1, значение2, sep=” “, end=”\n”)

С помощью этой функции можно выводить одно и более значения. Значение параметра sep указывает разделитель значений. По умолчанию - это пробел. Значение end показывает, что выведется в конце. По умолчанию значение равно “\n”. “\n” означает перевод строки, аналог нажатия клавиши «Enter».

Параметры sep и end являются необязательными.

Функция input()

Функция input() используется для получения ввода с клавиатуры.

Введенное значение можно присваивать.

x = input(“Введите что-нибудь и нажмите Enter”)

В таком случае в консоль выведется поясняющий текст, программа будет ждать ввода. Ввод считается законченным после нажатия клавиши «Enter». Поясняющий текст необязателен.

Также позволяется определять тип вводимых данных. По умолчанию тип, возвращаемый функцией input() – строка. Но это можно изменить с помощью конструкции тип(input()). Например:
x = int(input())

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

Таким образом мы можем менять тип данных у информации, переменных. Конструкция будет выглядеть так: тип(информация или переменная). Стоит заметить, что при невозможности изменения типа, программа вернёт ошибку.

Логический тип данных.

Логический тип данных состоит из двух значений: True (Истина) и False (Ложь). Они нужны для проверки выражений и построения более сложных конструкций. Именно одно из этих значений вернёт программа, если мы впишем выражение, требующее проверки истинности. Например, 2+1==3.

В Python знак «=» используется для присваивания, например x = 1. Поэтому для проверки равенства используется двойное равно «==». Знаки сравнения приведены в таблице.

Знак Значение
== Равно
!= Не равно
> Больше
< Меньше
>= Больше или равно
<= Меньше или равно

В качестве False в языке принимаются 0, False, “” (пустая строка), [] (пустой список), () (пустой кортеж), {} (пустой словарь). Противоположные значения принимаются за True.

Из сказанного выше следует, что логический тип тоже изменяемый. Например, строка print(int(True)) выведет в консоль 1.

Логические операторы. Алгебра логики.

В Python есть три логические операции для составления сложных условий: not, and, or.

not – логическое отрицание, возвращает противоположное логическое значение.
and – логическое умножение, возвращает произведение логических значений.
or – логическое сложение, возвращает сумму логических значений.

Сначала выполняется not, потом and, потом or.

Переменная Значение Значение отрицания not(переменная)
a       0         1
b         1         0

Переменная Значение Значение a and b Значение a or b
a         0
b         1         0                1

При этом, если a и b равны 1, то операция “a and b” вернёт 1, операция “a or b” вернёт 1. Если a и b равны 0, операции and и or вернут 0.

Условия

В программах возникают ситуации, когда нужно выполнить блок кода в зависимости от выполнения условия. Для этого существует конструкция if. Блок условия пишется следую-щим образом:

if условие:
    команды

После ключевого слова if пишется условие, которое возвращает либо True (Верно), либо False (Ложь). Если условие равняется True, команды, выделенные отступом, в 4 пробела, выполняются, в противном случае – не выполняются.

Отступ в 4 пробела является обязательным для блока команд условия.

Например, следующий код выведет Yes:
if 5==5:
    print(“Yes”)

Условие истинно, поэтому вывод будет успешным. Изменим условие:

if 5==6:
    print(“Yes”)

Условие ложно, вывода не произойдёт.

Помимо if, существует необязательная конструкция else. Данная конструкция показывает, что будет сделано в случае встречи ложного условия. Рассмотрим её на примере:

if 6==5:
    print(1)
else:
    print(0)

Программа выведет 0, так как 6 не равняется 5. Если условие будет верным, то программа выведет только 1.

В программировании есть вложенные проверки. Рассмотрим задачу: С клавиатуры вво-дится целое число, если оно делится на 100 и на 4, вывести 1.

Решением будет следующий код:

x = int(input())
if x==0:
    if x==0:
        print(1)

В x сохраняется введённое значение, преобразованное в целое число. Далее проводится первая проверка (остаток от деления x на 4 равен 0?), если условие истинно, выполнится вторая проверка (остаток от деления x на 100 равен 0?), если условие истинно, программа выведет 1.

Ту же задачу можно решить с помощью сложного условия:

x = int(input())
if (x==0) and (x==0):
    print(1)

Также в программировании есть множественный выбор:

if условие1:
    команды
else:
    if условие2:
        команды

Если первое условие ложно, то выполнится проверка 2 (условие 2).

Этот функционал можно упростить:

if условие 1:
    команды
elif условие 2:
    команды
else:
    команды

Если условие 1 ложно, будет проверятся условие 2, в случае ложности условия 2, выполнится блок else.

Вложенность не ограничена. Блоки elif и else – необязательные. При ложности условия блок кода пропускается. При множественном выборе выполняется первое истинное условие.

Циклы

В программировании есть случаи, когда блок кода нужно повторять. Для этого существуют циклы. В Python есть два вида циклов: for (цикл со счётчиком) и while (цикл с усло-вием).

Цикл for

Цикл со счетчиком нуждается в двух параметрах: переменная и итерируемый объект.
Переменная – это и есть счётчик. Она изменяет своё значение некоторое количество раз.

Итерируемый объектом будем считать объект, состоящий из нескольких элементов. Подробнее о таких объектах будет рассказано во второй части книги. А пока нам будет достаточно функции range().

Цикл выглядит так:

for i (переменная) in range()(итерируемый объект):
    команды

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

for i in range(5):
    print(i)
Вывод:
0
1
2
3
4

Функция range()

Функция range() принимает три параметра: начало, конец, шаг. Конец является обязательным параметром и указывает на количество элементов в конечном итерируемом объекте.

Счёт в программировании начинается с 0, поэтому первым элементом является 0, а по-следним – конец-1.

Полный вид функции: range(начало, конец, шаг).

Давайте реализуем ещё один цикл for:

for i in range(5, 0, -1):
    print(i)
Вывод:
5
4
3
2
1

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

Цикл while

Цикл while – это цикл с условием. Команды цикла будут повторяться, пока условие вер-но. Цикл while выглядит так:

while условие:
    команды

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

i = 0                Вывод:
while i <= 5:                0
    print(i)                1
    i+=1                2
                3
                4
                5

Сначала задаётся переменная (i), следующим шагом проверяется условие (i<=5), если условие истинно, выполняются команды, в конце цикла к значению переменной (i) при-бавляется 1, чтобы избежать бесконечность цикла.

Если не изменять значение переменной, задействованной в условии; цикл станет бесконечным и будет выполняться, пока не израсходуется оперативная память компьютера.

Пример бесконечного цикла:

while True:
    print(1)

Данная программа бесконечно будет выводить 1.

Инструкция break

Бывают случаи, когда цикл нужно остановить при каком-то условии. Для этого внутри цикла for или while ставят блок проверки с инструкцией break, которая завершает работу цикла принудительно. Например:

i = 0                Вывод:
while i<5:                0
    print(i)                1
    if i==2:                2
        break
    i+=1

Программа должна выводить числа от 0 до 4, но, если значение переменной (i) будет равняться 2, цикл завершится.

Инструкция continue

Помимо того, что мы можем прекратить выполнение цикла, также мы можем пропустить одну итерацию. Итерация – это одно выполнение кода. пропустить итерацию можно с помощью инструкции continue. Например:

i = 0                Вывод:
while i<5:                0
    if i==2:                1
        continue                3
    print(i)           4
    i+=1           5

Данная программа, дойдя до значения 2, пропустит его и продолжит вывод последую-щих значений.

Конструкции break и continue применимы к любому виду циклов. Внутренние команды отделяются 4 пробелами. Допустима вложенность циклов.

Строки

Для хранения текста в Python используется строковой тип данных (str).
Чтобы создать строку нужно открыть одинарную или двойную кавычки, ввести текст, закрыть кавычки. Например: x = “Hello, world!”.

Также, как и другие типы данных, строки имеют набор своих методов и операций, которые дополняют работу со строками. Мы рассмотрим сложение, сравнение, срезы, поиск и методы строк.

Метод – функция (блок кода), применяемый к чему-либо.

Сложение строк

Конкатенация – сложение строк. При сложении строк образуется новая строка, в которой начальные строки сливаются в одну, началом является начало первой строки, концом – ко-нец второй строки. Например:

print(“H” + ”i” + ”!”) Вывод: Hi!

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

print(“A”*3) Вывод: AAA

Сравнение строк

Сравнение строк осуществляется посимвольно, то есть сравнивается каждый символ. При этом учитывается длина строки и место символа в кодировке. (Подробнее о колировках можно узнать в сети Интернет.). Равными считаются строки, у которых одинаковое содержание с учетом регистра и специальных знаков. Сравнение строк возвращает либо True, либо False.

Чтобы узнать длину строки, используют функцию len(). Например:
print(len(“abc”)) Вывод: 3

Оператор in

Оператор in показывает, есть ли подстрока в другой строке, возвращает либо True, либо False. Например:

print(“a” in “PLaY”) Вывод: True.

Противоположностью оператора in является not in.

Срезы

Срез – это часть строки. Чтобы сделать срез нужно ввести строку и в квадратных скобках указать индексы начала и конца среза через двоеточие. Индексация начинается с 0 (0, 1, 2, 3…), а в обратную сторону с -1 (-1, -2, -3…). Например:

s = “Python” Вывод:
print(s[0:2]) Pyt

Также можно задавать шаг среза третьим параметром. Например:

s = “Python” Вывод:
print(s[0:4:2]) Pto

Метод count

Метод count считает сколько раз подстрока встречается в строке. Например:

s = “hello” Вывод:
print(s.count(“l”)) 2

Метод startswith

Метод startswith показывает начинается ли строка с подстроки.
s = “hello” Вывод:
print(s.startswith(“he”)) True

Метод endswith

Метод endswith показывает заканчивается ли строка подстрокой.

s = “hello” Вывод:
print(s.endswith(“lo”))         True

Методы strip, rstrip, lstrip

strip возвращает копию строки без пробелов в начале и в конце.
rstrip возвращает копию строки без пробелов справа.
lstrip возвращает копию строки без пробелов слева.

Метод replace

Метод replace заменяет одну подстроку в строке на другую. Например:

s = “he00o” Вывод:
print(s.replace(“00”, “ll”)) hello

Метод capitalize

Метод capitalize делает первую букву большой, а остальные маленькими.

Метод title

Метод title делает большой первую букву каждого слова.

Метод lower

Метод lower все буквы маленькими.

Метод upper

Метод upper делает буквы большими.

Форматированные строки

Форматированная строка – это строка, содержащая переменные. при выводе таких строк на место переменных ставятся их значения. Такие строки создаются с помощью строк с методом format.

f-строки

f-строка содержит в себе переменные, заключённые в фигурные скобки. Например:

y = 2023
print(f”Эта книга написана в {y} году.”)

Вывод: Эта книга написана в 2023 году.

Строка с методом format

Строка с методом format содержит в себе переменные, заключённые в фигурные скобки, к которым в методе присваивается значение. Например:

print(“Эта книга написана в {y} году”.format(y=2023))

Вывод: Эта книга написана в 2023 году.

Заключение

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


Рецензии