Перейти к содержанию

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

[править]

Packages

[править]

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

[править]

Exceptions

[править]

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

[править]

Iterators

[править]

Generators

[править]

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

[править]

Templating

[править]

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

[править]

What Now?

[править]

Interactive Input Editing and History Substitution

[править]

Tab Completion and History Editing

[править]

Alternatives to the Interactive Interpreter

[править]

Floating Point Arithmetic: Issues and Limitations

[править]

Representation Error

[править]

Appendix

[править]

Interactive Mode

[править]

Error Handling

[править]

Executable Python Scripts

[править]

The Interactive Startup File

[править]

The Customization Modules

[править]