Урок:

Мова програмування Python №2

Вміст уроку:
1

Урок не містить жодного завдання. Додайте завдання.

Щоб додати завдання, оберіть категорію завдання на панелі запитань.

1

Прості типи даних

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

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

Імена дозволяють ідентифікувати дані, тобто відрізняти їх між собою. Тип обирають для кожної величини, яка використовується для подання реальних об’єктів.

Мови програмування мають в своєму арсеналі деякі прості (вбудовані) типи даних. Вони використовуються як базові блоки для програм та складних (спеціалізованих) типів даних.

У Python вбудовані такі прості типи даних:

  1. Булевий (має значення True і False).

  2. Цілі числа (наприклад, 81, 1000).

  3. Числа з рухомою крапкою (наприклад, 3.14159, 2.5e8, 4000.0).

  4. Рядки (послідовності текстових символів, наприклад Hello, Python!).

    0901lvmv-77a3-940x103.png

    Кожен тип має специфічні правила використання і вони по-різному обробляються комп’ютером.

    Об’єкти та змінні

    Що таке об’єкт?

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

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

    Точно так само і в Python - якщо об’єкт має тип цілих чисел, ви знаєте, що зможете скласти його з іншим об’єктом, який має такий самий тип цілих чисел.

    Тип також визначає, чи можна змінити значення, яке зберігається в скриньці (змінюване значення), або воно є константою (незмінне значення).

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

    Мови програмування також дозволяють визначати змінні. Ви можете визначити їх для використання у своїй програмі.

    В Python для присвоювання змінній певного значення використовується символ =.

    0901lvo9-b6b6-940x97.png

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

    0901lvok-6247-940x94.png

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

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

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

    Розглянемо простий фрагмент програми на Python, щоб зрозуміти, що це означає:

    0901lvqz-f1ba-940x97.png

    * Змінна a містить список із трьох числових значень.

    * Присвоюємо змінній b значення a.

    * Присвоюємо змінній c значення b.

    А тепер змінимо перше значення (з 5 на 100) у списку, який зберігається у змінній b:

    0901lvsc-dd70-940x359.png

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

0901lvt9-f8eb-940x448.png

За допомогою інтерактивного інтерпретатора виконайте наступні кроки:

  • Як і раніше, надайте значення 12 змінній a. Це створить об’єкт-«скриньку», який міститиме цілочисельне значення 12.

  • Виведіть на екран значення a.

  • Присвойте a змінній b, змусивши b прикріпитися до об’єкту-«скриньки», який містить значення 12.

  • Виведіть значення b.

    0901lvts-d193-940x166.png

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

0901lvu1-cd34-940x797.png

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

0901lvuc-0901-940x629.png

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

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

0901lvum-60f5-940x302.png

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

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

0901lvv2-f8b2-940x163.png

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

0901lvvb-2d3e-940x373.png

Необхідно дотримуватись певних вимог використання імен змінних. Імена змінних можуть містити тільки такі символи:

  • літери в нижньому регістрі (a-z)

  • літери у верхньому регістрі (A-Z)

  • цифри (0-9)

  • нижнє підкреслення (_)

Імена не можуть починатися з цифри.

0901lvvg-dec5-940x71.png

0901lvvl-5688-940x356.png

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

0901lvyl-c327-940x342.png

Числа

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

0901lvz6-db7b-940x377.png

Цілі числа

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

0901lw0f-ce5f-940x630.png

0901lw0p-6897-940x851.png

0901lw0z-ba94-940x282.png

0901lw11-84c2-940x505.png

  1. Аналогічно виразу a = a - 3.

  2. Аналогічно виразу a = a + 8.

  3. Аналогічно виразу a = a * 2.

  4. Аналогічно виразу a = a / 3.

За допомогою символу %, коли він знаходиться між двома числами, обчислюється остача від ділення першого числа на друге:

0901lw1e-709f-940x77.png

Перетворення типів: функція int()

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

0901lw3z-cc4f-940x100.png

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

0901lw46-0cb1-940x748.png

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

