Жизнь коротка, используйте 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__.

В стеке времени выполнения есть две записи активации.

  1. Первая — это активационная запись для функции, которая создает фигуру, выполняя код.
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 оно возвращало исходное значение.