Рейтинг користувача: 4 / 5

Активна зіркаАктивна зіркаАктивна зіркаАктивна зіркаНеактивна зірка
 

СЕРЕДОВИЩЕ ПРОГРАМУВАННЯ PYTHON

МЕТОДИЧНІ ВКАЗІВКИ

до лабораторної роботи № 1

з дисципліни “Алгоритмізація та програмування, частина 2”

для студентів спеціальності 122 «Комп’ютерні науки та інформаційні технології»

Затверджено

на засіданні кафедри інформаційних систем та мереж

Протокол №__ від _____.2017 р.

Середовище програмування Python: Методичні вказівки до лабораторної роботи №1 / Укл.: В.А. Висоцька, Л.В. Чирун. – Львів: Видавництво Національного університету ”Львівська політехніка”, 2017. – 23 с.

Укладачі

                                      Висоцька В.А., канд. техн. наук, доц.

                                      Чирун Л.В., канд. техн. наук, доц.

                           

 

Відповідальний за випуск Литвин В.В., доктор техн. наук., проф.

Рецензенти     Верес О.М., канд. техн. наук, доц.

                          Берко А.Ю., доктор техн. наук., проф.


Мета роботи: ознайомитись із Python.

  1. Теоретичні відомості
  2. 1.Знайомство з середовищем програмування Python
  3. 1.1.Програмне забезпечення
  4. 1.2.Інтерактивний режим
  • Сам інтерпретатор з інтерактивною оболонкою IDLE. Його можна взяти тут (http://python.org/download/). Існують версії для Linux, Windows, MacOS.
  • Середовище розробки. Воно для початку необов'язкове, та й те що йде в дистрибутиві підійде новачкові, але для серйозних проектів потрібно щось серйозніше. Для Windows, наприклад, можна використовувати чудовий легкий PyScripter, для Linux - Komodo IDE.

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

>>> 

В основному інтерпретатор виконує команди порядково: пишеш рядок, натискаєш Enter, інтерпретатор виконує її, спостерігаєш результат.

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

Примітка: Працювати в інтерактивному режимі в ОС Linux можна не лише в оболочці IDLE але й безпосередньо в консолі. Для цього слід виконати команду python. Запуститься інтерпретатор, де спочатку виведеться інформація про інтерпретатор. Далі, послідує запрошення до вводу (>>>). Хоча працювати в інтерактивній оболочці IDLE зручніше, так як там є підсвічування синтаксису (залежно від значення синтаксичної одиниці вона виділяється певним кольором) і спливаючі підказки.

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

>>>2+5
7
>>>3*(5-8)
-9
>>>2.4+3.0/2
3.9

Прокручувати список раніше введених команд можна за допомогою комбінацій Alt + N,Alt + P.

  1. 1.3.Створення скриптів

Незважаючи на зручності інтерактивного режиму роботи при написанні програм на Python, зазвичай потрібно зберігати вихідний програмний код для подальшого використання. У такому випадку підготовлюються файли, які передаються потім інтерпретатору на виконання. По відношенню до інтерпретованих мов програмування часто вихідний код називають скриптом. Файли з кодом на Python зазвичай мають розширення py.

Підготувати скрипти можна в тому ж середовищі IDLE. Для цього, після запуску програми в меню слід вибрати команду File → New Window (Crtl + N), відкриється нове вікно. Потім бажано відразу зберегти файл (не забуваємо про розширення py). Після того як код буде підготовлений, знову збережіть файл (щоб оновити збереження). Ну і нарешті, можна запустити скрипт, виконавши команду меню Run → Run Module (F5). Після цього в першому вікні з'явиться результат виконання коду. (Примітка: якщо набирати код, не зберігши спочатку файл, то підсвічування синтаксису буде відсутнє.)

Підготуйте скрипт (з прикладами). Запустіть його на виконання.

Насправді скрипти можна готувати в будь-якому текстовому редакторі (бажано, щоб він підтримував підсвічування синтаксису мови Python). Крім того, існують спеціальні програми для розробки. Запускати підготовлені файли можна не тільки в IDLE, але і в консолі (для Linux) за допомогою команди

python адреса/ім'я_файлу

У консолі передайте інтерпретатору Пітона на виконання підготовлений файл.

Крім того, існує можливість налаштувати виконання скриптів за допомогою подвійного кліка по файлу (в Windows дана можливість присутня від початку).

Числа в Python 3 нічим не відрізняються від звичайних чисел. Вони підтримують набір звичайнісіньких математичних операцій:

x + y Додавання
x - y Віднімання
x * y Множення
x / y Ділення
x // y Отримання цілої частини від ділення
x % y Залишок від ділення
-x Зміна знака числа
abs(x) Модуль числа
divmod(x, y) Пара (x // y, x % y)
x ** y Піднесення до степеня
pow(x, y[, z]) xy по модулю (якщо модуль заданий)

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

>>>

>>> 255 + 34
289
>>> 5 * 2
10
>>> 20 / 3
6.666666666666667
>>> 20 // 3
6
>>> 20 % 3
2
>>> 3 ** 4
81
>>> pow(3, 4)
81
>>> pow(3, 4, 27)
0
>>> 3 ** 150
369988485035126972924700782451696644186473100389722973815184405301748249
  1. 1.4.Системи числення

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

>>>

>>> a = int('19') # Переводимо рядок в число
>>> b = int('19.5')  # Рядок не є цілим числом
Traceback (most recent call last):
  File "", line 1, in
ValueError: invalid literal for int() with base 10: '19.5'
>>> c = int(19.5)  # Числа з дробовою частиною, яку можна не враховувати
>>> print(a, c)
19 19
>>> bin(19)
'0b10011'
>>> oct(19)
'0o23'
>>> hex(19)
'0x13'
>>> 0b10011  # Запис числових констант
19
>>> int('10011', 2)
19
>>> int('0b10011', 2)
19
  1. 2.Числа (з плаваючою комою) (float)

Речові числа підтримують ті ж операції, що і цілі. Проте (через представлення чисел в комп'ютері) речові числа неточні, і це може призвести до помилок:

>>> 

>>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1
0.9999999999999999

Для високої точності використовують інші об'єкти (наприклад десяткової і фракція).

Також речові числа не підтримують довгу арифметику:

>>>

>>> a = 3 ** 1000
>>> a + 0.1
Traceback (most recent call last):
  File "", line 1, in
OverflowError: int too large to convert to float

Просты приклади з числами:

>>>

>>> c = 150
>>> d = 12.9
>>> c + d
162.9
>>> p = abs(d - c)  # Модуль числа
>>> print(p)
137.1
>>> round(p)  # Заокруглення
137
  1. 2.1.Додаткові методи

float.as_integer_ratio() - пара цілих чисел, відношення яких рівне цьому числу.

float.is_integer() - перевіряє чи значення є цілим чмслом.

float.hex() - переводить float в hex (шістнадцяткову систему числення).

classmethod float.fromhex(s) - float із шістнадцяткової строки.

>>>

>>> (10.5).hex()
'0x1.5000000000000p+3'
>>> float.fromhex('0x1.5000000000000p+3')
10.5

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

>>>

>>> import math
>>> math.pi
3.141592653589793
>>> math.sqrt(85)
9.219544457292887

Модуль random реалізує генератор випадкових чисел і функції випадкового вибору.

>>>

>>> import random
>>> random.random()
0.15651968855132303

 

  1. 3.Комплексні числа (complex)

У Python вбудовані також і комплексні числа:

>>>

>>> x = complex(1, 2)
>>> print(x)
(1+2j)
>>> y = complex(3, 4)
>>> print(y)
(3+4j)
>>> z = x + y
>>> print(x)
(1+2j)
>>> print(z)
(4+6j)
>>> z = x * y
>>> print(z)
(-5+10j)
>>> z = x / y
>>> print(z)
(0.44+0.08j)
>>> print(x.conjugate())  # Спряжене число
(1-2j)
>>> print(x.imag)  # Додаткова частина
2.0
>>> print(x.real)  # Дійсна  частина
1.0
>>> print(x > y)  # Комплексні числа не можна порівняти
Traceback (most recent call last):
  File "", line 1, in
TypeError: unorderable types: complex() > complex()
>>> print(x == y)  # Можна перевірити на рівність
False
>>> abs(3 + 4j)  # Модуль комплексного числа
5.0
>>> pow(3 + 4j, 2)  # Піднесення до степені
(-7+24j)
  1. 4.Логічні вирази
  2. 4.1.Логічні вирази і логічний тип даних

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

На минулому уроці були описані три типи даних: цілі, дробові числа, а також рядки. Також виділяють логічний тип даних. У цього типу всього два можливих значення: True(правда) - 1 і False (неправда) - 0. Тільки ці значення можуть бути результатом логічних виразів.

  1. 4.2.Логічні оператори

Говорячи природною мовою (наприклад, українською) ми позначаємо порівняння словами "дорівнює", "більше", "менше". У мовах програмування використовуються спеціальні знаки, подібні тим, які використовуються в математичних виразах: > (більше),< (менше), >= (більше або дорівнює), <= (менше або дорівнює).

Новими для вас можуть виявитися позначення рівності: == (два знаки “дорівнює”); а також нерівності != (знак оклику і знак “дорівнює”). Тут слід звернути увагу на наступне:не плутайте операцію присвоювання, що позначається у мові Python одиночним знаком "дорівнює", і операцію порівняння (два знаки "дорівнює"). Присвоєння і порівняння - зовсім різні операції.

Приклади роботи з логічними виразами на мові програмування Python (зауважте, що після символа # написані коментарі, їх можна вставляти в код, інтерпретатор їх ігнорує):

x == 4 # x дорівнює 4
x == 7 # x дорівнює 7
x != 7 # x не дорівнює 7
x != 4 # x не дорівнює 4
x > 5 # x більше 5
x < 5 # x менше 5
x >= 6 # x більше або дорівнює 6
x <= 6 # x менше або дорівнює 6

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

  1. 4.3.Складні логічні вирази

Логічні вирази типу x >= 1023 є простими. Однак, на практиці нерідко використовуються більш складні. Може знадобитися отримати відповіді "Так" або "Ні" залежно від результату виконання двох простих виразів. Наприклад, "на вулиці йде сніг або дощ", "змінна new більша 12 і менша 20" і т.п.

У таких випадках використовуються спеціальні оператори, що об'єднують два і більше простих логічних вирази. Широко використовуються два способи об'єднання: через, так звані, логічні І (and) та АБО (or).

Щоб отримати істину (True) при використанні оператора and, необхідно, щоб результати обох простих виразів, які пов'язує даний оператор, були істинними. Якщо хоча б в одному випадку результатом буде False (неправда), то і весь складний вираз буде хибним.

Щоб отримати істину (True) при використанні оператора or, необхідно, щоб результат хоча б одного простого виразу, що входить до складу складного, був істинним. У разі оператора or складний вираз стає помилковим (False) лише тоді, коли помилкові всі прості вирази, що його утворюють.

Приклади роботи зі складними логічними виразами на мові програмування Python (ще раз зауважуємо, що після символу # написані коментарі):

x = 8
y = 13
x == 8 and y < 15 # x дорівнює 8 та y менше 15
x > 8 and y < 15 # x більше 8 та y менше 15
x != 0 or y > 15 # x не дорівнює 0 або y менше 15
x < 0 or y > 15 # x менше 0 або y менше 15

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

  1. 5.Файли

Для роботи з файлами потрібно створити об’єкт класу file і скористатися методами read, write, readline для читання або запису. Здатність читати файл або записувати в нього дані залежить від режиму який ти вказав при відритті файлу. Після завершення роботи з файлом слід викликати для нього метод close для того щоб вказати Python що ми його вже не використовуємо.

  1. 5.1.Відкриття та закриття файлу в Python.

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

Синтаксис функції Open () в Python.

my_file = відкрито (ім'я_файлу [, режим_доступу] [, буферизація])

При цьому:ім'я_файла: рядок, що містить ім'я файлу з розширенням. Наприклад, "my_file.txt".

Режим_доступу це рядок, де ми вказуємо для чого відкривається файл: для читання, записи, додавання інформації, і т.д. Наприклад, "w". За замовчуванням файл відкривається для читання - "r".

  1. 5.2.Список режимів доступу до файлу у мові Python.
Режим Позначення
'r' відкриття на читання (є значенням за замовчуванням).
'w' відкриття на запис, вміст файлу видаляється, якщо файлу не існує, розпочинається нова.
'x' відкриття на запис, якщо файлу не існує інакше виняток.
'a' відкриття на дозапис, інформація додається в кінець файлу.
'b' відкриття в двійковому режимі.
't' відкриття в текстовому режимі (є значенням за замовчуванням).
'+' відкриття

file.closed Повертає True якщо файл був закритий.

file.mode Повертає режим доступу, з яким був відкритий файл.

file.name Повертає ім'я файлу.

file.softspace Повертає значення False якщо при виведенні вмісту файлу слід окремо додавати пробіл.

f = open('poem.txt', 'w') # 'w' вказує на те що файл відкрито для запису

f.write(poem) # записати текст до файлу

f.close() # закрити файл

f = open('poem.txt') # якщо режим не вказано, припускається що файл відкрито тільки для читання

f.close() # Закрити файл.

  1. 6.Умовний оператор. Інструкція if.

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

Щоб краще зрозуміти чому, проведемо аналогію з реальним життям. Припустимо, людина живе за розкладом (можна сказати, розклад - це своєрідний "програмний код", який слід виконати). У її розкладі о 18.00 запланований похід до басейну. Проте людині надходить інформація, що воду злили, і басейн не працює. Цілком логічно скасувати своє заняття з плавання. Тобто однією з умов відвідування басейну має бути його функціонування, інакше повинні виконуватися інші дії.

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

 

Приклад її реалізації на мові програмування Python:

if numbig < 100:
    c = a ** b

Розшифруємо цей вираз: якщо змінна numbig менша за 100 то виконується дія c=a**b

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

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

 

Можна зобразити блок-схему програми, яка містить інструкцію if, в такому вигляді:

 

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

 

Приклад коду з гілкою else на мові програмування Python:

tovar1 = 50
tovar2 = 32
if tovar1 + tovar2 > 99:
    print("Сума не достатня")
else:
    print("Чек сплачено" )

Примітка: команда print() виводить текстову інформацію на екран. У попередніх версіях Python написання даної команди було дещо іншим: print text (тобто текст для виведення не розміщувався в дужках а писався через пробіл).

(Для ознайомлення з повним текстом статті необхідно залогінитись)