Конструктор уроків
1
При виконанні, програма обробляє дані різного типу (числові, текстові дані тощо). Тип даних задає як множину можливих значень даних, так і визначає операції, які можуть бути над ними виконані.
Кожне з даних характеризується розміром виділеної пам’яті для зберігання, ім’ям (ідентифікатором), типом і значенням.
Імена дозволяють ідентифікувати дані, тобто відрізняти їх між собою. Тип обирають для кожної величини, яка використовується для подання реальних об’єктів.
Мови програмування мають в своєму арсеналі деякі прості (вбудовані) типи даних. Вони використовуються як базові блоки для програм та складних (спеціалізованих) типів даних.
У Python вбудовані такі прості типи даних:
Булевий (має значення True і False).
Цілі числа (наприклад, 81, 1000).
Числа з рухомою крапкою (наприклад, 3.14159, 2.5e8, 4000.0).
Рядки (послідовності текстових символів, наприклад Hello, Python!).

Кожен тип має специфічні правила використання і вони по-різному обробляються комп’ютером.
Що таке об’єкт?
Об’єкт можна уявити як скриньку, у якій міститься фрагмент даних. Об’єкт має тип (наприклад, тип булевих значень або тип цілих чисел), який визначає, що можна зробити з цими даними.
У реальному світі скринька з написом «Книги» повідомляє нам інформацію, що в ній містяться книги (фрагменти даних), які ми можемо звідти дістати або покласти нові, але виключно книги.
Точно так само і в Python - якщо об’єкт має тип цілих чисел, ви знаєте, що зможете скласти його з іншим об’єктом, який має такий самий тип цілих чисел.
Тип також визначає, чи можна змінити значення, яке зберігається в скриньці (змінюване значення), або воно є константою (незмінне значення).
Об’єкт, значення якого неможливо змінити, можна порівняти із закритою скринькою з віконцем: ви можете побачити значення, але не можете змінити його. В рамках тієї ж аналогії, об’єкт, значення якого можна змінити, схожий на відкриту скриньку: ви не тільки можете побачити значення, яке там зберігається, а й змінити його, однак не можете змінити тип об’єкта (скриньки).
Мови програмування також дозволяють визначати змінні. Ви можете визначити їх для використання у своїй програмі.
В Python для присвоювання змінній певного значення використовується символ =.

У наступному фрагменті програми ціле число 12 присвоюється змінній з ім’ям a, потім на екран виводиться значення, пов’язане в поточний момент з цією змінною:

Дуже розповсюджене твердження, що змінна - це контейнер для зберігання значень. Така аналогія справедлива для багатьох мов програмування (наприклад, C).
З іншого боку, змінні в Python схожі не на контейнери, а на ярлики чи стікери-наклейки, які прикріплюються до об’єктів із простору імен інтерпретатора Python.
До одного об’єкта може прикріплюватися будь-яка кількість стікерів (змінних), і при зміні цього об’єкта, значення, на які посилаються усі ці змінні, також змінюються.
Розглянемо простий фрагмент програми на Python, щоб зрозуміти, що це означає:

* Змінна a містить список із трьох числових значень.
* Присвоюємо змінній b значення a.
* Присвоюємо змінній c значення b.
А тепер змінимо перше значення (з 5 на 100) у списку, який зберігається у змінній b:

Змінні - це всього-навсього стікери-наклейки (ярлики), які прикріплені до об’єктів, то зміна вмісту об’єкта, до якого відносяться усі три стікери, просто відображається в усіх трьох змінних.

За допомогою інтерактивного інтерпретатора виконайте наступні кроки:
Як і раніше, надайте значення 12 змінній a. Це створить об’єкт-«скриньку», який міститиме цілочисельне значення 12.
Виведіть на екран значення a.
Присвойте a змінній b, змусивши b прикріпитися до об’єкту-«скриньки», який містить значення 12.
Виведіть значення b.

Давайте перевіримо, чи посилаються змінні a і b на один і той же цілочисельний об’єкт зі значенням 12 за допомогою функції id().

Тепер змінна b вказує на новий об’єкт, оскільки стікер-наклейку (змінну) ми переклеїти з одного об’єкта на інший (ідентифікатори змінилися):

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

Змінна s спочатку посилається на рядковий об’єкт зі значенням Python, а потім на об’єкт цілого числа 3.
Змінна може бути заново пов’язана з будь-яким типом. Якщо з об’єктом не пов’язана жодна змінна, ви фактично кажете Python знищити об’єкт при першій можливості, щоб звільнити займану ним пам’ять (в програмуванні це називається збиранням сміття).

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

Необхідно дотримуватись певних вимог використання імен змінних. Імена змінних можуть містити тільки такі символи:
літери в нижньому регістрі (a-z)
літери у верхньому регістрі (A-Z)
цифри (0-9)
нижнє підкреслення (_)
Імена не можуть починатися з цифри.


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

Числа дуже часто застосовуються у програмуванні (ведення рахунку у грі, представлення даних на діаграмі, зберігання інформації у веб-застосунках тощо). Числа використовуються у виразах (наприклад, 2 + 3), у яких виконують обчислення за допомогою математичних операторів (наприклад, +) над операндами (наприклад, 2, 3).

