Содержание

Python 3

FIXME

Философия

Полный текст философии Python доступен по команде:

import this

В отличие от девиза Perl 1), Python придерживается философии «должен существовать один — и, желательно, только один — очевидный способ сделать это».

Основы синтаксиса

Эквивалент null в Python: None

Проверка:

null_variable = None
if null_variable is None:
    <действия>

На Python предпочтительный метод отступов — пробелы (4 шт.). Сочетание отступов пробелами и табуляцией — недопустимо! Лучше настроить IDE на автоматическую конвертацию.

Допустимо записывать одну инструкцию в нескольких строках. Достаточно ее заключить в пару круглых, квадратных или фигурных скобок.

print('aaaaa',
        'bbbbb', 3)
## aaaaabbbbb3

Виртуальное окружение Python: venv

Создание

Команда создания в каталоге проекта:

python3 -m venv virt.py3

Где virt.py3 — название окружения/создаваемого каталога.

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

Команда активации в каталоге проекта:

source ./virt.py3/bin/activate

Теперь, все установленные модули будут только в виртуальном окружении, а не в основной системе.

Установка:

python3 -m pip install module_name

Проверка установленных модулей:

pip list

Команда деактивации:

deactivate

Импорт

Каждый импорт, как правило, должен быть на отдельной строке.

import os
import sys as sys
import datetime as dt
import urllib.request as askurl

где sys, dt, askurl - новые имена

Операции

Сравнение

Операторы сравнения в Питоне можно объединять в цепочки:

print(a == b == c);
print(1 <= x <= 10);

Логические

Логические операторы: and, or, not.

Округление

Преобразование типов (основное)

Основные типы переменных в Python: int, float, str.

print(int(bin(125), 2));
# 125

range

Срезы

a = [1, 3, 8, 7]
print(a[1:])
# [3, 8, 7]
print(a[::-1])
# [7, 8, 3, 1]
 
s = 'str'
print(s[1:])
# 'tr'
print(s[::-1])
# 'rts'

Ввод/вывод

n = input('input text')
print('text:', n)

Файл

open(name [,mode [,bufsize [, encoding [, errors [, newline [, closefd]]]]]])

mode Действие:
‘+’открытие на чтение и запись
‘r’открытие на чтение (по умолчанию)
Виды записи:
‘w’открытие на запись, содержимое файла удаляется,
если файла не существует, создается новый
‘x’открытие на запись,
если файла не существует, иначе исключение
‘a’открытие на дозапись, информация добавляется в конец файла
Содержимое:
‘b’открытие в двоичном режиме
‘t’открытие в текстовом режиме (по умолчанию)

:!: После окончания работы с файлом его обязательно нужно закрыть с помощью метода close().

Чтение из файла
f = open('text.txt', 'rt')
for line in f:
    print(line)
f.close()
 
# 'Hello world!\n'
# '\n'
# 'The end.\n'
# '\n'
Запись в файл
l = ['aa', 'bb', 'c\nc', 'd\td']
f = open('text.txt', 'wt')
for i in l:
    f.write(i + '\n')
f.close()
with … as …

Для чего применяется конструкция with … as? Для гарантии того, что критические функции выполнятся в любом случае.

with open('newfile.txt', 'w', encoding='utf-8') as g:
    d = int(input())
    print('1 / {} = {} '.format(d, 1 / d), file=g)
with open('newfile.txt', 'rt', encoding='utf-8') as fd:
    for line in fd:  # Перебор строк
        print(line.strip())  # Убираем пробельные символы и переводы строк в начале и конце

И вы можете быть уверены, что файл будет закрыт вне зависимости от того, что введёт пользователь.

Условия

if

if (<условие>):
    <действие 1>
    <действие 2>
    ...
    <действие n>
if (<условие 1>):
    <действия>
elif (<условие 2>):
    <действия>
elif (<условие 3>):
    <действия>
else
    <действия>

Аналогом (в C++):

x = (1>0)?1:0;

будет (на Python):

x = 1 if (1>0) else 0

match/case

Начиная с Python 3.10, можно использовать конструкцию match/case. В более старых версиях — используйте конструкцию if-elif-…-elif-else.

Циклы

while

while True:
    <действия>

for

for i in 'список':
    <действия>

Цикл от 1 до 6 с шагом 2, с использованием range():

for i in range(1, 6, 2):
    print(i, end='');
## 135

Функции

def add(x, y=0):
    return x + y

Обработка ошибок

try:
    value = collection[key]
except KeyError:
    return key_not_found(key)
else:
    return handle_value(value)

Основные модули стандартной библиотеки

FIXME

Модуль math

Модуль math для вычислений.

Функции (int, round, abs, pow, divmod) являются стандартными и не требуют подключения модуля math для использования.

Модуль os

Модуль os для взаимодействия с операционной системой.

Модуль platform

Модуль platform для получения информации о платформе (т.е. операционной системе).

Модуль sys

Модуль sys содержит функциональность, характерную для системы. Так список sys.argv содержит аргументы командной строки.

Модуль logging

Модуль logging для сохранения логов.

Полезные библиотеки и фреймворки

Полезные ресурсы

Игровое обучение

1)
Принцип There is More Than One Way To Do It (TiMTOWTDI, pronounced Tim Toady) — всегда есть больше одного способа сделать это — девиз языка Perl.