Нахождение цифр четырёхзначного числа

исходник мой неверен в чем моя ошибка? Напишите программу для нахождения цифр четырёхзначного числа.

Формат входных данных На вход программе подаётся положительное четырёхзначное целое число.

Формат выходных данных Программа должна вывести текст в соответствии с условием задачи.

Sample Input 1:

3281

Sample Output 1:

Цифра в позиции тысяч равна 3 Цифра в позиции сотен равна 2 Цифра в позиции десятков равна 8 Цифра в позиции единиц равна 1

a = int(input())
n1 = a //100000
n2 = a //1000
n3 = a //100
n4 = a % 3280
print('Цифра в позиции тысяч равна', n3)
print('Цифра в позиции сотен равна', n2)
print('Цифра в позиции десятков равна', n3)
print('Цифра в позиции единиц равна', n4)

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

Автор решения: Namerek

Не понятно зачем переводить в int строку ввода

a = input()
print('Цифра в позиции тысяч равна', a[0])
print('Цифра в позиции сотен равна', a[1])
print('Цифра в позиции десятков равна', a[2])
print('Цифра в позиции единиц равна', a[3])

это Вам для осмысления

a = input()
print(
    *[
        f'Цифра в позиции {p} равна {v}' for p, v in zip(
            [
                'тысяч', 
                'сотен', 
                'десятков', 
                'единиц'
            ],
            a
        )
    ], sep='\n'
)
→ Ссылка
Автор решения: Nezerix

В python есть возможность из строки извлекать конкретный символ:

a=input("Введите число: ")
print('Цифра в позиции тысяч равна', a[1])
print('Цифра в позиции сотен равна', a[2])
print('Цифра в позиции десятков равна', a[3])
print('Цифра в позиции единиц равна', a[4])

Также хочу заметить, что эта функция a[i] принимает также и отрицательные значения, например:

a=1234
a[-1]=3 #2 символ с конца
a[0]=4  #1 символ с конца

И вообще ваши вычисления были не нужны, тем более они не верны. Если смотреть через числа то n1,n2,n3,n4 должны быть так вычислены:

a=int(a)
n1=a//1000
n2=(a//100)%10
n3=(a%100)//10
n4=a%10

print('Цифра в позиции тысяч равна', n1)
print('Цифра в позиции сотен равна', n2)
print('Цифра в позиции десятков равна', n3)
print('Цифра в позиции единиц равна', n4)

На всякий случай уточню, что знак "//" равносилен div, а "%" - mod.

→ Ссылка
Автор решения: Semitron

/ - убрать число

% - оставить число


Первый способ

1024 / 10 ( убрать 1 число справа ) = 102

102 % 10 ( оставить 1 число справа ) = 2

Второй способ

1024 % 100 ( оставить 2 числа справа ) = 24

24 / 10 ( убрать 1 число справа ) = 2

2 / 10 ( убрать 1 число справа ) = 0


Это всё, что нужно знать для работы с цифрами числа.

→ Ссылка