0901lw4m-fe10-940x397.png

  • Перетворення числового рядка '123.456' у ціле число є неможливим, виникнення помилки ValueError, оскільки числовий рядок містить крапку.

  • Інтерпретація числового рядка '100' у вісімковій системі числення і перетворення в десяткове число 64.

  • Інтерпретація числового рядка '10011' у двійковій системі числення і перетворення в десяткове число 19.

  • Інтерпретація рядка 'fa' у шістнадцятковій системі числення і перетворення в десяткове число 250.

  • Інтерпретація числового рядка '123' у трійковій системі числення є неможливим, виникнення помилки ValueError, оскільки цифра 3 відсутня у трійковій системі числення.

  • Інтерпретація числового рядка '12' у трійковій системі числення і перетворення в десяткове число 5.

    Пріоритет операторів

    Для встановлення пріоритетів виконання операторів можна також скористатися дужками:

    0901lw5g-51d0-940x76.png

    Перетворення типів: функція float()

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

    0901lw5z-e902-940x95.png

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

    0901lw6d-162b-940x115.png

    Математичні функції

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

    Розглянемо як ці функції працюють:

    0901lw6s-687c-940x432.png

    1. Повертає абсолютне значення від’ємного цілого числа.

    2. Повертає абсолютне значення від’ємного дробового числа.

    3. Піднесення додатного цілого числа до степеня 3.

    4. Піднесення від’ємного дробового числа до степеня 2.

    5. Якщо не вказано другого аргумента, округлює число до найближчого цілого числа (число 11 ближче знаходиться).

    6. Якщо не вказано другого аргумента, округлює число до найближчого цілого числа. Але, якщо два кратні числа однаково рівновіддалені, округлення робиться в напрямку парного вибору (округлення до 4, оскільки 4 парне).

    7. Якщо не вказано другого аргумента, округлює число до найближчого цілого числа. Але, якщо два кратні числа однаково рівновіддалені, округлення робиться в напрямку парного вибору (округлення до 8, оскільки 8 парне).

    8. Повертає число з рухомою крапкою, округлене до вказаного числа цифр після десяткової крапки.

    9. Обидва числа мають однакове округлення 2.67, хоча число 2.675 повинно було б бути округлене до 2.68. Це не є помилкою. Це особливість представлення десяткових дробів у Python, яка пов’язана з точністю обчислення.

      Введення даних з клавіатури

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

      Функція input()

      0901lw7z-e0a3-940x93.png

      Функція input() призупиняє виконання програми і чекає, поки користувач введе деякий текст і натисне Enter.

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

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

      0901lw82-3647-940x120.png

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

      0901lw8c-4493-940x119.png

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

      Спроба використовувати введені дані як число викликає помилку:

      0901lw8j-fc7b-940x118.png

      Коли ви намагаєтеся порівняти введені дані з числом, Python видає помилку, тому що не може порівняти рядок з числом.

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

      0901lw8p-f531-940x230.png

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

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

      0901lw8z-81ba-940x209.png

      В даному випадку було використаний синтаксис, що поєднує послідовне виконання двох функцій input() і float(): спочатку відбулося введення значення, далі інтерпретація значення як рядка, а потім перетворення рядка у число з рухомою крапкою.

Рефлексія від 0 учнів

Сподобався:

0

Так: 0

Ні: 0

Зрозумілий:

0

Так: 0

Ні: 0

Потрібні роз'яснення:

0

Ні: 0

Так: 0

Рекомендуємо

Дії над списками у мові програмування Python

Дії над списками у мові програмування Python

644

Аватар профіля Лизько Валентина Степанівна
Інформатика
9 клас

35 грн

Структура програми. Мова програмування Python

Структура програми.  Мова програмування Python

627

Аватар профіля Якушенкова Оксана Анатоліївна
Інформатика
8 клас

20 грн

Вправи на повторення програмування в Python

Вправи на повторення програмування в Python

179

Аватар профіля Губчик Вероніка Григорівна
Інформатика
9—11 клас

33 грн

Мова програмування. Середовище програмування

Мова програмування. Середовище програмування

404

Аватар профіля Лизько Валентина Степанівна
Інформатика
7 клас

40 грн

Урок 1. Вступ до програмування мовою Python за допомогою ігрових технологій

Урок 1. Вступ до програмування мовою Python за допомогою ігрових технологій

248

Аватар профіля Чайковський Олександр Олександрович
Інформатика
5—8 клас

100 грн

9 клас. Урок 34. Дії над списками у мові програмування Python

9 клас. Урок 34. Дії над списками у мові програмування Python

211

Аватар профіля Вітенко Іван
Інформатика
9 клас

26 грн

Схожі уроки

Впорядкування, пошук і фільтрування даних.

Впорядкування, пошук і фільтрування даних.

1276

Аватар профіля Вожга Ірина Леонідівна
Інформатика
9 клас

Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.

Створення й уведення структури таблиць. Поняття таблиці, поля, запису. Створення таблиць, означення полів і ключів у середовищі СКБД. Властивості полів, типи даних.

1090

Аватар профіля Савка-Ржематорська Оксана Василівна
Інформатика
9 клас

Цикли з передумовою у вкладених циклах

Цикли з передумовою у вкладених циклах

1335

Аватар профіля Вожга Ірина Леонідівна
Інформатика
6 клас

Налаштування часових параметрів аудіо- та відеоряду.

Налаштування часових параметрів аудіо- та відеоряду.

489

Аватар профіля Солодовнікова Катерина Олексіївна
Інформатика
8 клас

Елемент керування «кнопка». Поняття об’єкту та його властивостей і методів (на прикладі елементів екранної форми). Властивості і методи елементів керування.

Елемент керування «кнопка». Поняття об’єкту та його властивостей і методів (на прикладі елементів екранної форми). Властивості і методи елементів керування.

642

Аватар профіля Пилипенко Олена Володимирівна
Інформатика
8 клас

Елемент керування кнопка

Елемент керування кнопка

267

Аватар профіля Пилипенко Олена Володимирівна
Інформатика
8 клас