Pythoni andmetüübid

Selles õpetuses saate teada erinevate andmetüüpide kohta, mida saate Pythonis kasutada.

Andmetüübid Pythonis

Igas Pythoni väärtuses on andmetüüp. Kuna kõik on Pythoni programmeerimise objekt, on andmetüübid tegelikult klassid ja muutujad on nende klasside eksemplarid (objektid).

Pythonis on erinevaid andmetüüpe. Mõned olulised tüübid on loetletud allpool.

Pythoni numbrid

Täisarvud, ujukomaarvud ja kompleksarvud kuuluvad Pythoni numbrite kategooriasse. Nad on defineeritud int, floatja complexklasside Python.

type()Funktsiooni abil saame teada, millisesse klassi muutuja või väärtus kuulub. Samamoodi kasutatakse isinstance()funktsiooni kontrollimaks, kas objekt kuulub konkreetsesse klassi.

 a = 5 print(a, "is of type", type(a)) a = 2.0 print(a, "is of type", type(a)) a = 1+2j print(a, "is complex number?", isinstance(1+2j,complex)) 

Väljund

5 on tüüpi 2.0 on tüüpi (1 + 2j) on kompleksarv? Tõsi

Täisarvud võivad olla mis tahes pikkused, seda piirab ainult olemasolev mälu.

Ujukoma arv on täpne kuni 15 kümnendkohani. Täisarv ja ujukomad eraldatakse kümnendkohaga. 1 on täisarv, 1.0 on ujukomaarv.

Kompleksarvud kirjutatakse kujul, x + yjkus x on tegelik osa ja y kujuteldav osa. Siin on mõned näidised.

 >>> a = 1234567890123456789 >>> a 1234567890123456789 >>> b = 0.1234567890123456789 >>> b 0.12345678901234568 >>> c = 1+2j >>> c (1+2j) 

Pange tähele, et floatmuutuja b kärbiti.

Pythoni loend

Loend on järjestatud üksuste jada. See on Pythonis üks enimkasutatavat tüüpi andmetüüpe ja väga paindlik. Kõik loendis olevad üksused ei pea olema sama tüüpi.

Nimekirja deklareerimine on üsna sirge. Koma abil eraldatud üksused on sulud ( ).

 a = (1, 2.2, 'python') 

Saame viilutusoperaatori ( )abil loendist üksuse või üksuste valiku välja tõmmata. Indeks algab Pythonis 0-st.

 a = (5,10,15,20,25,30,35,40) # a(2) = 15 print("a(2) = ", a(2)) # a(0:3) = (5, 10, 15) print("a(0:3) = ", a(0:3)) # a(5:) = (30, 35, 40) print("a(5:) = ", a(5:)) 

Väljund

 a (2) = 15 a (0: 3) = (5, 10, 15) a (5 :) = (30, 35, 40) 

Loendid on muutlikud, st loendi elementide väärtust saab muuta.

 a = (1, 2, 3) a(2) = 4 print(a) 

Väljund

 (1, 2, 4) 

Python Tuple

Tuple on järjestatud kaupade jada, mis on sama mis loend. Ainus erinevus on see, et paarid on muutumatud. Kord loodud ühikuid ei saa muuta.

Koondeid kasutatakse andmete kirjutamise kaitsmiseks ja need on tavaliselt loenditest kiiremad, kuna need ei saa dünaamiliselt muutuda.

See on määratletud sulgudes, ()kus üksused eraldatakse komadega.

 t = (5,'program', 1+3j) 

Saame kasutada viilutamise operaatorit ()üksuste väljavõtmiseks, kuid me ei saa selle väärtust muuta.

 t = (5,'program', 1+3j) # t(1) = 'program' print("t(1) = ", t(1)) # t(0:3) = (5, 'program', (1+3j)) print("t(0:3) = ", t(0:3)) # Generates error # Tuples are immutable t(0) = 10 

Väljund

 t (1) = programm t (0: 3) = (5, 'programm', (1 + 3j)) Traceback (viimane kõne viimati): fail "test.py", rida 11, t (0) = 10 TypeError: objekt 'tuple' ei toeta üksuse määramist 

