Вступ

Інтерпретатор діє як простий калькулятор: ви вводите вираз і отримуєте результат. Синтаксис математичних виразів досить традиційний: оператори +, -, *, / діють як і в більшості інших мов, наприклад, Pascal чи C. Дужки можуть використовуватися для групування.

Рядки (String)

  • Окрім чисел Пайтон може працювати і з рядками, які можуть записуватись кількома способами. Вони можуть оточуватися одинарними чи подвійними лапками.
  • Рядки можуть індексуватись. Як і в C перший символ рядка має індекс 0. Окремого символьного типу не існує; символ — це просто рядок довжиною в один символ. Подібно до мови Icon, частини рядків можуть позначатися за допомогою двох індексів, розділених двокрапкою. Така операція називається зріз.

Списки (Lists)

Пайтон знає кілька складних типів даних, що використовуються для групування значень. Найбільш універсальним є список, що може бути створений як послідовність елементів, розділених комами і оточених прямими дужками. Елементи списку не обов'язково повинні належати одному типу.

Цикли

  • Оператор for у Пайтоні трохи відрізняється від того, до якого ви могли звикнути, використовуючи C або Pascal. Замість постійного перебору чисел арифметичної прогресії (як у Pascal) чи надання користувачеві можливості визначати як крок перебору (ітерації), так і кінцеву умову (як у C), оператор for у мові Пайтон перебирає члени будь-якої послідовності (списку чи рядка) у порядку їхнього в ній розташування.
  • Оператор break, як і в C, перериває найближчий цикл for чи while.
  • Твердження continue, також запозичене з C, продовжує перебір з наступного кроку.

Область видимості

Виконання функції вводить новий простір імен, що використовується для локальних змінних функції. Зокрема, всі присвоєння змінним всередині функції зберігають свої значення у локальному просторі імен, тоді як при посиланні на змінну пошук починається у локальному, а потім продовжується у глобальному, і наприкінці — у просторі імен вбудованих ідентифікаторів. Таким чином, глобальні змінні не можуть отримувати нові значення всередині функцій (за винятком якщо вони названі у твержденні global), хоча посилання на них можливе.

Ключові аргументи

Функції можуть також викликатися за допомогою ключових аргументів у вигляді "ключ = значення".

Списки аргументів довільної довжини

Нарешті, остання часто використовувана можливість — визначення функції, що може бути викликана з будь-якою кількістю аргументів. Ці аргументи передаються за допомогою кортежа. Нуль чи більше звичайних аргументів можуть передувати змінній кількості аргументів.

Розпакування списків аргументів

Зворотня ситуація трапляється, коли аргументи задані списком чи кортежем, але їх потрібно розпакувати для виклику функції, що потребує окремих позиційних аргументів. Наприклад, вбудована функція range() потребує двох окремих аргументів, що вказують на межі послідовності. Якщо вони не задані окремо, виклик функції слід писати з оператором *, що дозволяє розпакувати аргументи, задані списком чи кортежем.

Модулі

Модуль може містити не лише описи функцій, а й виконувані інструкції. Ці інструкції потрібні для ініціалізації модуля. Вони виконуються лише при першому імпортуванні модуля. (Насправді визначення функцій — це також інструкції, що "виконуються"; виконання ж полягає в тому, що назва функції вводиться у глобальний простір імен модуля).

Класи та об'єкти

  • Визначення класів, подібно до визначень функцій (заданих через твердження def) , повинні виконатися перед тим, як вони матимуть якийсь ефект. (Визначення класу в принципі може розташовуватися у розгалуженні твердження if чи всередині функції).
  • При вході у визначення класу створюється новий іменний простір, що використовується у якості локального контексту, таким чином всі призначення нових величин локальним змінним потрапляють у цей новий іменний простір. Зокрема визначення функцій прив'язують назву нової функції тут.
  • Класові об'єкти підтримують два типи операцій: атрибутивні посилання та реалізацію.