Основи мови python. Основи синтаксису Python. Невпевненість в собі

Програма є набором алгоритмів, які забезпечують виконання необхідних дій. Умовно так само можна запрограмувати звичайну людину, написавши точні команди, щоб, наприклад, він приготував чай. Якщо в останньому варіанті використовуватиметься природне мовлення (російське, українське, англійське, корейське тощо), то для комп'ютера знадобиться спеціальна мова програмування. Python – один із таких. Середовище програмування згодом переведе команди і мета людини, заради якої створювався алгоритм, буде виконано. "Пітон" має свій синтаксис, який буде розглянутий нижче.

Історія мови

Розробка почалася в 1980-х, а завершилася вона в 1991. Мова Python була створена Гвідо ван Россумом. Хоча основним символом «Пітона» є змія, названий він був на честь комедійного американського шоу.

При створенні мови розробник використовував деякі команди, запозичені вже в Pascal, С і С++. Після виходу в інтернет першої офіційної версії ціла група програмістів приєдналася до його доопрацювання та покращення.

Одним із факторів, які дозволили стати «Пітону» досить відомим, є дизайн. Багатьма вельми успішними фахівцями він визнається одним із найкращих.

Особливості «Пітона»

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

Багато синтаксичних систем було створено з опорою на об'єктно-орієнтоване програмування. Не винятком є ​​і мова Python. Для чого саме він народився? Він полегшить навчання новачкам, допоможе пригадати деякі елементи вже кваліфікованим співробітникам.

Синтаксис мови

Як уже було сказано, код читається досить легко та просто. "Пітон" має послідовні команди, що відрізняються чіткістю виконання. У принципі, оператори, які використовуються, не здадуться навіть новачкам важкими. Цим і відрізняється мова Python. Синтаксис його легкий та простий.

Традиційні оператори:

  • За умови умови слід використовувати конструкцію if-else. Якщо таких рядків дуже багато, можна вписувати команду elif.
  • Class призначений для розуміння класу.
  • Один із простих операторів – pass. Він нічого не робить, вписується для пустих блоків.
  • Цикловими командами є while та for.
  • Функція, метод та генератор визначається завдяки def.

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

Процес написання програм

Інтерпретатор працює на єдиному механізмі: при написанні рядка (після якого ставиться «Ентер») він одразу виконується, і людина може вже бачити якийсь результат. Це стане у нагоді і буде досить зручним для новачків або тих, хто хоче протестувати невеликий шматочок коду. У середовищах, що компілюються, довелося б спочатку написати програму цілком, лише потім запустити її і перевірити на помилки.

Мова програмування Python (для початківців, як вже стало зрозуміло, він підходить ідеально) в операційній системі Linux дозволяє працювати безпосередньо в самій консолі. Слід написати в командному рядку назву коду "Пітон" англійською мовою. Свою першу програму створити буде неважко. Насамперед, варто враховувати і те, що користуватися інтерпретатором тут можна як калькулятор. Так як з синтаксисом часто молоді та початківці не дружать, то написати алгоритм можна таким чином:

Після кожного рядка потрібно ставити «Ентер». Відповідь виводитиметься безпосередньо після її натискання.

Дані, що використовуються "Пітоном"

Дані, якими користуються комп'ютери (і мови програмування), представлені кількома типами, і це очевидно. Числа бувають дробовими, цілими, можуть складатися з множини цифр або бути дуже масивними через дробову частину. Щоб інтерпретатору було простіше працювати з ними, і він міг зрозуміти, з чим має справу, слід поставити певний тип. Більш того, він необхідний, щоб числа помістилися у відведений осередок пам'яті.

Найбільш поширені типи даних, якими користується мова програмування Python:

  • Integer. Йдеться цілих числах, мають як негативне, і позитивне значення. Нуль також входить у цей тип.
  • Щоб інтерпретатор зрозумів, що з дробовими частинами, слід задати тип float point. Як правило, ним користуються у разі використання чисел з точкою, що варіюється. Слід пам'ятати, що при написанні програми потрібно дотримуватися запису "3.25", а не використовувати кому "3,25".
  • У разі додавання рядків мова програмування Python дозволяє додати тип string. Найчастіше слова чи фрази полягають у одинарні або

Недоліки та переваги

В останні кілька десятиліть людей більше цікавило, як більше часу витратити на освоєння даних і менше – на те, щоб їх обробили комп'ютером. Мова про яку лише позитивні є вищим кодом.

Недоліків «Пітона» практично немає. Єдиний серйозний мінус – повільність у виконанні алгоритму. Так, якщо порівнювати його з «Сі» чи «Джава», він, щиро кажучи, черепашка. Пояснюється це тим, що цей

Розробник подбав про те, щоб додати до «Пітона» найкраще. Тому при його використанні можна помітити, що він увібрав найкращі риси інших вищих мов програмування.

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

Зараз над покращенням «Пітона» працює не одна група програмістів, тому не факт, що код, написаний на С++, буде кращим, ніж той, який створений за допомогою Python.

З якою версією краще працювати?

Зараз широко використовуються одразу дві версії такої синтаксичної системи, як мова Python. Для початківців вибір між ними буде досить важким. Слід зазначити той факт, що 3.х все ще перебуває на розробці (хоча і випущений у маси), тоді як 2.х – повністю завершена версія. Багато хто радить використовувати 2.7.8, тому що вона практично не кладе і не збивається. У 3.х версії немає радикальних змін, тому будь-коли свій код можна перенести в середу програмування з оновленням. Щоб завантажити необхідну програму, слід зайти на офіційний сайт, вибрати свою операційну систему та дочекатися закінчення завантаження.

