|
||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[7] в данном словаре. Кроме получения списка ключей (keysО) и списка значений (valuesО) весьма полезно представление словаря как списка кортежей функцией items О. Понятно, что здесь философия соблюдена - легко что-то добавить в полученный псевдокортеж или отсортировать его, а каждой паре это ни к чему - всё, что нам нужно знать, это где ключ и где значение, ему соответствующее. Это с лихвой обеспечивается кортежем. Прочие возможности и приёмы работы со словарём можно узнать у функции dir({}). Ясно, что уже данное нами определение типа при нынешнем уровне знаний не выдерживает никакой критики, и нужно давать его заново и по-другому: Определение. Тип есть совокупность множества значений и методов для работы с ними. Упражнение. Множество допустимых значений типа - это список или кортеж? А сам тип? Существует большое разнообразие типов, необходимых в самых разных областях применения программирования. Среди наиболее интересных можно вспомнить множества - когда важно присутствие элемента, но не важен его порядок, и один элемент может присутствовать только в единственном экземпляре. Для графов существует много разных машинных представлений: матрицы инцидентности и смежности, объединение множества дуг и множества вершин и т.п. Деками называют массивы, в которых доступ может производиться только к крайним элементам, по одному с каждой стороны (такая же, но одностороняя структура называется стеком). В некоторых задачах удобно пользоваться кольцами - замкнутыми массивами, в которых доступ осуществляется только к одному элементу кольца и для перехода к другому кольцо нужно прокрутить. Всё это - сильно специализированные вещи, не входящие в стандартную поставку питона, но их можно реализовать с помощью объектной модели, о чем мы и узнаем через несколько лекций. Лекция шестая Несмотря на то, что питон - язык нетипизированный, мы и в этой лекции рассмотрим еще один тип данных и операторы, им порожденные. На практике иногда оказывается, что типы, кажущиеся на первый взгляд менее важными, да и по определению скромнее уже рассмотренных, во много крат мощнее и нужнее. Таков, например, так называемый логический тип, называемый иногда булевым в честь ирландского математика Джорджа Буля. 3.10 Логический тип Логический тип, как можно догадаться, состоит всего из двух возможных значений: истины и лжи (англоязычные источники пользуются терминами true и false соответственно). В питоне нет самостоятельного булева типа даже на том уровне, где можно признать существование целого и вещественного типов данных (ведь, вообще говоря, нет никаких типов, так, теория одна). В качестве булева типа возможно использование любого другого по следующим правилам: •Операции отношения, такие, как >,== или !=, возвращают 1 (значение целого типа), если отношение выполняется и 0 в противном случае. •При использовании значения какого-либо типа в качестве булева только всевозможные нули и пустые списки (то есть 0, 0.0, 0L, 0j , О , " , , >>>>>>, ............, [] , {}, а также особый пустой объект None, с которым мы ознакомимся позже) считаются ложью, все прочие - истиной. •Выражение A or В (А или В) возвращает В, если А ложно и А в противном случае. •Выражение A and В (А и В) возвращает В, если А истинно и А в противном случае. •Выражение not А (не А) возвращает 1, если А ложно и 0 в противном случае. Изменить это (если кому вдруг захочется) нельзя, а создать новый тип с похожими свойствами можно только пользуясь объектно-ориентированным подходом, о чем мы расскажем позже. Булев тип чаще всего используется при различного рода проверках, в операторах ветвления, которые мы сейчас рассмотри. Когда мы говорили об операторе присваивания, было упомянуто существование операторов, управляющих последовательностью их выполнения. Теперь же мы обсудим их подробно. В языке питон существует три вида таких операторов: ветвление, повтор и перебор. Оператор ветвления записывается так: if <условие>: <оператор> или так: if <условие>: и<оператор> После ключевого слова if записывается условие (для наглядного отделения обычно используют круглые скобки, но можно обходиться без них). Вообще, скобок можно ставить сколько угодно, питон не спутает число в скобках с кортежем из одного элемента, ведь такой кортеж должен в задании иметь еще и запятую: а=(0,). После двоеточия указывается оператор, который будет выполнен в случае истинности условия. Если в случае истинности нужно выполнить не одну, а несколько строк кода, используется так называемый составной оператор, обозначаемый отступом: ifu(A): UB=input() uprintuA+B Отступом может служить как пробел, так и символ табуляции. Составной оператор (а с ним и оператор ветвления) кончается перед следующей строкой без отступа. Для сравнения величин многих типов (чисел, строк, ...) используются привычные математические символы: < для меньше, > для больше, >= для больше или равно, <= для меньше или равно, == для равно, <> или != для не равно. Их можно группировать по всем правилам арифметики: if 0<х<10 and -10<=у<=100: print у/,х Есть еще две инфиксных (то есть записывающихся между операндами) операции сравнения: is и in. Первая используется в основном для сравнения объектов на эквивалентность, для более простых же типов данных она аналогична ==. Вторая проверяет элемент на принадлежность последовательности (кортежу, списку или строке). Есть краткая запись для not (е in L): е not in L Оператор ветвления можно продлить, добавив секцию, срабатывающую при ложном условии. Повторно указывать условие не нужно: if (<условие>): и<операторы> else: и<операторы> Развивая заложенную в этом маленьком усовершенствовании большую идею, можно придти к так называемому множественному ветвлению, когда в случае неудачи одного условия проверяется другое, при его неудаче - третье, четвертое, и так далее. В питоне это записывается следующим образом: if (<условие>): и<операторы> elif (<условие>): и<операторы> elif (<условие>): и<операторы> и<операторы> Логические операции, которым мы дали определение в начале лекции, помогают существенно сократить или даже полностью избежать появления одинаковых блоков программы или одинаковых условий: |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||