Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
17.01.2026
Размер:
562.93 Кб
Скачать

add(elem)– добавляем элемент elem в множество st.

remove(elem) – удаляет элемент elem из множества st. Если элемент не находится

вмножестве, возникает ошибка.

discard(elem) –удаляет элемент elem из множества st, если он присутствует в множестве.

pop() –удаляет произвольный элемент из множества st и возвращает в качестве результата.

clear() – удаляет все элементы из множества.

Множества поддерживают математические операции, характерные для множеств (пересечение, объединение и др.). Пусть st - множество, на котором вызывается метод:

union(other, ...) или st | other | ... – возвращает новое множество - объединение множеств st и other.

intersection(other, ...) или st & other & ... – возвращает новое множество -

пересечение множеств st и other.

difference(other, ...) или st - other - ... – возвращает новое множество - разность множеств st и other.

isdisjoint(other) – возвращает True если st не содержит общий элементов с other.

issubset(other) или st <= other – возвращает True если все элементы st содержатся

вother.

st < other – аналогично st <= other, но множества не должны полностью совпадать.

issuperset(other) или st >= other –возвращает True если все элементы other

содержатся в st.

st > other – аналогично st >= other, но множества не должны полностью совпадать.

update(other, ...) или st |= other | ... – добавляет элементы из other в st.

Примеры работы с множеством:

a = {2, 4, 6, 8, 10}

>>>b = set(range(11))

>>>a

{8, 10, 2, 4, 6}

>>> b

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

>>>

>>>b.remove(0)

>>>b

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

>>>a.add(12)

>>>a

{2, 4, 6, 8, 10, 12}

>>> a & b

{8, 2, 10, 4, 6}

>>> a | b

{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12}

>>> a - b {12}

>>> b - a

{1, 9, 3, 5, 7}

1.3 Отображения

Отображение – это неупорядоченная коллекция пар элементов «ключ-значение». В разных языках синонимом отображений являются термины словарь, хеш-таблица или ассоциативный массив.

Отображения в Python представлены единственным типом dict (словарь), в котором в качестве ключа может выступать любой хешируемый объект, а в качестве значения - произвольный объект.

Примеры создания отображения:

# 1. Пустой словарь создается с помощью {} или функции dict()

>>> {} {}

>>> dict() {}

# 2. Инициализировать словарь элементами, используя:

# - фигурные скобки с перечислением элементов в виде 'ключ: значение';

# - функцию dict(), передав набор пар 'ключ: значение'.

# Следует обратить внимание, что т.к. множество - неупорядоченный набор данных,

# при выводе порядок его элементов может быть произвольным.

>>> {"one": 1, "two": 2, "three": 3} {'two': 2, 'one': 1, 'three': 3}

>>> dict(one=1, two=2, three=3) {'two': 2, 'one': 1, 'three': 3}

Пусть d – словарь, на котором вызывается метод:

d[key] – возвращает значение словаря для ключа key. Если ключ не существует, возникает ошибка.

get(key[, default]) – возвращает значение словаря для ключа key. Если ключ не существует возвращается значение default или None.

d[key] = value – устанавливает значение словаря по ключу key. Если ключ не существует, он создается.

items() – возвращает набор пар «ключ-значение» для словаря d. keys() – возвращает набор ключей для словаря d.

values() – возвращает набор значений для словаря d. clear() – удаляет из словаря все элементы.

del d[key] – удаляет пару «ключ-значение» на основании ключа key.

Примеры работы со словарем:

phonebook = {"Петров Петр": "+79102222222"}

>>>phonebook["Иванов Сергей"] = "+79101111111"

>>>phonebook

{'Иванов Сергей': '+79101111111', 'Петров Петр': '+79102222222'}

>>> phonebook["Петров Петр"]

'+79102222222'

# Обновили номер телефона

>>>phonebook["Петров Петр"] = "+79103333333"

>>>phonebook

