Главная страница

Кулиш георгий Проект по информатике


Скачать 68.98 Kb.
НазваниеКулиш георгий Проект по информатике
Дата15.06.2019
Размер68.98 Kb.
Формат файлаdocx
Имя файлаpython.docx
ТипДокументы
#81751



PYTHON

Язык программирования


2019 г.

Кулиш георгий

Проект по информатике




Оглавление


Введение 3

Моя цель 3

Об языке 4

Портируемость 5

Синтаксис и семантика 6

ООП 9

Примеры кода 11



Введение


Данная тема, была взята мной, по ряду причин

  1. Язык Python – подходит для понимания новичкам, а в момент его изучения я ещё не знал Java и C# (ну и не изучал C++)

  2. Я не согласен с тем, что в школах изучают только Pascal. Данный язык поможет знать такие языки как C#, Java, но если дело дойдёт до Lua или тем более Java Script. Lua, например – это скриптовой язык программирования. Он используется в основном для написания ядер для игр и для создания модов (аадонов) для них. Яркий пример -Garry’s Mod, игра, созданная на основе Half Life 2. Очень много аддонов и прочего есть на эту игру, а всё потому, что её ядро написано на Lua. А Java Script? Язык без которого большая часть сайтов - легла и была скучной.

Моя цель


Показать, что Python хорошо и даже нужно изучать новичкам, да конечно знать паскаль тоже надо, но питон обделять внимание нельзя



Об языке


Разработка языка Python начата в конце 1980-х годов. Её осуществлял сотрудник голландского института. Интересно, то, что изначально Python, должен был быть ООП языком. Также хотелось-бы подметить, что Python – разработан на основе языка ABC (языка для обучения). Именно это и дало ему такой лёгкий синтаксис.

Об названии языка. Он назван не в честь пресмыкающегося, а в честь Американского телешоу “Летающий цирк Монти Пайтона”. Хотя больше всего его любят ассоциировать с змеёй.

На этот язык влияли и другие языки. Перечислять их нет смысла, но для галочки можно оставить

ABC — отступы для группировки операторов, высокоуровневые структуры данных (map)[22][23] (Python фактически создавался как попытка исправить ошибки, допущенные при проектировании ABC);

Modula-3 — пакеты, модули, использование else совместно с try и except, именованные аргументы функций (на это также повлиял Common Lisp);

СC++ — некоторые синтаксические конструкции (как пишет сам Гвидо ван Россум — он использовал наиболее непротиворечивые конструкции из С, чтобы не вызвать неприязнь у С-программистов к Python[22]);

Smalltalk — объектно-ориентированное программирование;

Lisp — отдельные черты функционального программирования (lambda, map, reduce, filter и другие);

Fortran — срезы массивов, комплексная арифметика;

Miranda — списочные выражения;

Java — модули loggingunittestthreading (часть возможностей оригинального модуля не реализована), xml.sax стандартной библиотеки, совместное использование finally и except при обработке исключений, использование @ для декораторов;

Icon — генераторы.

Портируемость


Один из самых важных аспектов для любого языка. Этот язык уже везде (ну или почти). Перечень систем достаточно большой. От Windows и Mac, до Android и Symbian.

Этот язык совместим с Java. Написать библиотеку для Java, без Java? Без проблем! Даже одни классы можно применять, не язык, а сказка.

Этот язык имеет специальные функции для той OS, на которой запущен.

Именно это всё делает Python – универсальным.

Типы и структуры данных

Изначально, я не хотел это вставлять сюда, всё равно мало ка=ому будет интересно, но я должен, поэтому вставлю просто статью из Википедии

ython поддерживает динамическую типизацию, то есть тип переменной определяется только во время исполнения. Поэтому вместо «присваивания значения переменной» лучше говорить о «связывании значения с некоторым именем». В Python имеются встроенные типы: булевый, строка, Unicode-строка, целое число произвольной точности, число с плавающей запятой, комплексное число и некоторые другие. Из коллекций в Python встроены: список, кортеж (неизменяемый список), словарь, множество и другие[26]. Все значения являются объектами, в том числе функции, методы, модули, классы.

Добавить новый тип можно либо написав класс (class), либо определив новый тип в модуле расширения (например, написанном на языке C). Система классов поддерживает наследование (одиночное и множественное) и метапрограммирование. Возможно наследование от большинства встроенных типов и типов расширений.

Все объекты делятся на ссылочные и атомарные. К атомарным относятся intlong (в версии 3 любое число int, так как в версии 3 нет ограничения на размер), complex и некоторые другие. При присваивании атомарных объектов копируется их значение, в то время как для ссылочных копируется только указатель на объект, таким образом, обе переменные после присваивания используют одно и то же значение. Ссылочные объекты бывают изменяемые и неизменяемые. Например, строки и кортежи являются неизменяемыми, а списки, словари и многие другие объекты — изменяемыми. Кортеж в Python является, по сути, неизменяемым списком. Во многих случаях кортежи работают быстрее списков[27], поэтому если вы не планируете изменять последовательность, то лучше использовать именно их.

Синтаксис и семантика


Синтаксис питона – лёгок и понятен. Прочитать исходный код – легко.

В питоне есть:

Операторы

Выражения

Имена

Строки документации

Директивы

В принципе описывать это всё – не нужно, но ради красоты (и вида проделанной работы) можно.

Операторы[править | править код]

Набор операторов достаточно традиционен.

Условный оператор if (если). Альтернативный блок после else (иначе). Если условий и альтернатив несколько, можно использовать elif (сокр. от else if).

Операторы цикла while (пока) и for (для). Внутри цикла возможно применение break и continue для прерывания цикла и перехода сразу к следующей итерации, соответственно.

Оператор определения класса class.

Оператор определения функции, метода или генератора def. Внутри возможно применение return(возврат) для возврата из функции или метода, а в случае генератора — yield (давать).

Оператор обработки исключений try — except — else или try — finally (начиная с версии 2.5, можно использовать finallyexcept и else в одном блоке).

Оператор pass ничего не делает. Используется для пустых блоков кода.

Одной из интересных синтаксических особенностей языка является выделение блоков кода с помощью отступов (пробелов или табуляций), поэтому в Python отсутствуют операторные скобки begin/end, как в языке Паскаль, или фигурные скобки, как в Си. Такой «трюк» позволяет сократить количество строк и символов в программе и приучает к «хорошему» стилю программирования. С другой стороны, поведение и даже корректность программы может зависеть от начальных пробелов в тексте. Некоторым такое поведение может показаться неинтуитивным и неудобным.

Выражения

Выражение является полноправным оператором в Python. Состав, синтаксис, ассоциативность и приоритет операций достаточно привычны для языков программирования и призваны минимизировать употребление скобок.

Отдельно стоит упомянуть операцию форматирования для строк (работает по аналогии с printf() из Си), которая использует тот же символ, что и взятие остатка от деления:

>>> str_var = "world"

>>> print("Hello, %s" % str_var)

Hello, world

Python имеет удобные цепочечные сравнения. Такие условия в программах — не редкость:

1 <= a < 10 and 1 <= b < 20

Кроме того, логические операции (or и and) являются ленивыми: если для вычисления значения операции достаточно первого операнда, этот операнд и является результатом, в противном случае вычисляется второй операнд логической операции. Это основывается на свойствах алгебры логики: например, если один аргумент операции «ИЛИ» (or) является истиной, то и результат этой операции всегда является истиной. В случае, если второй операнд является сложным выражением, это позволяет сократить издержки на его вычисление. Этот факт широко использовался до версии 2.5 вместо условной конструкции:

a < b and "меньше" or "больше или равно"

Встроенные типы данных, как правило, имеют особый синтаксис для своих литералов (записанных в исходном коде констант):

# для версии меньше 3

"строка"

'строка'

"""тоже строка"""

u"Юникод-строка"

True or False # булевы литералы

3.14 # число с плавающей запятой

0o12 + 0xA # числа в восьмеричной и шестнадцатеричной системах счисления

1 + 2j # комплексное число

[1, 2, "a"] # список

(1, 2, "a") # кортеж

{'a': 1, 'b': 'B'} # словарь

{'a', 6, 8.8} # множество

lambda x: x**2 # анонимная функция
# для версии 3

"строка и Юникод-строка одновременно"

'строка и Юникод-строка одновременно'

"""тоже строка и Юникод-строка одновременно"""

True or False # булевы литералы

3.14 # число с плавающей запятой

0b1010 + 0o12 + 0xA # числа в двоичной, восьмеричной и шестнадцатеричной системах счисления

1 + 2j # комплексное число

[1, 2, "a"] # список

(1, 2, "a") # кортеж

{'a': 1, 'b': 'B'} # словарь

{'a', 6, 8.8} # множество

lambda x: x**2 # анонимная функция

Для списков (и других последовательностей) Python предлагает набор операций над срезами. Особенностью является индексация, которая может показаться новичку странной, но раскрывает свою согласованность по мере использования. Индексы элементов списка начинаются с нуля. Запись среза s[N:M] означает, что в срез попадают все элементы от N включительно до M не включая. В качестве иллюстрации можно посмотреть пример работы с последовательностями.

Имена[править | править код]

Имя (идентификатор) может начинаться с латинской буквы (в Python 3 — буквы любого алфавита в Юникоде, например кириллицы) любого регистра или подчёркивания, после чего в имени можно использовать и цифры. В качестве имени нельзя использовать ключевые слова (их список можно узнать по import keyword; print(keyword.kwlist)) и нежелательно переопределять встроенные имена. Имена, начинающиеся с символа подчёркивания, имеют специальное значение[30].

В каждой точке программы интерпретатор имеет доступ к трём пространствам имён (то есть отображениям имён в объекты): локальному, глобальному и встроенному.

Области видимости имён могут быть вложенными друг в друга (внутри определяемой функции видны имена из окружающего блока кода). На практике с областями видимости и связыванием имён связано несколько правил «хорошего тона», о которых можно подробнее узнать из документации.

Строки документации[править | править код]

Python предлагает механизм документирования кода pydoc. В начало каждого модуля, класса, функции вставляется строка документации — docstring (англ.). Строки документации остаются в коде на момент времени исполнения, и в язык встроен доступ к документации[31](переменная __doc__), что используется современными IDE (например, Eclipse).

В интерактивном режиме можно получить помощь, сгенерировать гипертекстовую документацию по целому модулю или даже применить doctest (англ.) для автоматического тестирования модуля.

Директивы[править | править код]

Начиная с Python 2.3, для использования в тексте программы символов, не входящих в ASCII, необходимо явно указывать кодировку исходного кода в начале модуля, например:

# -*- coding: utf-8 -*-

# или

# coding: utf-8

После этого можно использовать, например, кириллицу в Unicode-литералах. Но на самом деле даже если написать:

# coding: utf

то Python «поймёт», что вы хотели сделать.

ООП


Да, да ООП. Этот язык останется в моём сердце за ООП. То, что пишется в Java, C#, C++ и т.д. за 30 строчек, здесь пишется за 3.

Объяснить это сложно, но я попытаюсь.

В питоне есть модули. Например, time. Это класс в C#. И в этом классе, есть объект sleep() (ожидание). В этом и состоит лёгкость. Вместо

Namespace test

{

Class Programm

{

Static void Main(string[] args)

{
}

}

}

Можно написать

Function

И всё!!! Готов объект!

Исключения

Это я не мог не добавить.

Обработка исключений поддерживается в Python посредством операторов try, except, else, finally, raise, образующих блок обработки исключения. В общем случае блок выглядит следующим образом:

try:

# Здесь код, который может вызвать исключение

raise Exception("message") # Exception, это один из стандартных типов исключения (всего лишь класс),

# может использоваться любой другой, в том числе свой

except (Тип исключения1, Тип исключения2, …) as Переменная:

# Код в блоке выполняется, если тип исключения совпадает с одним из типов

# (Тип исключения1, Тип исключения2, …) или является наследником одного

# из этих типов.

# Полученное исключение доступно в необязательной Переменной.

except (Тип исключения3, Тип исключения4, …) as Переменная:

# Количество блоков except не ограничено

raise # Сгенерировать исключение "поверх" полученного; без параметров - повторно сгенерировать полученное

except:

# Будет выполнено при любом исключении, не обработанном типизированными блоками except

else:

# Код блока выполняется, если не было поймано исключений.

finally:

# Будет исполнено в любом случае, возможно после соответствующего

# блока except или else

Совместное использование else, except и finally стало возможно только начиная с Python 2.5. Информация о текущем исключении всегда доступна через sys.exc_info(). Кроме значения исключения, Python также сохраняет состояние стека вплоть до точки возбуждения исключения — так называемый traceback.

В отличие от компилируемых языков программирования, в Python использование исключения не приводит к значительным накладным расходам (а зачастую даже позволяет ускорить исполнение программ) и очень широко используется. Исключения согласуются с философией Python (10-й пункт «дзена Python» — «Ошибки никогда не должны умалчиваться») и являются одним из средств поддержки «утиной типизации».

Иногда вместо явной обработки исключений удобнее использовать блок with (доступен, начиная с Python 2.5).

Примеры кода


Об всём основном я рассказал, теперь покажу примеры кода.

Простой вывод текста
Это всё.

Я могу показывать преметивщину ещё долго, но это скучно можно и больше. Ведь в питоне есть много библиотек, для работы с ПК и не только. Автокликер или точнее сказать имитатор действий ? Для этого есть библиотека pyAutoGUI.

(Папка проекта)

И обычный калькулятор


написать администратору сайта