Сумма цифр случайного трехзначного числа

Генерируется случайное трехзначное число. Вычисляется сумма его цифр. 

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

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