Решение модуля 7.5 из курса «Поколение python: курс для начинающих»

Программирование на 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

В этом примере:

  1. Получаем последнюю цифру: Оператор % (остаток от деления) позволяет выделить последнюю цифру числа.
  2. Добавляем эту цифру к общей сумме: Производится сложение текущей суммы с найденной цифрой.
  3. Удаляем последнюю цифру: Деление нацело (//) позволяет убрать обработанную последнюю цифру из исходного числа.

Пример использования функции

Давайте протестируем нашу функцию:

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

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

Решение модуля 7.5 из курса "Поколение python: курс для начинающих"
# Получаем целое число и сохраняем его в переменной 'n'.
n = int(input())  

 # Начинаем цикл, который выполняется до тех пор, пока 'n' не станет равным нулю (или false).
while n:          
    i = n % 10     # Получаем последнюю цифру числа 'n' и сохраняем её в переменной 'i'.
    n = n // 10    # Удаляем последнюю цифру из числа 'n', чтобы обработать следующую цифру на следующей итерации.
    print(i)       # Выводим последнюю цифру 'i' на экран.

Обратный порядок 2

Дано натуральное число. Напишите программу, которая меняет порядок цифр числа на обратный.

Решение модуля 7.5 из курса "Поколение python: курс для начинающих"
# Получаем ввод числа
n = int(input())     

# Пока n не равно 0, цикл будет выполняться
while n != 0:
    # Получаем последнюю цифру числа n
    s = n % 10
        
    # Выводим последнюю цифру на экран без перевода строки
    print(s, end='')  
    
    # Удаляем последнюю цифру из числа n
    n = n // 10

max и min

Дано натуральное число n, (n≥10). Напишите программу, которая определяет его максимальную и минимальную цифры.

Решение модуля 7.5 из курса "Поколение python: курс для начинающих"
# Получаем ввод числа
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)

Все вместе

Дано натуральное число. Напишите программу, которая вычисляет:
сумму его цифр;
количество цифр в нем;
произведение его цифр;
среднее арифметическое его цифр;
его первую цифру;
сумму его первой и последней цифры.

Решение модуля 7.5 из курса "Поколение python: курс для начинающих"
# Получаем ввод числа
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). Напишите программу, которая определяет его вторую (с начала) цифру.

Решение модуля 7.5 из курса "Поколение python: курс для начинающих"
# Получаем ввод числа
n = int(input())

# Переменная для хранения второй с конца цифры
second = 0 

# Пока n больше 9 (то есть в числе есть хотя бы две цифры), выполняем цикл
while n > 9:
    second = n % 10  # Находим последнюю цифру и перезаписываем её в переменную second
    n = n // 10      # Убираем последнюю цифру из числа

# После окончания цикла в переменной second будет храниться вторая с конца цифра
print(second)

Одинаковые цифры

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

Решение модуля 7.5 из курса "Поколение python: курс для начинающих"
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')          # иначе различны
                     

Упорядоченные цифры ?️

Дано натуральное число. Напишите программу, которая определяет, является ли последовательность его цифр при просмотре справа налево упорядоченной по неубыванию.

Решение модуля 7.5 из курса "Поколение python: курс для начинающих"
# Эту задачу решил иначе чем предыдущую что бы показать как еще можно
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)        # Выводим общую сумму цифр числа

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

57 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Мансур
Мансур
8 месяцев назад

Дано число
A Ваша программа должна прочитать его и вывести обратно на экран.

Входные данные
В единственной строке дано число
A, не превосходящее 10.

Выходные данные
Выведите число
A

Алексей
Алексей
10 месяцев назад

Коллеги по несчастью, мое почтение!
Хотел пойти по легкому пути, но хорошо что задачу переделали, и теперь 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’ если обратное

Миша 👉
Миша 👉
1 год назад

из последней задачи узнал что есть //= вместо n = n // 10, буду использовать

Егор
Егор
1 год назад

А смысл какой решать задачу не по теме указано цикл while флаги проходились в цикле for

Сергей Кондулуков
Сергей Кондулуков
1 год назад

Спасибо большое сломался на этой задаче. Вы мне здорово помогли

Роман
Роман
1 год назад

Здравствуйте, сочувствую админу) сколько глупых просьб и вопросов)

Наталья
Наталья
2 лет назад

Дано натуральное число. Напишите программу, которая определяет, состоит ли указанное число из одинаковых цифр.
Решила так, приняли:
a = str(input())
if max(a) == min(a):
print(‘YES’)
else:
print(‘NO’)

Мария
Мария
2 лет назад

Пятое задание решается при помощи 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)

Дмитрий
Дмитрий
2 лет назад

Разобрался первой строкой надо вызвать:
from numpy import prod

Дмитрий
Дмитрий
2 лет назад

В решении задачи «Все вместе» закралась ошибка
NameError: name ‘prod’ is not defined

Ваня
Ваня
3 лет назад

А почему я не могу найти 7. 7 поиск ошибок?

Катя
Катя
3 лет назад

Автор, очень Вам благодарна, когда опубликуете последующие модули?

Beast
Beast
Ответить на  admin
3 лет назад

Автор жду продолжения примерно когда будет готова

Кирилл
Кирилл
3 лет назад

На вход программе подается строка. Напишите программу, которая подсчитывает количество буквенных символов в нижнем регистре.

Формат входных данных
На вход программе подается строка.

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

Александр
Александр
3 лет назад

Будет ли продолжение: 7.6, 7.7?

луковица
луковица
3 лет назад

блин где 7.6?

Наташа
Наташа
3 лет назад

когда выйдет продолжение 7.6 7.7 7.8 7.9 8?))) очень надо)))

Мишаня
Мишаня
3 лет назад

А дальше есть ответы?
Автор, помогаешь просто на все 100!

Валера
Валера
3 лет назад

Прошло 13 дней, а новых модулей нет :evil: :evil: :evil: :evil:

Катя
Катя
3 лет назад

Автор, когда будет продолжение 7.7 ?

Катя
Катя
Ответить на  admin
3 лет назад

Хорошо, ждём.

xxx
xxx
3 лет назад

Аффтор, поторопись, ответы нужны, задание встало без подсказки не могуразобрать :sad: :???:

Дмитрий
Дмитрий
3 лет назад

продолжения не ждать?
Вот вот итоговая для страховки нужна будет)

ISmail MAme devj
ISmail MAme devj
3 лет назад

где прода? 7.6

dee
dee
3 лет назад

Автор, где прода? 7.6. решается за день. :evil:

Екатерина
Екатерина
3 лет назад

Автор, когда будет следующий модуль?

Елена
Елена
3 лет назад

когда будет продолжение?

Николай
Николай
3 лет назад

Решил тут прикрепить ответы на 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)да

Ivan Vladimirowith
Ivan Vladimirowith
Ответить на  admin
3 лет назад

Здраствуйте, извините пожалуйста а можно пожалуйста к апрелю. Очень нужно??

Елена
Елена
Ответить на  admin
3 лет назад

Добрый вечер, когда будет продолжение?

Катя
Катя
Ответить на  admin
3 лет назад

Автор, когда опубликуете решение следующих модулей?)

Николай
Николай
3 лет назад

Автор, где прода? 7.6. решается за день. :evil:

Vla
Vla
Ответить на  admin
3 лет назад

Простите ,но когда же будет продолжение модулей 7.6; 7.7 и т.д. ?

Едик
Едик
Ответить на  admin
3 лет назад

срочно нужны ответы на модули, просим всем классом по информатике. Пожалуйста, можно почаще выпускать ответы?

Павел Пономарев
Павел Пономарев
3 лет назад

задача все вместе не правильно решена помогите

Ева
Ева
3 лет назад

спасибо, жду продолжению, очень благодарна ;-) :razz: :oops: :idea:

57
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x