учитывать только последнюю цифру числа?
Кто знает как в условии учитывать только последнюю цифру числа? Например 10, учитываем только 0, 20 только 0, число 34 учитываем только 4? Есть такая функция в питоне?
Ответы (2 шт):
Можно перевести число в строку, взять последний символ и перевести снова в число:
>>> a = 42
>>> b = 1000
>>> c = 12345
>>> d = -12
>>> e = 0.123
>>> print(int(str(a)[-1]))
2
>>> print(int(str(b)[-1]))
0
>>> print(int(str(c)[-1]))
5
>>> print(int(str(d)[-1]))
2
>>> print(int(str(e)[-1]))
3
UPD "Как записать такое условие: if a == второму числу из цифры. ____выполняем условие. Можно ли записать так: if a == n % 10"
Нет, n % 10 - только последняя цифра в неотрицательном целом числе
Чтобы оперировать любой цифрой в числе, можно написать функцию, которая на вход принимает число и номер нужной цифры и вернет ее (игнорируя знаки минус и точки для чисел с плавающей запятой):
get_digit(number, count):
number_list = [x for x in str(number) if x.isdigit()]
return int(number_list[count])
и использовать в коде:
pi = 3.14159265359
count = 1 # индекс цифры в числе, начиная с 0, т.е. тут - вторая цифра в pi
if a == get_digit(pi, count):
# do something
Это называется деление по модулю или остаток от деления: n % 10 - делает именно то, что вам надо:
Примеры:
In [1]: 10 % 10
Out[1]: 0
In [2]: 20 % 10
Out[2]: 0
In [3]: 834756 % 10
Out[3]: 6
Также существует удобная функция divmod(a, b), возвращающая кортеж из двух чисел - результат целочисленного деления a на b (a // b) и остаток от деления a на b (a % b).
Примеры:
In [4]: divmod(123, 10)
Out[4]: (12, 3)
In [5]: divmod(876, 10)
Out[5]: (87, 6)