Обработка цифт числа [ Python 3 ]
0.0/5 оценка (0 голосов)

При изучении целых чисел (тип данных int), мы говорили про операцию целочисленного деления // и операцию нахождения остатка от деления одного целого числа на другое %. Используя цикл while и две данных операции, можно обработать цифры числа с произвольным количеством разрядов (цифр).

Пусть дано натуральное число n. Тогда:

  • результатом операции n % 10 – является последняя цифра числа;
  • результатом операции n // 10 – является число с удаленной последней цифрой.

Напишем программу, которая считывает натуральное число (целое положительное) и обрабатывает его цифры.

n = int(input())
while n != 0:  # пока в числе есть цифры
    last_digit = n % 10  # получить последнюю цифру
    # код обработки последней цифры
    n = n // 10  # удалить последнюю цифру из числа

Цикл while работает до тех пор пока в числе есть необработанные цифры. Тело цикла содержит:

  1. процедуру получения последней цифры last_digit = n % 10;
  2. код обработки последней цифры;
  3. процедуру удаления последней цифры из числа n = n // 10.

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

Напишем программу, которая определяет есть ли в числе цифра 7.

num = int(input())
has_seven = False  # сигнальная метка

while num != 0:
    last_digit = num % 10
    if last_digit == 7:
        has_seven = True
    num = num // 10

if has_seven == True:
    print('YES')
else:
    print('NO')

Нужно обратить внимание, что переменной num необходимо явно задавать тип int в обоих случаях. Иначе на неотрицательность будет проверяться строковая переменная. Будет выведено сообщение об ошибке.

num = int(input())