Python: поиск подстроки, операции со строками. как выполнять поиск в строке python?

Содержание:

Целые и числа с плавающей точкой в Python

В программирование целые числа — это те, что лишены плавающей точкой, например, 1, 10, -1, 0 и так далее. Числа с плавающей точкой — это, например, 1.0, 6.1 и так далее.

Создание int и float чисел

Для создания целого числа нужно присвоить соответствующее значение переменной. Возьмем в качестве примера следующий код:

Здесь мы присваиваем значение переменной

Важно не использовать одинарные или двойные кавычки при создании чисел, поскольку они отвечают за представление строк. Рассмотрим следующий код

Копировать

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

Здесь также не стоит использовать кавычки.

Проверить тип данных переменной можно с помощью встроенной функции . Можете проверить результат выполнения, скопировав этот код в свою IDE.

Копировать

Вывод:

В Python также можно создавать крупные числа, но в таком случае нельзя использовать запятые.

Копировать

Если попытаться запустить этот код, то интерпретатор Python вернет ошибку. Для разделения значений целого числа используется нижнее подчеркивание. Вот пример корректного объявления.

Копировать

Значение выведем с помощью функции :

Арифметические операции над целыми и числами с плавающей точкой

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

Сложение

В Python сложение выполняется с помощью оператора . В терминале Python выполните следующее.

Результатом будет сумма двух чисел, которая выведется в терминале.

Теперь запустим такой код.

В нем было выполнено сложение целого и числа с плавающей точкой

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

Вычитание

В Python для операции вычитания используется оператор -. Рассмотрим примеры.

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

Умножение

Для умножения в .

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

Деление

В Python деление выполняется с помощью оператора .

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

Деление без остатка

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

Результатом такой операции становится частное. Остаток же можно получить с помощью модуля, о котором речь пойдет дальше.

Остаток от деления

Для получения остатка деления двух чисел используется оператор деления по модулю .

На этих примерах видно, как это работает.

Как изменить или удалить строку?

Строки относятся к неизменяемым типам данных (immutable type). Это означает, что элементы строки не могут быть изменены после того, как она была создана. Мы можем просто переназначить разные строки одному и тому же имени.

>>> my_string = 'programfiles'
>>> my_string = 'a'
...
TypeError: 'str' object does not support item assignment
>>> my_string = 'Python'
>>> my_string
‘Python'

Мы не можем удалять символы из строки. Но полностью удалить строку можно с помощью ключевого слова del.

>>> del my_string
...
TypeError: 'str' object doesn't support item deletion
>>> del my_string
>>> my_string
...
NameError: name 'my_string' is not defined

Таблица форматов

Вы должны следовать приведенной ниже таблице форматов, чтобы использовать соответствующие директивы при указании параметра формата.

Директива Значение Пример вывода
%A День недели как полное название локали. Среда
%a День недели как сокращенное название локали. Пн, вт, ср
%w День недели в виде десятичного числа, где 0 — воскресенье, а 6 — суббота. 0,1,2,3,4… 6
%d День месяца в виде десятичного числа с нулями. 01,02,03… 31
% -d День месяца в виде десятичного числа. (Зависит от платформы) 1,2,3…
% b Месяц как сокращенное название языкового стандарта. Море
% B Месяц как полное название локали. марш
% m Месяц как десятичное число с нулями. 01,02… 12
% -m Месяц как десятичное число. (Зависит от платформы) 1,2,… 12
%y Год без века как десятичное число с нулями. 20 (на 2020 год)
% Y Год со столетием в виде десятичного числа. 2020, 2021 и др.
%H Час (в 24-часовом формате) как десятичное число с нулями. 01, 02,…
%-H Час (24-часовой формат) в виде десятичного числа. (Зависит от платформы) 1,2,3,…
%I Час (12-часовой формат) как десятичное число с нулями. 01, 02, 03,…
%-I Час (12-часовой формат) в виде десятичного числа. (Зависит от платформы) 1, 2, 3…
%p Локальный эквивалент AM или PM. ДО ПОЛУДНЯ ПОСЛЕ ПОЛУДНЯ
%M Минута в виде десятичного числа с нулями. 01, 02,… 59
% -M Минута как десятичное число. (Зависит от платформы) 1,2,3,… 59
% S Второй — десятичное число с нулями. 01, 02,… 59
% -S Секунда как десятичное число. (Зависит от платформы) 1, 2,… 59
% f Микросекунда в виде десятичного числа с нулями слева. 000000
%z Смещение UTC в форме + ЧЧММ или -ЧЧММ (пустая строка, если объект наивен). (пусто), +0000, -0400, +1030
%Z Название часового пояса (пустая строка, если объект наивный). (пусто), UTC, IST, CST
% j День года в виде десятичного числа с нулями. 1, 2, 3,… 366
% -j День года в виде десятичного числа. (Зависит от платформы) 1, 2, 3,… 366
% U Номер недели в году (воскресенье как первый день недели) в виде десятичного числа, дополненного нулями. Все дни нового года, предшествующие первому воскресенью, считаются нулевой неделей. 1, 2, 3,… 53
%W Номер недели в году (понедельник как первый день недели) в виде десятичного числа. Все дни нового года, предшествующие первому понедельнику, считаются нулевой неделей. 1, 2, 3,… 53
% c Соответствующее представление даты и времени для локали. Ср 06 мая 12:23:56 2020
%x Соответствующее представление даты языкового стандарта. 06.05.20
%X Соответствующее временное представление локали. 12:23:56
%% Буквальный символ «%». %

