Python
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
Указание кодировки