Генерируется случайное трехзначное число. Вычисляется сумма его цифр.
В данном случае задачу можно решить с помощью линейного алгоритма, т. к. известно количество разрядов числа и это количество небольшое. Однако подобные задачи, особенно когда неизвестно количество разрядов числа, решаются с помощью циклов.
1-й вариант — с помощью математических операций:
from random import random
n = random() * 900 + 100
n = int(n)
print(n)
a = n // 100
b = (n // 10) % 10
c = n % 10
print(a+b+c)
2-й вариант — путем преобразования к строке:
from random import random
n = random() * 900 + 100
n = int(n)
print(n)
s = str(n)
a = int(s[0])
b = int(s[1])
c = int(s[2])
print(a+b+c)
С комментариями:
1-й вариант:
# Функция random генерирует
# случайное дробное число от 0 до 1
from random import random
# При умножении на 900 получается случайное
# число от 0 до 899.(9).
# Если прибавить 100, то получится
# от 100 до 999.(9).
n = random() * 900 + 100
# Отбрасывается дробная часть, число выводится на экран
n = int(n)
print(n)
# Извлекается первая цифра (старший разряд) числа
# путем делени нацело на 100
a = n // 100
# Деление нацело на 10 удаляет последнюю цифру числа.
# Затем нахождение остатка при делении на 10 извлекает
# последнюю цифру,которая в исходном числе была средней.
b = (n // 10) % 10
# Последняя цифра (младший разряд) числа находится
# путем нахождения остатка при делении нацело на 10.
c = n % 10
# Вычисляется сумма цифр и выводится на экран
print(a+b+c)
2-й вариант:
from random import random
n = random() * 900 + 100
n = int(n)
print(n)
# Число преобразуется в строку
s = str(n)
# Извлекаются первый[0] символ строки, преобразуется к целому.
# Аналогично второй[1] и третий[2].
a = int(s[0])
b = int(s[1])
c = int(s[2])
print(a+b+c)
Пример выполнения программы:
306
9