Python

Contents
Introduction
Скачать Python
Установить Python в Linux
Установить Pip в Linux
Как запускать скрипты
Hello World! - первый скрипт на Python
Отступы (indentation)
if __name__ == '__main__'
Полезные ссылки
Другие статьи о Python
Статьи о Python
Интерактивный режим
Виртуальное окружение
str: строки
\: перенос строки
Списки
Циклы
Методы
Функции
*args **kwargs
enum
Опеределить тип переменной Python
Тестирование с помощью Python
Работа с REST API на Python
Файлы: записать, прочитать, дописать, контекстный менеджер…
Скачать файл по сети
SQLite3: работа с БД
datetime: Date and Time в Python
Selenium + Python
Сложности при работе с Python
DJANGO
Flask
Скрипт для ZPL принтера
socket :Python Sockets
subprocess: выполнение bash команд из Python
multiprocessing: несколько процессов одновременно
psutil: cистемные ресурсы
sys.argv: аргументы командной строки
PyCharm: IDE
pydantic: валидация данных
paramiko: SSH из Python
enumerate
json.dumps

Introduction

Python, произностися как Пайтон, в русском языке распространено название Питон — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода.

Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.

Python поддерживает структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное программирование.

Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений, высокоуровневые структуры данных.

Поддерживается разбиение программ на модули, которые, в свою очередь, могут объединяться в пакеты.

Эталонной реализацией Python является интерпретатор CPython, поддерживающий большинство активно используемых платформ.

Он распространяется под свободной лицензией Python Software Foundation License, позволяющей использовать его без ограничений в любых приложениях, включая проприетарные.

Есть реализация интерпретатора для JVM с возможностью компиляции, CLR, LLVM, другие независимые реализации. Проект PyPy использует JIT-компиляцию, которая значительно увеличивает скорость выполнения Python-программ.

Python — активно развивающийся язык программирования, новые версии с добавлением/изменением языковых свойств выходят примерно раз в два с половиной года.

Язык не подвергался официальной стандартизации, роль стандарта де-факто выполняет CPython, разрабатываемый под контролем автора языка.

В настоящий момент (апрель 2021) Python занимает третье место в рейтинге TIOBE с показателем 11,03%.

Аналитики отмечают, что это самый высокий балл Python за все время его присутствия в рейтинге.

Посмотреть текущий рейтинг можно здесь

Скачать Python

Репозиторий: https://www.python.org/ftp/python/

Пример скачивания с помощью wget

wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz

Запуск скрипта

To запустить .py скрипт введите

python имя_файла.py

Hello World!

Инструкция по запуску первой программы в Python

Убедитесь, что Python установлен и команда

python -V

Показывает версию Python, например

Python 3.9.1

Если вы работаете в Linux, UNIX или Bash в Windows перейдите в свою домашнюю директорию

В Linux

cd ~

В Windows

cd /mnt/c/Users/username

Создайте директорию python

mkdir python

Перейдите в неё, создайте файл hello_world.py и откройте его любым тестовым редактором

cd python
touch hello_world.py
vi hello_world.py

Вставьте туда следующий код

print("Hello World!")

Выполните

python hello_world.py

В терминале должно появиться сообщение

Hello World!

Отступы (indentation)

Python не является языком поддерживающим свободный формат. Блоки кода не разделяются с помощью { }

Вместо этого блоки разделяются отступами по так называемому правилу оффсайда (Off-side rule)

Демонстрация

Рассмотрим файл for_loop.py

for i in range(1,4):print(i)

python for_loop.py

1
2
3

Всё работает прекрасно. Обратите внимание, что выведены были только i от 1 до 3. 4 python не вывел.

Если написать код не в одну строку, а следующим образом

for i in range(1,4): print(i)

то работать код не будет. Получится ошибка

File "/home/andrei/python/for_loop.py", line 2 print(i) ^ IndentationError: expected an indented block

Поэтому нужно поставить перед print пробел

for i in range(1,3): print(i)

python for_loop.py

1
2
3

Вместо одного пробела можно поставить табуляцию, но лучше поставить два или четыре пробела подряд.

PEP8 - документ, в котором собраны рекомендации по написанию Python кода говорит:

Use 4 spaces per indentation level

САМОЕ ВАЖНОЕ: Нельзя смешивать в одном файле отступы в виде табуляций и в виде пробелов. Выберите один стиль и придерживайтесь его.

Печать спецсимволов HTML

for i in range(100001,125000): print "<tr><td>&#",i,";</td><td>&#",i,";</td></tr>"

Ссылки

Psyco
Shedskin
PyPy
Cython
Jython
IronPython
IDLE

Синтаксис

Set в фигурных скобках. Элемент добавляется с помощью .add()

if __name__ == '__main__'

To разобраться в смысле этой строки создадим два файла. first_module.py и second_module.py

В первом напишем

print(f"Имя первого модуля: {format(__name__)}") # Если не любите f-string напишите: print(Имя первого модуля: {}".format(__name__))

Запустим его

python3 first_module.py

Имя первого модуля: __main__

Во втором запишем

import first_module

Запустим его

python3 second_module.py

Имя первого модуля: __first_module__

Вывод: когда модуль запущен непосредственно, его __name__ это __main__

Когда модуль импортирован в другой модуль, его __name__ это __название_py_файла__

Пакеты Python в Linux

Узнать сколько всего python3 пакетов в репозитории Ubuntu

apt-cache search python3 | wc -l

3472

Изучить их названия можно с помощью less

apt-cache search python3 | less

alembic - lightweight database migration tool for SQLAlchemy
brltty - Access software for a blind person using a braille display
debian-goodies - Small toolbox-style utilities for Debian systems
devscripts - scripts to make the life of a Debian Package maintainer easier
libcrack2-dev - pro-active password checker library - development files

Проверить, существует ли файл hosts

#!/usr/bin/python3 import os.path if os.path.exists("/etc/hosts"): print("hosts file exists") else: print("no hosts file")

или

#!/usr/bin/python3 try: f = open('/etc/hosts') print("hosts file exists") except FileNotFoundError: print("no hosts file")

python3 check_hosts.py

hosts file exists

Полезные ссылки

codingbat.com

projecteuler.net

codeabbey

reddit

pythonchallenge

Указание кодировки

Share in social media: