множества. Методическое пособие по теме_ «Работа с множествами на языке Pyt. Методическое пособие по теме Работа с множествами на языке Python
Скачать 35.43 Kb.
|
Методическое пособие по теме: «Работа с множествами на языке Python» Выполнила: учитель информатики и ИКТ Потапова Е.Н. ГБОУ Школа № 1552 ОглавлениеОписание множеств 2 Создание множеств 2 Операции над множествами 3 Групповые операции над множествами 5 Сравнение множеств 5 Примеры решения задач с использование множеств 5 Задача A. Пунктуация 6 Задача B. Все различные цифры 6 Задача C. Повторяющиеся цифры 7 Задача D. Правильное восьмеричное число 7 Задача G. Удалить повторы 8 1.Онлайн курс «Основы программирования на Python» Густокашин М. С. 9 Данный материал будет полезен учителям информатики, работающих в профильных классах, а также школьникам, желающим повысить свой уровень изучения языка Python. Описание множествМножество в 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 in A = {1, 2, 3} print(1 in A, 4 not in A) Программа выведет True True Групповые операции над множествамиВ Питоне можно работать не только с отдельными элементами множеств, но и с множествами в целом. Например, для множеств определены следующие операции:
В результате этих операций создается новое множество, однако для них определена и сокращенная запись: |=, &=, -= и ^=. Такие операции изменяют множество, находящееся слева от знака операции. Сравнение множеств
Также определены операции > и >=. Все групповые операции и сравнения проводятся над множествами за время, пропорциональное количеству элементов в множествах. Примеры решения задач с использование множествПримеры решения задач с использование множеств задачи из учебника К.Ю. Полякова и Е.А. Еремина (Информатика 10-11 классы. Углублённый уровень. М.: БИНОМ, 2013) https://informatics.mccme.ru/mod/statements/view.php?id=11544#1 Задача A. ПунктуацияНапишите программу, которая считает знаки пунктуации в символьной строке. К знакам пунктуации относятся символы из набора ".,;:!?". Входные данные Программа получает на вход символьную строку. Выходные данные Программа должна вывести общее количество знаков пунктуации во входной строке. Примеры входные данные Hi, guys! выходные данные 2 Решение a = set('.,;:!?') st=input() k=0 for x in st: if x in a: k+=1 print(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 |