Програмування на Python

Частина 1. Можливості мови та основи синтаксису

Серія контенту:

Чи варто вивчати Python?

Python – це одна з найпопулярніших сучасних мов програмування. Він придатний для вирішення різноманітних завдань та пропонує ті ж можливості, що й інші мови програмування: динамічність, підтримку ОВП та крос-платформність. Розробку Python почав Гвідо Ван Россум (Guido Van Rossum) ще в середині 1990-х років, тому до теперішнього часу вдалося позбутися стандартних «дитячих» хвороб, суттєво розвинути найкращі сторони мови та залучити безліч програмістів, які використовують Python для реалізації своїх проектів.

Багато програмістів вважають, що необхідно вивчати лише «класичні» мови програмування, такі як Java чи C++, оскільки інші мови однаково не зможуть забезпечити таких можливостей. Проте останнім часом виникло переконання, що програмісту бажано знати більше однієї мови, оскільки це розширює його кругозір, дозволяючи творчіше вирішувати поставлені завдання та підвищуючи його конкурентоспроможність на ринку праці.

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

Якщо ж програміст тільки починає свій шлях у галузі розробки ПЗ, то Python стане ідеальною «вступною» мовою програмування. Завдяки своїй лаконічності він дозволить швидше оволодіти синтаксисом мови, а відсутність «спадщини» у вигляді аксіом, що формувалися протягом багатьох років, допоможе швидко освоїти ОВП. Через ці чинники «крива навчання» Python буде досить короткою, і програміст зможе перейти від навчальних прикладів до комерційних проектів.

Тому ким би не був читач цієї статті – досвідченим програмістом або новачком у галузі розробки ПЗ, відповіддю на питання, яке є і назвою цього розділу, має стати переконливим «так».

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

Архітектура Python

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

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

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

Також Python є мовою загального призначення, тому може застосовуватися практично в будь-якій галузі розробки (standalone, клієнт-сервер, Web-додатки) і в будь-якій предметній області. Крім того, Python легко інтегрується з існуючими компонентами, що дозволяє впроваджувати Python у вже написані додатки.

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

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

Середа виконання Python

Як відомо, всі крос-платформні мови програмування побудовані за однією моделлю: це дійсно переносний вихідний код і середовище виконання (runtime environment), яке не є переносним і специфічним для кожної конкретної платформи. У цю середу виконання зазвичай входить інтерпретатор, який виконує вихідний код, та різні утиліти, необхідні для супроводу додатка – відладчик, зворотний асемблер тощо.

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

На даний момент існують три відомі реалізації середовища виконання для Python: CPython, Jython і Python.NET. Як можна здогадатися з назви, перше середовище реалізовано мовою C, друге мовою Java, а остання – на платформі.NET.

Середовище виконання CPython називається просто Python, і коли говорять про Python, то найчастіше мається на увазі саме ця реалізація. Ця реалізація складається з інтерпретатора та модулів розширення, написаних мовою C, і може використовуватися на будь-якій платформі, для якої доступний стандартний компілятор C. Крім того, існують вже скомпільовані версії середовища виконання для різних операційних систем, включаючи різні версії OC Windows та різні дистрибутиви Linux. У цій та наступних статтях розглядатиметься саме CPython, якщо інше не обговорюється окремо.

Середовище виконання Jython – це реалізація Python для роботи з віртуальною Java-машиною (JVM). Підтримується будь-яка версія JVM, починаючи з версії 1.2.2 (поточна версія Java – 1.6). Для роботи з Jython потрібна встановлена ​​Java-машина (середовище виконання Java) та певне знання мови програмування Java. Вміти писати вихідний код мовою Java не обов'язково, проте доведеться мати справу з JAR-файлами та Java-аплетами, а також документацією у форматі JavaDOC.

Яку версію середовища вибрати - залежить виключно від переваг програміста, взагалі ж рекомендується тримати на комп'ютері і CPython, і Jython, оскільки вони не конфліктують між собою, а взаємно доповнюють один одного. Середовище CPython працює швидше, тому що немає проміжного рівня у вигляді JVM; крім того, оновлені версії Python спочатку випускають у вигляді середовища CPython. Однак Jython може використовувати будь-який клас Java як модуль розширення і працювати на будь-якій платформі, для якої існує реалізація JVM.

Обидва середовища виконання випущені під ліцензією, сумісною з відомою ліцензією GPL, тому можуть використовуватися для розробки комерційного, так і вільного або безкоштовного ПЗ. Більшість модулів розширення для Python також виходить в рамках ліцензії GPL і може вільно застосовуватися в будь-яких проектах, проте існують і комерційні розширення або розширення з більш суворими ліцензіями. Тому при використанні Python у комерційному проекті необхідно знати, які обмеження існують у ліцензіях модулів розширення.

Початок роботи з Python

Перш ніж почати використовувати Python, необхідно встановити його середовище виконання – у цій статті це CPython і інтерпретатор python. Існують різні способи встановлення: досвідчені користувачі можуть самі скомпілювати Python з його загальнодоступного вихідного коду, також можна завантажити з Web-сайту www.python.org вже готові файли для конкретної операційної системи, нарешті, багато дистрибутивів Linux поставляються з вже встановленим інтерпретатором Python. У цій статті використовується версія Python 2.x для Windows, проте наведені приклади можна запускати на будь-якій версії Python.

