Жизнь коротка, используйте Python
Язык программирования на самом деле представляет собой набор инструментов, которые позволяют нам программировать на гораздо более высоком уровне, чем 0 и 1, существующие на самых низких уровнях компьютера.
В Python доступно множество библиотек, которые упрощают написание некоторых очень интересных программ, таких как компьютерная графика и графические пользовательские интерфейсы. IDE, такие как Wing, имеют поддержку отладчика, который понимает, как работает программа Python. Скачать можно с http://wingware.com.
Угадай и проверь шаблон или идиома — это предположение как правильное решение и сохранение предположения в переменной. Затем вы используете один или несколько операторов if, чтобы проверить это предположение, чтобы увидеть, было ли оно правильным или нет.
В Python есть elif для решения шаблона ступеней лестницы.
Логика короткого замыкания:остановка выполнения логических операций, если значение истинности выражения уже определено.
В Python действительные числа или числа с плавающей запятой представляются с использованием восьми байтов. Целые числа, числа с плавающей запятой, логические значения и строки неизменяемы в Python. Список нет. Список на самом деле является списком ссылок. В отличие от строк, отдельные ссылки в списке могут указывать на новые объекты с помощью индексированного присваивания. Каждое значение в Python является объектом. включают целые числа, числа с плавающей запятой, строки.
В объектно-ориентированном программировании (ООП) тип — это класс, а значение — объект. Типы в питоне называются классами. Методы называются хуками, синтаксическим сахаром, операторами.
Отложенное вычисление в Python 3: функция range возвращает генератор, который генерирует список целых чисел по мере необходимости.
Вместо того, чтобы возвращать список int в python2.
# python3: list(range(4)) -> [0 ,1,2,3] range(4) -> range(0,4) type(range(n)) is <class ‘range’> # python2: range(n) is <type ‘list’> range([start,]stop[,increment]) e.g range(10,110,10)
Чтение и запись в файл:
в конце каждой строки, прочитанной из файла, есть символ новой строки ‘\n’.
Если у вас есть нестроковые элементы для записи в файл, их необходимо преобразовать в строки с помощью функции str. Цикл while используется для чтения записей из файла, состоящего из нескольких строк.
Проблема полуторного цикла. Идея состоит в том, что вы должны попытаться прочитать строку из файла, прежде чем узнаете, находитесь ли вы в конце файла или нет.
file=open(“name.txt”,”r”) numEntries=0 lastName=file.readline().rstrip() while lastName!=” “: … numEntrie=numEntries+1 lastName=file.readline().rstrip() Other patterns: numEntries=0 eof=False while not eof: lastName=file.readline().rstrip() … if lastName!=” “: numEntrie=numEntrie+1 else: eof=True
модуль – это файл, содержащий код Python. Модуль черепахи включает в себя код, который помогает нам рисовать фигуры на песке.
для импорта модуля *
e.g from turtle import *
Работа с файлами XML:
XML означает расширяемый язык разметки. Ученые-компьютерщики разработали формат XML, чтобы данные можно было хранить в согласованном формате.
Умение писать код для извлечения данных из XML-файла — очень полезный навык.
Синтаксический анализатор XML:
from xml.dom import minidom
После того, как вы импортировали анализатор XML, вы создаете объект Document, указав minidom проанализировать файл XML.
xmldoc = minidom.parse(“ flowerandbg.xml”)
Извлечение файла из файла XML
graphicsCommands=xmldoc.getElementsByTagName(“GraphicCommands”)
получить только первый:
graphicsCommand = xmldoc. getElementsByTagName(“GraphicsCommands” )[0]
Словарь.Разница между списком и словарем заключается в значениях, используемых для их индексирования. В словаре нет порядка значений индекса. Значение индекса, называемое ключом при работе со словарями, может быть практически любым. Словарь представляет собой список пар ключ-значение. Каждый ключ сопоставляется со значением. Ключи должны быть уникальными, значения не обязательно должны быть уникальными в словаре.
lst=[] dct={} lst.append(“hello”) lst.append(“world”) dct[“x”]=”299" dct[“y”]=”-45.0" for i in range(len(lst)): print(i,lst[i]) for key in dct.keys(): print(key,dct[key])
Чтение XML-файла и построение параллельных списков:
Метод использования нескольких списков для хранения данных, связанных друг с другом, называется параллельными списками.
Область (правило LEGB)Марк Лутц описывает правила области действия в Python с помощью того, что он называет правилом LEGB. Запоминание аббревиатуры LEGB поможет вам запомнить правила области видимости Python.
Правило LEGBe относится к локальной области действия, объемлющей области действия, глобальной области действия и встроенной области действия.
Единственная проблема с областью действия заключается в том, что локальная область действия превосходит включающую область действия, которая превосходит глобальную область действия, которая превосходит встроенную область действия. Отсюда правило LEGB.
Стек времени выполнения
Стек времени выполнения — это структура данных, которая используется Python для выполнения программ. Стек – это структура данных в порядке поступления/исполнения.
Стек времени выполнения — это стек записей активации. Запись активации — это область памяти, в которой хранится копия каждой переменной, определенной в локальной области видимости функции во время ее выполнения.
Каждая запись активации содержит копию локальных переменных и параметров, которые были переданы функции.
Чтобы просмотреть записи активации в стеке времени выполнения, вы должны отладить свою программу и установить точку останова во время ее выполнения.
Рекурсивные функции
Рекурсивные доказательства подобны индуктивным доказательствам. Функция рекурсивна, если она вызывает сама себя. Рекурсия работает в Python и других языках благодаря стеку времени выполнения.
def factorial(n): if n==0: return 1 return n*factorial(n-1) print(factorial(5))
Основная функция в Python
Программисты Python иногда пишут основную функцию, а иногда нет. Однако безопаснее написать основную функцию, и большинство опытных программистов на Python будут придерживаться соглашения о ее написании.
def main(): # the if statement that calls main goes last. if __name__=”__main__”: main()
Аргументы ключевых слов:
Оказывается, Python также позволяет программистам вызывать функции с использованием аргументов ключевого слова. Это возможно не на каждом языке, но это одна из очень мощных функций Python.
Функцию drawSquare можно вызвать, написав drawSquare(length=l,turtle=t) с использованием ключевого слова style передачи параметров.
Передача параметров словаря
словарь пар ключевое слово/значение может быть указан в качестве параметра функции. Параметр словаря ключевое слово/значение определяется путем написания двух звездочек перед именем параметра.
def drawRectangle(turtle, **dimensions): width=0 height=10 … drawFigure(turle,width,90,height,90,width,90,height,90) def main(): drawRectangle(t,width=40,height=20)
Программирование, управляемое событиями:
Последовательное выполнение перенаправляется итерацией (т. е. циклами for и while) и вызовами функций.
Приложение, управляемое событиями, начинается как последовательная программа, выполняющая один оператор за другим, пока не войдет в бесконечный цикл. Этот цикл, иногда называемый циклом отправки событий, ищет входящее событие, а затем отправляет это событие обработчику событий.
Обработчик события — это функция, вызываемая для обработки события.
API — это набор классов или типов и функций, которые могут быть полезны при реализации программы.
Определение классов
Классы предоставляют нам мощный инструмент для абстракции. Абстракция — это когда мы забываем о деталях того, как что-то работает, и просто концентрируемся на использовании этого. Например, файл является абстракцией. Так и список. На самом деле, целые числа тоже являются абстракциями. Классы предоставляют определения для объектов.
Python создает специальную ссылку с именем self, которая всегда указывает на объект, с которым мы сейчас работаем. Первый метод определения класса называется конструктором и называется __init__. При вызове конструктора Python создает новую локальную переменную для вызова функции __init__.
В стеке времени выполнения есть две записи активации.
- Первая — это активационная запись для функции, которая создает фигуру, выполняя код.
shape = Circle(x,y, radius , edgeWidth=3, \ color=”red”,outline=” gray”)
2. Вторая активационная запись предназначена для вызова функции __init__ (т.е. вызова конструктора). Когда программа вернется из конструктора, верхняя запись активации будет извлечена, а самоссылка исчезнет.
Перехватчики Python:Python ищет наличие метода __str__ в классе. Если этот метод существует, Python будет использовать его для преобразования объекта в строковое представление.
Метод __repr__ — это ловушка Python для создания представления Python объекта.
def __repr__(self): return “Rational(“+str(self.num)+”,” +str(self.den)+”)”
Разница между преобразованием в строку и преобразованием в представление Python?
Строковая версия объекта может быть в любом формате, который программист сочтет лучшим. Но представление Python должно быть в таком формате, чтобы при вызове встроенной функции Python eval оно возвращало исходное значение.