Python представляет популярный высокоуровневый язык программирования, который предназначен для создания приложений различных типов. Это и веб-приложения, и игры, и настольные программы, и работа с базами данных. Довольно большое распространение питон получил в области машинного обучения и исследований искусственного интеллекта.
Впервые язык Python был анонсирован в 1991 году голландским разработчиком Гвидо Ван Россумом. С тех пор данный язык проделал большой путь развития.
Интерпретация программ. Для работы со скриптами необходим интерпретатор, который запускает и выполняет скрипт. Выполнение программы на Python выглядит следующим образом. Сначала мы пишим в текстовом редакторе скрипт с набором выражений на данном языке программирования. Передаем этот скрипт на выполнение интерпретатору. Интерпретатор транслирует код в промежуточный байткод, а затем виртуальная машина переводит полученный байткод в набор инструкций, которые выполняются операционной системой.Здесь стоит отметить, что хотя формально трансляция интерпретатором исходного кода в байткод и перевод байткода виртуальной машиной в набор машинных команд представляют два разных процесса, но фактически они объединены в самом интерпретаторе.
Регистрозависимость
Python — регистрозависимый язык, поэтому выражения print
и Print
или PRINT
представляют разные выражения. И если вместо метода print для вывода на консоль мы попробуем использовать метод Print:
Print ( "Hello World" ) |
то у нас ничего не получится.
Комментарии
Для отметки, что делает тот или иной участок кода, применяются комментарии. При трансляции и выполнении программы интерпретатор игнорирует комментарии, поэтому они не оказывают никакого влияния на работу программы. Комментарии в Python бывают блочные и строчные.
Строчные комментарии предваряются знаком решетки — #. Они могут располагаться на отдельной строке:
123 | # Вывод на консоль # сообщения Hello World print("Hello World") |
Любой набор символов после знака # представляет комментарий. То есть в примере выше первые две строки кода являются комментариями.
Также они могут располагаться на той же строке, что и инструкции языка, после выполняемых инструкций:
1 | print ( "Hello World" ) # Вывод сообщения на консоль |
В блочных комментариях до и после текста комментария ставятся три одинарные кавычки: '''текст комментария'''
. Например:
''' Вывод на консоль сообщения Hello World''' print("Hello World") |
Основные функции
Основной функцией для вывода информации на консоль является функция print(). В качестве аргумента в эту функцию передается строка, которую мы хотим вывести:
1 | print ( "Hello Python" ) |
Если же нам необходимо вывести несколько значений на консоль, то мы можем передать их в функцию print через запятую:
1 | print ( "Full name:" , "Tom" , "Smith" ) |
В итоге все переданные значения склеятся через пробелы в одну строку:
Full name: Tom Smith Примеры вывода: print(5 + 10) print(3 * 7, (17 - 2) * 8) print(2 ** 16) # две звёздочки означают возведение в степень print(37 / 3) # один слэш — это деление с ответом-дробью print(37 // 3) # два слэша считают частное от деления нацело # это как операция div в других языках print(37 % 3) # процент считает остаток от деления нацело # это как операция mod в других языках Если функция print отвечает за вывод, то функция input отвечает за ввод информации. В качестве необязательного параметра эта функция принимает приглашение к вводу и возвращает введенную строку, которую мы можем сохранить в переменную:
name =input("Введите имя: ") print("Привет", name) |
Попробуем написать программу, которая считывает два числа и выводит их сумму. Для этого считаем два числа и сохраним их в переменные a
и b
, пользуясь оператором присваивания =
. Слева от оператора присваивания в программах на Питоне ставится имя переменной — например, строка из латинских букв. Справа от оператора присваивания ставится любое выражение. Имя станет указывать на результат вычисления выражения.
a=input() b=input() s=a+b print(s)
Переменные
Переменные предназначены для хранения данных. Название переменной в Python должно начинаться с алфавитного символа или со знака подчеркивания и может содержать алфавитно-цифровые символы и знак подчеркивания. И кроме того, название переменной не должно совпадать с названием ключевых слов языка Python. Ключевых слов не так много, их легко запомнить:
False , await, else , import, pass None , break , except , in, raise True , class , finally , is , return and , continue , for , lambda , try as , def , from , non local , while assert , del, global , not with , async , elif , if , or , yield |
Например, создадим переменную:
name = "Tom" |
Здесь определена переменная name
, которая хранит строку «Tom».
В пайтоне применяется два типа наименования переменных: каждое новое подслово в наименовании переменной начинается с большой буквы и подслова в наименовании переменной разделяются знаком подчеркивания. Например:
userName ="Tom" user_name ="Tom" |
Отличительной особенностью переменной является то, что мы можем менять ее значение в течение работы программы:
name ="Tom" # переменной name равна "Tom" print(name) # выводит: Tom name ="Bob" # меняем значение на "Bob" print(name) # выводит: Bob |
Типы данных
Переменная хранит данные одного из типов данных. В Python существует множество различных типов данных. В данном случае рассмотрим только самые базовые типы: bool, int, float, str.
Логические значения
Тип bool представляет два логических значения: True (верно, истина) или False (неверно, ложь). Значение True служит для того, чтобы показать, что что-то истинно. Тогда как значение False, наоборот, показывает, что что-то ложно. Пример переменных данного типа:
isMarried =False print(isMarried) # False isAlive =True print(isAlive) # True |
Целые числа
Тип int представляет целое число, например, 1, 4, 8, 50. Пример
age =21 print("Возраст:", age) # Возраст: 21 count =15 print("Количество:", count) # Количество: 15 |
По умолчанию стандартные числа расцениваются как числа в десятичной системе. Но Python также поддерживает числа в двоичной, восьмеричной и шестнадцатеричной системах.
Для указания, что число представляет двоичную систему, перед числом ставится префикс 0b:
a =0b11 b =0b1011 c =0b100001 print(a) # 3 в десятичной системе print(b) # 11 в десятичной системе print(c) # 33 в десятичной системе |
Для указания, что число представляет восьмеричную систему, перед числом ставится префикс 0o:
a =0o7 b =0o11 c =0o17 print(a) # 7 в десятичной системе print(b) # 9 в десятичной системе print(c) # 15 в десятичной системе |
Для указания, что число представляет шестнадцатеричную систему, перед числом ставится префикс 0x:
a =0x0A b =0xFF c =0xA1 print(a) # 10 в десятичной системе print(b) # 255 в десятичной системе print(c) # 161 в десятичной системе |
Стоит отметить, что в какой-бы системе мы не передали число в функцию print для вывода на консоль, оно по умолчанию будет выводиться в десятичной системе.
Дробные числа
Тип float представляет число с плавающей точкой, например, 1.2 или 34.76. В качестве разделителя целой и дробной частей используется точка.
height =1.68 pi =3.14 weight =68. print(height) # 1.68 print(pi) # 3.14 print(weight) # 68.0 |
Число с плавающей точкой можно определять в экспоненциальной записи:
x =3.9e3 print(x) # 3900.0x =3.9e-3 print(x) # 0.0039 |
Число float может иметь только 18 значимых символов. Так, в данном случае используются только два символа — 3.9. И если число слишком велико или слишком мало, то мы можем записывать число в подобной нотации, используя экспоненту. Число после экспоненты указывает степень числа 10, на которое надо умножить основное число — 3.9.
Строки
Тип str представляет строки. Строка представляет последовательность символов, заключенную в одинарные или двойные кавычки, например «hello» и ‘hello’. В Python 3.x строки представляют набор символов в кодировке Unicode
message ="Hello World!" print(message) # Hello World! name ='Tom' print(name) # Tom |
При этом если строка имеет много символов, ее можем разбить ее на части и разместить их на разных строках кода. В этом случае вся строка заключается в круглые скобки, а ее отдельные части — в кавычки:
text =("Laudate omnes gentes laudate " "Magnificat in secula ") print(text) |
Если же мы хотим определить многострочный текст, то такой текст заключается в тройные двойные или одинарные кавычки:
''' Это комментарий ''' text ='''Laudate omnes gentes laudateMagnificat in seculaEt anima mea laudateMagnificat in secula ''' print(text) |
При использовании тройных одинарных кавычек не стоит путать их с комментариями: если текст в тройных одинарных кавычках присваивается переменной, то это строка, а не комментарий.
Управляющие последовательности в строке
Строка может содержать ряд специальных символов — управляющих последовательностей. Некоторые из них:
- \ позволяет добавить внутрь строки слеш
- \’ позволяет добавить внутрь строки одинарную кавычку
- \» позволяет добавить внутрь строки двойную кавычку
- \n осуществляет переход на новую строку
- \t добавляет табуляцию (4 отступа)
Применим несколько последовательностей:
text ="Message:\n\"Hello World\"" print(text) |
Консольный вывод программы:
Message: "Hello World" Хотя подобные последовательности могут нам помочь в некоторых делах, например, поместить в строку кавычку, сделать табуляцию, перенос на другую строку. Но они также могут и мешать. Например:
path = "C:\python\name.txt" print (path) |
Здесь переменная path содержит некоторый путь к файлу. Однако внутри строки встречаются символы «\n», которые будут интерпретированы как управляющая последовательность. Так, мы получим следующий консольный вывод:
C:\python ame.txt Чтобы избежать подобной ситуации, перед строкой ставится символ r
path = r "C:\python\name.txt" print (path) |
Вставка значений в строку
Python позволяет встраивать в строку значения других переменных. Для этого внутри строки переменные размещаются в фигурных скобках {}, а перед всей строкой ставится символ f:
userName ="Tom" userAge =37 user =f"name: {userName} age: {userAge}" print(user) # на экране выведет name: Tom age: 37 |
В данном случае на место {userName}
будет вставляться значение переменной userName. Аналогично на вместо {userAge}
будет вставляться значение переменной userAge.
Динамическая типизация
Python является языком с динамической типизацией. А это значит, что переменная не привязана жестко с определенному типу.
Тип переменной определяется исходя из значения, которое ей присвоено. Так, при присвоении строки в двойных или одинарных кавычках переменная имеет тип str. При присвоении целого числа Python автоматически определяет тип переменной как int. Чтобы определить переменную как объект float, ей присваивается дробное число, в котором разделителем целой и дробной части является точка.
При этом в процессе работы программы мы можем изменить тип переменной, присвоив ей значение другого типа:
userId ="abc" # тип str print(userId) userId =234 # тип int print(userId) |
С помощью встроенной функции type() динамически можно узнать текущий тип переменной:
userId ="abc" # тип str print(type(userId)) # <class 'str'> userId =234 # тип int print(type(userId)) # <class 'int'> |