Створити список з випадкових цілих чисел, а також словник у якому ключами є числа зі списку а значенням сума цифр цього числа(Пайтон,7 клас)
Ответы
Ответ:
import random as rnd
def sum_of_digits(num):
summ = 0
while num:
summ, num = summ + num % 10, num // 10
return summ
numbers = rnd.sample(range(50, 100), 10)
number_n_sum = {}
for number in numbers:
number_n_sum[number] = sum_of_digits(number)
print(numbers)
print(number_n_sum)
Код с комментариями:
import random as rnd
def sum_of_digits(num): # функция подсчета суммы цифр в числе
summ = 0
while num:
summ, num = summ + num % 10, num // 10
return summ
numbers = rnd.sample(range(50, 100), 10) # в качестве аргументов range() - минимальное(включая) и
# максимальное(не включая) случайное значение целых чисел,
# в качестве аргумента после range() - их кол-во,
# выборка происходит без повторов
number_n_sum = {} # объявление словаря
for number in numbers: # цикл по каждому значению множества - т.е. по будущим ключам словаря
number_n_sum[number] = sum_of_digits(number) # добавление пары в словарь, где ключ - элемент множества,
# а значение - сумма цифр этого числа
print(numbers) # вывод изначальной случайно сгенерированной последовательности
print(number_n_sum) # вывод словаря
Другие варианты реализации:
Как вариант, можно использовать функцию подсчета суммы цифр в числе как:
def sum_of_digits(num):
return sum(int(digit) for digit in str(num))
Реализация через zip и map:
import random as rnd
numbers = rnd.sample(range(50, 100), 10)
number_n_sum = dict(zip(numbers, list(map(lambda num: sum(int(digit) for digit in str(num)), numbers))))
print(numbers)
print(number_n_sum)
----------------------------
Успехов