Подборка задач с решениями - 40

  • Категория: Python
  • Дата публикации: 2022-02-06
  • Опубликовано на сайте: Stepik

Задача 1 - Одинаковые цифры:

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

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

print(("YES", "NO")[set(input()).isdisjoint(input())])

Задача 2:

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

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

print(['NO', 'YES'][set(input()) >= set(input())])

Задача 3:

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

Формат входных данных

На вход программе подаются оценки трех учеников, разделенные символом пробела (оценки каждого ученика на отдельной строке).

Формат выходных данных

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

Примечание. Оценка ученика находится в диапазоне от 0 до 10 включительно.

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

a, b, c = (set(int(i) for i in input().split()) for i in range(3))
print(*sorted(set(a.intersection(b).difference(c)))[::-1])

Задача 4:

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

Формат входных данных

На вход программе подаются оценки трех учеников, разделенные символом пробела (оценки каждого ученика на отдельной строке).

Формат выходных данных

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

Примечание. Оценка ученика находится в диапазоне от 0 до 10 включительно.

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

set1, set2, set3 = [set([int(i) for i in input().split()]) for k in range(3)]
print(*sorted((set1 | set2 | set3) - (set1 & set2 & set3)))

Задача 5:

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

Формат входных данных

На вход программе подаются оценки трех учеников, разделенные символом пробела (оценки каждого ученика на отдельной строке).

Формат выходных данных

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

Примечание. Оценка ученика находится в диапазоне от 0 до 10 включительно.

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

set_1, set_2, set_3 = (set(input().split()) for _ in range(3))
print(*(sorted(set_3 - (set_1 | set_2), key=int, reverse=True)))

Задача 6:

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

Формат входных данных

На вход программе подаются оценки трех учеников, разделенные символом пробела (оценки каждого ученика на отдельной строке).

Формат выходных данных

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

Примечание. Оценка ученика находится в диапазоне от 0 до 10 включительно.

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

a = set(input().split() + input().split() + input().split())
b = set(map(str, range(11)))
print(*sorted(b -  a, key=int))

Задача 7:

Используя генератор множеств, дополните приведенный код, так чтобы получить множество, содержащее уникальные значения списка items. Результат вывести на одной строке, в упорядоченном виде, разделяя элементы одним символом пробела.

Примечание 1. Обратите внимание, некоторые элементы списка – числа, а некоторые – строки, при этом строки необходимо трактовать как числа.

Примечание 2. Чтобы вывести элементы множества в упорядоченном виде используйте следующий код:

print(*sorted(myset))

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

items = [10, '30', 30, 10, '56', 34, '12', 90, 89, 34, 45, '67', 12, 10, 90, 23, '45', 56, '56', 1, 5, '6', 5]
myset = {int(c) for c in items}
print(*sorted(myset))

Задача 8:

Используя генератор множеств, дополните приведенный код, так чтобы получить множество, содержащее первую букву каждого слова (в нижнем регистре) списка words. Результат вывести на одной строке в алфавитном порядке, разделяя элементы одним символом пробела.

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

words = ['Plum', 'Grapefruit', 'apple', 'orange', 'pomegranate', 'Cranberry', 'lime', 'Lemon', 'grapes', 'persimmon', 'tangerine', 'Watermelon', 'currant', 'Almond']
myset = {i[0].lower() for i in words}
print(*sorted(myset))

Задача 9:

Используя генератор множеств, дополните приведенный код, так чтобы получить множество, содержащее уникальные слова (в нижнем регистре) строки sentence. Результат вывести на одной строке в алфавитном порядке, разделяя элементы одним символом пробела.

Примечание. Учтите, что знаки пунктуации не относятся к словам.

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

import re
sentence = '''My very photogenic mother died in a freak accident (picnic, lightning) when I was three, and, save for a pocket of warmth in the darkest past, nothing of her subsists within the hollows and dells of memory, over which, if you can still stand my style (I am writing under observation), the sun of my infancy had set: surely, you all know those redolent remnants of day suspended, with the midges, about some hedge in bloom or suddenly entered and traversed by the rambler, at the bottom of a hill, in the summer dusk; a furry warmth, golden midges.'''
stroka = re.sub(r"[-()\"#/@;:<>{}`+=~|.!?,]", "", sentence)
spisok = stroka.lower().split()
myset = set(spisok)
print(*sorted(myset))

Задача 10:

Используя генератор множеств, дополните приведенный код, так чтобы получить множество, содержащее уникальные слова строки sentence длиною меньше 4 символов. Результат вывести на одной строке (в нижнем регистре) в алфавитном порядке, разделяя элементы одним символом пробела.

Примечание. Учтите, что знаки пунктуации не относятся к словам.

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

import re
sentence = '''My very photogenic mother died in a freak accident (picnic, lightning) when I was three, and, save for a pocket of warmth in the darkest past, nothing of her subsists within the hollows and dells of memory, over which, if you can still stand my style (I am writing under observation), the sun of my infancy had set: surely, you all know those redolent remnants of day suspended, with the midges, about some hedge in bloom or suddenly entered and traversed by the rambler, at the bottom of a hill, in the summer dusk; a furry warmth, golden midges.'''
stroka = re.sub(r"[-()\"#/@;:<>{}`+=~|.!?,]", "", sentence)
spisok = stroka.lower().split()

myset = {i for i in spisok if len(i) < 4}
print(*sorted(myset))

Задача 11:

Используя генератор множеств, дополните приведенный код, так чтобы он выбрал из списка files уникальные имена файлов c расширением .png, независимо от регистра имен и расширений. Имена файлов вывести вместе с расширением, все на одной строке, в нижнем регистре, в алфавитном порядке через пробел.

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

files = ['python.png', 'qwerty.py', 'stepik.png', 'beegeek.org', 'windows.pnp', 'pen.txt', 'phone.py', 'book.txT', 'board.pNg', 'keyBoard.jpg', 'Python.PNg', 'apple.jpeg', 'png.png', 'input.tXt', 'split.pop', 'solution.Py', 'stepik.org', 'kotlin.ko', 'github.git']
result = {c.lower() for c in files if c.lower().endswith('.png')}
print(*sorted(result))

Задача 12:

Учитель проверяет домашнее задание в классе и получил следующие ответы: из n школьников у m домашнее задание съела собака, у k отключили свет, а p учеников постигли оба несчастья. Напишите программу, которая определяет сколько человек выполнило домашнее задание.

Формат входных данных

На вход программе подаются числа n, m, k, p, каждое на отдельной строке.

Формат выходных данных

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

Решение:

Все решения теперь можно найти в сообществе Как войти в IT

n, m, k, p = [int(input()) for _ in range(4)]
print(n + p - m - k)