Материнские платы для ПК: основы

Intel создала форм-фактор ATX и впервые представила его в 1995 году. В течение почти 25 лет дизайн ATX был преобладающим форм-фактором для домашних и офисных ПК.

ATX имеет самый большой из трех размеров материнских плат: 12 дюймов на 9,6 дюйма. Спецификация требует, чтобы все материнские платы ATX были такого размера. Он также указывает расположение точек монтирования, панели ввода/вывода, разъемов питания и всех других различных интерфейсов подключения.

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

Однако не всем нужна материнская плата размера ATX, особенно если целью является создание чего-то более компактного. MicroATX платы, которые имеют размер всего 9,6 дюйма на 9,6 дюйма. Как и у более крупных материнских плат ATX, стандарт определяет, какими должны быть все критические точки.

Наконец, Mini-ITX, разработанный Via Technologies в 2001 году, является самым маленьким из них, его размеры составляют всего 6,7 дюйма на 6,7 дюйма.

Материнские платы ATX имеют наибольшую расширяемость. У них обычно есть шесть (или меньше) слотов PCIe для таких вещей, как графика, звук и сетевые карты. Однако существуют платы Extended ATX (или EATX), которые имеют семь слотов PCIe, но они предназначены для энтузиастов и серверов и выходят за рамки этой статьи.

MicroATX может иметь до четырех слотов PCIe, а Mini-ITX — только один для видеокарты.

ОЗУ также ограничено на Mini-ITX. В нем предусмотрено всего два слота против четырех на платах ATX или MicroATX. Это не означает, что платы Mini-ITX не могут иметь достаточный объем ОЗУ. Например, если Вам нужно 32 ГБ оперативной памяти, Вы просто устанавливаете на нее два модуля по 16 ГБ, тогда как на двух других материнских платах Вы устанавливаете модули по 8 ГБ.

Вводная информация о строках

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

Литералы строк

Литерал – способ создания объектов, в случае строк Питон предлагает несколько основных вариантов:

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

Разницы между строками с одинарными и двойными кавычками нет – это одно и то же

Какие кавычки использовать – решать вам, соглашение PEP 8 не дает рекомендаций по использованию кавычек. Просто выберите один тип кавычек и придерживайтесь его. Однако если в стоке используются те же кавычки, что и в литерале строки, используйте разные типы кавычек – обратная косая черта в строке ухудшает читаемость кода.

Кодировка строк

В третьей версии языка программирования Python все строки представляют собой последовательность Unicode-символов.

В Python 3 кодировка по умолчанию исходного кода – UTF-8. Во второй версии по умолчанию использовалась ASCII. Если необходимо использовать другую кодировку, можно разместить специальное объявление на первой строке файла, к примеру:

Максимальная длина строки в Python

Максимальная длина строки зависит от платформы. Обычно это:

  • 2**31 — 1 – для 32-битной платформы;
  • 2**63 — 1 – для 64-битной платформы;

Константа , определенная в модуле

Конкатенация строк

Одна из самых распространенных операций со строками – их объединение (конкатенация). Для этого используется знак , в результате к концу первой строки будет дописана вторая:

При необходимости объединения строки с числом его предварительно нужно привести тоже к строке, используя функцию

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

При сравнении нескольких строк рассматриваются отдельные символы и их регистр:

  • цифра условно меньше, чем любая буква из алфавита;
  • алфавитная буква в верхнем регистре меньше, чем буква в нижнем регистре;
  • чем раньше буква в алфавите, тем она меньше;

При этом сравниваются по очереди первые символы, затем – 2-е и так далее.

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

Как удалить строку в Python

Строки, как и некоторые другие типы данных в языке Python, являются неизменяемыми объектами. При задании нового значения строке просто создается новая, с заданным значением. Для удаления строки можно воспользоваться методом , заменив ее на пустую строку:

Или перезаписать переменную пустой строкой:

Обращение по индексу

Для выбора определенного символа из строки можно воспользоваться обращением по индексу, записав его в квадратных скобках:

Индекс начинается с 0

В Python предусмотрена возможность получить доступ и по отрицательному индексу. В таком случае отсчет будет вестись от конца строки:

Разделение на подстроки в Python

Для разделения в Python используется метод split(). В зависимости от разделителя он разбивает строку на перечень подстрок. В роли разделителя в данном случае может быть любой символ либо последовательность символов. Этот метод имеет следующие формы:
• split(): в роли разделителя применяется такой символ, как пробел;
• split(delimeter): в роли разделителя применяется delimeter;
• split(delimeter, num): параметром num указывается, какое количество вхождений delimeter применяется для разделения. При этом оставшаяся часть строки добавляется в перечень без разделения на подстроки.

Проверяет, что все элементы в последовательности True.

Описание:

Функция возвращает значение , если все элементы в итерируемом объекте — истинны, в противном случае она возвращает значение .

Если передаваемая последовательность пуста, то функция также возвращает .

Функция применяется для проверки на ВСЕХ значений в последовательности и эквивалентна следующему коду:

def all(iterable):
    for element in iterable
        if not element
            return False
    return True

Так же смотрите встроенную функцию

В основном функция применяется в сочетании с оператором ветвления программы . Работу функции можно сравнить с оператором в Python, только работает с последовательностями:

>>> True and True and True
# True
>>> True and False and True
# False

>>> all()
# True
>>> all()
# False

Но между и в Python есть два основных различия:

  • Синтаксис.
  • Возвращаемое значение.

Функция всегда возвращает или (значение )

>>> all()
# True
>>> all(])
# False

Если в выражении все значения , то оператор возвращает ПЕРВОЕ истинное значение, а если все значения , то последнее ложное значение. А если в выражении присутствует значение , то ПЕРВОЕ ложное значение. Что бы добиться поведения как у функции , необходимо выражение с оператором обернуть в функцию .

>>> 3 and 1 and 2 and 6
# 6
>>> 3 and  and 3 and []
# 0

>>> bool(3 and 1 and 2 and 6)
# True
>>> bool(3 and  and 3 and [])
# False

Из всего сказанного можно сделать вывод, что для успешного использования функции необходимо в нее передавать последовательность, полученную в результате каких то вычислений/сравнений, элементы которого будут оцениваться как или . Это можно достичь применяя функцию или выражения-генераторы списков, используя в них встроенные функции или методы, возвращающие значения, операции сравнения, оператор вхождения и оператор идентичности .

num = 1, 2.0, 3.1, 4, 5, 6, 7.9
# использование встроенных функций или
# методов на примере 'isdigit()'
>>> str(x).isdigit() for x in num
# 

# использование операции сравнения
>>> x > 4 for x in num
# 

# использование оператора вхождения `in`
>>> '.' in str(x) for x in num
# 

# использование оператора идентичности `is`
>>> type(x) is int for x in num
# 

# использование функции map()
>>> list(map(lambda x x > 1, num))
False, True, True, True, True, True, True

Примеры проводимых проверок функцией .

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

>>> num1 = range(1, 9)
>>> num2 = range(-1, 7)
>>> all()
# True
>>> all()
# False

Или проверить, что последовательность чисел содержит только ЦЕЛЫЕ числа.

>>> num1 = 1, 2, 3, 4, 5, 6, 7
>>> num2 = 1, 2.0, 3.1, 4, 5, 6, 7.9
>>> all()
# True
>>> all()
# False

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

>>> line1 = "1, 2, 3, 9.9, 15.1, 7"
>>> line2 = "1, 2, 3, 9.9, 15.1, 7, девять"
>>> all()
# True
>>> all()
# False

Еще пример со строкой. Допустим нам необходимо узнать, есть ли в строке наличие открытой И закрытой скобки?

Словари

Словари — это хеш-таблицы или неупорядоченные наборы пар типа «ключ-значение». Работают, как ассоциативные массивы. Используются, если нужно сопоставить значение какому-нибудь ключу, чтобы иметь возможность получить доступ к этому значению, имея соответствующий ключ. В других языках программирования словари называют map, hash, object.

Словарь оптимизирован для извлечения данных. Он объявляется парами элементов в виде ключ:значение, которые заключены в фигурные скобки:

>>> d = {1'value', 'key'2}
>>> type(d)
<class 'dict'>

Ключ используется для получения значения, которое ему соответствует. Не наоборот!

>>> d = {1'value', 'key'2}
>>> print("d =", d1]);
d1 = value
>>> print("d =", d'key']);
d'key' = 2
# Приведёт к ошибке
>>> print("d =", d2]);

Преобразование типов чисел Python

Мы можем преобразовать int в float с помощью функции float(). Точно так же мы можем использовать функцию int() для преобразования числа с плавающей запятой в int.

Мы можем использовать функцию complex() для преобразования int или float в комплексное число, мнимая часть будет 0j.

Мы не можем преобразовать комплексное число в int или float.

i = 10
f = 10.55

# int to float conversion
f1 = float(i)
print(f1)
print(type(f1))

# float to int conversion
i1 = int(f)
print(i1)
print(type(i1))

# int and float to complex number conversion
c = complex(i)
print(c)
print(type(c))

c = complex(f)
print(c)
print(type(c))

Вывод:

10.0
<class 'float'>
10
<class 'int'>
(10+0j)
<class 'complex'>
(10.55+0j)
<class 'complex'>

Словари

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

Вы можете получить список ключей путем вызова метода keys() в том или ином словаря. Чтобы проверить, присутствует ли ключ в словаре, вы можете использовать ключ in в Python. В некоторых старых версиях Python (с 2.3 и более ранних, если быть точным), вы увидите ключевое слово has_key, которое используется для проверки наличия ключа в словаре. Данный ключ является устаревшим в Python 2.X, и был удален, начиная с версии 3.Х. Давайте попробуем создать наш первый словарь:

Python

my_dict = {}
another_dict = dict()

my_other_dict = {«one»:1, «two»:2, «three»:3}
print(my_other_dict) # {‘three’: 3, ‘two’: 2, ‘one’: 1}

1
2
3
4
5

my_dict={}

another_dict=dict()

my_other_dict={«one»1,»two»2,»three»3}

print(my_other_dict)# {‘three’: 3, ‘two’: 2, ‘one’: 1}

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

Python

my_other_dict = {«one»:1, «two»:2, «three»:3}

print(my_other_dict) # 1

my_dict = {«name»:»Mike», «address»:»123 Happy Way»}
print(my_dict) # ‘Mike’

1
2
3
4
5
6

my_other_dict={«one»1,»two»2,»three»3}

print(my_other_dict»one»)# 1

my_dict={«name»»Mike»,»address»»123 Happy Way»}

print(my_dict»name»)# ‘Mike’

В первом примере, мы использовали словарь из предыдущего примере, и вытащили значение, связанное с ключом под названием one. Второй пример демонстрирует, как задавать значение ключу name. Теперь попробуем узнать, находится ли ключ в словаре или нет:

Python

print(«name» in my_dict) # True

print(«state» in my_dict) # False

1
2
3

print(«name»inmy_dict)# True

print(«state»inmy_dict)# False

Что-ж, если ключ в словаре, Python выдает нам Boolean True. В противном случае, мы получаем Boolean False. Если вам нужно получить список ключей  в словаре, вам нужно сделать следующее:

Python

print(my_dict.keys()) # dict_keys()

1 print(my_dict.keys())# dict_keys()

В Python 2, метод keys дает нам список. Но в Python 3 он дает объект view. Это дает разработчику возможность обновлять словарь, так что view также обновится

Обратите внимание на то, что когда мы используем ключевое слово in для текста содержимого словаря, лучше будет сделать это в словаре, а не в списке, выдаваемом методом keys. Смотрим ниже:

Python

if «name» in my_dict # Такая конструкция правильная

if «name» in my_dict.keys() # Работает но медленее

1
2
3

if»name»inmy_dict# Такая конструкция правильная

if»name»inmy_dict.keys()# Работает но медленее

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

Используем рекурсию

# Python code to reverse a string  
# using recursion 
  
def reverse(s): 
    if len(s) == 0: 
        return s 
    else: 
        return reverse(s) + s 
  
s = "Pythonist"
  
print ("The original string  is : ",end="") 
print (s) 
  
print ("The reversed string(using recursion) is : ",end="") 
print (reverse(s)) 
The original string  is : Pythonist
The reversed string(using recursion) is : tsinohtyP  

Объяснение: В приведенном выше коде строка передается в качестве аргумента рекурсивной функции для обращения строки. В функции основное условие состоит в том, что если длина строки равна 0, строка возвращается. Если не равно 0, рекурсивно вызывается обратная функция, чтобы разрезать часть строки, оставив первый символ, и объединить первый символ с концом отрезанной строки.

Нововведения Python 3.9.0

Начиная с недавно вышедшей версии Python 3.9, у разработчиков больше нет необходимости импортировать абстрактные коллекции для описания типов. Теперь вместо можно использовать , то же самое происходит с , , и т.д. Полное описание этого нововведения можно прочитать тут: PEP-585.

Также добавили аннотации типов, которые в дальнейшем могут быть использованы инструментами статического анализа. где — тип переменной , а — некоторые метаданные для переменной. По оценкам некоторых авторов, эти метаданные могут быть использованы также и во время выполнения (подробности смотрите в PEP-593).

Копирование

  • Определяет поведение для экземпляра вашего класса. возвращает поверхностную копию вашего объекта — это означает, что хоть сам объект и создан заново, все его данные ссылаются на данные оригинального объекта. И при изменении данных нового объекта, изменения будут происходить и в оригинальном.

  • Определяет поведение для экземпляров вашего класса. возвращает глубокую копию вашего объекта — копируются и объект и его данные. это кэш предыдущих скопированных объектов, он предназначен для оптимизации копирования и предотвращения бесконечной рекурсии, когда копируются рекурсивные структуры данных. Когда вы хотите полностью скопировать какой-нибудь конкретный атрибут, вызовите на нём с первым параметром .

Другие методы для работы со строками в Python

В языке Пайтон имеется большое кол-во различных методов для работы со строками. Если рассматривать их все в этой статье, то она может увеличить раза в три, а то и больше. Подробное описание работы всех методов можно найти в официальной документации к языку на сайте https://python.org/

Как создать кортеж в Python?

Мы можем создать кортеж, поместив все его элементы в круглые скобки, разделенные запятыми.

tuple_numbers = (1, 2, 3, 1)

Мы можем хранить разные типы объектов.

tup = 1, 2, 3, 1, None, "Hello"

Давайте посмотрим на пример вложенного кортежа.

nested_tuple = ((1, 2), ("Hello", "Hi"), "Python")

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

empty_tuple =()

Использование круглых скобок для создания границы необязательно. Однако лучше всего его использовать. Если вы печатаете кортеж, элементы всегда печатаются в круглых скобках.

>>> tup = 1, 2, "Hello"
>>> print(tup)
(1, 2, 'Hello')
>>>

