Файл: Методическое пособие по теме Работа с множествами на языке Python.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.12.2023
Просмотров: 99
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Методическое пособие по теме: «Работа с множествами на языке Python»Выполнила: учитель информатики и ИКТ Потапова Е.Н.ГБОУ Школа № 1552
Описание множеств 2
Создание множеств 2
Операции над множествами 3
Групповые операции над множествами 5
Сравнение множеств 5
Примеры решения задач с использование множеств 5
Задача A. Пунктуация 6
Задача B. Все различные цифры 6
Задача C. Повторяющиеся цифры 7
Задача D. Правильное восьмеричное число 7
Задача G. Удалить повторы 8
1.Онлайн курс «Основы программирования на Python» Густокашин М. С. 9
Данный материал будет полезен учителям информатики, работающих в профильных классах, а также школьникам, желающим повысить свой уровень изучения языка Python.
A = set('Hello')выведет {'H', 'e', 'l', 'o'}.Узнать число элементов в множестве можно при помощи функции len.N=len(A)print(N)Программа выведет 4
В результате этих операций создается новое множество, однако для них определена и сокращенная запись: |=, &=, -= и ^=. Такие операции изменяют множество, находящееся слева от знака операции.
Также определены операции > и >=. Все групповые операции и сравнения проводятся над множествами за время, пропорциональное количеству элементов в множествах.
ab1n32kz2выходные данные123входные данныеasdasdвыходныеданныеNOРешениеa = set()st=input()for x in st:if '0'<=x<='9' and x not in a: a.add(x)if len(a)>0:b=sorted(list(a)) print(*b,sep='')else : print('NO')
Оглавление
Описание множеств 2
Создание множеств 2
Операции над множествами 3
Групповые операции над множествами 5
Сравнение множеств 5
Примеры решения задач с использование множеств 5
Задача A. Пунктуация 6
Задача B. Все различные цифры 6
Задача C. Повторяющиеся цифры 7
Задача D. Правильное восьмеричное число 7
Задача G. Удалить повторы 8
1.Онлайн курс «Основы программирования на Python» Густокашин М. С. 9
Описание множеств
Множество в python - "контейнер", содержащий не повторяющиеся элементы в случайном порядке В множество можно добавлять и удалять объекты, проверять принадлежность объекта множества и перебирать все объекты множества.Также над множествами можно совершать групповые операции, например, пересекать и объединять два множества.В отличие от массивов, где элементы хранятся в виде последовательного списка, в множествах порядок хранения элементов неопределен (более того, элементы множества хранятся не подряд, как в списке, а при помощи хитрых алгоритмов). Это позволяет выполнять операции типа “проверить принадлежность элемента множеству” быстрее, чем просто перебирая все элементы множества.Создание множеств
Множество в теле программы может быть создано с помощью записи элементов через запятую в фигурных скобках:B = {3, 1, 2}Исключением является пустое множество, которое можно создать при помощи функции set(). Если функции set передать в качестве параметра список, строку или кортеж, то она вернёт множество, составленное из элементов списка, строки, кортежа.A = set('python')выведет {'p', 'y', 't', 'h', 'o', 'n'}.Упорядоченность является чистой случайностью.Если при задании множества присутствовало несколько одинаковых элементов, то они попадут в множество в единственном экземпляре:A = set('Hello')выведет {'H', 'e', 'l', 'o'}.Узнать число элементов в множестве можно при помощи функции len.N=len(A)print(N)Программа выведет 4
Операции над множествами
Из множества можно сделать список или кортеж с помощью функций list и tuple соответственно.A = set('Hello')B=list(A)C=tuple(A)print(A)print(B)print(C)Программа выведет{'H', 'e', 'l', 'o'} # множество['H', 'e', 'l', 'o'] # список('H', 'e', 'l', 'o') # кортежДля добавления элемента в множество есть метод add:A = {1, 2, 3}A.add(4)print(A)Программа выведет{1, 2, 3, 4}Для удаления элемента x из множества можно использовать метод discard. В случае, когда удаляемый элемент отсутствует в множестве метод discard не делает ничего.A = {1, 2, 3}A.discard(2)print(A)Программа выведет{1, 3}Полная очисткаИногда необходимо полностью убрать все элементы. Чтобы не удалять каждый элемент отдельно, используется метод clear, не принимающий аргументов. Если вывести содержимое после этой операции, на экране появится только его название.А = {0, 1, 2, 3}А.clear()print(А)Программа выведет set()В результате получили пустое множество.Перебрать все элементы множества (в неопределенном порядке!) можно при помощи цикла for:А = {2, 3, 5, 7, 11}for dit in А:print(dit)Проверить, принадлежит ли элемент множеству можно при помощи операции in, возвращающей значение типа bool. Аналогично есть противоположная операция not inA = {1, 2, 3}print(1 in A, 4 not in A)Программа выведетTrue TrueГрупповые операции над множествами
В Питоне можно работать не только с отдельными элементами множеств, но и с множествами в целом. Например, для множеств определены следующие операции:| A = {1, 2, 3} B = {4, 2, 5} | ||
| Операция | Описание | Результат |
| A | B | Объединение множеств {1, 2, 3, 4, 5} | {1, 2, 3, 4, 5} |
| A & B | Пересечение множеств | {2} |
| A - B | Множество, элементы которого входят в A, но не входят в B | {1, 3} |
| A ^ B | Элементы входят в A | B, но не входят в A & B | {1, 3, 4, 5} |
В результате этих операций создается новое множество, однако для них определена и сокращенная запись: |=, &=, -= и ^=. Такие операции изменяют множество, находящееся слева от знака операции.
Сравнение множеств
| A = {1, 2, 3} B = {4, 2, 5} | |
| Операция | Описание |
| A == B | Все элементы совпадают |
| A != B | Есть различные элементы |
| A <= B | Все элементы A входят в B |
Примеры решения задач с использование множеств
Примеры решения задач с использование множеств задачи из учебника К.Ю. Полякова и Е.А. Еремина (Информатика 10-11 классы. Углублённый уровень. М.: БИНОМ, 2013) https://informatics.mccme.ru/mod/statements/view.php?id=11544#1Задача A. Пунктуация
Напишите программу, которая считает знаки пунктуации в символьной строке. К знакам пунктуации относятся символы из набора ".,;:!?".Входные данныеПрограмма получает на вход символьную строку.Выходные данныеПрограмма должна вывести общее количество знаков пунктуации во входной строке.Примерывходные данныеHi, guys!выходные данные2Решениеa = set('.,;:!?')st=input()k=0for x in st:if x in a: k+=1print(k)Задача B. Все различные цифры
Напишите программу, которая находит все различные цифры в символьной строке.Входные данныеНа вход программе подаётся символьная строка.Выходные данныеПрограмма должна вывести в одной строке все различные цифры, которые встречаются в исходной строке, в порядке возрастания. Если в строке нет цифр, нужно вывести слово 'NO'.Примерывходные данныеab1n32kz2выходные данные123входные данныеasdasdвыходныеданныеNOРешениеa = set()st=input()for x in st:if '0'<=x<='9' and x not in a: a.add(x)if len(a)>0:b=sorted(list(a)) print(*b,sep='')else : print('NO')
Задача C. Повторяющиеся цифры
Напишите программу, которая выводит все цифры, встречающиеся в символьной строке больше одного раза.Входные данныеВходная строка может содержать содержит цифры, пробелы и латинские буквы.Выходные данныеПрограмма должна вывести в одну строчку в порядке возрастания все цифры, встречающиеся во входной строке больше одного раза. Если таких цифр нет, нужно вывести слово 'NO'.Примерывходные данныеasd12gh23выходные данные2входные данныеt1y2u3i4o5выходные данныеNOРешениеa = set()st=input()b=set()for x in st:if '0'<=x<='9' and x not in a: a.add(x)elif x in a:b.add(x)if len(b)>0:b=sorted(list(b)) print(*b,sep='')else: print('NO')Задача D. Правильное восьмеричное число
Напишите программу, которая определяет правильность записи целого числа в восьмеричной системе счисления.Входные данныеНа вход программы поступает символьная строка.Выходные данныеПрограмма должна вывести ответ 'YES', если строка представляет собой правильную запись целого числа в восьмеричной системе счисления, и 'NO', если запись ошибочна.Примерывходные данные12345выходные данныеYESвходные данные1a234выходные данныеNOРешениеa = {'0','1','2','3','4','5','6','7'}b=input()if set(b)<=a and b[0]!='0':print('YES')else: print('NO')Задача G. Удалить повторы
Напишите программу, которая удаляет из строки все повторяющиеся символы.Входные данныеНа вход программы подаётся строка, содержащая символы таблицы ASCII.Выходные данныеПрограмма должна вывести исходную строку, из которой удалены все повторяющиеся символы.
Примеры
входные данные
abc13a1b2z3c
выходные данные
abc132z
входные данные
QWasd123
выходные данные
QWasd123
Решение
a = input()
b=set()
s=''
for x in a:
if x not in b:
b.add(x)
s+=x
print(s)
Используемая литература:
-
Онлайн курс «Основы программирования на Python» Густокашин М. С.
-
https://python-scripts.com/sets