## ++Тема 2++<br>Типи даних та змінні. Введення-виведення даних (c) [Яценко Р.М.](https://www.ek.hneu.edu.ua/vykladachi/yatsenko-roman-mykolajovych/), 2019-2023 [ХНЕУ ім. С. Кузнеця](https://www.hneu.edu.ua/) ---- ### Презентація ![](https://content.hneu.edu.ua/uploads/upload_f4be805f89b29c8e8f063d446f3d8a28.png) https://bit.ly/3yLjAnV --- ## 1. Введення і виведення даних ---- ### Виведення даних Для друку значень в Python є функція `print()` Усередині круглих дужок через кому ми пишемо те, що хочемо вивести ---- ### Приклад 1 ```python= print(5 + 10) print(3 * 7, (17 - 2) * 8) print(2 ** 16) # дві зірочки позначають зведення в ступінь print(37 / 3) # один слеш - це ділення з відповіддю-дробом print(37 // 3) # два слеша розраховують частка від ділення націло # це як операція div в інших мовах print(37 % 3) # відсоток розраховує залишок від ділення націло # це як операція mod в інших мовах ``` ---- ### Виконання <iframe frameborder="0" src="https://pythontutor.com/iframe-embed.html#code=print%285%20%2B%2010%29%0Aprint%283%20*%207,%20%2817%20-%202%29%20*%208%29%0Aprint%282%20**%2016%29%20%23%20%D0%B4%D0%B2%D1%96%20%D0%B7%D1%96%D1%80%D0%BE%D1%87%D0%BA%D0%B8%20%D0%BF%D0%BE%D0%B7%D0%BD%D0%B0%D1%87%D0%B0%D1%8E%D1%82%D1%8C%20%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%BD%D1%8F%20%D0%B2%20%D1%81%D1%82%D1%83%D0%BF%D1%96%D0%BD%D1%8C%0Aprint%2837%20/%203%29%20%20%23%20%D0%BE%D0%B4%D0%B8%D0%BD%20%D1%81%D0%BB%D0%B5%D1%88%20-%20%D1%86%D0%B5%20%D0%B4%D1%96%D0%BB%D0%B5%D0%BD%D0%BD%D1%8F%20%D0%B7%20%D0%B2%D1%96%D0%B4%D0%BF%D0%BE%D0%B2%D1%96%D0%B4%D0%B4%D1%8E-%D0%B4%D1%80%D0%BE%D0%B1%D0%BE%D0%BC%0Aprint%2837%20//%203%29%20%23%20%D0%B4%D0%B2%D0%B0%20%D1%81%D0%BB%D0%B5%D1%88%D0%B0%20%D1%80%D0%BE%D0%B7%D1%80%D0%B0%D1%85%D0%BE%D0%B2%D1%83%D1%8E%D1%82%D1%8C%20%D1%87%D0%B0%D1%81%D1%82%D0%BA%D0%B0%20%D0%B2%D1%96%D0%B4%20%D0%B4%D1%96%D0%BB%D0%B5%D0%BD%D0%BD%D1%8F%20%D0%BD%D0%B0%D1%86%D1%96%D0%BB%D0%BE%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20%D1%86%D0%B5%20%D1%8F%D0%BA%20%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D1%96%D1%8F%20div%20%D0%B2%20%D1%96%D0%BD%D1%88%D0%B8%D1%85%20%D0%BC%D0%BE%D0%B2%D0%B0%D1%85%0Aprint%2837%20%25%203%29%20%20%23%20%D0%B2%D1%96%D0%B4%D1%81%D0%BE%D1%82%D0%BE%D0%BA%20%D1%80%D0%BE%D0%B7%D1%80%D0%B0%D1%85%D0%BE%D0%B2%D1%83%D1%94%20%D0%B7%D0%B0%D0%BB%D0%B8%D1%88%D0%BE%D0%BA%20%D0%B2%D1%96%D0%B4%20%D0%B4%D1%96%D0%BB%D0%B5%D0%BD%D0%BD%D1%8F%20%D0%BD%D0%B0%D1%86%D1%96%D0%BB%D0%BE%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%20%D1%86%D0%B5%20%D1%8F%D0%BA%20%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D1%96%D1%8F%20mod%20%D0%B2%20%D1%96%D0%BD%D1%88%D0%B8%D1%85%20%D0%BC%D0%BE%D0%B2%D0%B0%D1%85&codeDivHeight=400&codeDivWidth=350&cumulative=false&curInstr=0&heapPrimitives=nevernest&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false" style="width: 100%; height: 70vh;"> </iframe> ---- ### Додаткові параметри `print` - За замовчуванням функція `print()` приймає кілька аргументів, виводить їх через пробіл, після чого робить новий рядок - Цю поведінку можна змінити, використовуючи іменовані параметри: - `sep` (роздільник) - `end` (закінчення) ---- ### Роздільник рядків Через параметр `sep` можна вказати відмінний від пробілу роздільник рядків: ```python= print("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun", sep="-") print(1, 2, 3, sep="//") print("a", "b", "c", sep="") ``` ``` Mon-Tue-Wed-Thu-Fri-Sat-Sun 1//2//3 abc ``` ---- ### Кінець рядка Параметр `end` дозволяє вказувати, що робити, після виведення рядка. За замовчуванням відбувається перехід на новий рядок. Однак цю дію можна скасувати, вказавши будь-який інший символ або рядок: ```python= print(10, end="") print('+', end="") print(20, end="") ``` `10+20` ---- ### Приклад 2 ```python= print(1, 2, 3) print(4, 5, 6) print(1, 2, 3, sep=', ', end='. ') print(4, 5, 6, sep=', ', end='. \n') print(1, 2, 3, sep='', end=' -- ') print(4, 5, 6, sep=' * ', end='.') ``` ``` 1 2 3 4 5 6 1, 2, 3. 4, 5, 6. 123 -- 4 * 5 * 6. ``` ---- ### Форматовані рядки<br>(f-рядки) ```python student = "Вася" old = 18 grade = 90.2 print(f"Це {student}, {old} років. Його(її) оцінка: {grade:.2f}") ``` `Це Вася, 18 років. Його(її) оцінка: 90.20` - У фігурних дужках може бути наведено змііну чи вираз для обрахунку - Для дійсних чисел можна зазначити кількість знаків після коми ---- ### Введення даннх - Для введення даних в програму ми використовуємо функцію `input()` - У дужках пишеться підказка для введення - Функція `input()` зчитує один рядок, введений з клавіатури ---- ### Приклад 3 ```python= print('Як вас звати?') # зчитуємо рядок та зберігаємо його в змінну name name = input() print('Вітаю, ' + name + '!') ``` ---- ### Виконання <iframe frameborder="0" src="https://pythontutor.com/iframe-embed.html#code=print%28'%D0%AF%D0%BA%20%D0%B2%D0%B0%D1%81%20%D0%B7%D0%B2%D0%B0%D1%82%D0%B8%3F'%29%0A%23%20%D0%B7%D1%87%D0%B8%D1%82%D1%83%D1%94%D0%BC%D0%BE%20%D1%80%D1%8F%D0%B4%D0%BE%D0%BA%20%D1%82%D0%B0%20%D0%B7%D0%B1%D0%B5%D1%80%D1%96%D0%B3%D0%B0%D1%94%D0%BC%D0%BE%20%D0%B9%D0%BE%D0%B3%D0%BE%20%D0%B2%20%D0%B7%D0%BC%D1%96%D0%BD%D0%BD%D1%83%20name%0Aname%20%3D%20input%28%29%20%20%0Aprint%28'%D0%92%D1%96%D1%82%D0%B0%D1%8E,%20'%20%2B%20name%20%2B%20'!'%29&codeDivHeight=400&codeDivWidth=350&cumulative=false&curInstr=0&heapPrimitives=nevernest&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false" style="width: 100%; height: 70vh;"> </iframe> --- ## 2. Типи даних ---- ### Об'єкти даних Вся інформація, що зберігається в пам'яті комп'ютера, складається з *об'єктів даних*, які мають форму чисел, символів і т.д. Кожен такий об'єкт даних повинен бути позначений унікальним ім'ям -- *ідентифікатором* і належати до певного *типу даних* ---- ### Константа це об'єкт даних зі значенням, яке в ході виконання програми не змінюється ---- ### Змінна це об'єкт даних, що має фіксоване ім'я (ідентифікатор) і значення, яке може змінюватися в залежності від застосовуваних дій ---- ### Створення констант і змінних ```python= # Числові константи LENGTH = 100 VES = 3.5 # Строкові константи MACHINE = 'Хонда' TV_SET = 'Samsung' # Числові змінні date = 13 month = 9 # Строкові змінні message = 'День програміста' comment = 'святкують на 256-й день року' ``` ---- ### Тип даних Тип об'єкта визначає, які дії можна робити з об'єктами цього типу: - можливі значення об'єктів даних (змінних і констант), що належать до даного типу - внутрішню форму представлення об'єктів даних в пам'яті комп'ютера - операції і функції, які можуть виконуватися над об'єктами даних, що належать до даного типу ---- ### Основні типи даних в Python - Цілі числа зберігаються в об'єктах типу `int` 4, 687, -45, 0 - Дробові числа (дійсні числа) - в об'єктах типу `float` 1.45, -3.789654, 0.00453 - Рядки зберігаються в об'єктах типу `str` `"ball", "What is your name?", 'dkfjUUv', '6589'` ---- ### Операції над цілими числами Знак | Операція :---:|:-------: `+` | додавання `-` | віднімання `*` | множення `**` | зведення в ступінь `/` | ділення (дробовий результат) `//` | ділення націло `%` | залишок від ділення ---- ### Приклад 4. Обчислення з цілими числами ```python= print("18 - 4 + 2 =", 18 - 4 + 2) print("6 * 3 =", 6 * 3) print("19 / 4 =", 19 / 4) print("107 // 4 =", 107 // 4) print("107 % 4 =", 107 % 4) ``` ``` 18 - 4 + 2 = 16 6 * 3 = 18 19 / 4 = 4.75 107 // 4 = 26 107 % 4 = 3 ``` ---- ### Приклад 5. Цифри тризначного числа ```python= a = int(input('Введить число')) one = a % 10 print('Цифра одиниць числа', one) dec = (a // 10) % 10 print('Цифра десятків числа', dec) hun = a // 100 print('Цифра сотень числа', hun) rez = hun * 100 + dec * 10 + one print('А це вихідне число', rez) ``` ---- ### Приклад 5. Виконання <iframe frameborder="0" src="https://pythontutor.com/iframe-embed.html#code=a%20%3D%20int%28input%28'%D0%92%D0%B2%D0%B5%D0%B4%D0%B8%D1%82%D1%8C%20%D1%87%D0%B8%D1%81%D0%BB%D0%BE'%29%29%20%0Aone%20%3D%20a%20%25%2010%0Aprint%28'%D0%A6%D0%B8%D1%84%D1%80%D0%B0%20%D0%BE%D0%B4%D0%B8%D0%BD%D0%B8%D1%86%D1%8C%20%D1%87%D0%B8%D1%81%D0%BB%D0%B0',%20one%29%0Adec%20%3D%20%28a%20//%2010%29%20%25%2010%0Aprint%28'%D0%A6%D0%B8%D1%84%D1%80%D0%B0%20%D0%B4%D0%B5%D1%81%D1%8F%D1%82%D0%BA%D1%96%D0%B2%20%D1%87%D0%B8%D1%81%D0%BB%D0%B0',%20dec%29%20%0Ahun%20%3D%20a%20//%20100%0Aprint%28'%D0%A6%D0%B8%D1%84%D1%80%D0%B0%20%D1%81%D0%BE%D1%82%D0%B5%D0%BD%D1%8C%20%D1%87%D0%B8%D1%81%D0%BB%D0%B0',%20hun%29%0Arez%20%3D%20hun%20*%20100%20%2B%20dec%20*%2010%20%2B%20one%0Aprint%28'%D0%90%20%D1%86%D0%B5%20%D0%B2%D0%B8%D1%85%D1%96%D0%B4%D0%BD%D0%B5%20%D1%87%D0%B8%D1%81%D0%BB%D0%BE',%20rez%29&codeDivHeight=400&codeDivWidth=350&cumulative=false&curInstr=0&heapPrimitives=nevernest&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false" style="width: 100%; height: 70vh;"> </iframe> ---- ### Операції над дійсними числами (float) Знак | Операція :---:|:-------: `+` | додавання `-` | віднімання `*` | множення `**` | зведення в ступінь `/` | ділення (дробовий результат) ---- ### Приклад 6. Даремні факти ```python= name = input("Вітаю. Як тебе звати? ") age = int(input("Скільки тобі років? ")) weight = int(input("Скільки в тобі кілограмів? ")) seconds = age * 365 * 24 * 60 * 60 print("Твій нинішній вік – більше", seconds, "секунд.") moon_weight = weight / 6 print("Чи знаєте Ви, що на Місяці ви б важили всього", moon_weight, "кг?") sun_weight = weight * 27.1 print("А ось, перебуваючи на Сонці, ви б важили", sun_weight, " кг. \n(Але, на жаль, це тривало б недовго...)") ``` ---- ### Приклад 6. Результат ``` Вітаю. Як тебе звати? Катя Скільки тобі років? 18 Скільки в тобі кілограмів? 55 Твій нинішній вік – більше 409968000 секунд. Чи знаєте Ви, що на Місяці ви б важили всього 9.166666666666666 кг? А ось, перебуваючи на Сонці, ви б важили 1490.5 кг. (Але, на жаль, це тривало б недовго...) ``` --- ## 3. Перетворення типів ---- ### Навіщо це потрібно? Часто виникає необхідність перейти від одного типу до іншого. Наприклад, `print` для виведення числа на екран спочатку перетворює його в текст Бувають ситуації, коли потрібно поміняти тип без виведення інформації на екран або здійснити перетворення рядка в число Ця операція називається *перетворенням типів* ---- ### Приклад 7 ```python= a = input() b = input() s = a + b print(s) ``` ---- ### Виконання <iframe frameborder="0" src="https://pythontutor.com/iframe-embed.html#code=a%20%3D%20input%28%29%0Ab%20%3D%20input%28%29%0As%20%3D%20a%20%2B%20b%0Aprint%28s%29&codeDivHeight=400&codeDivWidth=350&cumulative=false&curInstr=0&heapPrimitives=false&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false" style="width: 100%; height: 70vh;"> </iframe> ---- ### Приклад 8 ```python= a = int(input()) b = int(input()) s = a + b print(s) ``` ---- ### Виконання <iframe frameborder="0" src="https://pythontutor.com/iframe-embed.html#code=a%20%3D%20int%28input%28%29%29%0Ab%20%3D%20int%28input%28%29%29%0As%20%3D%20a%20%2B%20b%0Aprint%28s%29&codeDivHeight=400&codeDivWidth=350&cumulative=false&curInstr=0&heapPrimitives=false&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false" style="width: 100%; height: 70vh;"> </iframe> ---- ### функції перетворення - `float()` створює нове дійсне число з рядка або цілого числа - `int()` створює нове ціле число з рядка або дійсного числа - `str()` створює новий рядок з числа (або значення будь-якого іншого типу) ---- ### Перетворення цілого числа в дійсне ```python= a = 24 print(a) b = float(a) print(b) ``` ``` 24 24.0 ``` ---- ### Перетворення дійсного числа в ціле ```python= a = 24.7 print(a) b = int(a) print(b) c = round(a) print(c) ``` ``` 24.7 24 25 ``` --- ## 4. Складені оператори присвоювання ---- ### Форма запису `a = a * 5` можна записати так `a *= 5` ---- ### Інкремент та декремент Збільшення на одиницю (*інкремент*) `x += 1` Зменшення на одиницю (*декремент*) `x -= 1` ---- ### Таблиця складених операторів Оператор | Зразок | Рівносильно :-:|:-:|:-: `+=` | `x += 5` | `x = x + 5` `-=` | `x -= 5` | `x = x - 5` `*=` | `x *= 5` | `x = x * 5` `/=` | `x /= 5` | `x = x / 5` `%=` | `x %= 5` | `x = x % 5` ---- ### Множинне присвоювання В Python можна за одну інструкцію присвоювання змінювати значення відразу декількох змінних ```python a = 0 b = 1 # А можна в один рядок a, b = 0, 1 ``` ---- ### Приклад 9 Обмін значеннями двох змінних ```python= a = 1 b = 2 a, b = b, a print(a, b) ``` ``` 2 1 ``` --- ## 5. Математичні функції ---- ### Функція abs Функція `abs()` використовується для повернення абсолютного значення числа (модуль числа) ```python= f = -54.26 print(abs(f)) ``` ``` 54.26 ``` ---- ### Бібліотека math - Для математичних обчислень мова Python містить багато додаткових функцій, зібраних у бібліотеку (модуль), яка називається `math` - Для використання цих функцій на початку програми необхідно підключити математичну бібліотеку, що робиться командою `import math` ---- ### Округлення вгору - Наприклад, нехай ми хочемо округляти дробові числа до найближчого цілого числа нагору - Відповідна функція `ceil` викликається так: `math.ceil(x)` - Замість числа `x` може бути будь-яке число, змінна або вираз ---- ### Приклад 10 ```python= import math x = math.ceil(4.8) # округлення вгору y = math.sqrt(16) # квадратний корінь print(x) print(y) ``` ``` 5 4.0 ``` ---- ### Інші функції | функція | Опис | | --------------- | --------------------------------------------------------------------------- | | `round(x, n)` | Округлює число `x` до `n` знаків після крапки | | `pow(x, n)` | Повертає `x` в степені `n` | | `math.floor(x)` | Округлює число вниз («підлога»), причому `floor(1.5) = 1`, `floor(-1.5) = -2` | | `math.pi` | Константа $\pi = 3.1415...$ | --- ## Зміст 1. [Введення і виведення даних](#/1) 2. [Типи даних](#/2) 3. [Перетворення типів](#/3) 4. [Складені оператори присвоювання](#/4) 5. [Математичні функції](#/5) > (c) [Яценко Р.М.](https://www.ek.hneu.edu.ua/vykladachi/yatsenko-roman-mykolajovych/), 2019-2023 > [ХНЕУ ім. С. Кузнеця](https://www.hneu.edu.ua/)
{"title":"Тема 2. Типи даних та змінні. Введення-виведення даних","tags":"Python","type":"slide","slideOptions":{"allottedMinutes":85,"theme":"beige","slideNumber":"c","spotlight":{"enabled":true}}}