{'Иванов Сергей': '+79101111111', 'Петров Петр': '+79103333333'}

>>>"Васильев Василий" in phonebook False

>>>phonebook.get("Васильев Василий", "Номер не найден") 'Номер не найден'

>>>phonebook.keys()

dict_keys(['Иванов Сергей', 'Петров Петр'])

>>> phonebook.values() dict_values(['+79101111111', '+79103333333'])

2 Взаимное преобразование типов

#1. Преобразование в строку

#Строковое представление имеют практически все рассмотренные классы

>>> str(True) 'True'

>>>str(5)

'5'

>>>str(10.43)

'10.43'

>>>str([1, 2, 3, 4, 5]) '[1, 2, 3, 4, 5]'

# 2. Преобразование в целое число

>>>int(10.43) # int отсекает дробную часть

10

>>>int("5")

5

>>> int(True) 1

# 3. Преобразование в вещественное число

>>>float(5)

5.0

>>>float("10.43")

10.43

# 4. Преобразование в логический тип

#Всегда возвращает False, для:

#- None, False;

#- нулевых чисел;

#- пустых последовательностей и отображений.

#- ...

>>>bool(None), bool(0), bool(0.0), bool(""), bool({}) (False, False, False, False, False)

>>>bool(5), bool({1: "первый"})

(True, True)

# 5. Преобразования последовательностей

>>>tuple([1, 2, 3]) (1, 2, 3)

>>>d = dict(one=1, two=2, three=2)

>>>list(d.keys()) # Получаем список ключей

['one', 'three', 'two']

>>>set(d.values()) # И множество зн

{1, 2}

3 Поверхностное и глубокое копирование

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

# 1. Поверхностная и глубокая копии

>>>x = [53, 68, ["А", "В", "С"]]

>>>x1 = x # Поверхностная копия (через присваивание)

>>>x2 = x[:] # Глубокая копия (создается при срезе)

>>>x3 = x.copy() # Глубокая копия (через метод copy())

>>>id(x), id(x1), id(x2), id(x3)

(4813768, 4813768, 4813848, 4813808)

>>> x1 is x, x2 is x, x3 is x (True, False, False)

# 2. Присваивание копирует ссылки на объекты, создавая объекты при необходимости

# Проверить можно с помощью функции id()

>>> a = 5

>>> b = a

>>> a, b (5, 5)

>>>id(a), id(b) (1431495600, 1431495600)

>>>c = 5

>>>id(a), id(c) (1431495600, 1431495600)

#При изменении значения 'a', Python не изменяет объект 5

#(оставляя его "как есть", т.к. знает, что он используется другими),

#а создает новый, меняя ссылку у 'a', при этом прочие объекты продолжают ссылаться на 5

>>> a = 10

>>> id(a), id(c) (1431495680, 1431495600)

#Но с мутирующими типами (например, списком) Python поступает по-другому

>>> a = [1, 2, 3]

>>> b = [1, 2, 3]

>>> c = a

>>> id(a), id(b), id(c) (30431712, 30447736, 30431712)

#При изменении мутирующего типа "изменяются" и указывающие на него объекты

#т.к. они хранят ссылку на тот же объект!

>>>a[0] = 5

>>>a, b, c

([5, 2, 3], [1, 2, 3], [5, 2, 3])

4 Константы

В Python не существует привычного для, например, Си или Паскаля понятия константы. Вместо этого, значение, которое подразумевается как константа, обозначается заглавными буквами (MEMORY_MAX = 1024), визуально предупреждая, что данное значение менять не следует.

5 Сортировка

Функция sorted() позволяет получить отсортированный объект в виде списка.

#1. Простой список

>>> lst = [1, 8, 2, 5, 0, 3]

>>> sorted(lst) [0, 1, 2, 3, 5, 8]

>>> sorted(lst, reverse=True) [8, 5, 3, 2, 1, 0]

#2. Словарь

#Для словаря sorted() возвращает отсортированный список ключей