Після того як програма установки розгорне файли Python, що виконуються, у вказаний каталог, необхідно перевірити значення наступних системних змінних:

  • PATH. У цій змінній повинен бути шлях до каталогу, де встановлений Python, щоб його могла знайти операційна система.
  • PYTHONHOME. Ця змінна повинна містити лише шлях до каталогу, де встановлений Python. Також у цьому каталозі повинен бути підкаталог lib, в якому буде виконуватися пошук стандартних модулів Python.
  • PYTHONPATH. Змінна зі списком каталогів, які містять модулі розширення, які підключатимуться до Python (елементи списку повинні розділятися системним роздільником).
  • PYTHONSTARTUP. Не обов'язкова змінна, що визначає шлях до сценарію Python, який має виконуватися щоразу під час запуску інтерактивного сеансу інтерпретатора Python.

Командний рядок для роботи з інтерпретатором має таку структуру.

PYTHONHOME\python (опції) [-з команда | файл зі сценарієм - ] (аргументи)

Інтерактивний режим роботи Python

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

Значення обчисленого виразу зберігається в спеціальну змінну з ім'ям «Одиночне підкреслення» (_), тому його можна використовувати в наступних виразах. Завершити інтерактивний сеанс можна поєднанням клавіш Ctrl-Z в Windows або Ctrl-D в Linux.

Опції – це обов'язкові строкові значення, які можуть змінювати поведінка інтерпретатора під час сеансу; їх значення розглядатиметься у цій та наступних статтях. За опціями вказується окрема команда, яку повинен виконати інтерпретатор, або шлях до файлу, в якому міститься сценарій для виконання. Варто зазначити, що команда може складатися з кількох виразів, розділених крапкою з комою, і повинна бути поміщена в лапки, щоб операційна система змогла її коректно передати інтерпретатору. Аргументи – ті параметри, які передаються для подальшої обробки виконуваний сценарій; вони передаються у програму як рядків і поділяються пробілами.

Для перевірки правильності встановлення та працездатності Python можна виконати такі команди:

c:\> python-v
c:\> python –c “import time; print time.asctime()”

Опція –v виводить версію реалізації Python і завершує роботи, а друга команда роздруковує на екран значення системного часу.

Писати сценарії Python можна в будь-якому текстовому редакторі, оскільки вони є звичайними текстовими файлами, однак існують і спеціальні середовища розробки, призначені для роботи з Python.

Основи синтаксису Python

Сценарії вихідного коду Python складаються з так званих логічних рядків, кожна з яких у свою чергу складається з фізичних рядків. Для позначення коментарів використовується символ #. Коментарі та порожні рядки інтерпретатор ігнорує.

Далі наведено дуже важливий аспект, який може здатися дивним програмістам, які вивчають Python як другу мову програмування. Справа в тому, що в Python немає символу, який би відповідав за відокремлення виразів один від одного у вихідному коді, як, наприклад, крапка з комою (;) у C++ або Java. Точка з комою дозволяє розділити кілька інструкцій, якщо вони знаходяться на одному фізичному рядку. Також відсутня така конструкція як фігурні дужки (), що дозволяє об'єднати групу інструкцій в єдиний блок.

Фізичні рядки поділяються самим символом кінця рядка, але якщо вираз занадто довгий для одного рядка, то два фізичні рядки можна об'єднати в один логічний. Для цього необхідно в кінці першого рядка ввести символ зворотного сліша (\), і тоді наступний рядок інтерпретатор трактуватиме як продовження першого, проте при цьому не можна, щоб на першому рядку за символом знаходилися б інші символи, наприклад, коментар з #. Для виділення блоків коду використовуються виключно відступи. Логічні рядки з однаковим розміром відступу формують блок і закінчується блок у тому випадку, коли з'являється логічний рядок з відступом меншого розміру. Саме тому перший рядок у сценарії Python не повинен мати відступу. Засвоєння цих нескладних правил допоможе уникнути більшості помилок, пов'язаних із освоєнням нової мови.

Інших радикальних відмінностей від інших мов програмування у синтаксисі Python немає. Є стандартний набір операторів і ключових слів, більшість яких вже знайома програмістам, а специфічні для Python будуть розглядатися в цій та наступних статтях. Також використовуються стандартні правила для завдань ідентифікаторів змінних, методів та класів – ім'я має починатися з підкреслення або латинського символу будь-якого регістру та не може містити символів @, $, %. Також не може використовуватися як ідентифікатор лише один символ підкреслення (див. виноску, в якій йдеться про інтерактивний режим роботи).

Типи даних, що використовуються в Python

Типи даних, що використовуються в Python, також збігаються з іншими мовами – цілі та речові типи даних; додатково підтримується комплексний тип даних - з речовою і уявною частиною (приклад такого числа - 1.5J або 2j, де J являє собою квадратний корінь з -1). Python підтримує рядки, які можуть бути укладені в одинарні, подвійні або потрійні лапки, при цьому рядки, як і Java, є immutable-об'єктами, тобто. не можуть змінювати значення після створення.

