Код работает не так как мне надо
Это код для вывода цифры из числа. Он берёт цифры справа на лево, а мне надо наоборот!
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('Введите число: '))) и выглядело бы вообще странно.