1. Запуск сценаріїв Python

На більшості UNIX-систем, можна запустити сценарії Python з командного рядка, наприклад, для сценарію mypyprog.py:

python mypyprog.py

2. Запуск програм на Python з інтерпретатора

Інтерактивний інтерпретатор Python дозволяє вам легко спробувати перші кроки в програмуванні і використанні всіх команд Python. Ви просто вводите кожну команду в командному рядку (>>>), одну за іншою і негайно отримуєте відповідь.
Інтерпретатор Python запускається за допомогою команди python:

python
Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)[GCC 4.3.3] on linux2
Type “help”, “copyright”, “credits”or “license” for more information.
>>> <тут введіть команду>

У цьому довіднику весь код, який починається зі знаку >>> означає, що використовується командний рядок Python.
Також важливо пам’ятати, що Python сприймає відступи (tabs) дуже серйозно – тому, якщо ви отримуєте будь-які помилки зі згадуванням відступу, виправіть інтервал табуляції.

3. Динамічне введення

У Java, C++ та в інших статично типізованих мовах, необхідно вказати тип даних, що повертаються і аргументи функції. З іншого боку, Python є динамічною універсальною мовою. В Python ви ніколи не повинні явно вказувати тип будь-яких даних. Виходячи з того, яке значення привласнюєте, Python буде відстежувати тип даних усередині.

4. Оператори Python

Python використовує повернення каретки для розділу операторів, а також двокрапку і відступи для поділу коду на блоки. Більшість компільованих мов програмування, таких як C і C++, використовують крапку з комою для розділення операторів і фігурні дужки для окремих блоків коду.

5. Оператори == і =

Python використовує ‘==’ для порівняння і ‘=’ для присвоювання. Python не підтримує вбудовані присвоювання, тому немає жодного ризику випадково присвоїти значення, коли ви насправді хочете, його порівняти.

6. Об’єднання рядків

Ви можете використати ‘+’ для об’єднання рядків.

>>> print (‘Mikro’+’Tik’)
MikroTik

7. Метод __init__

Метод __init__ запускається, як тільки створюється примірник об’єкту класу. Метод корисний, коли хочете зробити будь-яку ініціалізацію зі своїм об’єктом. Метод __init__ аналогічний конструктору в C++, C # або Java.
Приклад:

class Person:
def __init__(self, name):
self.name = name
def sayHi(self):
print (‘Hello, my name is’, self.name)
p = Person(‘Taras’)
p.sayHi()

Виведення:

python initmethod.py
Hello, my name is Taras

8. Модулі

Щоб зберегти свої програми керованим по мірі того, як вони ростуть в розмірах, ви можете розбити їх на кілька файлів. Python дозволяє помістити кілька визначень функцій в файл і використовувати їх як модулі, які можна імпортувати в інші сценарії і програми. Ці файли повинні мати розширення .py.
Приклад:

# файл my_function.py
def minmax(a,b):
if a <= b:
min, max = a, b
else:
min, max = b, a
return min, max

Використання модуля:

import my_function
x,y = my_function.minmax(25, 6.3)

9. Визначені в модулі імена

Приклад:

Вбудована функція ‘dir()’ може бути використана, щоб з’ясувати, які імена визначає модуль. Повертається сортований список рядків.

>>> import time
>>> dir(time)
[‘__doc__’, ‘__file__’, ‘__name__’,
‘__package__’, ‘accept2dyear’,
‘altzone’, ‘asctime’, ‘clock’,
‘ctime’, ‘daylight’, ‘gmtime’,
‘localtime’, ‘mktime’, ‘sleep’,
‘strftime’, ‘strptime’, ‘struct_
time’, ‘time’, ‘timezone’, ‘tzname’,
‘tzset’]

10. Внутрішня документація модуля

Ви можете побачити внутрішню документацію (якщо така є) для імені модуля, переглядаючи .__doc__.
Приклад:

>>> import time
>>> print time.clock.__doc__
clock() -> число у форматы з плаваючою комою

Цей приклад повертає час CPU або реальний час з моменту запуску процесу або після першого виклику clock(). Точність така ж, як і для системних записів.

11. Передача аргументів в сценарій Python

Python дозволяє отримати доступ до всього, що ви передали в сценарій при його виклику. Контент «командного рядка» зберігається в списку sys.argv.

import sys
print sys.argv

12. Завантаження модулів або команд при запуску

Ви можете завантажити готові модулі або команди при запуску будь-якого скрипта Python за допомогою змінної оточення $PYTHONSTARTUP. Ви можете встановити змінну оточення $PYTHONSTARTUP в файлі, який містить інструкції по завантаженню необхідних модулів або команд.

13. Перетворення рядка в об’єкт дати

Ви можете використати функцію ‘DateTime’ для конвертування рядка в об’єкт дати.
Приклад:

from DateTime import DateTime
dateobj = DateTime(string)

14. Перетворення списку в рядок для відображення

Ви можете перетворити список в рядок одним із таких способів.
1-й метод:

>>> mylist = [‘spam’, ‘ham’, ‘eggs’]>>> print (‘, ‘.join(mylist))
spam, ham, eggs

2-й метод:

>> print (‘\n’.join(mylist))
spam
ham
eggs

15. Автозаповнення інтерпретатора Python

Ви можете отримати автоматичне заповнення всередині інтерпретатора Python, додавши наступні рядки в ваш файл .pythonrc (або в свій файл для Python для читання під час запуску):

import rlcompleter, readline
readline.parse_and_bind(‘tab: complete’)

Це дозволить Python при натисканні клавіші Tab робити завершення частково набраної функції, метода та імен змінних.

16. Інструмент документації Python

Ви можете запустити графічний інтерфейс для пошуку документації Python скориставшись командою:

pydoc -g

Вам знадобиться пакет python-tk для цієї функції.

17. Сервер документації Python

Ви можете запустити сервер HTTP на вказаному порту локальної машини, що забезпечить доступ в чудовому вигляді до всієї документації Python, включаючи документацію для модулів сторонніх розробників.

pydoc -p <portNumber>

18. Програмне забезпечення для розробників на Python

Є багато інструментів, щоб допомогти розробникам на Python. Ось кілька важливих з них:
IDLE: Вбудований в Python IDE, з функцією автозаповнення, з підписаним спливаючим вікном допомоги та редагування файлів.
IPython: Інше розширення оболонки Python з вкладки-завершенням та іншими функціями.
Eric3: A IDE GUI Python з автозавершенням, класом браузера, вбудованою оболонкою і відладчиком.
WingIDE: Комерційний IDE Python з безкоштовною ліцензією доступний для розробників з відкритим вихідним кодом у всьому світі.

Вбудовані модулі

19. Виконання функцій в момент зупинки інтерпретатора Python

Можете використати модуль ‘atexit’ для виконання функцій в момент зупинки інтерпретатора Python.
Приклад:

def sum():
       print(4+5)
def message():
       print(“Executing Now”)
import atexit
atexit.register(sum)
atexit.register(message)

Виведення:

Executing Now
9

20. Перетворення цілих чисел в двійкові, в hex- і восьмеричний код

Python надає простий у використанні функції – bin(), hex() і oct() – для перетворення цілого числа в двійкове, hex- і восьмеричний формати, відповідно.
Приклад:

>>> bin(24)
‘0b11000’
>>> hex(24)
‘0x18’
>>> oct(24)
‘030’

21. Перетворення будь-яких символів в UTF-8

Можете використати наступну функцію для перетворення будь яких символів у формат UTF-8:

data.decode(“input_charset_here”).
encode(‘utf-8’)

22. Видалення дублікатів із списків

Якщо хочете видалити дублікати із списку, просто вставте кожний елемент в dict як ключ (в прикладі з ‘none’ як значення) і потім перевірте з dict.keys().

from operator import setitem
def distinct(l):
       d = {}
       map(setitem, (d,)*len(l), l, [])
       return d.keys()

23. Цикл do-while

Оскільки Python не має конструкцій циклу do-while або do-until (поки що), можете використати наступний метод для отримання подібного результату:

while True:
       do_something()
       if condition():
             break

24. Визначення платформи системи

Для виконання функцій конкретної платформи дуже корисно виявити платформу, на якій працює інтерпретатор Python. Ви можете використати ‘sys.platform’, щоб дізнатися поточну платформу.
Приклад:

На Ubuntu Linux

>>> import sys
>>> sys.platform
‘linux2’

На Mac OS X Snow Leopard

>>> import sys
>>> sys.platform
‘darwin’

25. Відключення і включення «збору сміття»

Іноді ви можете включити або відключити «збирач сміття» під час виконання. Ви можете використовувати модуль ‘gc’, щоб включити або відключити «збір сміття».
Приклад:

>>> import gc
>>> gc.enable <вбудована функція дозволена>
>>> gc.disable <вбудована функція заборонена>

26. Використання модулів на C для кращої продуктивності

Багато модулів Python поставляються з аналогами модулів C. За допомогою цих модулів C можна отримати значний приріст продуктивності в складних додатках.
Приклад:

cPickle instead of Pickle, cStringIO
замість StringIO.

27. Обчислення максимуму, мінімуму і суми з будь-якого списку або ітерактивно

Можете використати наступні вбудовані функції:

max: Повертає найбільший елемент із списку.
min: Повертає найменший елемент із списку.
sum: Функція повертає суму всіх елементів списку. Можна використати необов’язковий другий аргумент: значення, з якого має починатися додавання (за замовчуванням 0).

28. Подання дробних чисел

Примірник дробних чисел може бути створений за допомогою наступної конструкції:

Fraction([numerator[,denominator]])

29. Виконання математичних операцій

Модуль ‘math’ надає безліч математичних функцій. Вони працюють для цілих чисел і чисел з плаваючою точкою, крім комплексних чисел. Для комплексних чисел використовується окремий модуль, який називається ‘cmath’.
Приклад:

math.acos(x): Повертає arccos від x.
math.cos(x): Повертає cos від x.
math.factorial(x) : Повертає x-факторіал.

30. Робота з масивами

Модуль ‘array’ забезпечує ефективний спосіб використання масивів в ваших програмах. Модуль ‘array’ ‘ визначається введенням наступного: array(typecode [, initializer])
Після того, як ви створили об’єкт масиву, скажімо, myarray, ви можете застосувати купу методів до нього. Ось кілька важливих з них:

myarray.count(x): Повертає кількість значень x в масиві.
myarray.extend(x): Визначає x як кінець масиву.
myarray.reverse(): Обертає порядок в масиві.

31. Сортування складових списку

Модуль ‘bisect’ робить можливим дуже легко отримати списки в будь-якому порядку. Можете використати наступні функції для впорядковування списків:

bisect.insort(list, item [, low[, high]])

Вставка елемента в список в відсортованому порядку. Якщо елемент вже є в списку, новий запис вставляється праворуч від будь-якого з існуючих записів.

bisect.insort_left(list, item [, low[, high]])

Вставки елемента в список в відсортованому порядку. Якщо елемент вже є в списку, новий запис вставляється зліва від будь-яких існуючих записів.

32. Використання пошуку на основі регулярних виразів

Модуль ‘re’ робить дуже простим у використанні пошук на основі регулярних виразів. Можете використати функцію ‘re.search()’  на основі регулярних виразів. Перевірте наведені нижче приклади.
Приклад:

>>> import re
>>> s = “Adam is a bad boy”
>>> if re.search(“A”, s): print(“Match!”) # char literal

Match!
>>> if re.search(“[@A-Z]”, s): print (“Match!”) # char class
… # match either at-sign or capital letter
Match!
>>> if re.search(“\d”, s): print(“Match!”) # digits class

33. Робота з форматом стиснення bzip2 (.bz2)

Можете використати модуль ‘bz2’ для читання та запису даних за допомогою алгоритму стиснення bzip2.

bz2.compress() : Для стиснення bz2
bz2.decompress() : Для витягування bz2

Приклад:

# Файл: bz2-example.py
import bz2
MESSAGE = “Adam is a bad boy”
compressed_message = bz2.
compress(MESSAGE)
decompressed_message = bz2.
decompress(compressed_message)
print (“original:”, repr(MESSAGE))
print (“compressed message:”, repr(compressed_message))
print (“decompressed message:”, repr(decompressed_message))

Вихід:

python bz2- example.py
original: ‘Adam is a bad boy’
compressed message: ‘BZh91AY&SY\xc4\x0fG\x98\x00\x00\x02\x15\x80@\x00\x00\x084%\x8a \x00”\x00\x0c\x84\r\x03C\xa2\xb0\xd6s\xa5\xb3\x19\x00\xf8\xbb\x92)\xc2\x84\x86 z<\xc0’
decompressed message: ‘Adam is a bad boy’

34. Використання бази даних SQLite з Python

SQLite швидко стає дуже популярною вбудованою базою даних через свою нульову необхідність конфігурації і чудові рівні продуктивності. Можете використати модуль ‘sqlite3’, щоб працювати з базами даних SQLite.

Приклад:

>>> import sqlite3
>>> connection = sqlite.connect(‘test.db’)
>>> curs = connection.cursor()
>>> curs.execute(‘’’create table item
… (id integer primary key, itemno text unique, … scancode text, descr text, price real)’’’)
<sqlite3.Cursor object at 0x1004a2b30>

35. Робота з zip-файлами

Можете використати модуль ‘zipfile’ для роботи з zip файлами.

zipfile.ZipFile(filename [, mode [, compression [,allowZip64]]])

Відкрийте свій zip-файл, де файл може бути вказаний з шляхом до файлу (рядок) або файло-подібний об’єкт.

zipfile.close()¶

Закрийте файл архіву. Ви повинні викликати ‘close()’  перед виходом зі своєї програми або записи не будуть збережені.

zipfile.extract(member[, path[, pwd]])

Витягування елемента з архіву в поточний робочий каталог; ‘member’ має бути з повним ім’ям (або об’єкт zipinfo). Інформаційний файл витягується якомога точніше. ‘path’ вказує інший каталог для вилучення архіву. ‘member’ може бути ім’ям файлу або об’єктом zipinfo. ‘pwd’ є паролем, який використовується для зашифрованих файлів.

36. Використання спеціальних символів в UNIX-стилі для пошуку за іменами файлів

Можете використати модуль ‘glob’, щоб знайти всі шляхи до файлу, які збігаються з шаблоном відповідно до правил, що використовуються оболонкою UNIX. *,? і діапазони символів, вказані за допомогою [ ], будуть їм відповідати.
Приклад:

>> import glob
>>> glob.glob(‘./[0-9].*’)
[‘./1.gif’, ‘./2.txt’]>>> glob.glob(‘*.gif’)
[‘1.gif’, ‘card.gif’]>>> glob.glob(‘?.gif’)
[‘1.gif’]

Джерело