Є Python і логічний тип даних bool з двома варіантами значення – True і False. Однак у старих версіях Python такого типу даних не було і, крім того, будь-який тип даних міг бути приведений до логічного значення True або False. Усі числа, відмінні від нуля, і непусті рядки чи колекції з даними трактувалися як True, а порожні та нульові значення розглядалися як False. Ця можливість збереглася і в нових версіях Python, проте для підвищення читання коду рекомендується використовувати для логічних змінних тип bool. У той же час, якщо необхідно підтримувати зворотну сумісність зі старими реалізаціями Python, то як логічні змінні варто використовувати 1 (True) або 0 (False).

Функціональність для роботи з наборами даних

У Python визначено три типи колекцій для зберігання наборів даних:

  • кортеж (tuple);
  • список (list);
  • словник (dictionary).

Кортеж є незмінною впорядкованою послідовністю даних. У ньому можуть бути елементи різних типів, наприклад інші кортежі. Кортеж визначається у круглих дужках, яке елементи розділяються комами. Спеціальна вбудована функція tuple() дозволяє створювати кортежі із представленої послідовності даних.

Список – це змінена впорядкована послідовність елементів. Елементи списку також розділяються комами, але задаються вже у квадратних дужках. Для створення списків пропонується функція list().

Словник є хеш-таблицею, що зберігає елемент разом із ідентифікатором-ключом. Наступний доступ до елементів виконується також за ключом, тому одиниця зберігання у словнику – це пара об'єкт-ключ і пов'язаний з ним об'єкт-значення. Словник – це змінна, але не впорядкована колекція, тому порядок елементів у словнику може змінюватися з часом. Задається словник у фігурних дужках, ключ відокремлюється від значення двокрапкою, а самі пари ключ/значення розділяються комами. Для створення словників є функція dict().

У лістингу 1 наведено приклади різних колекцій, доступних у Python.

Лістинг 1. Види колекцій, доступні в Python
('w','o','r','l','d') # кортеж з п'яти елементів (2.62,) # кортеж з одного елемента [“test”,"me"] # список з двох елементів # порожній список ( 5:'a', 6:'b', 7:'c' ) # словник із трьох елементів з ключами типу int

Визначення функцій у Python

Хоча Python підтримує ООП, проте багато його можливостей реалізовані у вигляді окремих функцій; крім того, модулі розширення найчастіше робляться у вигляді бібліотеки функцій. Функції також застосовуються й у класах, де вони традиційно називаються методами.

Синтаксис визначення функцій у Python вкрай простий; з урахуванням викладених вище вимог:

def ІМ'Я_ФУНКЦІЇ(параметри): вираз № 1 вираз № 2 ...

Як видно, необхідно використовувати службове слово def, двокрапку та відступи. Викликати функцію також дуже просто:

ІМ'Я_ФУНКЦІЇ(параметри)

Є лише кілька моментів, специфічних для Python, які варто враховувати. Як і Java, примітивні значення передаються за значенням (у функцію потрапляє копія параметра, і вона може змінити значення, встановлене до виклику функції), а складні об'єктні типи передаються за посиланням (у функцію передається посилання і може цілком змінити об'єкт).

Параметри можуть передаватися як просто по порядку перерахування, так і за іменами, у цьому випадку не потрібно вказувати при виклику ті параметри, для яких є значення за промовчанням, а передавати лише обов'язкові або змінювати порядок параметрів при виклику функції:

#функція, що виконує поділ націло – за допомогою оператора // def foo(delimoe, delitel): return delimoe // delitel print divide(50,5) # результат роботи: 10 print divide(delitel=5, delimoe=50) # результат роботи: 10

Функція в Python обов'язково повертає значення – це робиться або явно за допомогою оператора return, за яким слідує значення, що повертається, або, у разі відсутності оператора return, повертається константа None, коли досягається кінець функції. Як видно з прикладів оголошень функцій, у Python немає необхідності вказувати, чи повертається щось із функції чи ні, проте якщо в функції є один оператор return, що повертає значення, то й інші оператори return у цій функції повинні повертати значення, а якщо такого значення ні, необхідно явно прописувати return None.

Якщо функція дуже проста і складається з одного рядка, то її можна визначити прямо на місці використання, в Python подібна конструкція називається лямбда-функцією (lambda). lambda-функція – це анонімна функція (без власного імені), тілом якої є оператор return, що повертає значення певного виразу. Такий підхід може виявитися зручним у деяких ситуаціях, проте варто зауважити, що повторне використання подібних функцій неможливе (де народився, там і став у нагоді).

Ще варто описати ставлення Python до рекурсії. За замовчуванням глибина рекурсії обмежена 1000 рівнів, і коли цей рівень буде пройдено, виникне виняткова ситуація і роботу програми буде зупинено. Однак за необхідності величину цієї межі можна змінити.

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

Синтаксис мови Pythonбагато в чому схожий на синтаксис таких мов як Perl, C і Java, але разом з цим має ряд відмінностей від цих мов програмування. У цій статті ми розглянемо необхідні основицього мови програмування.

Перша програма на Python:

По-перше, слід зазначити, що на Pythonви можете програмувати у двох режимах: інтерактивномуі скриптовому

Інтерактивний режим програмування:

Без передачі як аргумент назви файлу запустить інтерпретатор Python:

Введіть наступний текст після запрошення. Pythonта натисніть Enter:

>>> print "Hello, Python!"

Якщо ви все зробили правильно, інтерпретатор видасть рядок:

Якщо ви отримали помилку - переконайтеся, що правильно переписали код і використовуєте інтерпретатор версії 2.х (для версії 3.х слід використовувати команду print ("Hello, Python"))

Скриптовий режим програмування:

Запуск у командному рядку pythonз назвою файлу (він ще називається скрипт) як параметр, почне виконання коду, записаного в даному файлі. Після завершення виконання скрипта інтерпретатор буде знову неактивний.

Давайте, створимо просту програму-скрипт на Python. Відкрийте будь-який текстовий редактор (Sublime, Notepad++, gedit...), створіть у ньому файл з ім'ям test та розширенням.py (усі файли, що містять код на Pythonповинні мати розширення .py) і запишіть у цей файл вже знайомий нам код і збережіть файл:

Print "Hello, Python!"

(Передбачається, що інтерпретатор Pythonу вас заданий в змінній PATH, тобто ви перебуваючи в будь-якій директорії, можете ввести python для запуску інтерпретатора)

Після цього введіть наступний рядок у командному рядку та натисніть Enter:

Ідентифікатори в Python:

Ідентифікатори в Pythonце імена, що використовуються для позначення змінної, функції, класу, модуля або іншого об'єкта. Ідентифікатор повинен починатися з літери (від a до Z) або зі знака підкреслення (_), після яких може йти довільна кількість літер, знаків підкреслення та чисел (від 0 до 9).

У Pythonнеприпустиме використання розділових знаків або спеціальних символів, таких як @, $ або % як ідентифікатори. Крім того, Pythonчутливий до регістру, тобто catі Catце два різні імені.

У Python існує така домовленість для назви ідентифікаторів:

  • Імена класів починаються з великої літери, решта ідентифікаторів - з маленької.
  • Використання символу підкреслення як перший символ ідентифікатора означає, що цей ідентифікатор є приватним (закритим від використання поза класом).
  • Якщо ідентифікатор починається і закінчується двома знаками підкреслення (наприклад, __init__), це означає, що він є спеціальним ім'ям, визначеним усередині мови.

Зарезервовані (ключові) слова в Python:

У цій таблиці зібрані всі ключові слова Python.

and elif if print
as else import raise
assert except in return
break exec is try
class finally lambda while
continue for not which
def from or yield
del global pass

Ці зарезервовані слова не можна використовувати як ім'я змінної або будь-якого іншого ідентифікатора. Усе ключові слова Pythonскладаються лише з літер у нижньому регістрі. Отримати список ключових слів можна в інтерпретаторі командою

Help("keywords")

Рядки та відступи:

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

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

Наприклад, цей блок коду буде працювати (хоча так писати не варто):

If True: print "Hi" else: print "Bye"

А це вже викличе помилку:

If True: print "Hi" print "Bye"

Таким чином, у Pythonдекілька рядків коду з однаковим відступом формуватимуть окремий блок коду. Завдяки такій системі значно підвищується читаність коду та прищеплюється звичка писати зрозуміло та структуровано.

Багаторядкові вирази:

Вирази у Python, як правило, закінчуються новим рядком. Однак, у цій мові програмування існує спеціальний символ перенесення рядка (\), який показує, що з закінченням рядка не закінчується код. Наприклад:

Total = item1 + \ item2 + \ item3

Вирази, що знаходяться всередині дужок: квадратних (), фігурних (( )) або круглих (()) не потребують символу перенесення рядка. Наприклад:

Days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]

Пластини в Python:

У Pythonможна використовувати одинарні ("), подвійні (") і потрійні (""" або """) лапки щоб позначити малий тип даних, при цьому починатися і закінчуватися рядок повинен однаковими лапками. Рядок, що займає кілька рядків коду, повинен бути обрамлений потрійними лапками. Наприклад:

Name = "wasd" description = "Якщо текст" biography = """ Один довгий текст для кількох ліній з коду """

Цей матеріал розрахований на тих, хто вже знайомий із програмуванням і хоче освоїти мову програмування Python. Він розрахований на те, щоб за 10 хвилин показати вам особливості мови Python, особливості синтаксису та основні принципи роботи з Python на прикладах. Тут немає жодної «води» — інформації, яка не має безпосереднього відношення до мови програмування. Почнемо!

Мова програмування Python відрізняється сильною типізацією (Сильна типізація виділяється тим, що мова не дозволяє змішувати у виразах різні типи і не виконує автоматичні неявні перетворення, наприклад не можна відняти безліч), використовується динамічна типізація - всі типи з'ясовуються вже під час виконання програми.

Оголошення змінних необов'язкове, назви сприйнятливі регістру (var і VAR — дві різні змінні).

Мова Python об'єктно-орієнтована, все в мові є об'єктом.

Отримання довідки

Довідка (допомога) Python завжди доступна прямо в інтерпретаторі. Якщо ви хочете знати, як об'єкт працює, викличте help( ). Також корисною інструкцією є dir() , яка показує всі методи об'єкта, та властивість об'єктів .__doc__ , яка покаже вам рядок документації:

>>> help(5) Help on int object: (etc etc) >>> dir(5) ["__abs__", "__add__", ...] >>> abs.__doc__ "abs(number) -> number Відновити повну ціну argument."

Синтаксис мови Python

У Python немає конструкцій для завершення блоків (таких як опис класу чи функції, наприклад) – блоки визначаються з використанням відступів. Збільшення відступу на початку блоку, зменшення - в кінці блоку. Інстукції, які передбачають наявність відступів, завершуються символом двокрапки (:). Якщо після інструкції початку блоку у вас поки що немає коду, вставте оператор pass для проходження синтаксичної перевірки.

While rangelist == 1: pass

Однорядкові коментарі починаються з символу решітки (#), багаторядкові використовують ("") на початку та в кінці коментаря.

Значення присвоюються з допомогою знака рівності («=») (за фактом об'єктам присвоюються імена процесі).

Перевірка на різницю виконується з двома символами рівності («==»).

Можна збільшити значення з допомогою оператора += і зменшити з -=, вказавши у лівій частині змінну, а правої — значення, яку відбудеться збільшення/уменьшение. Це працює з багатьма типами даних у Python, включаючи рядки.

Можна надати значення неспільним змінним в одному рядку. Приклади:

>>> myvar = 3 >>> myvar += 2 >>> myvar 5 >>> myvar -= 1 >>> myvar 4 """Цей рядок літератури." >>> mystring = "Hello" >>> mystring += "world." >>> print mystring Hello world. # Ці вивільняються параметри в одну лінію (!). # It doesn"t violate strong typing because values ​​aren"t # Actually being assigned, but new objects are bound to # the old names. >>> myvar, mystring = mystring, myvar

Типи даних у Python

У Python доступні такі типи даних, як списки (lists), кортежі (tuples) та словники (dictionaries). Також доступні безлічі — з використанням модуля sets у версіях до Python 2.5 і вбудовані в мову пізніших.

Списки схожі на одновимірні масиви. При цьому можна мати список, що складається із інших списків.

Словники — це асоціативні масиви, у яких доступом до даних здійснюється за ключом.

Кортежі - це незмінні одновимірні масиви.

Масиви в Python можуть бути будь-якого типу, тобто ви можете поєднувати числа, рядки та інші типи даних у списках/словниках/кортежах.

Індекс першого елемента - 0. Негативне значення індексу починає відлік від останнього до першого, [-1] вкаже на останній елемент.

Змінні можуть вказувати на функції.

>>> sample = , ("a", "tuple")] >>> mylist = ["List item 1", 2, 3.14] >>> mylist = "List item 1 again" # We"re changing the item . >>> mylist[-1] = 3.21 # Here, we refer to the last item. mydict["pi"] = 3.15 # Це означає, що змінити значення.

Ви можете отримати зріз масиву (списку або кортежу) через використання двокрапки (:). Залишаючи порожнім початкове значення індексу, ви вкажете починати з першого значення, порожнє значення кінця індексу передбачає останній елемент масиву. Негативні індекси зважають з кінця масиву назад (-1 — вкаже на останній елемент).

Подивіться приклади:

>>> mylist = ["List item 1", 2, 3.14] >>> print mylist[:] ["List item 1", 2, 3.1400000000000001] >>> print mylist ["List item 1", 2] > >> print mylist[-3:-1] ["List item 1", 2] >>> print mylist # Adding a third parameter, "step" буде мати Python step in # N item increments, rather than 1. # E.g. , Це буде відновити перший пункт, йти до третього і # return that (so, items 0 and 2 in 0-indexing). >>> print mylist[::2] ["List item 1", 3.14]

Рядки в Python

Для позначення рядка може використовуватися апостроф (') або подвійні лапки (double quote -'). Завдяки цьому ви можете мати лапки всередині рядка, позначеного за допомогою апострофів (наприклад, 'He said hello'. — правильний рядок).

Багаторядкові рядки позначаються з використанням потрійного апострофа або лапок (""). Python підтримує юнікод з коробки. Python3 усі рядки містять юнікод. Якщо в Python3 вам потрібна послідовність байтів, якою був по суті рядок у попередніх версіях, використовується символ (b): b»This is a byte string».

Для встановлення значень параметрів у рядок використовується оператор (%) і кортеж. Кожен %s замінюється на елемент кортежу, зліва направо. Також ви можете використовувати словник для встановлення іменованих параметрів:

>>>print "Name: %s\ Number: %s\ String: %s" % (myclass.name, 3, 3 * "-") Name: Poromenos Number: 3 String: --- strString = """ Це є multiline string.""" # WARNING: Watch out for trailing s in "%(key)s". >>> print "This %(verb)s a %(noun)s." % ("noun": "test", "verb": "is") This is a test.

Інструкції для контролю потоку - if, for, while

Для контролю порядку виконання програми використовують інстукції if, for і while. У Python немає switch або case, замість них використовується if. For використовується для проходження елементами списку (або кортежу). Для отримання послідовності чисел використовуйте range( ). Для переривання виконання циклу використовується break.

Синтаксис цієї конструкції наступний:

Rangelist = range(10) >>> print rangelist for number in rangelist: # Check if number is one of # numbers in the tuple. if number in (3, 4, 7, 9): # "Break" terminates a for without # executing the "else" clause. break else: # "Continue" starts the next iteration # of the loop. I''s rather useless here, # as it's the last statement of the loop. continue else: # The "else" clause is optional and is # executed only if the loop didn"t "break". " elif rangelist == 3: print "The second item (lists are 0-based) is 3" else: print "Dunno" while rangelist == 1: pass

Функції у Python

Функції оголошуються за допомогою ключового слова «def». Необов'язкові аргументи випливають в оголошенні функції після обов'язкових і призначається їм значення за замовчуванням. При виклику функції можна передавати аргументи через вказівку їх імені та значення, при цьому пропускаючи частину необов'язкових аргументів або розташовуючи їх у порядку, відмінному від оголошеного у функції.

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

Лямбда-функції (lambda functions) – спеціальні фукції, що обробляють один аргумент.

Параметри передаються через посилання. Додаючи елементи до переданого списку, ви отримаєте оновлений список поза функцією. При цьому надання нового значення параметрам всередині функції залишиться локальною дією. Оскільки при передачі передається лише розташування в пам'яті, призначення нового об'єкта параметру як змінної викликає створення нового об'єкта.

Приклади коду:

# Same as def funcvar(x): return x + 1 funcvar = lambda x: x + 1 >>> print funcvar(1) 2 # "A default string", respectively). def passing_example(a_list, an_int=2, a_string="A default string"): a_list.append("A new item") an_int = 4 return a_list, an_int, a_string >>> my_list = >>> my_int = 10 >> > print passing_example(my_list, my_int) (, 4, "A default string") >>> my_list >>> my_int 10

Класи Python

Python підтримує обмежену форму множинного успадкування у класах.

Приватні змінні та методи можуть бути оголошені (за згодою, це не перевіряється інтерпретатором) з використанням двох символів підкреслення спочатку і не більше одного наприкінці імені (наприклад: «__spam»).

Ми також можемо призначати довільні імена екземплярам класу. Перегляньте приклади:

Class MyClass(object): common = 10 def __init__(self): self.myvariable = 3 def myfunction(self, arg1, arg2): return self.myvariable # This is the class instantiation >>> classinstance = MyClass() >> > classinstance.myfunction(1, 2) 3 # Цей параметр shared by all classes. >>> classinstance2 = MyClass() >>> classinstance.common 10 >>> classinstance2.common 10 # Повідомте, що ми використовуємо class name # instead of the instance. >>> MyClass.common = 30 >>> classinstance.common 30 >>> classinstance2.common 30 # Це не підтримує варіацію на class, # instead it буде наведено новий об'єкт для old # variable name. >>> classinstance.common = 10 >>> classinstance.common 10 >>> classinstance2.common 30 >>> MyClass.common = 50 # Це не зміниться, тому що "загальний" є # now instance variable. >>> classinstance.common 10 >>> classinstance2.common 50 # Це class inherits from MyClass. # Example # class above inherits from "object", which makes # it what"s called a "new-style class". # Multiple inheritance is declared as: # class OtherClass(MyClass1, MyClass2, MyClassN) class OtherClass(MyClass): # The "self" argument is passed automatically # and refers to class instance, so you can set # instance variables as above, but from inside the class. > classinstance = OtherClass("hello") hello >>> classinstance.myfunction(1, 2) 3 # Ця категорія не має . Note # that this will only be a member of classinstance. >>> classinstance.test = 10 >>> classinstance.test 10

Винятки в Python

Винятки Python обробляються в блоках try-except :

Def some_function(): try: # Division від 0 до 10 / 0 except ZeroDivisionError: print "Oops, invalid." else: # Exception didn"t occur, we"re good. pass finally: # Цей executed після code block is run # and all exceptions have been handled, even # if a new exception is raised while handling. print "We"re done with that." >>> some_function() Oops, invalid. We"re done with that.

Імпорт модулів у Python

Зовнішні бібліотеки використовуються після імпортування за допомогою ключового слова import . Ви також можете використовувати з імпорту для імпорту індивідуальних функцій.

Import random from time import clock randomint = random.randint(1, 100) >>> print randomint 64

Робота з файлами в Python

Python має велику кількість бібліотек для роботи з файлами. Наприклад, серіалізація (конвертування даних у рядки з бібліотекою pickle):

Import pickle mylist = ["This", "is", 4, 13327] # Open the file C:\\binary.dat for writing. Letter r до # filename string is used to prevent backslash escaping. myfile = open(r"C:\\binary.dat", "w") pickle.dump(mylist, myfile) myfile.close() myfile = open(r"C:\\text.txt", "w" ) myfile.write("This is a sample string") myfile.close() myfile = open(r"C:\\text.txt") >>> print myfile.read() "This is a sample string" myfile .close() # Open the file for reading. myfile = open(r"C:\\binary.dat") loadedlist = pickle.load(myfile) myfile.close() >>> print loadedlist ["This", "is", 4, 13327]

Різне

  • Умови можуть склеюватися, наприклад, 1< a < 3 проверит, что a одновременно меньше 3 и больше 1.
  • Ви можете використовувати del для видалення змінних або елементів масивів.
  • Списки дають дуже сильні змогу маніпуляції даними. Ви можете скласти вираз із використанням for та наступними інструкціями if або for:
>>> lst1 = >>> lst2 = >>> print >>> print # Check if a condition is true for any items. # "any" returns true if any item in the list is true. >>> any(]) True # This is because 4 % 3 = 1, and 1 is true, so any() # returns True. # Check for how many items a condition is true. >>> sum(1 for i in if i == 4) 2 >>> del lst1 >>> print lst1 >>> del lst1
  • Глобальні змінні оголошуються поза функціями і можуть читатись без спеціальних оголошень всередині, але якщо ви хочете записувати їх, ви повинні оголосити з початку функції з використанням спеціального ключового слова «global», інакше Python призначить нове значення локальної змінної:
number = 5 def myfunc(): # This will print 5. print number def anotherfunc(): # This raises an exception because the variable has not # been bound before printing. Python knows that it an # object will be bound to it later and creates a new, local # object instead of accessing the global one. print number number = 3 def yetanotherfunc(): global number # Це буде правильно змінити глобальну. number = 3

Як вивчити мову програмування Python

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

Якщо вам недостатньо викладеної інформації — перегляньте розширений матеріал з описом мови програмування Python — у ньому відомості про мову викладені докладніше.

Серед інших матеріалів рекомендую Learn Python The Hard Way. І, звичайно, The Python 2 Tutorial і The Python 3 Tutorial .

Велика подяка Stavros Korokithakis за його відмінний tutorial "Learn Python in 10 minutes".

Якщо ви хочете щось покращити у цьому матеріалі – будь ласка напишіть у коментарях.

Про Python(краще вимовляти "пітон", хоча деякі говорять "пайтон") - предметі даного вивчення, найкраще говорить творець цієї мови програмування, голландець Гвідо ван Россум:

"Python - інтерпретована, об'єктно-орієнтована високорівнева мова програмування з динамічною семантикою. Вбудовані високорівневі структури даних у поєднанні з динамічною типізацієюі зв'язуванням роблять мову привабливою для швидкої розробки додатків (RAD, Rapid Application Development). Крім того, його можна використовувати як сценарну мову для зв'язку програмних компонентів. Синтаксис Python простий у вивченні, у ньому надається особливе значення читання коду, а це скорочує витрати на супровід програмних продуктів. Python підтримує модулі та пакети, заохочуючи модульність та повторне використання коду. Інтерпретатор Python і велика стандартна бібліотека доступні безкоштовно у вигляді вихідних та виконуваних кодів для всіх основних платформ і можуть вільно розповсюджуватися."

У процесі вивчення буде розкрито зміст цього визначення, а зараз достатньо знати, що Python – це універсальна мова програмування. Він має свої переваги та недоліки, а також сфери застосування. У постачання Python входить велика стандартна бібліотека для вирішення широкого кола завдань. В Інтернеті доступні якісні бібліотеки для Python з різних предметних областей: засоби обробки текстів та технології Інтернет, обробка зображень, інструменти для створення програм, механізми доступу до баз даних, пакети для наукових обчислень, бібліотеки побудови графічного інтерфейсу тощо. Крім того, Python має досить прості засоби для інтеграції з мовами C, C++ (і Java) як шляхом вбудовування (embedding) інтерпретатора у програми цими мовами, так і навпаки, за допомогою використання бібліотек, написаних цими мовами, у Python-програмах. Мова Python підтримує декілька парадигмпрограмування: імперативне (процедурний, структурний, модульний підходи), об'єктно-орієнтоване та функціональне програмування.

Можна вважати, що Python це ціла технологія для створення програмних продуктів (і їх прототипів). Вона доступна майже на всіх сучасних платформах (як 32-бітових, так і на 64-бітових) з компілятором C та на платформі Java.

Може здатися, що в програмній індустрії немає місця для чогось іншого крім C/C++, Java, Visual Basic, C#. Однак, це не так. Можливо, завдяки цьому курсу лекцій та практичних занять у Python з'являться нові прихильники, для яких він стане незамінним інструментом.

Як описати мову?

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

Однак, варто звернути увагу на правильний підхід до опису мови. Створення програми - це завжди комунікація, у якій програміст передає комп'ютеру інформацію, необхідну виконання останніх дій. Те, як ці дії розуміє програміст (тобто "зміст"), можна назвати семантикою. Засобом передачі цього сенсу є синтаксисмови програмування. Ну а те, що робить інтерпретатор на підставі переданого, зазвичай називають прагматикою. При написанні програми дуже важливо, щоб у цьому ланцюжку не виникало збоїв.

Синтаксис – повністю формалізована частина: його можна описати на формальною мовоюсинтаксичних діаграм (що робиться в довідкових посібниках). Виразом прагматики є сам інтерпретатор мови. Саме він читає записане відповідно до синтаксису "послання" і перетворює його на дії за закладеним у ньому алгоритмом. Неформальним компонентом залишається лише семантика. Саме в перекладі сенсу у формальний опис і криється найбільша складність програмування. Синтаксис мови Python має потужні засоби, які допомагають наблизити розуміння проблеми програмістом до її "розуміння" інтерпретатором. Про внутрішній пристрій Python буде говорити в одній із завершальних лекцій.

Історія мови Python

Створення Python було розпочато Гвідо ван Россумом (Guido van Rossum) у 1991 році, коли він працював над розподіленою ОС Амеба. Йому була потрібна мова, що розширюється, який би забезпечив підтримку системних викликів. За основу були взяті ABC та Модула-3. Як назви він вибрав Python на честь комедійних серій BBC "Літаючий цирк Монті-Пайтона", а зовсім не за назвою змії. З того часу Python розвивався за підтримки тих організацій, у яких Гвідо працював. Особливо активно мову вдосконалюється нині, коли з неї працює як команда творців, а й ціле співтовариство програмістів з усього світу. І все-таки останнє слово про напрям розвитку мови залишається за Гвідо ван Россумом.