Новини високих технологій
» » Python: типи даних, умови, вимоги і приклади

Python: типи даних, умови, вимоги і приклади

10-12-2017, 21:35
6 651
Типи даних в Python є фундаментом, на якому вибудовується програмний код. У високорівневих мовах дані представлені як об'єкти, над якими вчиняються дії, прописані в коді. Типізація ж визначає набір допустимих методів і операцій.

Які типи даних бувають

Базові типи даних в Python є вбудованими колекціями. До них відносяться числа, рядки, списки. Але є об'єкти, створені самостійно, з використанням конструкцій і бібліотек мови. Зазвичай вони потрібні для вирішення складних програмних завдань, а не в повсякденній роботі.


В Python реалізовувати свої об'єкти немає ніякої необхідності. Мова пропонує вже готові і потужні інструменти розробки, які набагато простіше використовувати. Вони дозволяють працювати з великим об'ємом даних, з найменшими витратами зусиль і часу. Вбудовані типи – це ефективні структури даних. За рахунок того, що вони реалізовані на мові C, об'єкти забезпечують високу швидкість і продуктивність коду. Самостійно створені об'єкти можуть виконувати нестандартні завдання. Наприклад, стекові операції. Але вони набагато повільніше стандартних списків. До основних вбудованим в Python типів даних відносяться: Числа: 123431415 3+4j, Decimal, Fraction. Рядки: «spam», «b'c ax01c». Списки:[1,[2, «three»], 4]. Словники: {«food»: «spam»}. Кортежі: (1 «spam», 4 «U»). Безлічі set(«abc»), {«a», «b»}. Логічні змінні. Перераховані типи прийнято вважати базовими. При роботі з ними використовуються певні синтаксичні конструкції. Для рядків це лапки, або фігурні дужки для словників.


Що таке динамічна типізація

В Python немає конструкцій для оголошення змінних. Об'єкт автоматично задається синтаксисом в процесі виконання коду, що називається динамічною типізацією. Якщо в середовищі IDLE написати 678 це створить і поверне числовий тип даних. Вираз у квадратних дужках створить список, в лапках – рядок. Інший спосіб задати тип – присвоїти значення за допомогою знака «=»: my_string = «Hello, Python!» Після генерації кожен об'єкт отримує певне місце в пам'яті і набір власних операцій. Але спочатку в імен або змінних немає ніяких значень і понять типу. По суті, вони є посиланнями на об'єкти. Тому динамічна типізація дає можливість задавати однієї змінної кілька значень. Всі об'єкти мови відносяться до двох класів: змінні і незмінні типи даних. В Python до другої групи відносяться int, float, bool, str, tuple. Ці об'єкти не можна змінити, але деякі з них можна перетворити завдяки динамічної типізації: x = «123» int(x) 123 float(x) 123.0 До змінним об'єктів відносяться більшість послідовностей – списки, словники, безліч. Вони забезпечують гнучку роботу з кодом.

Лічильники посилань

Вся інформація про тип зберігається не в імені, а в об'єкті, на який посилається мінлива. Як тільки отримує ім'я посилання на новий об'єкт, інтерпретатор видаляє старий, звільняючи пам'ять.
x = 12 # привласнює змінної x числове значення. x = «spam» # x стає рядком. print(x). spam #12 повністю стирається і залишається тільки рядковий об'єкт «spam». У кожному об'єкті є лічильник посилань, за яким стежить інтерпретатор. Якщо їх кількість досягає нуля, об'єкт безповоротно видаляється, а місце, яке він займав, повертається в пул вільної пам'яті. Така поведінка полегшує роботу програміста і скорочує час на створення коду. Розробнику не потрібно писати окремо інструкції для знищення непотрібних об'єктів.
Порівняно з Java або C++, синтаксис в Python рази простіше. Завдяки динамічної типізації, код займає значно менше місця, з ним легко і приємно працювати. Але, незважаючи на видиму простоту і гнучкість, Python – це мова зі строгими правилами для кожного типу. Методи і операції застосовні до одного виду об'єктів, неприпустимі з відношенню до іншого: f = «apple». s = «cherry». f * s # спроба помножити рядка виведе повідомлення про помилку.

Числа

Найбільш проста для розуміння група даних. Працювати з числами кожен вміє ще зі школи. Складні обчислення з вищої математики прикладному програмісту навряд чи знадобляться. У більшості випадків вистачає стандартних арифметичних підрахунків з допомогою наступних операторів: додавання: var1+var2; віднімання: var1-var2; множення: var1*var2; розподіл: var1/var2; залишок від ділення: var1%var2; ціла частина від ділення: var1//var2. Цей вид ділиться на цілочисельні і речові об'єкти. До першої групи належать негативні і позитивні цілі числа int і логічні об'єкти bool. Дані типу int за умовчанням записуються в десятковій системі числення у вигляді цифрових символів. При бажанні їх можна вводити як двійкові, вісімкові або шістнадцяткові числа з префіксом 0b, 0o і 0x.
Вбудовані bool типи приймають два значення: True і False. Це зумовлені числові змінні. True дорівнює 1 а False – 0. Якщо в інтерпретаторі написати True + 5 вийде 6. Використовуючи конструкції мови будь-який об'єкт із стандартної бібліотеки можна перетворити на тип bool.

Речові числа float і complex

В Python для типу даних float використовуються числові літерали з десятковою крапкою або необов'язковою експонентою: 1231., 314 e-1040 e+210. Для роботи з float застосовують ті ж стандартні математичні оператори, що і для цілих чисел int. При необхідності можна виконувати перетворення типів даних. В Python для цього використовуються функції int() і round(): x = 1.8. y = 1.8. int(x). 1 # функція int() відкидає дробову частину. round(y). 2 #функція round() заокруглюються до цілого числа. Тип complex – це комплексні числа, що складаються з двох значень float. Перше є дійсною частиною і доступно у вигляді атрибута .real. Друга частина викликається за допомогою .imag і являє собою уявну складову об'єкта. Літерали комплексних чисел записуються наступним чином: my_number = -89.5+2125 J my_number.real, my_number.imag (-8952.125) Комплексні числа можна змінювати типами даних в Python. Операції перетворення для об'єктів complex неможливі, будь-яка спроба зробити це негайно викличе повідомлення про помилку.

Рядки

Рядок – це об'єкт, призначений для зберігання послідовності символів Юнікоду. В неї записується текстова і числова інформація. Літерали рядків завжди полягають у лапки. У рядків є довжина, яку можна обчислити функція len(): x = «Привіт, Пітон!». len(x). 18. У кожного елемента є свій індекс, чи позиція, за якою його можна добути: x[7]. «в». x[2]. «р». Так як рядки – це послідовності, вони підтримують операції конкатенації з допомогою знака «+» і повторення з використанням «*»: x * 3. «Здрастуй, Пітон!Здрастуй, Пітон!Здрастуй, Пітон!». x + «123». «Здрастуй, Пітон!123». Рядки, як і числа, є незмінними типами. Жодна з перелічених операцій не змінила значення змінної x. Кожен раз створювався новий рядковий об'єкт.

Списки

Списки в Python представлені у вигляді впорядкованих колекцій даних. Вони можуть будь-якого розміру, і містити різні об'єкти. Так як списки є різновидом послідовностей, до них застосовні методи рядків: L =[123, «spam», «var», 1.23]#Список з чотирьох об'єктів різних типів. len(L) #Кількість елементів у списку. 4. Списки ставляться до змінним типами даних в Python. Використовуючи функції можна міняти кількість елементів: L. append(0) #У кінець списку додається новий об'єкт. L. [123, «spam», «var», 1.23, 0]. L. pop(2) #Видаляється елемент з середини списку. «var».

Словники

Словники є відображеннями даних. Це принципово новий тип об'єктів, що відрізняється від списків і рядків. Доступ до елементів можливий тільки за ключем. Текст словника полягає у фігурні дужки і складається з пар «ключ-значення»: D = {«день»: «п'ятниця», «місяць»: «грудень», «рік»: «2017»}. D. {«день»: «п'ятниця», «місяць»: «грудень», «рік»: «2017»}. Щоб отримати значення, потрібно вказати назву словника з ключем у квадратних дужках: D[«день»]. «п'ятниця». Щоб додати ключ, потрібно вказати посилання на значення: D[«время»]= «ранок» #додає пара «ключ-значення». D. {«день»: «п'ятниця», «місяць»: «грудень», «рік»: «2017», «час»: «ранок»}. Словники подають самий гнучкий вид об'єктів. В низькорівневі мови вони можуть замінити алгоритмів і структур даних. Замість введення вручну, словники забезпечують швидкий пошук за індексом або по ключу.

Кортежі

Кортежі – це ті ж списки, тільки в круглих дужках. Вони можуть зберігати довільне число даних будь-якого типу, але підтримують менший набір операцій. Їх головна відмінність – незмінюваність. Кортежі забезпечують цілісність і схоронність об'єктів, саме тому їх іноді використовують замість типу list у великих програмах. В Python 3 тип даних tuple володіє двома методами, які є у списку: .index() для отримання індексу елемента .count(), щоб підрахувати кількість однакових об'єктів: my_tuple = (123 4). my_tuple.index(2) #на другій позиції стоїть цифра 1. 1. my_tuple.count(1) #покаже скільки одиниць у послідовності. 1. Це були основні вбудовані типи даних в Python. Також є додаткові об'єкти, які можуть вважатися базовими. Наприклад, множини або нестандартні числові типи, такі як матриці, вектори, числа з фіксованою точністю. Для роботи з ними потрібно серйозне занурення в принципи математики і конструкцій Python.
Цікаво по темі
Програмування Python. Робота з рядками
Програмування Python. Робота з рядками
У повсякденному житті програмісту потрібно вирішувати масу завдань. Для цих цілей ідеально підходить мову Python. Резервне копіювання, створення гри
Як знайти в Python залишок від ділення?
Як знайти в Python залишок від ділення?
Python – простий, сучасний мову для написання коду. Він володіє потужними бібліотеками, здатними обчислити будь-який вираз. Запустивши в
Програмування на Python: список
Програмування на Python: список
Python – часто використовуваний мову програмування, простий, красивий, зручний. Працювати з ним одне задоволення. Створювати об'єкти в Python
Введення і виведення в Python. Input і print
Введення і виведення в Python. Input і print
Приємне спілкування користувача з Python – одна з багатьох привабливих рис програми. Простота, сучасність, лаконічність і зрозумілість – ось чим
Математика від JavaScript Math
Математика від JavaScript Math
Об'єкт Math мови jаvascript реалізує практичний набір математичних функцій. Складні розрахунки можна виконувати всередині браузера, не
Перетворення типів. Функції Round і Trunc в "Паскаль"
Перетворення типів. Функції Round і Trunc в "Паскаль"
Перетворення типів в Pascal дозволяє реалізувати більш широкий клас задач та виконувати операції над величинами різних типів.