Числа python
Содержание:
- Другие методы для работы со строками в Python
- Форматирование строк
- Типизация в Python
- Преобразование типов данных в Python
- Условный оператор
- ValueError Exception при преобразовании строки Python в int
- Создание произвольных последовательностей
- Десятичные дроби в Python
- Postmypost
- Таблица форматов
- Словари
- Преобразование типа данных
- Константы в Python
- Форматирование строк в Python
- Позволяет производить ввод данных в консоли.
- Преобразование строки Python в int
- Преобразование типов данных
- Последовательности
Другие методы для работы со строками в Python
В языке Пайтон имеется большое кол-во различных методов для работы со строками. Если рассматривать их все в этой статье, то она может увеличить раза в три, а то и больше. Подробное описание работы всех методов можно найти в официальной документации к языку на сайте https://python.org/
Форматирование строк
Часто возникает ситуация, когда необходимо создать строку, подставив в нее определенные значения, полученные во время выполнения программы. Подстановка данных в таком случае выполняется при помощи форматирования строк, сделать это можно несколькими способами.
Оператор %
Строки в Python обладают встроенной операцией, к которой можно получить доступ оператором %, что дает возможность очень просто делать форматирование. Самый простой пример – когда для подстановки нужен только один аргумент, значением будет он сам:
Если же для подстановки используется несколько аргументов, то значением будет кортеж со строками:
Как видно из предыдущего примера, зависимо от типа данных для подстановки и того, что требуется получить в итоге, пишется разный формат. Наиболее часто используются:
- ‘%d’, ‘%i’, ‘%u – десятичное число;
- ‘%c’ – символ, точнее строка из одного символа или число – код символа;
- ‘%r’ – строка (литерал Python);
- ‘%s’ – строка.
Такой способ форматирования строк называет «старым» стилем, который в Python 3 был заменен на более удобные способы.
str.format()
В Python 3 появился более новый метод форматирования строк, который вскоре перенесли и в Python 2.7. Такой способ избавляет программиста от специального синтаксиса %-оператора. Делается все путем вызова .format() для строковой переменной. С помощью специального символа – фигурных скобок – указывается место для подстановки значения, каждая пара скобок указывает отдельное место для подстановки, значения могут быть разного типа:
В Python 3 форматирование строк с использованием «нового стиля» является более предпочтительным по сравнению с использованием %-стиля, так как предоставляет более широкие возможности, не усложняя простые варианты использования.
f-строки (Python 3.6+)
В Python версии 3.6 появился новый метод форматирования строк – «f-строки», с его помощью можно использовать встроенные выражения внутри строк:
Такой способ форматирования очень мощный, так как дает возможность встраивать выражения:
Таким образом, форматирование с помощью f-строк напоминает использование метода format(), но более гибкое, быстрое и читабельное.
Стандартная библиотека Template Strings
Еще один способ форматирования строк, который появился еще с выходом Python версии 2.4, но так и не стал популярным – использование библиотеки Template Strings. Есть поддержка передачи значения по имени, используется $-синтаксис как в языке PHP:
Типизация в Python
Для обозначения базовых типов переменных используются сами типы:
- etc.
Пример использования базовых типов в python-функции:
Помимо этого, можно параметризировать более сложные типы, например, . Такие типы могут принимать значения параметров, которые помогают более точно описать тип функции. Так, например, указывает на то, что список состоит только из целочисленных значений.
Пример кода:
Кроме , существуют и другие типы из модуля typing, которые можно параметризировать. Такие типы называются Generic-типами. Такого рода типа определены для многих встроенных в Python структур данных:
- и т.д.
Как можно заметить, некоторые типы имеют несколько параметров, которые можно описать. Например, означает, что это будет словарь, где ключи будут иметь тип , а значения – тип .
Курс «Управление ИТ-проектами»
Старт 17 сентября, 7 месяцев, Онлайн, От 8000 до 88 000 ₽
tproger.ru
События и курсы на tproger.ru
Также есть более абстрактные типы, например:
- – объект имеет реализации метода ;
- – объект имеет реализацию метода .
При этом функции тоже имеют свои типы. Например, для описания функции можно использовать тип , где указываются типы входных параметров и возвращаемых значений. Пример использования:
Тип :
- говорит о том, что у объекта реализован метод ;
- описывает типы параметров к этому методу.
На первом месте стоит массив типов входных параметров, на втором — тип возвращаемого значения.
Про остальные абстрактные типы контейнеров можно в документации Python.
Также есть более конкретные типы, например , где указывает не тип, а конкретное значение. Например означает цифру 3. Используют такой тип крайне редко.
Также Python позволяет определять свои Generic-типы.
В данном примере означает переменную любого типа, которую можно подставить при указании. Например:
Для определения собственных типов наследование возможно не только от , но и от других абстрактных типов, например, таких, как , .
На месте или могут быть конкретные типы.
Также есть специальные конструкции, которые позволяют комбинировать типы. Например, — один из типов. Если переменной может быть как , так и , то как тип следует указать . Если переменной может быть как , так и , то в качестве типа можно указать или, что предпочтительно, .
Преобразование типов данных в Python
Мы можем преобразовывать типы данных, используя разные функции преобразования, такие как int(), float(), str() и т. д.
Например так можно преобразовать тип int в float:
float_number = float(5) print(float_number) 5.0
Преобразование числа типа float в int приведет к округлению в сторону нуля:
int_number = int(12.6) print(int_number) 12
При преобразовании строки в число, строка должна содержать подходящее значение:
number = float('12') print(number) 12 get_number = int('4g') Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: '4g'
При попытке преобразования строки ‘4g’ возникла ошибка.
Так же, довольно просто можно преобразовывать последовательности:
print(set()) {1, 2, 3} print(tuple({5,6,7})) (5, 6, 7) print(list('hello'))
Условный оператор
В языке python синтаксис обладает интересной особенностью: дело в том, что в коде нет операторных скобок ( или ); вместо них отступы указывают, какие операторы выполнять внутри той или иной конструкции.
Зачем отступы и где их ставить?
1 2 3 4 |
if x > : if x < 2: else: оператор |
Следует обратить внимания, что знак сравнения в Питоне записывается, как два знака :
1 2 3 4 5 6 |
if x < : блок1 elif x == : # сравнение! блок2 else: блок3 |
Другой пример использования условия:
1 2 3 4 5 6 |
if x < : print('мало') elif x == : print('средне') else: print('много') |
Сложные условия
- Использование двойных неравенств разрешено:
1 2 3 4 |
if < x < 2: if < y < 2: else: оператор |
Пример использования условия c :
1 2 3 4 5 6 |
if x < : print('мало') elif - <= x <= : print('средне') else: print('много') |
Кроме того, можно применять логический оператор (И):
if x >= 30 and x <= 40: ... |
Использование с оператором :
site = "my.ru" if "ru" in site: print("Условие выполнено!") # Условие выполнено! |
Кроме того, можно применять логический оператор (ИЛИ):
site = "my.ru" if "my" in site or site.endswith(".ru"): # заканчивается на ... print("Условие выполнено!") |
Аналог тернарного оператора:
uchenik_1 = 5 uchenik_2 = 2 otlichnik = "первый ученик" if uchenik_1 > uchenik_1 else "второй ученик" print(otlichnik) # первый ученик |
Задание Python 1_6: Запрашивается количество часов и заработок в час. Рассчитать зарплату. Если работник работал более 40 часов, — то зарплата умножается на коэффициент 1,5. Оформить в формате дружелюбного интерфейса.
Пример: Дан год. Определить високосный ли год или нет? Вывести или (логическое значение).Указания: Год является високосным если он кратен 4, но при этом не кратен 100, либо кратен 400.
Решение:
year = 2017 is_true = year % 4 == and (year % 100 != or year % 400 == ) print(is_true) |
Задание Python 1_7: Напишите программу, которая определяет, верно ли, что введённое число – четырёхзначное. Вывести или (логическое значение).
Задание Python 1_8: Напишите программу, которая вводит с клавиатуры номер месяца и определяет, сколько дней в этом месяце. Предусмотреть сообщение об ошибке в случае ввода неверного числа.
! Решения заданий можно попросить у администратора, выслав письмо с запросом на электронный адрес (внизу веб-страницы). В письме укажите Ваши ФИО, город, должность (учитель/ученик/студент). Укажите, занимаетесь ли самостоятельно и номер урока, решения которого необходимо выслать.
ValueError Exception при преобразовании строки Python в int
Сценарий: Если какая-либо из входных строк содержит цифру, не принадлежащую к десятичной системе счисления.
В приведенном ниже примере, если вы хотите преобразовать строку «A» в целочисленное значение A с основанием 16, и мы не передаем base = 16 в качестве аргумента методу int(), тогда это вызовет исключение ValueError.
Поскольку, хотя ‘A’ является шестнадцатеричным значением, оно не принадлежит к десятичной системе счисления, оно не будет рассматривать A как эквивалент десятичного числа 10, пока мы не передадим base = 16 в качестве аргумента в функцию int().
Пример:
string_num = 'A' print("The data type of the input variable is:\n") print(type(string_num)) result = int(string_num) print(type(result)) print("The converted variable from string(base 16) to int:\n") print(result)
Выход:
The data type of the input variable is: <class 'str'> Traceback (most recent call last): File "main.py", line 4, in <module> result = int(string_num) ValueError: invalid literal for int() with base 10: 'A'
Создание произвольных последовательностей
Магия контейнеров
-
Возвращает количество элементов в контейнере. Часть протоколов для изменяемого и неизменяемого контейнеров.
-
Определяет поведение при доступе к элементу, используя синтаксис . Тоже относится и к протоколу изменяемых и к протоколу неизменяемых контейнеров. Должен выбрасывать соответствующие исключения: если неправильный тип ключа и если ключу не соответствует никакого значения.
-
Определяет поведение при присваивании значения элементу, используя синтаксис . Часть протокола изменяемого контейнера. Опять же, вы должны выбрасывать и в соответсвующих случаях.
-
Определяет поведение при удалении элемента (то есть ). Это часть только протокола для изменяемого контейнера. Вы должны выбрасывать соответствующее исключение, если ключ некорректен.
-
Должен вернуть итератор для контейнера. Итераторы возвращаются в множестве ситуаций, главным образом для встроенной функции и в случае перебора элементов контейнера выражением . Итераторы сами по себе объекты и они тоже должны определять метод , который возвращает .
-
Вызывается чтобы определить поведения для встроенной функции . Должен вернуть обратную версию последовательности. Реализуйте метод только если класс упорядоченный, как список или кортеж.
- предназначен для проверки принадлежности элемента с помощью и . Вы спросите, почему же это не часть протокола последовательности? Потому что когда не определён, Питон просто перебирает всю последовательность элемент за элементом и возвращает если находит нужный.
- используется при наследовании от . Определяет поведение для для каждого случая, когда пытаются получить элемент по несуществующему ключу (так, например, если у меня есть словарь и я пишу когда не является ключом в словаре, вызывается ).
Десятичные дроби в Python
Встроенный в Python класс float выполняет некоторые вычисления, которые могут нас удивить. Мы все знаем, что сумма 1.1 и 2.2 равна 3.3, но Python, похоже, не согласен.
>>> (1.1 + 2.2) == 3.3 False
Оказывается, что числа с плавающей запятой реализованы в Python как двоичные дроби, поскольку компьютер понимает только двоичную систему счисления (0 и 1). По этой причине большинство известных нам десятичных дробей не может быть точно сохранено на нашем компьютере.
Давайте рассмотрим пример. Мы не можем представить дробь 1/3 как десятичное число. Это даст 0.33333333.
Получается, что десятичная дробь 0,1 приведет к бесконечно длинной двоичной дроби 0,000110011001100110011 … и наш компьютер хранит только ее конечное число.
Это будет только приблизительно 0,1, но никогда не будет равным 0,1. Следовательно, это ограничение нашего компьютерного оборудования, а не ошибка в Python.
>>> 1.1 + 2.2 3.3000000000000003
Чтобы преодолеть эту проблему, мы можем использовать десятичный модуль decimal, который поставляется с Python. В то время как числа с плавающей запятой имеют точность до 15 десятичных знаков, десятичный модуль имеет заданную пользователем точность.
import decimal # Результат: 0.1 print(0.1) # Результат: Decimal('0.1000000000000000055511151231257827021181583404541015625') print(decimal.Decimal(0.1))
Этот модуль используется, когда мы хотим выполнить десятичные вычисления с высокой точностью.
Postmypost
Таблица форматов
Вы должны следовать приведенной ниже таблице форматов, чтобы использовать соответствующие директивы при указании параметра формата.
Директива | Значение | Пример вывода |
---|---|---|
%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 |
%% | Буквальный символ «%». | % |
Словари
Словари — это хеш-таблицы или неупорядоченные наборы пар типа «ключ-значение». Работают, как ассоциативные массивы. Используются, если нужно сопоставить значение какому-нибудь ключу, чтобы иметь возможность получить доступ к этому значению, имея соответствующий ключ. В других языках программирования словари называют 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]);
Преобразование типа данных
Иногда вам может потребоваться выполнить преобразования между встроенными типами. Чтобы преобразовать типы, вы просто используете имена типов как функцию.
Существует несколько встроенных функций для преобразования из одного типа данных в другой. Эти функции возвращают новый объект, представляющий преобразованное значение.
S.No. | Функция & Описание |
---|---|
1 |
Преобразует x в целое число. |
2 |
Преобразует x в число с плавающей запятой. |
3 |
Создает комплексное число. |
4 |
Преобразует объект x в строковое представление. |
5 |
Преобразует объект x в строковое выражение. |
6 |
Обрабатывает строку и возвращает объект. Используется для выполнения программного кода представленного сторокой. |
7 |
Преобразует s в кортеж. |
8 |
Преобразует s в список. |
9 |
Преобразует s в набор. |
10 |
Создает словарь. d должен быть последовательностью (ключ, значение) кортежей. |
11 |
Преобразует s в неизменяемый набор. |
12 |
Преобразует целое число в символ. |
13 |
Преобразует целое число в символ Unicode. |
14 |
Преобразует один символ в его целочисленное значение. |
15 |
Преобразует целое число в шестнадцатеричную строку. |
16 |
Преобразует целое число в восьмеричную строку. |
Константы в Python
Константа — это тип переменной, значение которой нельзя изменить на протяжении всего жизненного цикла программы. Однако в Python, это носит скорее рекомендательный характер. Дело в том, что в отличии от многих языков программирования, в которых присвоение нового значения константе вызовет ошибку, в Python значение константы может быть изменено и это не вызовет вопросов со стороны интерпретатора.
При объявлении константы вы как бы говорите себе и другим программистам которые возможно будут читать ваш код «Значение этой переменной не должно меняться на протяжении всего цикла работы программы!».
Как объявить константу в Python
Как и обычная переменная (а константа в Python, технически, это обычная переменная) константа инициализируется в момент присвоения ей значения:
PI = 3.14
Имя константы пишется в верхнем регистре (PI, MESSAGE и т.д.) с целью выделить ее, дать понять что это именно константа и ее значение должно оставаться неизменным. Если в имени присутствуют два или больше слов, то они разделяются символом подчеркивания (WELCOME_MESSAGE).
Форматирование строк в Python
Экранирование символов
Если внутри строки содержатся символы одинарной и двойной кавычки, то вне зависимости от того, какие кавычки мы использовали для создания строки — мы получим ошибку SyntaxError.
>>> print("She said, "What's there?"") ... SyntaxError: invalid syntax >>> print('She said, "What's there?"') ... SyntaxError: invalid syntax
Один из способов обойти эту проблему — использовать тройные кавычки. В качестве альтернативы мы можем использовать escape-последовательности или так называемое «экранирование символов».
Экранирующая последовательность начинается с обратной косой черты. Если мы используем одинарную кавычку для представления строки, все одинарные кавычки внутри строки должны быть экранированы. Аналогично обстоит дело с двойными кавычками. Вот как это можно сделать для представления приведенного выше текста.
# Тройные кавычки print('''He said, "What's there?"''') # Экранирование одинарных кавычек print('He said, "What\'s there?"') # Экранирование двойных кавычек print("He said, \"What's there?\"")
Использование метода format() для форматирования строк
Метод format(), доступный для строкового объекта, очень универсален и мощен в форматировании строк. Формат строки содержит фигурные скобки {} в качестве заполнителей или заменяющих полей, которые заменяются соответствующими значениями.
Мы можем использовать позиционные аргументы или ключевые аргументы, чтобы указать порядок.
# порядок по умолчанию default_order = "{}, {} and {}".format('John','Bill','Sean') print(default_order) # порядок задается вручную positional_order = "{1}, {0} and {2}".format('John','Bill','Sean') print(positional_order) # порядок задается аргументами keyword_order = "{s}, {b} and {j}".format(j='John',b='Bill',s='Sean') print(keyword_order)
Метод format() может иметь необязательные спецификации формата. Они отделены от имени поля двоеточием. Например, мы можем выравнивать по левому краю <, выравнивать по правому краю > или центрировать ^ строку в заданном пространстве. Мы также можем отформатировать целые числа как двоичные, шестнадцатеричные и т.д., а числа с плавающей точкой могут быть округлены или отображены в формате экспоненты. Существует множество форматов, которые вы можете использовать. Более подробно про метод format() можно почитать в официальной документации к языку.
>>> # форматирование целых чисел >>> "Binary representation of {0} is {0:b}".format(12) 'Binary representation of 12 is 1100' >>> # форматирование чисел с плавающей запятой >>> "Exponent representation: {0:e}".format(1566.345) 'Exponent representation: 1.566345e+03' >>> # округление >>> "One third is: {0:.3f}".format(1/3) 'One third is: 0.333' >>> # выравнивание строки >>> "|{:<10}|{:^10}|{:>10}|".format('butter','bread','ham') '|butter | bread | ham|’
Позволяет производить ввод данных в консоли.
Описание:
Функция позволяет обеспечить ввод пользовательских данных из консоли. Если передан необязательный аргумент подсказки , то он записывается в стандартный вывод без завершающей строки. Затем функция читает строку из ввода и преобразует ее в СТРОКУ, убирая завершающий символ строки и возвращает ее в качестве значения.
Другими словами, все что вводится в консоль при использовании встроенной функции преобразуется в тип . Это происходит в том числе и с числами. Следовательно, числовые данные, перед их использованием необходимо распознавать и преобразовывать к нужным типам.
Если был импортирован модуль , то функция будет использовать его для обеспечения сложных функций редактирования строк и истории.
- В случае считывания (признак конца файла), поднимается исключение .
- Перед чтением ввода, функция вызывает событие аудита с аргументом .
- После успешного чтения ввода, вызывает событие аудита c результатом .
Преобразование строки Python в int
Метод Python позволяет преобразовать любое значение типа String в целочисленное значение.
Синтаксис:
int(string_variable)
Пример:
string_num = '75846' print("The data type of the input variable is:\n") print(type(string_num)) result = int(string_num) print("The data type of the input value after conversion:\n") print(type(result)) print("The converted variable from string to int:\n") print(result)
Выход:
The data type of the input variable is: <class 'str'> The data type of the input value after conversion: <class 'int'> The converted variable from string to int: 75846
Python также предоставляет нам эффективный вариант преобразования чисел и значений типа String в целочисленные значения с определенной базой в соответствии с системой счисления.
Синтаксис:
int(string_value, base = val)
Пример:
string_num = '100' print("The data type of the input variable is:\n") print(type(string_num)) print("Considering the input string number of base 8....") result = int(string_num, base = 8) print("The data type of the input value after conversion:\n") print(type(result)) print("The converted variable from string(base 8) to int:\n") print(result) print("Considering the input string number of base 16....") result = int(string_num, base = 16) print("The data type of the input value after conversion:\n") print(type(result)) print("The converted variable from string(base 16) to int:\n") print(result)
В приведенном выше фрагменте кода мы преобразовали «100» в целочисленное значение с основанием 8 и основанием 16 соответственно.
Выход:
The data type of the input variable is: <class 'str'> Considering the input string number of base 8.... The data type of the input value after conversion: <class 'int'> The converted variable from string(base 8) to int: 64 Considering the input string number of base 16.... The data type of the input value after conversion: <class 'int'> The converted variable from string(base 16) to int: 256
Преобразование типов данных
Мы можем преобразовывать значения из одного типа в другой с помощью таких функций, как int(), str(), float() и других:
>>> float(5) 5.0
Когда происходит преобразование числа с плавающей запятой в целое, то теряется часть после запятой:
>>> int(10.6) 10 >>> int(-10.6) -10
Преобразование в словарь требует, чтобы каждый элемент последовательности был парой:
>>> dict(,]) {1 2, 3 4} >>> dict() {3 26, 4 44}
Подробнее о преобразовании типов данных в Python смотрите в таблице ниже:
Материал «Типизация в Python. Типы данных, переменные» подготовлен специально для OTUS на основании статьи «Python Data Types».
Последовательности
Ещё одно понятие из математики. Там, последовательность – есть нумерованный набор элементов, в котором возможны их повторения, а порядок имеет значение. Определение Питона схоже с математическим: здесь последовательностью зовётся упорядоченная коллекция объектов.
str (строка)
Строки, пожалуй, единственный объект, который может сравниться по степени своей используемости с числовым типом данных. Тавтологическое, но полное определение, справедливое для Python звучит так:
Важность строк велика в первую очередь для людей, ведь понятно, что вся письменная речь может рассматриваться, как множество строк. А так как человеку свойственно обмениваться информацией именно в виде набора слов, то можно говорить о практически неограниченном количестве областей применения строкового типа данных
Строки, строки everywhere!
list (список)
Список – это ещё один вид последовательностей… Здесь стоит остановиться и отметить, что последовательности в Python бывают изменяемыми и неизменяемыми. Список – изменяемая последовательность, а строки и кортежи – нет. Таким образом, список можно определить, как упорядоченную и изменяемую коллекцию, состоящую из объектов произвольных типов.
Само название списков говорит об их предназначении быть объектами для хранения наборов данных. Список покупок, подарков, результатов матчей, ip клиентов или объектов типа Student. Списки в Python – это эдакие массивы из прочих языков «на максималках».
tuple (кортеж)
Кортежи в языке Python можно рассматривать, как неизменяемые списки со всеми вытекающими:
Использование кортежей оправдано, когда разработчику важна скорость работы или неизменяемость элементов последовательности.