Давайте разберем, как найти последнюю цифру числа при помощи Python. Начинающим программистам довольно часто задают подобные задачки. Как обычно, есть больше одного способа решения. Мы рассмотрим использование строк и деление по модулю.
БЕСПЛАТНО СКАЧАТЬ КНИГИ по Python на русском языке можно у нас в телеграм канале "Python книги на русском"
Как найти последнюю цифру числа при помощи строк
Чтобы получить последнюю цифру заданного числа, нужно сделать следующее:
- Преобразовать число в строку при помощи функции
str()
- Получить последний символ строки по индексу -1
- При помощи функции int() преобразовать полученный символ в целое число
В коде это выглядит так:
number = 24685 last_digit = int(str(number)[-1]) print(last_digit) # Вывод: # 5
Мы использовали функцию str()
для преобразования целого числа в строку, чтобы можно было получить доступ к символам строки по индексу. Индексы Python отсчитываются от нуля, поэтому первый символ в строке имеет индекс 0, а последний len(my_str) - 1
. Также можно использовать отрицательные индексы – тогда отсчет идет с обратной стороны (справа). Последний символ строки имеет индекс -1.
Следующим шагом является получение доступа к символу с индексом -1. Таким образом мы получаем последний символ строки. Получив этот символ, мы должны преобразовать его в целое число при помощи функции int()
.
Тот же подход можно использовать и для получения последних N цифр заданного числа.
number = 24685 # Получить последние 2 цифры числа last_two = int(str(number)[-2:]) print(last_two) # 85 # Получить последние 3 цифры числа last_three = int(str(number)[-3:]) print(last_three) # 685
Использование оператора деления по модулю
Чтобы получить последнюю цифру числа, можно применить оператор деления по модулю. Этот оператор возвращает остаток от деления. Если мы разделим число на 10, в остатке получим последнюю цифру числа.
number = 24685 last_digit = number % 10 print(last_digit) # 5
Если число может оказаться отрицательным, то для получения правильного результата нужно использовать функцию abs()
.
number = -24685 last_digit = abs(number) % 10 print(last_digit) # 5
Функция abs()
возвращает абсолютное значение числа. Иными словами, если число положительное, то ничего не изменится, а если число отрицательное, то будет возвращено это же число без знака минус.
print(abs(-27)) # 27 print(abs(27)) # 27
Оператор деления по модулю возвращает остаток от деления первого числа на второе.
print(10 % 2) # 0 print(10 % 4) # 2
Если значение в правой части равно нулю, оператор вызывает исключение ZeroDivisionError
. В примере мы использовали целые числа, но значения слева и справа также могут быть числами с плавающей запятой.
В нашем случае оператор по деления модулю %
делит число на 10 и возвращает остаток от этого деления. Например, остаток от деления 12345 на 10 равен 5.
number = 12345 print(12345 - 1234 * 10) # 5
Ниже приведено еще несколько примеров:
number = 12345 print(82342 % 10) # 2 print(248 % 10) # 8 print(150 % 10) # 0
Какой подход вы выберете, зависит от личных предпочтений. Мы бы рекомендовали использовать оператор деления по модулю %
, так как он довольно прост для чтения и интуитивно понятен.
Перевод статьи Borislav Hadzhiev “Get the last digit of a number in Python”.
Пингбэк: Сумма цифр числа в Python - pythonturbo