Pythoni stringid

String on Unicode'i märkide järjestus. Stringide esitamiseks võime kasutada üksik- või topelt jutumärke. Multi-line stringid saab tähistada, kasutades kolmekordset hinnapakkumisi, '''või """.

 s = "This is a string" print(s) s = '''A multiline string''' print(s) 

Väljund

 See on string Mitmerealine string 

Nii nagu loendit ja dupletti, ( )saab ka viilutamisoperaatorit stringidega kasutada. Keelpillid on aga muutumatud.

 s = 'Hello world!' # s(4) = 'o' print("s(4) = ", s(4)) # s(6:11) = 'world' print("s(6:11) = ", s(6:11)) # Generates error # Strings are immutable in Python s(5) ='d' 

Väljund

 s (4) = os (6:11) = maailm Traceback (viimane kõne viimati): fail "", 11. rida, TypeError: 'str' objekt ei toeta üksuse määramist 

Pythoni komplekt

Komplekt on unikaalsete esemete tellimata kogum. Hulk määratakse väärtustega, mis on eraldatud komadega sulgudes ( ). Komplektis olevaid esemeid ei tellita.

 a = (5,2,3,1,4) # printing set variable print("a = ", a) # data type of variable a print(type(a)) 

Väljund

 a = (1, 2, 3, 4, 5) 

Me saame teha komplekti toiminguid nagu liit, ristumine kahel hulgal. Komplektidel on ainulaadsed väärtused. Need kõrvaldavad duplikaadid.

 a = (1,2,2,3,3,3) print(a) 

Väljund

 (1, 2, 3) 

Kuna komplektid on korrastamata kogud, pole indekseerimisel mingit tähendust. Seega viilutamise operaator ()ei tööta.

 >>> a = (1,2,3) >>> a(1) Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in TypeError: 'set' object does not support indexing 

Pythoni sõnastik

Sõnastik on võtmeväärtuste paaride korrastamata kogu.

Seda kasutatakse tavaliselt siis, kui meil on tohutul hulgal andmeid. Sõnastikud on andmete hankimiseks optimeeritud. Väärtuse hankimiseks peame teadma võtit.

Pythonis on sõnastikud määratletud sulgudes, ()kusjuures iga üksus on vormis paar key:value. Võti ja väärtus võivad olla mis tahes tüüpi.

 >>> d = (1:'value','key':2) >>> type(d) 

Vastava väärtuse hankimiseks kasutame võtit. Aga mitte vastupidi.

 d = (1:'value','key':2) print(type(d)) print("d(1) = ", d(1)); print("d('key') = ", d('key')); # Generates error print("d(2) = ", d(2)); 

Väljund

 d (1) = väärtus d ('võti') = 2 Jälgimine (viimane kõne viimane): fail "", rida 9, KeyErroris: 2 

Teisendamine andmetüüpide vahel

Me ei saa teisendada erinevate andmetüüpide kasutades erinevaid tüüpi muutmise funktsioonid nagu int(), float(), str()jne

 >>> float(5) 5.0 

Teisendamine ujukist int-ks kärbib väärtust (muudab selle nullile lähemale).

 >>> int(10.6) 10 >>> int(-10.6) -10 

Stringiks ja stringist teisendamine peab sisaldama ühilduvaid väärtusi.

 >>> float('2.5') 2.5 >>> str(25) '25' >>> int('1p') Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in ValueError: invalid literal for int() with base 10: '1p' 

Me võime isegi ühe järjestuse teisendada.

 >>> set((1,2,3)) (1, 2, 3) >>> tuple((5,6,7)) (5, 6, 7) >>> list('hello') ('h', 'e', 'l', 'l', 'o') 

Sõnastikuks teisendamiseks peab iga element olema paar:

 >>> dict(((1,2),(3,4))) (1: 2, 3: 4) >>> dict(((3,26),(4,44))) (3: 26, 4: 44) 

Huvitavad Artiklid...