Программирование на Python предоставляет множество возможностей для решения разнообразных задач. Одним из важнейших элементов языка являются циклы, которые позволяют многократно выполнять одни и те же действия. Сегодня мы рассмотрим, как использовать цикл while для обработки цифр числа.
Цикл while и его возможности
Цикл while выполняет указанный блок кода до тех пор, пока условие продолжает оставаться истинным. Это делает его идеальным инструментом для работы с числами, где количество итераций заранее неизвестно.
Пример задачи: Сумма цифр числа
Рассмотрим задачу нахождения суммы всех цифр заданного числа. Для этого будем последовательно извлекать каждую цифру из числа и суммировать их.
Решение задачи с помощью цикла while
Начнем с написания функции, которая принимает одно число в качестве аргумента и возвращает сумму его цифр:
def sum_of_digits(number):
total = 0
while number > 0:
digit = number % 10 # Получаем последнюю цифру
total += digit # Добавляем ее к общей сумме
number = number // 10 # Удаляем последнюю цифру из числа
return total
В этом примере:
Получаем последнюю цифру: Оператор % (остаток от деления) позволяет выделить последнюю цифру числа.
Добавляем эту цифру к общей сумме: Производится сложение текущей суммы с найденной цифрой.
Удаляем последнюю цифру: Деление нацело (//) позволяет убрать обработанную последнюю цифру из исходного числа.
Пример использования функции
Давайте протестируем нашу функцию:
number = 12345
print(f"Сумма всех цифр в числе {number} равна {sum_of_digits(number)}")
Вывод будет следующим:
Сумма всех цифр в числе 12345 равна 15
Как видите, функция корректно вычислила сумму всех чисел!
В разделе “Модуль 7.5” наши специалисты подготовили подробные уроки по использованию циклов и других важных конструкций языка Python.
Желаем всем хорошей учебной недели! ? Пусть ваши проекты будут успешными!
Решения модуль 2.2 «Поколение Python»: курс для начинающих
Полное решение модуля (урока) 7.5 Цикл while: обработка цифр числа на питоне + ответы.
Что покажет приведенный ниже фрагмент кода? num = 12345 product = 1 while num != 0: last_digit = num % 10 product = product * last_digit num = num // 10 print(product)
120
Что покажет приведенный ниже фрагмент кода? num = 123456789 total = 0 while num != 0: last_digit = num % 10 if last_digit > 4: total += 1 num = num // 10 print(total)
5
Обратный порядок 1
Дано натуральное число. Напишите программу, которая выводит его цифры в столбик в обратном порядке.
# Получаем целое число и сохраняем его в переменной 'n'.
n = int(input())
# Начинаем цикл, который выполняется до тех пор, пока 'n' не станет равным нулю (или false).
while n:
i = n % 10 # Получаем последнюю цифру числа 'n' и сохраняем её в переменной 'i'.
n = n // 10 # Удаляем последнюю цифру из числа 'n', чтобы обработать следующую цифру на следующей итерации.
print(i) # Выводим последнюю цифру 'i' на экран.
Обратный порядок 2
Дано натуральное число. Напишите программу, которая меняет порядок цифр числа на обратный.
# Получаем ввод числа
n = int(input())
# Пока n не равно 0, цикл будет выполняться
while n != 0:
# Получаем последнюю цифру числа n
s = n % 10
# Выводим последнюю цифру на экран без перевода строки
print(s, end='')
# Удаляем последнюю цифру из числа n
n = n // 10
max и min
Дано натуральное число n, (n≥10). Напишите программу, которая определяет его максимальную и минимальную цифры.
# Получаем ввод числа
n = int(input())
# Инициализируем переменные для максимальной и минимальной цифры
maxx = 0 # В начале считаем максимальной цифрой 0
minn = 9 # В начале считаем минимальной цифрой 9
# Пока n не равна 0, выполняем цикл
while n != 0:
# Получаем последнюю цифру числа n
last_digit = n % 10
# Сравниваем последнюю цифру с текущей максимальной и минимальной
if last_digit > maxx:
maxx = last_digit # Если она больше текущей максимальной, обновляем максимальную
if last_digit < minn:
minn = last_digit # Если она меньше текущей минимальной, обновляем минимальную
# Убираем последнюю цифру из числа n
n = n // 10
# Выводим максимальную и минимальную цифры
print('Максимальная цифра равна', maxx)
print('Минимальная цифра равна', minn)
Все вместе
Дано натуральное число. Напишите программу, которая вычисляет: сумму его цифр; количество цифр в нем; произведение его цифр; среднее арифметическое его цифр; его первую цифру; сумму его первой и последней цифры.
# Получаем ввод числа
inputn = int(input())
# Создаем переменную n для хранения исходного числа
n = inputn
# Инициализируем переменные для суммы, произведения, и количества чисел
total = 0
product = 1
count = 0
# Пока inputn не равен 0, выполняем цикл
while inputn != 0:
# Получаем последнюю цифру числа inputn и выполняем операции
total += inputn % 10 # Суммируем цифры
product *= inputn % 10 # Вычисляем произведение цифр
count += 1 # Увеличиваем счетчик чисел
inputn //= 10 # Удаляем последнюю цифру из числа
# Выводим результаты
print(total) # сумма чисел
print(count) # количество чисел
print(product) # произведение чисел
print(total/count) # среднее арифмитическое всех чисел
print(n//10 ** (count-1)) # первое число
print(n//10 ** (count-1) + n%10) # произведение первого и последнего чисел
Вторая цифра
Дано натуральное число n(n > 9). Напишите программу, которая определяет его вторую (с начала) цифру.
# Получаем ввод числа
n = int(input())
# Переменная для хранения второй с конца цифры
second = 0
# Пока n больше 9 (то есть в числе есть хотя бы две цифры), выполняем цикл
while n > 9:
second = n % 10 # Находим последнюю цифру и перезаписываем её в переменную second
n = n // 10 # Убираем последнюю цифру из числа
# После окончания цикла в переменной second будет храниться вторая с конца цифра
print(second)
Одинаковые цифры
Дано натуральное число. Напишите программу, которая определяет, состоит ли указанное число из одинаковых цифр.
num = int(input()) # ввод числа
flag = True # флаг считаем что все цифры равны
while num > 9: # пока число 2значное выполняем цикл
last = num % 10 # вычисляем последнюю цифру
num = num // 10 # удаляем последнюю цифру и запускаем цикл сначала
sec = num % 10 # вычисляем предпоследнюю цифру
if last != sec: # условие, если последняя и предпоследняя
flag = False # цифры не равны, меняем флаг
if flag: # если флаг true
print('YES') # значит цифры равны
else:
print('NO') # иначе различны
Упорядоченные цифры ?️
Дано натуральное число. Напишите программу, которая определяет, является ли последовательность его цифр при просмотре справа налево упорядоченной по неубыванию.
# Эту задачу решил иначе чем предыдущую что бы показать как еще можно
num = int(input())
teg = 'YES' # используем тег и считаем что последовательность упорядочена
a = num % 10 # находим послееднюю цифру числа
while num: # запускаем цикл
if a > num % 10: # условие если предыдущая цифра больше последующей
teg = 'NO' # то присваиваем тег NO, и уже нет смысла записывать в a последнию цифру
else: # иначе
a = num % 10 # присваиваем последнюю цифру - переменной
num //= 10 # удаляем последнюю цифру числа
print(teg)
Дополнительные задачи не по теме
Будьте внимательны. В данном разделе задачи не относящиеся к уроку 7.5 «Поколение python: курс для начинающих»
составьте программу, которая вычисляет сумму цифр числа. в ответе укажите последовательность номеров команд без пробелов и разделителей.
n = int(input()) # получаем целое число
sum = 0 # Инициализируем переменную sum
while n > 0: # Цикл который будет выполняться, пока n больше 0.
k = n % 10 # Вычисляем последнюю цифру числа n
sum = sum + k # Добавляем значение цифры k к общей сумме sum.
n = n // 10 # Убираем последнюю цифру числа n
print(sum) # Выводим общую сумму цифр числа
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы
Понравилась статья? Поделиться с друзьями:
Подписаться
57 комментариев
Новые
СтарыеПопулярные
Межтекстовые Отзывы
Посмотреть все комментарии
Мансур
3 лет назад
Дано число A Ваша программа должна прочитать его и вывести обратно на экран.
Входные данные В единственной строке дано число A, не превосходящее 10.
Выходные данные Выведите число A
Алексей
3 лет назад
Коллеги по несчастью, мое почтение! Хотел пойти по легкому пути, но хорошо что задачу переделали, и теперь 7.5,10 не работает. если кому поможет n = int(input()) x = n % 10 # находим последнюю цифру a_ = True # добавили тег для проверки условия в цикле while n != 0 and a_ == True: # запускаем цикл пока n не равно 0 и если a == True ln = n % 10 # Находим последнюю цифру числа в цикле if ln > x: # добавляем проверку по циклу если ln больше последней цифры x = ln # тогда x становиться ln по циклу if ln < x: # если ln по циклу меньше чем x a_ = False # то тогда a становится ложью n = n // 10 # убираем последнюю цифру по циклу print(f’YES’ if a_ == True else «NO») # Выводим ‘YES’ если a == True, и ‘NO’ если обратное
Миша ?
3 лет назад
из последней задачи узнал что есть //= вместо n = n // 10, буду использовать
Егор
3 лет назад
А смысл какой решать задачу не по теме указано цикл while флаги проходились в цикле for
Сергей Кондулуков
3 лет назад
Спасибо большое сломался на этой задаче. Вы мне здорово помогли
Роман
3 лет назад
Здравствуйте, сочувствую админу) сколько глупых просьб и вопросов)
Наталья
4 лет назад
Дано натуральное число. Напишите программу, которая определяет, состоит ли указанное число из одинаковых цифр. Решила так, приняли: a = str(input()) if max(a) == min(a): print(‘YES’) else: print(‘NO’)
Мария
4 лет назад
Пятое задание решается при помощи while
n, x, m = int(input()), -1, 10 while n: x = max(x, n % 10) m = min(m, n % 10) n //= 10 print(‘Максимальная цифра равна’, x) print(‘Минимальная цифра равна’, m)
Дмитрий
4 лет назад
Разобрался первой строкой надо вызвать: from numpy import prod
Дмитрий
4 лет назад
В решении задачи «Все вместе» закралась ошибка NameError: name ‘prod’ is not defined
Решил тут прикрепить ответы на 7.6. обучения пропускаете, поэтому по пунктам: 1)0*1*2*3*4*5*6*7* 2)100*80*60* 3)9*8*7*6*5*4*3*1*0* 4)25 5)105 6(программа)n, i = int(input()), 2 while i * i <= n: if n % i == 0: print(i) exit() i += 1 print(n) 7) пока что не знаю. 8)да 9)нет 10)да
Дано число
A Ваша программа должна прочитать его и вывести обратно на экран.
Входные данные
В единственной строке дано число
A, не превосходящее 10.
Выходные данные
Выведите число
A
Коллеги по несчастью, мое почтение!
Хотел пойти по легкому пути, но хорошо что задачу переделали, и теперь 7.5,10 не работает.
если кому поможет
n = int(input())
x = n % 10 # находим последнюю цифру
a_ = True # добавили тег для проверки условия в цикле
while n != 0 and a_ == True: # запускаем цикл пока n не равно 0 и если a == True
ln = n % 10 # Находим последнюю цифру числа в цикле
if ln > x: # добавляем проверку по циклу если ln больше последней цифры
x = ln # тогда x становиться ln по циклу
if ln < x: # если ln по циклу меньше чем x
a_ = False # то тогда a становится ложью
n = n // 10 # убираем последнюю цифру по циклу
print(f’YES’ if a_ == True else «NO») # Выводим ‘YES’ если a == True, и ‘NO’ если обратное
из последней задачи узнал что есть //= вместо n = n // 10, буду использовать
А смысл какой решать задачу не по теме указано цикл while флаги проходились в цикле for
Спасибо большое сломался на этой задаче. Вы мне здорово помогли
Здравствуйте, сочувствую админу) сколько глупых просьб и вопросов)
Дано натуральное число. Напишите программу, которая определяет, состоит ли указанное число из одинаковых цифр.
Решила так, приняли:
a = str(input())
if max(a) == min(a):
print(‘YES’)
else:
print(‘NO’)
Пятое задание решается при помощи while
n, x, m = int(input()), -1, 10
while n:
x = max(x, n % 10)
m = min(m, n % 10)
n //= 10
print(‘Максимальная цифра равна’, x)
print(‘Минимальная цифра равна’, m)
Разобрался первой строкой надо вызвать:
from numpy import prod
В решении задачи «Все вместе» закралась ошибка
NameError: name ‘prod’ is not defined
А почему я не могу найти 7. 7 поиск ошибок?
Здравствуйте. https://taskcode.ru/7-7-pokolenie-python/
Автор, очень Вам благодарна, когда опубликуете последующие модули?
Доброе утро, скоро!
Автор жду продолжения примерно когда будет готова
Доброе утро! Выложил два следующих модуля уже.
На вход программе подается строка. Напишите программу, которая подсчитывает количество буквенных символов в нижнем регистре.
Формат входных данных
На вход программе подается строка.
Формат выходных данных
Программа должна вывести количество буквенных символов в нижнем регистре.
Будет ли продолжение: 7.6, 7.7?
Здравствуйте, будет.
блин где 7.6?
Скоро опубликую
когда выйдет продолжение 7.6 7.7 7.8 7.9 8?))) очень надо)))
Как только, так сразу)
А дальше есть ответы?
Автор, помогаешь просто на все 100!
Спасибо! Стараюсь выпускать.
Прошло 13 дней, а новых модулей нет

