В этом видео мы начинаем знакомство с основными базовыми типами, которые есть в Python. Первым в нашем списке будет идти тип int, это целые числа. Чтобы объявить целое число достаточно писать num=13, тем самым мы связываем имя переменной num с малочисленным объектом со значением 13, точно также можно присвоить переменной 0 либо отрицательно целое число. Начиная с Python 3.6 появилась возможность разделять порядки символом нижнего подчеркивания в длинных числах, тем самым мы можем улучшить читаемость этих чисел в исходном коде. Раз уж мы заговорили о длинных числах, стоит отметить, что Python поддерживает длинную арифметику при работе с целыми числами, то есть поддерживаются числа неограниченной длины. Прежде чем продолжить, давайте разберем еще одну встроенную функцию, которая есть в языке, это функция Type. Функция type доступна в глобальном пространстве имен и она позволяет в рантайме, в процессе работы программы посмотреть на тип объекта, если мы объявим переменную num и свяжем ее с малочисленным объектом 13, а затем посмотрим какой у неё тип, то мы увидим, что это класс int, то это действительно тип integer и в дальнейшем мы видим, что встроенные типы Python они реализованы как классы , об этом мы будем говорить на третьей неделе нашего курса. Ну а сейчас просто важно запомнить, что функция Type позволяет увидеть тип объекта. Также Python умеет работать с вещественными числами, то есть с числами с плавающей точкой, это тип float. Чтобы объявить вещественное число, можно написать num=13.4, то есть точка используется для того чтобы разделить целую и дробную часть вещественного числа, то же самое для 0, и то же самое для отрицательного вещественного числа. По аналогии с типом int мы можем использовать символ нижнего подчёркивания, для того, чтобы разделять порядки в длинном вещественном числе. Также Python поддерживает экспоненциальную нотацию записи вещественного числа, а, как мы можем видеть на слайде 1.5 Е2, на самом деле это полтора, умножить на 10 в степени 2, то есть 150. Теперь поговорим о ещё одном важном аспекте - о конвертации типов. Посмотрим на пример, предположим, у нас есть переменная num, которая связана с вещественным объектом со значением 150,2, и мы видим что это тип float. В любой момент мы можем воспользоваться встроенным классом int, чтобы переменную, которая связана с типом float, перевести в объект типа integer и затем мы можем преобразовать integer обратно к вещественному типу, используя класс float, тем самым в процессе работы программы мы можем из одного типа конвертировать переменные в другой тип. Обратите внимание, что в процессе наших конвертаций на примере, мы потеряли дробную часть вещественного числа. Также Python умеет работать с комплексными числами, это тип комплекс, для того, чтобы определить комплексное число нужно для мнимой части использовать символ J, посмотрите на пример, мы определили комплексное число 14 + 1 J и можем убедиться, что его тип действительно комплекс, используя встроенную функцию Type. А также, чтобы достучаться до реальной и мнимой части комплексного числа, мы можем воспользоваться атрибутами real и iмac. Что стоит отметить? Что в Pyton-e есть еще два модуля, которые позволяют работать с числами, эти модули очень полезны, мы не будем рассматривать их подробно, но знать о них нужно. В первую очередь, это модуль deccimal, который позволяет работать с вещественными числами с фиксированной точностью, а второй модуль это модуль fractions, который позволяет работать с рациональными числами, проще говоря с дробями. Теперь посмотрим на основные операции с числами, как я уже говорил, Python хорош в качестве калькулятора и, конечно же, он умеет работать с числами очень хорошо. Для того, чтобы сложить два числа, мы используем просто математический оператор плюс. 1+1=2, сумма двух целых чисел дает нам целое число, если мы складываем целое число и вещественное число, то результат у нас получается вещественный. То же самое с вычитанием, если мы вычитаем из целого целое, получается целое число, если мы вычитаем из вещественного целое, то результат вещественный. Для того, чтобы разделить числа, мы можем воспользоваться символом прямого слэша, и обратите внимание, что результат деления всегда вещественный. Делить на 0 нельзя. Если мы попытаемся разделить на 0, то мы получим исключение zerodivisionerror. Про исключения, как я уже говорил, мы с вами будем говорить в дальнейшем, научим вас их отлавливать и обрабатывать. Для того чтобы умножить числа, мы можем использовать звездочку, а для того, чтобы возвести число в степень, мы можем использовать две звездочки, на примере мы возводим число 2 в 4 степень. Чтобы произвести целочисленное деление, мы используем два прямых слэша. Чтобы получить остаток от деления, используем процент. Важно подчеркнуть, что Python использует порядок операций в выражениях с числами такой, какой используется в правилах математики и,в если мы посмотрим на пример, то выражение 10 умножить на 3 плюс 3, сначала выполнится умножение, а потом сложение. Если же нам нужно подчеркнуть, что нужно сначала выполнить сложение, а потом результат сложения умножить на 10, то мы можем воспользоваться круглыми скобочками для этого. Также Python поддерживает побитовые операции для чисел, и на слайде вы видите множество операторов, которые для этого используются, среди них побитово или, побитово исключающие или, и так далее. Теперь посмотрим на задачку. Задача найти расстояние между двумя точками в декартовых координатах, эта задача известна всем нам из школьного курса математики, и для того, чтобы ее решить по большому счёту, нам нужно найти гипотенузу прямоугольного треугольника. Давайте посмотрим на решение на Python. На слайде мы видим решение, вначале мы объявляем переменные, это координаты точек. Обратите внимание на самую верхнюю запись X 1 Y 1= 0.0. Это синтаксис, который поддерживается Python'ом, он позволяет через запятую перечислить названия переменных, а далее, через запятую перечислить те значения, которые этим переменным нужно присвоить. Это очень удобно. Для того, чтобы найти расстояние, мы воспользуемся формулой, корень из суммы квадратов катетов, и здесь на экране мы видим, как мы вычисляем расстояние. Вместо того, чтобы брать корень, мы возводим выражение в скобках в степени 0,5, что эквивалентно взятию корня. И далее печатаем на экран ответ, мы видим, что ответ получился правильный. А что ещё хочется отметить про синтаксис Python, это мы видели в предыдущем примере то, что можно на одной строчке присвоить значения нескольким переменным. Однако, тот же самый трюк позволяет, например, поменять значения у 2 переменных без использования временной переменной, то есть мы определяем две переменные, дальше пишем a,b =b,a, и значение переменных меняется местами. Также очень удобно. Что еще можно сделать было бы? Мы могли бы записать вместо X, Y = 0, 0, X=Y=0, тем самым мы бы связали переменную X и переменную Y с объектом, с зачисленным объектом 0. Однако нужно быть внимательным. первый объект это изменяемый объект, а второй- это неизменяемые, изменяемые объекты это объекты, которые после создания могут менять свое значение, а неизменяемые, соответственно, это объекты, которые после создания свое значение не меняют. Примитивные основные типы, которые мы разбираем на этой неделе, по большому счету, не изменяемы, поэтому для нашей задачи запись x=y=0 была бы оправдана. В данном случае, если бы мы поменяли только х, например, добавили бы к х впоследствии единичку, у нас х стал бы равен 1, а у остался бы нулем. Но если бы мы написали х=у=пустой список, а пустой список - это объект-контейнер, который мы будем разбирать на дальнейших неделях, он позволяет хранить последовательность объектов в себе, а этот объект уже изменяемый, поэтому, когда мы присваиваем х=у=пустой список, а затем в список х добавляем два элемента, то, если мы выведем на экран х и у, то мы увидим, что изменились значения обеих переменных. С этим нужно быть внимательным, это нюанс, который необходимо понимать и необходимо понимать, что в Python-е есть неизменяемые объекты и изменяемые объекты. В этом видео мы с вами поговорили об основных численных типах, которые есть в языке, рассмотрели математические операции с ними, узнали о конвертации типов, а также затронули тему изменяемых и не изменяемых объектов в Python. В дальнейших видео, мы продолжим знакомиться с основными типами в языке.