Как найти цифру в числе python
Перейти к содержимому

Как найти цифру в числе python

  • автор:

Как вывести последнюю цифру числа в python

Обложка для статьи

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

Получение последней цифры числа путём преобразование числа в строку

Получение последней цифры числа в Python можно выполнить, преобразовав число в строку и обратившись к последнему символу этой строки. Для преобразования числа в строку в Python можно использовать функцию str() . Далее, для получения длины строки, мы можем использовать функцию len() , и после обратиться к последнему элементу строки по его индексу (длина строки — 1, так как индексация идёт с 0):

number = 123456 string_number = str(number) last_digit = string_number[len(string_number)-1] print(last_digit)

В этом примере мы сначала преобразуем число в строку с помощью функции str(), а затем получаем длину строки с помощью функции len(). Мы используем длину строки для получения индекса последнего символа (который является последней цифрой числа) и сохраняем его в переменной last_digit. Наконец, мы выводим последнюю цифру числа с помощью функции print().

Приведённый ваше код можно упростить, если знать, что извлечь последний символ строки можно, используя отрицательный индекс -1 :

number = 123456 last_digit = str(number)[-1] print(last_digit)

Использование арифметических операций для получения последней цифры

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

Например, чтобы получить последнюю цифру числа 123, можно выполнить следующую операцию:

123 % 10

Результатом будет число 3, которое является последней цифрой числа 123.

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

Однако, стоит учитывать, что если число отрицательное, то данный подход не сработает. В таком случае, можно использовать функцию abs() для получения модуля числа, а затем применить операцию % .

number = -12345 last_digit = abs(number) % 10 print(last_digit) # выводит 5

Извлечь из строки числа

Дана строка, содержащая натуральные числа и слова. Необходимо сформировать список из чисел, содержащихся в этой строке. Например, задана строка «abc83 cde7 1 b 24». На выходе мы должны получить список [83, 7, 1, 24].

Решение задачи на языке программирования Python

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

s = input() length = len(s) integers = [] i = 0 # индекс текущего символа while i  length: s_int = '' # строка для нового числа while i  length and '0'  s[i]  '9': s_int += s[i] i += 1 i += 1 if s_int != '': integers.append(int(s_int)) print(integers)
5 dkfj78df 9 8 dkfj8 [5, 78, 9, 8, 8]

Обратите внимание, что данное решение извлекает именно числа, а не цифры. Иначе мы бы не получили число 78, а получили отдельно цифру 7 и цифру 8. Задача на извлечение цифр существенно проще.

Решение через цикл for:

a = input() num_list = [] num = '' for char in a: if char.isdigit(): num = num + char else: if num != '': num_list.append(int(num)) num = '' if num != '': num_list.append(int(num)) print(num_list)

Если в строке числа всегда отделены от слов пробелами, задача решается проще:

s = input() word_list = s.split() num_list = [] for word in word_list: if word.isnumeric(): num_list.append(int(word)) print(num_list)

Здесь происходит разделение строки на слова по пробелам. В цикле с помощью метода isnumeric каждое слово проверяется, является ли оно числом. Подобную задачу можно решить в одну строку, если использовать функцию filter .

s = input() word_list = s.split() num_list = [int(num) for num in filter( lambda num: num.isnumeric(), word_list)] print(num_list)

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

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

import re s = input() nums = re.findall(r'\d+', s) nums = [int(i) for i in nums] print(nums)

Для поиска вещественных чисел:

import re s = input() nums = re.findall(r'\d*\.\d+|\d+', s) nums = [float(i) for i in nums] print(nums)

X Скрыть Наверх

Решение задач на Python

Определение цифры в числе python [закрыт]

Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

Учебные задания допустимы в качестве вопросов только при условии, что вы пытались решить их самостоятельно перед тем, как задать вопрос. Пожалуйста, отредактируйте вопрос и укажите, что именно вызвало у вас трудности при решении задачи. Например, приведите код, который вы написали, пытаясь решить задачу

Закрыт 5 лет назад .

Нужно вытащить первую и последнюю цифру из любого трехзначного числа на Python. Как это реализовать?

Как проверить каждую цифру в числе на соответствие, и если условие верно то выводится определенное предложение?

Как сделать так, что если цикл выполняется верно, то выводится определенный текст, а если нет, то выводится другая фраза.

P.s. Заранее извиняюсь за формулировку вопроса. Надеюсь по коду можно понять, что я хочу сделать. 🙂

  • Вопрос задан более двух лет назад
  • 472 просмотра

Комментировать
Решения вопроса 1

allowed = set('01') def check(test_str): return set(test_str) 

Ответ написан более двух лет назад
Нравится 2 4 комментария
Кирилл @kefirchik_tat Автор вопроса
А можешь пожалуйста объяснить, что значит set(test_str). <= allowed

Кирилл,
множество из всех символов test_str является подмножеством разрешенных символов allowed. Другими словами, содержит только элементы (возможно, не все) множества allowed.
https://pythontutor.ru/lessons/sets/

Кирилл @kefirchik_tat Автор вопроса

kisaa, ааа типо, мы в переменной при помощи set сохраняем разрешенное множество и потом при помощи set(введеное число) проверяем верно или нет

Добавить комментарий

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