Подтвердить что ты не робот

Как проверить последнюю цифру номера

Есть ли способ получить последнюю цифру числа. Я пытаюсь найти переменные, которые заканчиваются на "1", например, 1,11,21,31,41 и т.д.

Если я использую текстовую переменную, я могу просто поставить

print number[:-1] 

но он работает для переменных с текстом (например, "привет" ), но не с номерами. С номерами я получаю эту ошибку:

TypeError: 'int' object is not subscriptable

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

Большое спасибо заранее...

4b9b3361

Ответ 1

Остается при делении на 10, как в

numericVariable % 10

Это работает только для положительных чисел. -12% 10 дает 8

Ответ 2

Используйте оператор модуля с 10:

num = 11
if num % 10 == 1:
    print 'Whee!'

Это дает остаток при делении на 10, который всегда будет последней цифрой (когда число положительное).

Ответ 3

Итак, вы хотите получить доступ к цифрам в виде целого числа, например элементов в списке; Проще всего я могу думать:

n = 56789
lastdigit = int(repr(n)[-1])
# >  9

Преобразуйте n в строку, обращаясь к последнему элементу, затем используйте конструктор int для преобразования обратно в целое число.

Для числа с плавающей точкой:

n = 179.123
fstr = repr(n)
signif_digits, fract_digits = fstr.split('.')
# >  ['179', '123']
signif_lastdigit = int(signif_digits[-1])
# >  9

Ответ 4

Я еще не могу добавить комментарий, но я хотел повторить и расширить то, что сказал Джим Гаррисон

Остается при делении на 10, как в numericVariable% 10

Это работает только для положительных чисел. -12% 10 дает 8

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

abs(numericVariable) % 10

Ответ 5

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

for digit in binary:
    denary= denary*2 + int(digit)

Ответ 6

Lotsoul, это должно работать:

    number = int(10)
#The variable number can also be a float or double, and I think it should still work.
lastDigit = int(repr(number)[-1])
#This gives the last digit of the variable "number." 
if lastDigit == 1 : 
    print("The number ends in 1!")

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

Надеюсь, это помогло!