Код работает не так как мне надо

Это код для вывода цифры из числа. Он берёт цифры справа на лево, а мне надо наоборот!

n = int(input('Введите число: '))
m = int(input('Введите номер цифры: '))
k = 0
for k in range(1,m+1):
    pos1 = n%10 
    n = n//10   
print(pos1)

Ответы (1 шт):

Автор решения: Алексей Р

Если не усложнять задачу, т.е. не преобразовывать текст в число, а потом наоборот (поскольку input() всегда возвращает строку), то так:

n = input('Введите число: ')
m = int(input('Введите номер цифры: '))
print(n[m - 1] if 0 < m < len(n) else f'Цифры с номером {m} в числе {n} нет')
Введите число: 987654321
Введите номер цифры: 7
3

Если все-таки необходимо выделять цифры из числа, то можно так:

n = int(input('Введите число: '))
m = int(input('Введите номер цифры: '))
buf, x = [], n
while x > 0:
    buf.insert(0, x % 10)
    x //= 10
print(buf[m - 1] if 0 < m < len(buf) else f'Цифры с номером {m} в числе {n} нет')

Во втором случае вместо цикла можно было обойтись str(n), но тогда это бы превратилось в n = str(int(input('Введите число: '))) и выглядело бы вообще странно.

→ Ссылка