Форум сайта python.su
Привет программистам. Помогите решить базовые задачи по Python а то в голову вообще не идет.
1. Опишите как могла бы работать функция superset() используя только if else и операции над множествами.
Например: даны два множества set_1 = {1,2,3,4} set_2 = {2,3,4,5} - является ли set_1 суперменом для set_2? Использовать встроенную функцию issuperset нельзя!
2. Сформируйте два словаря из случайных букв в качестве ключа и случайных чисел в качестве значений.
dict_1 = {'a': 1, ‘b’: 2, ‘c’: 3, ….}
dict_2 = {'z': 1, ‘x’: 9, ‘c’: 6, ….}
Сформируйте новый словарь из двух существующих:
Если в исходных словарях есть повторяющиеся ключи, выбираем среди их значений максимальное и присваиваем этому ключу (например, в словаре_1 есть ключ “а” со значением 5, и в словаре_2 есть ключ “а”, но со значением 9. Выбираем максимальное значение, т. е. 9, и присваиваем ключу “а” в уже новом словаре).
Если ключ не повторяется, то он просто переносится со своим значением в новый словарь (например, ключ “с” встретился только у одного словаря, а у других его нет. Следовательно, переносим в новый словарь этот ключ вместе с его значением). Сформированный словарь возвращаем.
3. Дано положительное целое число. Вам необходимо подсчитать произведение всех цифр в этом числе, за исключением нулей.
Для примера: Дано число 123405. Результат будет: 1*2*3*4*5=120 (не забудьте исключить нули).
Пример:
checkio(123405) == 120
checkio(999) == 729
checkio(1000) == 1
checkio(1111) == 1
Спасибо за помощь!
Офлайн
1:
def superset(set_a, set_b): if set_a >= set_b: return True else: return False set_1 = {1, 2, 3, 4} set_2 = {2, 3, 4, 5} print(superset(set_1, set_2)) print(set_1.issuperset(set_2)) # Вывод просто для сверки.
import random import string def gen_rand_dict(): dictionary = dict() while len(dictionary) < 10: rand_letter = random.choice(string.ascii_letters.lower()) rand_number = random.randint(0, 9) dictionary.update({rand_letter: rand_number}) return dictionary def gen_new_dict(d_1, d_2): new_dict = d_1.copy() for key, value in d_1.items(): for k, v in d_2.items(): if k not in new_dict.keys() \ or (k == key and v > value): new_dict.update({k: v}) return new_dict dict_1 = gen_rand_dict() dict_2 = gen_rand_dict() dict_3 = gen_new_dict(dict_1, dict_2) print(dict_1, dict_2, dict_3, sep='\n')
w = 123405 x = 999 y = 1000 z = 1111 def checkio(integer): n = 1 for i in str(integer): t = int(i) if t > 0: n *= t return print(n) checkio(w) checkio(x) checkio(y) checkio(z)
Отредактировано Palrom (Май 19, 2022 23:28:45)
Офлайн
Tata666
1. Опишите как могла бы работать функция superset() используя только if else и операции над множествами.
Например: даны два множества set_1 = {1,2,3,4} set_2 = {2,3,4,5} - является ли set_1 суперменом для set_2? Использовать встроенную функцию issuperset нельзя!
>>> set_1 = {1, 2, 3, 4} >>> set_2 = {2, 3, 4, 5} >>> >>> print(set_2 - set_1 == set()) False >>> >>> set_1 = {1, 2, 3, 4, 5} >>> set_2 = {2, 3, 4, 5} >>> >>> print(set_2 - set_1 == set()) True >>>
Офлайн