Инфоурок Информатика СтатьиМетодическое пособие по теме: «Работа с множествами на языке Python»

Методическое пособие по теме: «Работа с множествами на языке Python»

Скачать материал

Методическое пособие  по теме: «Работа с множествами на языке Python»

Выполнила: учитель информатики и ИКТ 

Потапова Е.Н.

ГБОУ Школа № 1552

Оглавление

Описание множеств. 2

Создание множеств. 2

Операции над множествами. 3

Групповые операции над множествами.. 5

Сравнение множеств. 5

Примеры решения задач с использование множеств. 6

Задача A. Пунктуация. 6

Задача B. Все различные цифры.. 6

Задача C. Повторяющиеся цифры.. 7

Задача D. Правильное восьмеричное число. 8

Задача 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

 


 

Групповые операции над множествами

В Питоне можно работать не только с отдельными элементами множеств, но и с множествами в целом. Например, для множеств определены следующие операции:

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=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)

 

 

 

Используемая литература:

1.      Онлайн курс «Основы программирования на Python» Густокашин М. С.

2.      https://python-scripts.com/sets

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Методическое пособие по теме: «Работа с множествами на языке Python»"

Методические разработки к Вашему уроку:

Получите новую специальность за 3 месяца

Психолог в социальной сфере

Получите профессию

Секретарь-администратор

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 625 682 материала в базе

Материал подходит для УМК

Скачать материал

Другие материалы

Программа учебного курса по информатике для обучающихся 10-11 классов "Компьютерная графика"
  • Учебник: «Информатика. Углубленный уровень (в2 частях)», Поляков К.Ю., Еремин Е.А.
  • Тема: Глава 8. Компьютерная графика и анимация
  • 20.12.2019
  • 382
  • 6
«Информатика. Углубленный уровень (в2 частях)»,  Поляков К.Ю., Еремин Е.А.

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 12.01.2020 6061
    • DOCX 35.4 кбайт
    • 82 скачивания
    • Оцените материал:
  • Настоящий материал опубликован пользователем Потапова Елена Николаевна. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Потапова Елена Николаевна
    Потапова Елена Николаевна
    • На сайте: 7 лет и 2 месяца
    • Подписчики: 0
    • Всего просмотров: 6161
    • Всего материалов: 1

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Фитнес-тренер

Фитнес-тренер

500/1000 ч.

Подать заявку О курсе

Курс профессиональной переподготовки

Теория и методика обучения информатике в начальной школе

Учитель информатики в начальной школе

300/600 ч.

от 7900 руб. от 3950 руб.
Подать заявку О курсе
  • Сейчас обучается 94 человека из 34 регионов

Курс профессиональной переподготовки

Математика и информатика: теория и методика преподавания в образовательной организации

Учитель математики и информатики

500/1000 ч.

от 8900 руб. от 4450 руб.
Подать заявку О курсе
  • Сейчас обучается 680 человек из 79 регионов

Курс профессиональной переподготовки

Создание и обеспечение электронного архива с использованием информационно-коммуникационных технологий

Специалист по формированию электронного архива

600 ч.

9840 руб. 5900 руб.
Подать заявку О курсе
  • Сейчас обучается 29 человек из 21 региона

Мини-курс

Стратегии бизнес-развития

6 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Возрастные кризисы

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 26 человек из 18 регионов

Мини-курс

Психология семейных отношений: понимание, следствия и решения

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 36 человек из 25 регионов