Будь-яка послідовність цифр в Python вважається цілим числом:




Аналогічно виразу a = a - 3.
Аналогічно виразу a = a + 8.
Аналогічно виразу a = a * 2.
Аналогічно виразу a = a / 3.
За допомогою символу %, коли він знаходиться між двома числами, обчислюється остача від ділення першого числа на друге:

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

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

Функції int() можна передати необов’язковий другий аргумент з основою системи числення, яка повинна використовуватися при інтерпретації вхідного рядка. Проаналізуємо такий код:

Перетворення числового рядка '123.456' у ціле число є неможливим, виникнення помилки ValueError, оскільки числовий рядок містить крапку.
Інтерпретація числового рядка '100' у вісімковій системі числення і перетворення в десяткове число 64.
Інтерпретація числового рядка '10011' у двійковій системі числення і перетворення в десяткове число 19.
Інтерпретація рядка 'fa' у шістнадцятковій системі числення і перетворення в десяткове число 250.
Інтерпретація числового рядка '123' у трійковій системі числення є неможливим, виникнення помилки ValueError, оскільки цифра 3 відсутня у трійковій системі числення.
Інтерпретація числового рядка '12' у трійковій системі числення і перетворення в десяткове число 5.
Для встановлення пріоритетів виконання операторів можна також скористатися дужками:

Для того щоб перетворити інші типи в тип float (так називають дійсні числа в Python), cлід використовувати функцію float().

Булеві значення обробляються як невеликі числа:

Python надає стандартні функції для роботи з числовими даними: abs(), pow(), round().
Розглянемо як ці функції працюють:

Повертає абсолютне значення від’ємного цілого числа.
Повертає абсолютне значення від’ємного дробового числа.
Піднесення додатного цілого числа до степеня 3.
Піднесення від’ємного дробового числа до степеня 2.
Якщо не вказано другого аргумента, округлює число до найближчого цілого числа (число 11 ближче знаходиться).
Якщо не вказано другого аргумента, округлює число до найближчого цілого числа. Але, якщо два кратні числа однаково рівновіддалені, округлення робиться в напрямку парного вибору (округлення до 4, оскільки 4 парне).
Якщо не вказано другого аргумента, округлює число до найближчого цілого числа. Але, якщо два кратні числа однаково рівновіддалені, округлення робиться в напрямку парного вибору (округлення до 8, оскільки 8 парне).
Повертає число з рухомою крапкою, округлене до вказаного числа цифр після десяткової крапки.
Обидва числа мають однакове округлення 2.67, хоча число 2.675 повинно було б бути округлене до 2.68. Це не є помилкою. Це особливість представлення десяткових дробів у Python, яка пов’язана з точністю обчислення.
Для виконання ряду програм, зазвичай, потрібна деяка інформація, яку повинен ввести користувач. Простий приклад: припустимо, користувач хоче дізнатися, чи достатній його вік для голосування. Програма повинна отримати від користувача значення - його вік; коли у програми з’являться дані, вона може порівняти їх з віком, що дає право на голосування, і повідомити результат.

Функція input() призупиняє виконання програми і чекає, поки користувач введе деякий текст і натисне Enter.
Кожен раз, коли у вашій програмі використовується функція input(), ви повинні включати зрозумілу підказку-текст (наприклад, "Please enter your name: "), яка точно повідомить користувачеві, яку інформацію від нього хочуть отримати.
Наприклад, для даного фрагменту коду додайте пробіл в кінці підказки (після двокрапки), щоб відокремити підказку від даних, що вводяться користувачем, і чітко показати, де повинен вводитися текст:

При використанні функції input() Python інтерпретує всі дані, введенні користувачем, як рядок. У наступному сеансі інтерпретатора програма запитує у користувача вік:

Користувач вводить число 25, але, коли ми запитуємо у Python значення age, виводиться '25' - введене число в рядковому форматі. Лапки, в яких знаходяться дані, вказують на те, що Python інтерпретує введення як рядок.
Спроба використовувати введені дані як число викликає помилку:

Коли ви намагаєтеся порівняти введені дані з числом, Python видає помилку, тому що не може порівняти рядок з числом.
Проблему можна вирішити за допомогою функції int(), яка інтерпретує рядок як ціле числове значення.

У цьому прикладі введене число 25 інтерпретується як рядок, але потім він перетвориться в числове представлення викликом int(). Тепер Python може перевірити умову: порівняти змінну age (яка тепер містить ціле числове значення 25) з 18.
Якщо необхідно отримати число з рухомою крапкою із введеного рядка, використовують функцію float().

В даному випадку було використаний синтаксис, що поєднує послідовне виконання двох функцій input() і float(): спочатку відбулося введення значення, далі інтерпретація значення як рядка, а потім перетворення рядка у число з рухомою крапкою.
Рефлексія від 0 учнів
Сподобався:
Так: 0
Ні: 0
Зрозумілий:
Так: 0
Ні: 0
Потрібні роз'яснення:
Ні: 0
Так: 0
Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.