вівторок, 13 квітня 2021 р.

Перетворення типів диних (Інформатика - 8 кл.)

 Перетворення типів даних у Python


Перетворення типів

Часто виникає необхідність перейти від одного типу даних до іншого. Наприклад,  число, яке виводиться на екран, спочатку може знадобитися перетворити в текст. Цю операцію за вас виконує команда print, але бувають ситуації, коли потрібно поміняти тип без виведення інформації на екран або здійснити перетворення рядка в число (таке перетворення команда print виконувати не вміє). Ця операція називається перетворенням типів (type conversion). Яким чином вона реалізується? Насправді інтерпретатор Python не «перетворює» типи один в одного. Він створює з вихідного елемента новий елемент потрібного вам типу. Ось ряд функцій, які вміють виконувати цю операцію: 

  • float () створює нове число з плаваючою точкою (десяткове) з рядка або цілого числа. 
  • int () створює нове ціле число з рядка або числа з плаваючою крапкою. 
  • str () створює новий рядок з числа (або значення будь-якого іншого типу).

Дужки в кінці вказують, що перед нами не команди мови Python (такі як print), а вбудовані в нього функції. Детально функції будуть розглянуті трохи пізніше, а на даному етапі вам досить знати, що значення яке підлягає перетворенню вказується в дужках. Найкраще помітно це на прикладах. Розглянемо їх в інтерактивному режимі оболонки IDLE.

Перетворення цілого в десяткове

Візьмемо ціле число і за допомогою функції float () створимо на його основі число з плаваючою точкою:

>>> a = 12
>>> b = float(a)
>>> a
12
>>> b
12.0

Зверніть увагу на десяткову точку і завершальний 0 при виведенні змінної b. Саме за цими ознаками ми бачимо, що перед нами не ціле, а десяткове число. При цьому змінна a не змінюється, так як на початкове значення функція float () не впливає - вона створює нове значення. В інтерактивному режимі досить ввести ім'я змінної (без команди print), і інтерпретатор Python виведе на екран її значення. (Ви вже робили так) Однак в програмах це не працює. 

Перетворення десяткового в ціле 

Тепер спробуємо зробити зворотний перехід - візьмемо десяткове число і за допомогою функції int () отримаємо з нього ціле:

>>> c = 36.6
>>> d = int(c)
>>> c
36.6
>>> d
36

 Ми створили нову змінну d, яка представляє собою цілу частину змінної c.

Розглянемо ще один приклад:

>>> e = 99.98
>>> f = int(e)
>>> e
99.98
>>> f
99

Незважаючи на те що 99.98 - це майже 100, відповідь буде 99. Функція int() не виконує округлення, а просто відкидає дробову частину. Тому вона дає нам не найближче ціле, а менше з двох цілих.

Перетворення рядків у числа з плаваючою точкою

Отримати з рядка число можна наступним чином:

>>> a = '36.6'
>>> b = float(a)
>>> a
'36.6'
>>> b
36.6

 Зверніть увагу, що змінна a виводиться в лапках. Так інтерпретатор Python показує, що це рядок. А для змінної b виводиться значення з плаваючою точкою. 

Отримуємо додаткову інформацію 

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

>>> a = '36.6'
>>> b = 36.6
>>> c = 36
>>> type(a)
<
class 'str'>
>>> type(b)
<
class 'float'>
>>> type(c)
<
class 'int'>

 Функція type () для змінної a виводить class 'str', що відповідає рядку, для змінної b - class 'float', а , для змінної c - class 'int'. Вам більше не потрібно нічого вгадувати! 

Помилки при перетворенні типів 

Якщо дати функції int () або float () щось відмінне від числа, вона не спрацює. Переконайтеся самі:

>>> print(float('Hello!'))
Traceback (most recent call last):
  File "<pyshell#30>", line 1, in <module>
    print(float('Hello!'))
ValueError: could not convert string to float: 'Hello!'

 Ми отримали повідомлення про помилку, в якому говориться, що інтерпретатор Python не знає, як перетворити рядок "Hello!" в число. А ви знаєте? 


(Джерело: http://nikolay.in.ua/navchaemos/python-3/612-tipi-danikh-funktsiji-peretvorennya-tipiv-operatsiji-z-chislovimi-tipami)

Немає коментарів:

Дописати коментар