Функция len() в Python, считает количество элементов.
Возвращает количество элементов в последовательности.
Синтаксис:
Параметры:
- s — последовательность или коллекция.
Возвращаемое значение:
Описание:
Функция len() возвращает длину (количество элементов) в объекте.
Аргумент может быть последовательностью, такой как строка, байты, кортеж, список или диапазон или коллекцией (такой как словарь, множество или неизменяемое множество).
Когда объект является строкой, функция len() возвращает количество символов в строке.
Пользовательские типы данных могут определять метод __len__() , значение из которого, будет возвращено при вызове функции len() .
Примеры подсчета количества элементов в последовательности.
Использование функции len() для подчеркивания строки:
Использование функции len() (как один из вариантов) в итерации по индексам последовательности:
По индексам последовательности, конечно удобнее итерироваться при помощи функции enumerate() .
Подсчет количества цифр в числе (длина числа)
Для того, чтобы посчитать количество цифр в числе необходимо сначала перевести число float или int в любую последовательность, например в строку, а затем к последовательности применить функцию len() , что бы получить количество элементов.
Для получения строкового представления объектов float и int , применим к ним функцию str.
Пример получения длины целого числа:
Так как вещественные числа в Python имеют запятую, то количество цифр в числе float будет на 1 меньше, а именно len(str(float)) — 1 .
Пример получения длины вещественного числа:
Чтобы получить количество уникальных цифр в числе, необходимо строковое представление числа преобразовать в множество set , т.к. множество представляет собой последовательность неповторяющихся элементов.
Лекция: Числа. Модули, Графики
Числа в Python 3: целые, вещественные, комплексные. Числа в Python 3 ничем не отличаются от обычных чисел. Они поддерживают набор самых обычных математических операций: + , — , * , / , // (целая часть от деления), % (остаток от деления), ** (возведение в степень)
Обратите внимание на строку №3 приведенного примера, где происходит парное присвоение, часто используемое в языке python.
Модуль числа можно найти при помощи функции abs(x) . Функция divmod(x,y) вернет пару чисел (x//y,x%y) . Для возведения в степень имеется функция pow(x,y[,z]) .
Также нужно отметить, что целые числа в python 3, в отличие от многих других языков, поддерживают длинную арифметику (однако, это требует больше памяти).
Задание 4.1 Длина длинного числа
Запросить у пользователя два целых числа X и Y. Найти число знаков в числе X Y .
Системы счисления
- int([object], [основание системы счисления]) — преобразование к целому числу в десятичной системе счисления. По умолчанию система счисления десятичная, но можно задать любое основание от 2 до 36 включительно.
- bin(x) — преобразование целого числа в двоичную строку.
- hex(х) — преобразование целого числа в шестнадцатеричную строку.
- oct(х) — преобразование целого числа в восьмеричную строку.
Вещественные числа (float)
Вещественные числа поддерживают те же операции, что и целые. Однако (из-за представления чисел в компьютере) вещественные числа неточны, и это может привести к ошибкам:
Вещественные числа не поддерживают длинную арифметику.
Задание 4.2 Калькулятор v2
Необходимо запросить у пользователя строку для вычислений. В качестве операций вводятся символы +, -, *, /. Нужно вывести результат вычислений. Например:
Комплексные числа (complex)
В Python встроены также и комплексные числа:
Модули
Система модулей позволяет вам логически организовать ваш код на Python. Группирование кода в модули значительно облегчает процесс написания и понимания программы. Говоря простым языком, модуль в Python это просто файл, содержащий код на Python. Каждый модуль в Python может содержать переменные, объявления классов и функций. Кроме того, в модуле может находиться исполняемый код.
Вы можете использовать любой питоновский файл как модуль в другом файле, выполнив в нем команду import . Команда import в Python обладает следующим синтаксисом:
Важно знать, что модуль загружается лишь однажды, независимо от того, сколько раз он был импортирован. Это препятствует цикличному выполнению содержимого модуля.
Команда from . import позволяет вам импортировать не весь модуль целиком, а только определенное его содержимое. Например:
Выражение from . import не импортирует весь модуль, а только предоставляет доступ к конкретным объектам, которые мы указали.
В Python так же возможно импортировать всё (переменные, функции, классы) за раз из модуля, для этого используется конструкция from . import * . Например:
Однако это конструкцию следует использовать с осторожностью, поскольку при импортировании нескольких модулей можно запутаться в своем собственном коде.
Модуль math
Модуль math – один из наиважнейших в Python. Этот модуль предоставляет обширный функционал для работы с числами. В нем вы найдете такие функции как sin() , cos() , sqrt() , cos() , log() , exp() , trunc() . В нем же определены константы pi , e .
Модуль random
Модуль random предоставляет функции для генерации случайных чисел, букв, случайного выбора элементов последовательности. Модуль собрал разные функции для имитации случайных процессов: random() , randint() , randrange() , choice() , shuffle() , gauss() и другие.
Задание 4.3 Камень, ножницы, бумага
Запрограммируйте игру с компьютером в «Камень, ножницы, бумага». Пример диалога:
Построение диаграмм в python
простейший график, который можно построить в Matplotlib, это график синуса и косинуса:
Числа в Python (FAQ)
Ч исла в Python (как и в других языках программирования) чрезвычайно простое понятие. В Python все переменные представляют собой объекты и размещаются в динамической памяти.
Базовый набор Python содержит следующие типы чисел:
- целые ( int );
- вещественные ( float ) [с десятичной точкой];
- комплексные ( complex ) [состоят из действительной и мнимой части].
Над числами в Python можно выполнять самые обычные математические операции: сложение ( + ), вычитание ( — ), возведение в степень ( ** ) и т.д.
Целые числа (int)
В Python любое число, состоящее из десятичных цифр без префикса, интерпретируется как десятичное число типа int .
Целые числа в Python представлены только одним типом — PyLongObject , реализация которого лежит в longobject.c , а сама структура выглядит так:
Любое целое число состоит из массива цифр переменной длины, поэтому в Python 3 в переменную типа int может быть записано число неограниченной длины. Единственное ограничение длины — это размер оперативной памяти.
>>> 134523345234252523523478777 ** 2 18096530413013891133013347014216107772438771969415729
Целые числа могут записываться не только как десятичные, но и как двоичные, восьмеричные или шестнадцатеричные. Для этого перед числом нужно написать символы:
- 0b (0B) – для двоичного представления;
- 0o (0O) – для восьмеричного представления;
- 0x (0X) – для шестнадцатеричного представления.
Вещественные числа (float)
Еще такие числа называют числами с плавающей точкой . Это числа, содержащие точку (десятичный разделитель) или знак экспоненты.
Числа типа float — неточны (из-за представления чисел с плавающей запятой в компьютере).
Информацию о точности и внутреннем представлении float для вашей системы можно получить из sys.float_info
>>> import sys >>> sys.float_info sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
Если нужна высокая точность обычно используют модули Decimal и Fraction.
Об ограничениях и подводных камнях в работе с числами с плавающей точкой описано тут .
Комплексные числа (complex)
Комплексные числа представляют собой пару значений типа int или float , и имеют вид <реальная часть>+<мнимая часть>j .
Отдельные части комплексного числа доступны через атрибуты real и imag
Операции с числами
Является ли переменная числом
Любую переменную можно проверить на тип (int, float или complex):
n = 10 >>> if type(n) == int: print("This is int") This is int
Если вы хотите проверить, находится ли в строке число, воспользуйтесь методом isdigit()
Однако стоит помнить, что метод isdigit() не работает для отрицательных чисел и чисел с плавающей точкой.
Также для проверки на число, можно написать собственную функцию:
>>> def isInt(value): try: int(value) return True except ValueError: return False >>> isInt(123) True >>> isInt("qwerty") False >>> isInt("123") True >>> isInt("-123") True >>> isInt("123.2") False
Арифметические операции
- x + y — сложение;
- x — y — вычитание;
- x * y — умножение;
- x / y — деление;
- x // y — целочисленное деление;
- x % y — остаток от деления;
- x ** y — возведение в степень;
- -x — смена знака;
- abs(x) — модуль числа;
- divmod(x, y) — возвращает кортеж из частного и остатка от деления x на y;
- pow(x, y[, z]) — возведение числа в степень (z — деление по модулю);
- round(x[, ndigits]) — округление числа (ndigits — знаки после запятой).
Сравнение чисел
- x == y — равно;
- x != y — не равно;
- x > y — больше;
- x < y — меньше;
- x >= y — больше или равно;
- x <= y — меньше или равно.
Преобразования
- int(x) — преобразование в целое число int ;
- float(x) — преобразование в число с плавающей точкой float ;
- complex(x) — преобразование в комплексное число complex ;
- bin(x) — целое числа в двоичную строку;
- oct(x) — целое число в восьмеричную строку;
- hex(х) — целое число в шестнадцатеричную строку;
- [int(x) for x in str(123)] — перевод целого числа 123 в список цифр этого числа;
- int(''.join(str(digit) for digit in [1,2,3])) — перевод списка цифр [1,2,3] в целое число 123;
- str(x) — число в строку;
Ввод чисел
Для ввода данных в программу на языке Python используется функция input() . Эта функция считывает то что вы ввели на клавиатуре, и записывает эти данные в переменную в виде одной строки. После этого, перевести строку в число можно простыми функциями int() , float() или complex() .
Если нужен список чисел, введите несколько чисел через пробел и выполните:
my_list = [int(x) for x in input().split()] print(my_list) > [1, 2, 3]
Вывод чисел
Для вывода числа используйте print() :
На практике возникают ситуации, когда нужно вывести число вместе со строкой (например пояснить, что означает число). Существует несколько вариантов сделать это:
>>> print("int variable = " + str(1)) int variable = 1 >>> print("int variable = <>".format(1)) int variable = 1 >>> print(f'int variable = <1>') # f-строки работают в Python 3.6+ int variable = 1