скоро выложу следующее..
Автор, когда будет продолжение 7.7 ?
В ближайшее время.
Хорошо, ждём.
С добрым утром! Следующие два модуля (урока) уже опубликованы на сайте.
Аффтор, поторопись, ответы нужны, задание встало без подсказки не могуразобрать

Все будет, не переживайте
продолжения не ждать?
Вот вот итоговая для страховки нужна будет)
почему же? ждать)
где прода? 7.6
скоро будет
Автор, где прода? 7.6. решается за день.
знаю, решил уже, выложу
Автор, когда будет следующий модуль?
В ближайшем времени.
когда будет продолжение?
Скоро опубликую!
Решил тут прикрепить ответы на 7.6. обучения пропускаете, поэтому по пунктам:
1)0*1*2*3*4*5*6*7*
2)100*80*60*
3)9*8*7*6*5*4*3*1*0*
4)25
5)105
6(программа)n, i = int(input()), 2
while i * i <= n:
if n % i == 0:
print(i)
exit()
i += 1
print(n)
7) пока что не знаю.
8)да
9)нет
10)да
Спасибо, я сам уже решил, времени опубликовать нет)
Здраствуйте, извините пожалуйста а можно пожалуйста к апрелю. Очень нужно??
Добрый вечер, когда будет продолжение?
Автор, когда опубликуете решение следующих модулей?)
Добрый вечер, скоро!
Автор, где прода? 7.6. решается за день.
Привет, продолжение будет. Завтра скорее всего.
Простите ,но когда же будет продолжение модулей 7.6; 7.7 и т.д. ?
Скоро, точно будет, пока что слишком занят.
срочно нужны ответы на модули, просим всем классом по информатике. Пожалуйста, можно почаще выпускать ответы?
Могу, выпущу, не волнуйтесь!
задача все вместе не правильно решена помогите
спасибо, жду продолжению, очень благодарна
