Язык программирования Python, Переменные, Типы данных

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

Впервые язык Python был анонсирован в 1991 году голландским разработчиком Гвидо Ван Россумом. С тех пор данный язык проделал большой путь развития.

Интерпретация программ. Для работы со скриптами необходим интерпретатор, который запускает и выполняет скрипт. Выполнение программы на Python выглядит следующим образом. Сначала мы пишим в текстовом редакторе скрипт с набором выражений на данном языке программирования. Передаем этот скрипт на выполнение интерпретатору. Интерпретатор транслирует код в промежуточный байткод, а затем виртуальная машина переводит полученный байткод в набор инструкций, которые выполняются операционной системой.Здесь стоит отметить, что хотя формально трансляция интерпретатором исходного кода в байткод и перевод байткода виртуальной машиной в набор машинных команд представляют два разных процесса, но фактически они объединены в самом интерпретаторе.Выполнение программы на Python

Регистрозависимость

Python — регистрозависимый язык, поэтому выражения print и Print или PRINT представляют разные выражения. И если вместо метода print для вывода на консоль мы попробуем использовать метод Print:

Print("Hello World")

то у нас ничего не получится.

Комментарии

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

Строчные комментарии предваряются знаком решетки — #. Они могут располагаться на отдельной строке:

123# Вывод на консоль # сообщения Hello World
print("Hello World")

Любой набор символов после знака # представляет комментарий. То есть в примере выше первые две строки кода являются комментариями.

Также они могут располагаться на той же строке, что и инструкции языка, после выполняемых инструкций:

1print("Hello World"# Вывод сообщения на консоль

В блочных комментариях до и после текста комментария ставятся три одинарные кавычки: '''текст комментария'''. Например:

'''     Вывод на консоль    сообщения Hello World'''
print("Hello World")

Основные функции

Основной функцией для вывода информации на консоль является функция print(). В качестве аргумента в эту функцию передается строка, которую мы хотим вывести:

1print("Hello Python")

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

1print("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, nonlocal, 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 существует множество различных типов данных. В данном случае рассмотрим только самые базовые типы: boolintfloat, 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'>