|
||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[5] усмотрению решать, когда и какие кавычки использовать. Маскировка - одна из возможностей использования управляющих последовательностей, о которых мы уже говорили раньше, при обсуждении оператора вывода и перехода на новую строку. Если одиночный обратный слэш завершает строчку, на следующей строчке будет ожидаться продолжение строки, но сам переход записан не будет. В этой фразе ярко проявляется несовершенство терминологии. Строки (strings) - это переменные, содержащие символьные данные, которые мы обсуждаем в этой теме. Строчки (lines) - это строки экрана, по которым идут знакоместа в текстовом режиме и символы текущим шрифтом в графическом. Мы надеемся, что в каждом конкретном случае смысл будет ясен из контекста. Переход на новую строчку можно включать в строки так же, как мы это делали для оператора print: как \п. Но есть ещё один способ включить переход на новую строчку в явном виде. Для этого есть еще два варианта заключения в кавычки. Нет, это не широко известные обратные, до которых мы всё ещё не дошли, а особые, существующие только в питоне: тройные. Они бывают двух типов: тройные двойные и тройные одинарные (тройные одинарные были введены сугубо ради симметрии и почти не используются). Выглядят они так: g="""Строка, иявнымиобразом разбитаяина строчки""" Ну и, наконец, перейдем к обратным кавычкам, потому как это последний их тип. п=53 k=h( Что после этого находится в к? Строка, конечно. А что в строке? Значение переменной п, то есть "53". Итак, обратные кавычки возвращают преобразованное в строку значение переменной, имя которой записано между ними. Другой, менее экзотичный способ совершения того же действия выглядит так: k=repr(h) Согласитесь, длиннее, труднее для запоминания и менее красиво. Другая от частого употребления ставшая стандартной операция со строками - это взятие её длины: l=len(k) Упражнение. Попробуйте угадать, что будет в m, п и р после выполнения следующего: m,n=3.1415,......\\\\\\\"\"и ии ии р=1еп(n+m+n+т) Правильный ответ: 3.1415, \\\""ии 43 соответственно. Лекция пятая Разобравшись с кавычками, мы можем перейти к скобкам. Их существует четыре вида: круглые, квадратные, фигурные и угловые. Три из них служат для определения трех важнейших сложных типов данных питона. 3.9 Композитные типы данных Существует два сложных, или композитных, типов данных в питоне: последовательности и объекты. Сегодня мы разберемся с тремя разновидностями последовательностей. Определение. Последовательность есть нечто, заключенное в скобки. 1. Кортеж есть неоднородный неизменяемый массив. Задается круглыми скобками или же их отсутствием. Ну, неоднородный - это понятно, значит, может содержать разнотиповые данные, например: А=(2,3.14,"ааа") В=((((((1),0),0),0),0),0) Неизменяемый - это сложнее. Это значит, что структура кортежа не может быть изменена после того, как он был создан. (Как будет выяснено далее, кое-что можно все же сделать в обход ограничений). В питоне только строки и кортежи являются неизменяемыми типами данных. Так, нельзя заменить одну букву в строке, оставив саму строку той же, но можно создать новую строку с одной измененной буквой. Для доступа к элементам кортежа используются квадратные скобки с указанием номера нужного элемента: В этом случае в С будет занесена не двойка, а 3.14, потому что нумерация элементов всегда идет с нуля. Также можно из кортежа взять часть с несколькими элементами, называемую сечением. Сечения бывают трех видов: начальные, центральные и конечные. Рассмотрим различия между ними на примерах: D=(i,2,3,4,5,6,7,8,9) даёт (1,2,3,4,5,6,7,8,9) E=D[3:8] даёт (4,5,6,7,8) F=D[:4] даёт (1,2,3,4) G=D[7:] даёт (8,9) В первой строчке мы занесли в С какой-то произвольный кортеж, удобный для демонстрации различных сечений. Во второй строчке берется центральное сечение - с третьего элемента включительно по восьмой невключительно. Следует отметить, что это обычный для питона метод обхождения с границами чего бы то ни было - нижняя граница всегда входит в диапазон, а верхняя - нет. Это не обусловлено никакими теоретическими выкладками, а только практическим удобством использования. Ну и, конечно, ни на минуту нельзя забывать, что нумерация элементов идет с нуля! В третьей строчке мы опустили первое число, и оно по умолчанию приняло значение 0 - номер первого элемента, что дало нам начальное сечение. Ясно, что конечное сечение получается при опускании последнего индекса, принимающего номер на один больший номера последнего элемента (то есть так, чтобы последний элемент вошел в сечение, а не остался непонятно где). У некоторых логично мыслящих может возникнуть вопрос: а что, если опустить оба числа? Правильный ответ таков: результатом будет полное сечение или копия исходного кортежа. Такой ответ ожидаем, но не вносит ясности, появления которой мы так жаждали при формулировке вопроса, и даже наоборот, он запутывает ситуацию, порождая новый вопрос: в чем разница между H=D и H=D [: ] ? Ответ: в семантике! Дело в том, что в питоне для сложных типов данных (то есть не строк и не чисел) оператор присваивания работает совсем по-другому. Вместо пересылки содержимого одних ячеек памяти в другие происходит дополнительное именование тех же самых ячеек. Таким образом, разные для нас имена трактуются как один и тот же набор ячеек питоном. Это называется семантика указателей. Количество имен объекта1 называется его мощностью. Для уменьшения мощности используется оператор del. Когда мощность объекта опускается до нуля, объект потерян, мы больше не имеем к нему доступа, и в ближайшее время он будет уничтожен интерпретатором питона. Все строки и числа имеют мощность 1 и уничтожаются сразу по вызову оператора del или при получении именем нового значения. Запись H=D[:] олицетворяет семантику копирования. Создаётся новый объект, полностью копирующий структуру и содержимое старого, и мы получаем два одинаковых (точнее, разных, но равных) объекта мощности 1 каждый. Для преобразования строки или последовательности в кортеж используется функция tuple(): »> tuple(123) (1, 2,3) Если аргумент этой функции - кортеж, она вернет именно его (а не его копию). 2. Список есть изменяемый неоднородный массив. Задается квадратными скобками. 1 Объектом мы пока что называем множество ячеек памяти |
Среды: 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 | ||