>>> phones = {'Иван': '+74951111111', 'Сергей': '+74951111113', 'Кирилл': '+74951111112'}

>>> sorted(phones) ['Иван', 'Кирилл', 'Сергей']

Задания

Задание 1

Для заданных значений электрических величин выполнить расчет по указанной формуле. Создать строки с формулой, исходными значениями и результатом. Объединить все строки в отчет.

Варианты:

1.Дано: U = 12 В, R = 100 Ом. Закон Ома: I = U / R. Найти: I.

2.Дано: U = 24 В, R = 50 Ом. Мощность: P = U² / R. Найти: P.

3.Дано: R1 = 100 Ом, R2 = 200 Ом. Сопротивление параллельных резисторов: 1/R

=1/R1 + 1/R2. Найти: R.

4.Дано: C = 100 мкФ, U = 12 В. Энергия конденсатора: W = C × U² / 2. Найти: W.

5.Дано: I = 2 А, R = 10 Ом, t = 60 с. Закон Джоуля-Ленца: Q = I² × R × t. Найти: Q.

6.Дано: f = 50 Гц, C = 10 мкФ. Емкостное сопротивление: Xc = 1 / (2 × π × f × C).

Найти: Xc.

7.Дано: f = 1000 Гц, L = 10 мГн. Индуктивное сопротивление: XL = 2 × π × f × L. Найти: XL.

8.Дано: U1 = 220 В, U2 = 12 В. Коэффициент трансформации: k = U1 / U2. Найти:

k.

9.Дано: Pполезная = 80 Вт, Pполная = 100 Вт. КПД источника: η = Pполезная / Pполная × 100%. Найти: η.

10.Дано: C = 470 мкФ, U = 5 В. Заряд конденсатора: Q = C × U. Найти: Q.

11.Дано: T = 0.01 с. Частота колебаний: f = 1 / T. Найти: f.

12.Дано: f = 100 МГц, c = 3×10 м/с. Длина волны: λ = c / f. Найти: λ.

13.Дано: I = 5 А, S = 2.5 мм². Плотность тока: J = I / S. Найти: J.

14.Дано: B = 0.5 Тл, S = 0.01 м². Магнитный поток: Φ = B × S. Найти: Φ.

15.Дано: B = 0.1 Тл, l = 0.5 м, v = 10 м/с. ЭДС индукции: E = B × l × v. Найти: E.

16.Дано: U = 380 В, I = 10 А, cosφ = 0.8. Мощность трехфазной цепи: P = √3 × U × I × cosφ. Найти: P.

17.Дано: ρ = 0.017 Ом×мм²/м, l = 100 м, S = 1.5 мм². Сопротивление проводника: R

=ρ × l / S. Найти: R.

18.Дано: L = 100 мкГн, C = 100 нФ. Резонансная частота: f = 1 / (2 × π × √(L × C)).

Найти: f.

19.Дано: I = 5 А, R = 0.5 Ом. Потери в линии: ΔP = I² × R. Найти: ΔP.

20.Дано: U = 1000 В, d = 0.01 м. Напряженность поля: E = U / d. Найти: E.

21.Дано: B = 0.2 Тл, I = 5 А, l = 0.3 м. Сила Ампера: F = B × I × l. Найти: F.

22.Дано: L = 0.1 Гн, I = 2 А. Энергия магнитного поля: W = L × I² / 2. Найти: W.

23.Дано: n1 = 1500 об/мин, n2 = 1450 об/мин. Скольжение асинхронного двигателя: s = (n1 - n2) / n1 × 100%. Найти: s.

24.Дано: P = 800 Вт, S = 1000 ВА. Коэффициент мощности: cosφ = P / S. Найти: cosφ.

25.Дано: U = 220 В, I = 0.5 А. Тепловая мощность: P = U × I. Найти: P.

26.Дано: R0 = 100 Ом, α = 0.004 1/°C, ΔT = 50°C. Сопротивление терморезистора: R

