>>> import this
The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested.
Sparse is better than dense. Readability counts.
Special cases aren't special enough to break the rules. Although practicality beats purity.
Errors should never pass silently. Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one – and preferably only one – obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea – let's do more of those!
Что в переводе звучит примерно так:
Красивое лучше, чем уродливое. Явное лучше, чем неявное. Простое лучше, чем сложное. Сложное лучше, чем запутанное. Плоское лучше, чем вложенное. Разреженное лучше, чем плотное. Читаемость имеет значение.
Особые случаи не настолько особые, чтобы нарушать правила. При этом практичность важнее безупречности.
Ошибки никогда не должны замалчиваться. Если не замалчиваются явно.
Встретив двусмысленность, отбрось искушение угадать.
Должен существовать один — и, желательно, только один — очевидный способ сделать это.
Хотя он поначалу может быть и не очевиден, если вы не голландец. Сейчас лучше, чем никогда.
Хотя никогда зачастую лучше, чем прямо сейчас. Если реализацию сложно объяснить — идея плоха.
Если реализацию легко объяснить — идея, возможно, хороша. Пространства имён — отличная штука! Будем делать их побольше!
5
Что можно делать с помощью Python
Благодаря развитой экосистеме и большого количества фреймворков, Python является довольно универсальным языком. С его помощью можно реализовать:
•cистемные скрипты;
•программы с графическим интерфейсом;
•веб-сайты и веб-приложения;
•интегрировать различные компоненты в единую систему;
•приложения баз данных;
•быстро создавать прототипы приложений;
•математические и научные вычисления;
•игры, изображения, искусственный интеллект, XML роботы и многое другое.
Сильные стороны Python
Python вобрал в себя множество преимуществ концепций и парадигм, что делает его одним из самых популярных языков программирования. К его основным преимуществам можно отнести:
•объектно-ориентированность;
•Python может использоваться и распространяться совершенно
бесплатно;
•переносимость – программы python работают практически на всех основных платформах;
•динамическая типизация;
•автоматическое управление памятью (сборщик бусора);
•модульное программирование;
•встроенные типы объектов (списки, словари, кортежи, строки);
•мощные стандартные инструменты работы с объектами;
•большая коллекция инструментов стандартной библиотеки;
•утилиты сторонних разработчиков;
•возможность интеграции с программами C/C++;
•удобство использования – не нужно компилировать;
•простота изучения.
Версии Python
Существует 2 версии, Python 2.x и 3.x. В настоящее время большинство программного обеспечения Python написано на версии языка 2.x. Однако версии ветки 3.x уже давно выпущены и доступны для установки. Почему программисты с трудом переходят на третью версию? Потому что версии
6
Python 2.x и 3.x не совместимы между собой и нужно вносить значительные изменения в код и прибегать к некоторым приемам, чтобы было возможно запускать приложения во второй и в третьей версиях языка.
Cреда разработки
В этом учебном пособии будем использовать версию 3.7.4 и open source
редактор от Microsoft VS Code.
1.Установите Python.
2.Напишите «Hello Word» в интерпретаторе языка.
3.Сохраните код предыдущего задания и запустите код через командную строку, вызвав файл с кодом Python.
4.Установите Microsoft VS Code и создание свой первый проект.
1.Какие вы знаете версии Python?
2.Какая философия Python?
3.Что вы знаете о переносимости?
4.Какие бывают библиотеки поддержки?
5.Какие сильные стороны Python?
|
|
|
|
Таблица 1 |
|
|
|
Базовые типы данных |
|||
|
|
|
|
|
|
|
Тип объекта |
|
|
Пример |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Числа |
|
|
1234, 3.1415, 3+4j, Decimal, Fraction |
|
|
|
|
|
|
|
|
Строки |
|
|
spam’, “guido’s” , b’a\x01c’ |
|
|
|
|
|
|
|
|
Списки |
|
|
[1, [2, ‘three’], 4] |
|
|
|
|
|
|
|
|
Кортежи |
|
|
(1,’spam’, 4, ‘U’) |
|
|
|
|
|
|
|
7
|
Окончание табл. 1 |
|
Тип объекта |
Пример |
|
|
|
|
Словари |
{‘food’: ‘spam’, ‘taste’: ‘yum’} |
|
|
|
|
Множества |
set(‘abc’), {‘a’, ‘b’, ‘c’} |
|
|
|
|
Файлы |
myfile = open(‘eggs’, ‘r’) |
|
|
|
|
Прочие базовые типы |
None, логические значения |
|
|
|
2.1.1. Decimal (десятичное число)
Основная идея чисел Decimal в том, что компьютеры должны обеспечивать арифметические операции таким образом, чтобы операции над дробными числами работали также, как арифметика, изучаемая в школе.
Числа Decimal могут быть представлены точно. Например, вещественные числа такие как 1.1 и 2.2 не имеют точного представления в виде чисел с плавающей точкой float. Конечные пользователь обычно не ожидает, что, если сложить 1.1 + 2.2 — результат будет +3,3000000000000003, как это происходит с двоичной плавающей точкой.
Сумма 0.1+0.1+0.1-0.3 должна быть в точности равна нулю, однако в случае с числами float мы получим 5.551115123125783e-17, близкое к 0, однако в точности не равное ему. Такие неточности могут накапливаться и приводить к неприятным последствиям. По этой причине, числа Decimal предпочтительнее для бухгалтерских приложений, для которых важно четкое равенство.
Вотличие от чисел float, числа Decimal имеют изменяемую пользователем точность (по умолчанию до 28 знакомест), которая может быть насколько большой, насколько это необходимо для данной задачи:
Десятичное число может быть создано из целого числа, строки, числа с плавающей запятой или кортежа.
ВPython 3.3 вошёл ускоритель работы Decimal (подключается автоматически). Благодаря этому ускорителю производительность Decimal повысилась настолько, что скорость вычислений стала сопоставима с int и float.
2.1.2. Fraction (дробное число)
Дробное число может быть создано из пары целых чисел (числитель, знаменатель), из другого дробного числа, из другого вещественного числа или из строки.
class fractions.Fraction(numerator=0, denominator=1) class fractions.Fraction(other_fraction)
class fractions.Fraction(float) class fractions.Fraction(decimal) class fractions.Fraction(string)
8
Кортеж — неизменяемый список.
Зачем нужны кортежи?
1.Кортеж защищен от изменений. Поэтому его удобно использовать в случаях, когда важно быть уверенным, что данные не изменялись в ходе выполнения программы.
2.Кортежи занимают меньше памяти:
>>>a = (1,2,3,4,5,6)
>>>b = [1,2,3,4,5,6]
>>>a.__sizeof__()
72
>>>b.__sizeof__()
88
3.Кортежи можно использовать в качестве ключей словаря:
>>>a = {(1,2,3): 100}
>>>a
{(1, 2, 3): 100}
>>> b = {[1,2,3]: 100}
Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: 'list'
Работа с кортежами
Для кортежей можно применять все те же операции, что и для списков, за исключением операций, пытающихся изменить кортеж.
>>>(1,2) + (3,4) (1, 2, 3, 4)
>>>a = (1,2) + (3,4)
>>>a
(1, 2, 3, 4)
>>>a[0]
1
>>>a[-1], a[-3:-1] (4, (2, 3))
>>>a += (3,4)
>>>a.count(3)
2
9