Создание кортежа из одного элемента немного сложно. Если вы поместите одно значение в круглые скобки, оно не создаст его. Он создаст объект типа значения. Давайте проверим это на простом примере.

single_item_tuple = ("Hello")

print(type(single_item_tuple))

single_item_tuple = (10)

print(type(single_item_tuple))

Вывод:

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

single_item_tuple = "Hello",

print(type(single_item_tuple))

single_item_tuple = 10,

print(type(single_item_tuple))

Преобразование типов номеров

В Python существует два типа данных данных : целые числа и числа с плавающей запятой или поплавки. Иногда вы работаете над чьим-то кодом и вам нужно преобразовать целое число в float или наоборот, или вы можете обнаружить, что вы используете целое число, когда то, что вам действительно нужно, — это float. Python имеет встроенные методы, позволяющие легко преобразовывать целые числа в float и float в целые числа.

Преобразование целых чисел в поплавки

Метод Python будет преобразовывать целые числа в float. Чтобы использовать эту функцию, добавьте целое число в круглые скобки:

В этом случае будет преобразовано в .

Вы также можете использовать это с переменной. Объявим как равный , а затем распечатаем новый float:

Output

Используя эту функцию, мы можем преобразовать целые числа в float.

Преобразование плавающих чисел в целые числа

Python также имеет встроенную функцию для преобразования поплавков целых чисел: .

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

В этом случае будет преобразовано в .

Вы также можете использовать это с переменными. Объявим как равные и равные , а затем распечатаем новые поплавки:

Output

При преобразовании float в целые числа с функцией Python отключает десятичные и оставшиеся числа float для создания целого числа. Несмотря на то, что мы, возможно, захотим округлить 390,8 до 391, Python не будет делать этого через функцию.

Цифры, конвертированные под деление

В Python 3 соответствующие коэффициенты преобразуются из целых чисел в float при выполнении разделения, хотя они не находятся в Python 2 . То есть, когда вы разделите 5 на 2, в Python 3 вы получите поплавок для ответа (2.5):

Output

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

Целые числа (int)

Числа в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций:

x + y Сложение
x — y Вычитание
x * y Умножение
x / y Деление
x // y Получение целой части от деления
x % y Остаток от деления
-x Смена знака числа
abs(x) Модуль числа
divmod(x, y) Пара (x // y, x % y)
x ** y Возведение в степень
pow(x, y) xy по модулю (если модуль задан)

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

>>> 255 + 34
289
>>> 5 * 2
10
>>> 20  3
6.666666666666667
>>> 20 // 3
6
>>> 20 % 3
2
>>> 3 ** 4
81
>>> pow(3, 4)
81
>>> pow(3, 4, 27)
>>> 3 ** 150
369988485035126972924700782451696644186473100389722973815184405301748249

Битовые операции

Над целыми числами также можно производить битовые операции

x | y Побитовое или
x ^ y Побитовое исключающее или
x & y Побитовое и
x << n Битовый сдвиг влево
x >> y Битовый сдвиг вправо
~x Инверсия битов

Дополнительные методы

int.bit_length() — количество бит, необходимых для представления числа в двоичном виде, без учёта знака и лидирующих нулей.

>>> n = -37
>>> bin(n)
'-0b100101'
>>> n.bit_length()
6

int.to_bytes(length, byteorder, *, signed=False) — возвращает строку байтов, представляющих это число.

>>> (1024).to_bytes(2, byteorder='big')
b'\x04\x00'
>>> (1024).to_bytes(10, byteorder='big')
b'\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00'
>>> (-1024).to_bytes(10, byteorder='big', signed=True)
b'\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x00'
>>> x = 1000
>>> x.to_bytes((x.bit_length() // 8) + 1, byteorder='little')
b'\xe8\x03'

classmethod int.from_bytes(bytes, byteorder, *, signed=False) — возвращает число из данной строки байтов.

>>> int.from_bytes(b'\x00\x10', byteorder='big')
16
>>> int.from_bytes(b'\x00\x10', byteorder='little')
4096
>>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=True)
-1024
>>> int.from_bytes(b'\xfc\x00', byteorder='big', signed=False)
64512
>>> int.from_bytes(, byteorder='big')
16711680
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector