Python/Учебник Python 3.9

Документация Python
Эта статья — часть Документации по языку Python
Исходный текст http://docs.python.org/3.9/tutorial/
Автор Фред Л. Дрейк мл. (Fred L. Drake, Jr. ) и другие
Релиз 3.9
Версия от 25 апреля 2020


Python - это мощный, и в то же время не сложный в освоении язык программирования. В нем реализованы эффективные высокоуровневые структуры данных и простой, но действенный подход к объектно-ориентированному программированию. Элегантный синтаксис и динамическая типизация Python вместе с его интерпретируемой природой делают его идеальным языком для написания сценариев и разработки приложений в кратчайшие сроки во многих областях деятельности на большинстве платформ. Интерпретатор Python и обширная стандартная библиотека доступны в виде исходных или бинарных файлов для всех основных платформ на веб-сайте Python https://www.python.org/ и могут свободно распространяться. На этом же сайте размещены дистрибутивы и ссылки на многие бесплатные сторонние модули Python, программы и инструменты, а также дополнительная документация.

Интерпретатор Python легко расширяется новыми функциями и типами данных, реализованными на C или C ++ (или других языках, вызываемых из C). Python также подходит в качестве языка расширения для настраиваемых приложений.

Это руководство неформально знакомит читателя с основными понятиями и особенностями языка и системы Python. Оно помогает овладеть практическим опытом использования интерпретатора Python, при этом все представленные в учебнике примеры являются самодостаточными, так что пособие можно читать и в независимом режиме.

Описание стандартных объектов и модулей приведено в Стандартной библиотеке Python. Справочник по языку Python дает более формальное определение языка. Чтобы писать расширения на C или C ++, следует читать Расширение и встраивание интерпретатора Python и Справочное руководство по Python/C API. Также существует литература, подробно освещающая язык Python.

Это руководство не пытается быть всеобъемлющим и охватить каждую отдельную или даже все часто используемые функции. Вместо этого учебник знакомит пользователя со многими наиболее примечательными особенностями Python и дает хорошее представление о принципах использования и стиле языка. Прочитав его, пользователь сможет читать и писать модули и программы на Python, а также будет готов узнать больше о различных модулях библиотеки Python, описанных в Стандартной библиотеке Python library-index.

Также стоит ознакомится с Глоссарием.

<html> Игра - угадай число
Введите число от 0 до 9: <input type="text" name="gg" id="gg"> <input type="button" value="Играем!!!" onclick="game()"> <script> function game(){ //alert("1"); var elem1 = Math.floor(Math.random() * 10); var elem = document.getElementById("gg").value; if (elem == ""){ alert("Вы не ввели число"); document.getElementById("gg").value = ""; exit(); } if (elem == elem1){ alert("Вы выиграли!!! Поздравляем!!!"); //window.close(); } else { alert("Вы не угодали, попробуйте еще! Компьютер загал число: " + elem1); document.getElementById("gg").value = ""; }

} </script> </html>

Использование интерпретатора Python

править

Вызов интерпретатора

править

Передача аргументов

править

Интерактивный режим

править

Интерпретатор и его окружение

править

Кодировка исходного кода

править

Неформальное введение в Python

править

В приведенных далее примерах, ввод и вывод различаются наличием и отсутствием приглашений (>>> и …): чтобы повторить пример, необходимо ввести все, что следует за приглашением; строки, которые не начинаются с приглашения, являются выводом интерпретатора. Стоит заметить, что вторичное приглашение в строке примера означает, что необходимо ввести пустую строку для завершения многострочной команды.

Многие примеры в этом руководстве, в т.ч. вводимые в интерактивном режиме, содержат комментарии. Комментарии в Python начинаются с хеш-символа, #, и продолжаются до конца физической строки. Комментарий может появляться в начале строки и после пробела или кода, но не внутри строкового литерала. Хеш-символ в строковом литерале - это просто хеш-символ. Поскольку комментарии предназначены для пояснения кода и не интерпретируются, они могут быть опущены при вводе примеров.

Некоторые примеры:

# это первый комментарий
spam = 1  # а это второй комментарий
          # ... а теперь третий!
text = "# Это не комментарий, т.к. текст внутри кавычек."

Использование Python в качестве калькулятора

править

Опробуем несколько простых Python команд. Запустим интерпретатор и дождемся основного приглашения, >>>. (Это не должно занять много времени.)

Интерпретатор действует как простой калькулятор: при вводе выражения он выводим соответствующее значение. Синтаксис выражения прост: операторы +, -, * и / работают так же, как и в большинстве других языков (например, Pascal или C); круглые скобки (()) используются для группирования. Например:

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5  # Деление всегда возвращает число с плавающей точкой
1.6

Целые числа (такие как 2, 4, 20) имеют тип int, числа с дробной частью (такие как 5.0, 1.6) - тип float. Подробнее о числовых типах позже в этом учебнике.

Деление (/) всегда возвращает число с плавающей точкой. Чтобы выполнить floor division и получить целочисленный результат (отбросив дробную часть) можно использовать оператор //; для расчета остатка от деления используется %:

>>> 17 / 3  # Классическое деление возвращает число с плавающей точкой
5.666666666666667
>>>
>>> 17 // 3  # floor division отбрасывает дробную часть
5
>>> 17 % 3  # Оператор % возвращает остаток от деления
2
>>> 5 * 3 + 2  # результат * делитель + остаток
17

В Python для вычисления степеней можно использовать оператор ** 1:

>>> 5 ** 2  # 5 в квадрате
25
>>> 2 ** 7  # 2 в степени 7
128

Символ равенства (=) используется для присваивания значения переменной. Результат этой операции перед следующим приглашением ввода не отображается:

>>> width = 20
>>> height = 5 * 9
>>> width * height
900

Если переменная не “определена” (т.е. ей не было присвоено значение), попытка ее использования приведет к ошибке:

>>> n  # Попытаться получить доступ к неопределенной переменной
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined

Имеется полная поддержка чисел с плавающей точкой; операторы с операндами смешанного типа преобразуют целочисленный операнд в число с плавающей точкой:

>>> 4 * 3.75 - 1
14.0

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

>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06

Эта переменная должна рассматриваться пользователем как доступная только для чтения. Не стоит назначать ей значение явно — это привело бы к созданию независимой локальной переменной с таким же именем, которая маскирует встроенную переменную с ее необычным поведением. Кроме int и float, Python поддерживает другие типы чисел, такие как Decimal и Fraction. Python также имеет встроенную поддержку комплексных чисел и использует суффикс j или J для обозначения мнимой части (например, 3+5j).

Строки

править

Помимо чисел, Python также может манипулировать строками, которые могут быть выражены несколькими способами. Строки могут быть заключены в одинарные ('...') или двойные кавычки ("..."), что дает одинаковый результат 2. Символ \ может использоваться для экранирования кавычек:

>>> 'spam eggs'  # Одинарные кавычки
'spam eggs'
>>> 'doesn\'t'  # \' используется для экранирования* одиночной кавычки... экранирование -> отображения одинарной или двойной кавычки стоящей после \
"doesn't"
>>> "doesn't"  # ...или, как вариант, двойные кавычки
"doesn't"
>>> '"Yes," they said.'
'"Yes," they said.'
>>> "\"Yes,\" they said."
'"Yes," they said.'
>>> '"Isn\'t," they said.'
'"Isn\'t," they said.'

В интерактивном режиме выходная строка заключается в кавычки, а специальные символы экранируются символами \. Не смотря на то, что иногда могут возникнуть отличия от исходного ввода (кавычки могут измениться), обе строки эквивалентны. Строка заключается в двойные кавычки, если она содержит одинарные кавычки и не содержит двойных кавычек, в противном случае строка заключается в одинарные кавычки. Функция print() выполняет более читаемый вывод — опускает обрамляющие кавычки и печатает экранированные и специальные символы:

>>> '"Isn\'t," they said.'
'"Isn\'t," they said.'
>>> print('"Isn\'t," they said.')
"Isn't," they said.
>>> s = 'Первая строка.\nВторая Строка.'  # \n означает перевод строки
>>> s  # Без функции print() \n включен в вывод
'Первая строка.\nВторая Строка.'
>>> print(s)  # С функцией print() \n совершает переход на новую строку
Первая строка.
Вторая Строка.

Если необходимо чтобы символы, начинающиеся с \ интерпретировались как специальные, можно воспользоваться raw-строками добавив r перед первой кавычкой:

>>> print('C:\some\name')  # Здесь \n означает перевод строки!
C:\some
ame
>>> print(r'C:\some\name')  # Символ r перед кавычкой
C:\some\name

Строковые литералы можно разместить на нескольких строках. Один из способов заключается в использовании тройных кавычек: """...""" или .... Конец строк автоматически включается в строку, но этого можно избежать, если добавить \ в конце строки. Следующий пример:

print("""\
Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname               Hostname to connect to
""")

производит такой вывод (стоит заметить, что начальный перевод строки не включен):

Usage: thingy [OPTIONS]
     -h                        Display this usage message
     -H hostname

Списки

править

Первые шаги к программированию

править

Больше средств управления потоком

править

Оператор if

править

Оператор for

править

Функция range()

править

Операторы break и continue, а также условия else в циклах

править

Оператор pass

править

Определение функций

править

Подробнее об определении функций

править

Значения аргументов по умолчанию

править

Именованные аргументы

править

Специальные параметры

править
Позиционные или именованные аргументы
править
Только позиционные аргументы
править
Только именованные аргументы
править
Примеры функций
править
Резюме
править

Списки произвольных аргументов

править

Распаковка списков аргументов

править

Lambda-выражения

править

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

править

Аннотации функций

править

Интермеццо: стиль кодирования

править

Структуры данных

править

Подробнее о списках

править

Использование списка в качестве стека

править

Использование списка в качестве очереди

править

Генераторы списков

править

Генераторы вложенных списков

править

Оператор del

править

Кортежи и последовательности

править

Множества

править

Словари

править

Методики организации циклов

править

Подробнее об условиях

править

Сравнение последовательностей и других типов

править

More on Modules

править

Executing modules as scripts

править

The Module Search Path

править

“Compiled” Python files

править

Standard Modules

править

The dir() Function

править

Importing * From a Package

править

Intra-package References

править

Packages in Multiple Directories

править

Input and Output

править

Fancier Output Formatting

править

Formatted String Literals

править

The String format() Method

править

Manual String Formatting

править

Old string formatting

править

Reading and Writing Files

править

Methods of File Objects

править

Saving structured data with json

править

Errors and Exceptions

править

Syntax Errors

править

Handling Exceptions

править

Raising Exceptions

править

Exception Chaining

править

User-defined Exceptions

править

Defining Clean-up Actions

править

Predefined Clean-up Actions

править

A Word About Names and Objects

править

Python Scopes and Namespaces

править

Scopes and Namespaces Example

править

A First Look at Classes

править

Class Definition Syntax

править

Class Objects

править

Instance Objects

править

Method Objects

править

Class and Instance Variables

править

Random Remarks

править

Inheritance

править

Multiple Inheritance

править

Private Variables

править

Odds and Ends

править

Generator Expressions

править

Brief Tour of the Standard Library

править

Operating System Interface

править

File Wildcards

править

Command Line Arguments

править

Error Output Redirection and Program Termination

править

String Pattern Matching

править

Mathematics

править

Internet Access

править

Dates and Times

править

Data Compression

править

Performance Measurement

править

Quality Control

править

Batteries Included

править

Brief Tour of the Standard Library — Part II

править

Output Formatting

править

Working with Binary Data Record Layouts

править

Multi-threading

править

Weak References

править

Tools for Working with Lists

править

Decimal Floating Point Arithmetic

править

Virtual Environments and Packages

править

Introduction

править

Creating Virtual Environments

править

Managing Packages with pip

править

Interactive Input Editing and History Substitution

править

Tab Completion and History Editing

править

Alternatives to the Interactive Interpreter

править

Floating Point Arithmetic: Issues and Limitations

править

Representation Error

править

Interactive Mode

править

Error Handling

править

Executable Python Scripts

править

The Interactive Startup File

править

The Customization Modules

править