=R0 × (1 + α × ΔT). Найти: R.

27.Дано: ε = 1, ε0 = 8.85×10 ¹² Ф/м, S = 0.1 м², d = 0.001 м. Емкость плоского конденсатора: C = ε × ε0 × S / d. Найти: C.

28.Дано: μ = 1, μ0 = 4π×10 Гн/м, N = 100, S = 0.001 м², l = 0.1 м. Индуктивность катушки: L = μ × μ0 × N² × S / l. Найти: L.

29.Дано: U = 0.7 В, I = 0.1 А. Сопротивление диода в прямом направлении: R = U / I. Найти: R.

30. Дано: k = 1.38×10 ²³ Дж/К, T = 300 К, B = 1 МГц. Мощность шума: P = k × T × B.

Найти: P.

Задание 2

Для заданного списка значений выполнить расчеты. Создать список результатов. Найти максимальное, минимальное и среднее значения.

Варианты:

1.Напряжения: [5, 10, 15, 20, 25] В, R = 100 Ом. Найти токи для каждого напряжения.

2.Длины провода: [1, 2, 3, 4, 5] м, ρ = 0.0175 Ом×мм²/м, S = 1 мм². Найти сопротивления.

3.Емкости конденсаторов: [100, 200, 300, 400, 500] мкФ, U = 12 В. Найти запасаемую энергию.

4.Токи: [0.1, 0.2, 0.3, 0.4, 0.5] А, R = 50 Ом. Найти мощности на резисторе.

5.Частоты: [50, 100, 150, 200, 250] Гц, L = 0.1 Гн. Найти индуктивные сопротивления.

6.Сопротивления: [10, 20, 30, 40, 50] Ом, U = 24 В. Найти токи.

7.Индуктивности: [10, 20, 30, 40, 50] мГн, f = 1000 Гц. Найти реактивные сопротивления.

8.Напряжения: [3, 6, 9, 12, 15] В, I = 0.5 А. Найти мощности.

9.Времена: [1, 2, 3, 4, 5] с, I = 2 А, U = 12 В. Найти выделенную теплоту.

10.Площади сечения: [0.5, 1.0, 1.5, 2.0, 2.5] мм², l = 100 м, ρ = 0.0175. Найти сопротивления.

11.Магнитные индукции: [0.1, 0.2, 0.3, 0.4, 0.5] Тл, S = 0.01 м². Найти магнитные

потоки.

12.Силы тока: [1, 2, 3, 4, 5] А, B = 0.2 Тл, l = 0.5 м. Найти силы Ампера.

13.Скорости: [5, 10, 15, 20, 25] м/с, B = 0.1 Тл, l = 1 м. Найти ЭДС индукции.

14.Температуры: [0, 20, 40, 60, 80] °C, R0 = 100 Ом, α = 0.004. Найти сопротивления терморезистора.

15.Количество витков: [50, 100, 150, 200, 250], S = 0.001 м², l = 0.1 м. Найти индуктивности.

16.Расстояния между пластинами: [1, 2, 3, 4, 5] мм, S = 0.1 м². Найти емкости конденсатора.

17.Частоты генерации: [1, 2, 3, 4, 5] МГц, C = 100 пФ. Найти индуктивности

контура.

18.Сопротивления нагрузки: [10, 20, 30, 40, 50] Ом, I = 1 А. Найти падения напряжения.

19.Емкости: [10, 20, 30, 40, 50] нФ, f = 1 МГц. Найти емкостные сопротивления.

20.Индуктивности: [100, 200, 300, 400, 500] мкГн, f = 500 кГц. Найти реактивные сопротивления.

21.Напряжения питания: [3, 5, 9, 12, 15] В, I = 0.1 А. Найти потребляемые мощности.

22.Сопротивления резисторов: [100, 200, 300, 400, 500] Ом, U = 10 В. Найти токи.

23.Длины волн: [10, 20, 30, 40, 50] м, c = 3×10 м/с. Найти частоты.

24.Периоды: [0.001, 0.002, 0.003, 0.004, 0.005] с. Найти частоты.

25.Коэффициенты трансформации: [1, 2, 5, 10, 20], U1 = 220 В. Найти U2.

26.Скольжения: [0.01, 0.02, 0.03, 0.04, 0.05], n1 = 1500 об/мин. Найти n2.

27.Удельные сопротивления: [0.017, 0.028, 0.1, 0.4, 1.0] Ом×мм²/м, l = 10 м, S = 1

мм². Найти сопротивления.

28.Диэлектрические проницаемости: [1, 2, 4, 6, 8], S = 0.01 м², d = 1 мм. Найти

емкости.

29.Магнитные проницаемости: [1, 100, 500, 1000, 5000], N = 100, S = 0.001 м², l =

0.1м. Найти индуктивности.

30.Температурные коэффициенты: [0.003, 0.004, 0.005, 0.006, 0.007] 1/°C, R0 = 100

Ом, ΔT = 50°C. Найти сопротивления.

Задание 3

Создать кортежи с параметрами электронных компонентов. Извлечь отдельные параметры. Выполнить расчеты на основе этих параметров.

Варианты:

1.Резисторы: (номинал, допуск, мощность) (100, 5, 0.25), (1000, 1, 0.5), (10000, 10, 1)

Найти диапазоны сопротивлений

2.Конденсаторы: (емкость, напряжение, тип)

(100, 50, 'керамика'), (1000, 25, 'электролит'), (10, 100, 'пленка')

Найти общую емкость при параллельном соединении первых двух

3.Транзисторы: (тип, hFE, Uce_max, Ic_max) ('BC547', 200, 45, 0.1), ('2N2222', 100, 30, 0.8)

Найти максимальную рассеиваемую мощность

4.Диоды: (тип, Uпр, Iпр_max, Uобр) ('1N4007', 0.7, 1, 1000), ('1N4148', 0.6, 0.3, 100)

Найти прямое сопротивление

5.Катушки индуктивности: (индуктивность, ток, сопротивление) (100, 0.5, 0.1), (1000, 0.2, 0.5), (10, 1, 0.01)

Найти запасенную энергию

6.Микросхемы: (тип, напряжение, ток, корпус)

('LM7805', 35, 1, 'TO220'), ('LM317', 40, 1.5, 'TO220')

Найти максимальную рассеиваемую мощность

7.Трансформаторы: (мощность, U1, U2, I2) (50, 220, 12, 4), (100, 220, 24, 4)

Найти КПД трансформатора

8.Реле: (напряжение, ток, сопротивление, контакты) (12, 0.1, 120, '1НО'), (24, 0.05, 480, '1НЗ')

Найти мощность управления

9.Светодиоды: (цвет, Uпр, Iпр, световой поток)

('красный', 1.8, 0.02, 5), ('синий', 3.2, 0.02, 3)

Найти сопротивление ограничительного резистора для U=5В

10.Терморезисторы: (R25, B, P, точность) (1000, 3950, 0.25, 1), (10000, 3450, 0.5, 2)

Найти сопротивление при 50°C

11.Варисторы: (Uраб, Iраб, Umax, диаметр)

(275, 1, 450, 10), (385, 2, 650, 14)

Найти максимальную рассеиваемую энергию

12.Кварцевые резонаторы: (частота, стабильность, нагрузка, корпус) (4, 50, 20, 'HC49'), (8, 30, 18, 'HC49')

Найти период колебаний

13.Оптроны: (Uвх, Iвх, Uвых, Iвых)

(1.2, 0.05, 30, 0.15), (1.5, 0.1, 80, 0.3)

Найти коэффициент передачи

14.Датчики Холла: (чувствительность, Uпит, Iвых, корпус) (50, 5, 20, 'TO92'), (100, 12, 25, 'TO92')

Найти выходное напряжение при B=0.1Тл

15.ЖК-дисплеи: (разрешение, подсветка, Uпит, интерфейс) ('16x2', 'LED', 5, 'parallel'), ('20x4', 'EL', 12, 'I2C')

Найти потребляемую мощность

16.Аккумуляторы: (емкость, напряжение, ток, тип)

(1000, 3.7, 2, 'Li-ion'), (2000, 1.2, 5, 'NiMH')

Найти запасенную энергию

17.Солнечные панели: (мощность, Uxx, Iкз, размер) (10, 21, 0.6, '100x100'), (20, 21, 1.2, '200x100')

Найти КПД при стандартных условиях

18.Двигатели постоянного тока: (мощность, U, I, обороты) (10, 12, 1, 3000), (20, 24, 1, 5000)

Найти КПД двигателя

19.Вентиляторы: (напряжение, ток, воздушный поток, шум) (12, 0.1, 50, 20), (24, 0.08, 80, 25)

Найти потребляемую мощность

20.Микрофоны: (чувствительность, сопротивление, диапазон, тип) (-46, 200, '50-16k', 'электретный'), (-40, 600, '20-20k', 'динамический')

Найти выходное напряжение при заданном звуковом давлении

21.Динамики: (мощность, сопротивление, диапазон, диаметр)

(5, 8, '100-10k', 10), (10, 4, '80-20k', 13)

Найти ток при максимальной мощности

22.Предохранители: (ток, напряжение, скорость, размер) (1, 250, 'быстрый', '5x20'), (5, 250, 'медленный', '6.3x32')

Найти сопротивление предохранителя

23.Переключатели: (ток, напряжение, контакты, тип)

(5, 250, '2P2T', 'поворотный'), (10, 125, 'SPDT', 'тумблер')

Найти мощность коммутации

24. Разъемы: (контакты, ток, напряжение, тип)

(9, 1, 30, 'D-Sub'), (25, 2, 50, 'DB25')

Найти общий ток разъема

25.Платы: (размер, слои, толщина, материал) ('100x100', 2, 1.6, 'FR4'), ('150x100', 4, 1.0, 'FR4')

Найти площадь платы

26.Радиаторы: (размер, Rth, материал, вес) ('30x30', 5, 'алюминий', 10), ('50x50', 2, 'медь', 25)

Найти перегрев при заданной мощности

27.Фильтры: (частота, затухание, полоса, тип) (1000, 40, 100, 'ФНЧ'), (5000, 60, 500, 'ФВЧ')

Найти крутизну среза

28.Усилители: (усиление, полоса, Uпит, шум) (100, '1M', 15, 10), (1000, '100k', 12, 5)

Найти выходное напряжение при заданном входном

29.Генераторы: (частота, стабильность, Uпит, форма) (1, 100, 5, 'синус'), (10, 50, 12, 'меандр')

Найти период колебаний

30.Стабилизаторы: (Uвх_min, Uвх_max, Uвых, Iвых) (7, 35, 5, 1), (4, 40, 12, 1.5)

Найти минимальную разность напряжений

Задание 4

Создать словарь с параметрами электронных компонентов. Извлечь значения по ключам. Выполнить операции со словарем.

Варианты:

1.Резисторы:

resistors = {

'R1': {'value': 100, 'tolerance': 5, 'power': 0.25}, 'R2': {'value': 1000, 'tolerance': 1, 'power': 0.5}, 'R3': {'value': 10000, 'tolerance': 10, 'power': 1}

}

Найти: параметры R2, список всех резисторов, номиналы

2.Конденсаторы:

capacitors = {

'C1': {'capacity': 100, 'voltage': 50, 'type': 'керамика'}, 'C2': {'capacity': 1000, 'voltage': 25, 'type': 'электролит'}, 'C3': {'capacity': 10, 'voltage': 100, 'type': 'пленка'}

}

Найти: емкость C1, тип C2, максимальное напряжение