2. Duomenų Tipai ir Operacijos - MantsSk/CA_PTUA14 GitHub Wiki

Įvadas

Python duomenų tipai naudojami kintamojo tipui apibrėžti. Jis apibrėžia, kokio tipo duomenis ketiname priskirti kintamajam. Duomenys, saugomi atmintyje, gali būti daugelio tipų. Pavyzdžiui, asmens amžius saugomas kaip skaitinė reikšmė, o jo adresas - kaip raidiniai skaitmeniniai simboliai.

Sveikieji skaičiai (Integer)

Z = {..., -3, -2, -1, 0, 1, 2, 3, ...}

Kaip sukurti sveikojo skaičiaus (interger) tipo kintamąjį Python kalboje:

a = 5
print(a)

b = 25
print(b)

Operacijos su sveikaisiais skaičiais:

Galimos operacijos:

Operacija Rezultatas
x + y x ir y suma
x - y x ir y skirtumas
x * y x ir y sandauga
x / y x ir y dalyba
x // y x ir y dalyba paliekant sveikojo skaičiau dalį
x % y x / y likutis
x ** y x kėlimas y laipsniu
a = 5
b = 25

c = a + b 
print(c)

c = a - b
print(c)

c = a * b
print(c)

c = b / a
print(c)

c = b // a
print(c)


c = a % b
print(c)

c = a ** b
print(c)

Float (racionalieji skaičiai) tipas

Z = {..., -2.5 , ..., -2.0, ... , -1.0, ... , 0, ... , 1.0, ... , 2.0, ... , 2.5, ...}

Operacijos su float tipo skaičiais

Tie patys veiksmai ir (arba) matematinės išraiškos taikomos ir flaot tipo skaičiams:

Galimos operacijos:

Operacija Rezultatas
x + y x ir y suma
x - y x ir y skirtumas
x * y x ir y sandauga
x / y x ir y dalyba
x // y x ir y dalyba paliekant sveikojo skaičiau dalį
x % y x / y likutis
x ** y x kėlimas y laipsniu
a = 5.5
b = 25.3

c = a + b 
print(c)

c = a - b
print(c)

c = a * b
print(c)

c = b / a
print(a)

c = b // a
print(a)


c = a % b
print(c)

c = a ** b
print(c)

String tipas

String tipas - tai duomenys išreikšti teksto pavidalu: gali būti ir viena raidė, gali būti pilnas rišlus sakinys ir/arba skaičiai/simboliai apgaubti kabutėmis:

letter = "a"
name = "Code Academy"
sentence = "I really enjoy learning python !"
some_chars = "123@}{}" 

String operacijos

String Python kalboje turi begalę funkcijų kurias galime naudoti, daugiau informacijos čia

Be to, su string galime išrinkti tam tikrus žodžio simbolius. Štai kaip tai veikia: IMG

name = "Code Academy"
print(name[5])

# A

print(name[-2])

# m

print(name[5:12])

# Academy

print(name[5:])

# Academy

print(name[:4])

# Code

print(name[5:12:1])

# Academy

print(name[5::2])

# Aaey

print(name[::-1])

# ymedacA edoC

print(name.split())

# ['Code', 'Academy']

print(name.upper())

# CODE ACADEMY

print(name.replace('c', 'k'))

# Code Akademy

print(name.replace('Code', 'Music'))

Taip pat galima gauti paskutinį arba priešpaskutinį string simbolį:

print(name[-1])
print(name[-2])

Taip pat galite atlikti string'o pjaustymą (slicing):

name = "Code Academy"
print(name[:4])

print(name[5:12])

Pabandykite atlikti bet kurį iš aukščiau pateiktoje nuorodoje aprašytų metodų:

name = "Code Academy"
print(name.upper())

print(name.replace('c', 'k'))

Arba bet kurį kitą, ką norite.

String apjungimas

Taip pat galite sujungti įvairius string'us, kad sudarytumėte kitus kintamuosius:

greeting = "Hello, my name is"
name = "Tom"

completed_greeting = f"{greeting} {name}"
print(completed_greeting)

Arba:

greeting = "Hello, my name is"
name = "Tom"

completed_greeting = greeting + " " + name
print(completed_greeting)

Oho! "+" operatorius veikia ir su string reikšmėmis! Viskas, ką jis daro, yra sujungimas. Tokia gudrybė turi terminą _Operator overloading_. Mes išmoksime keletą gudrybių, kaip pritaikyti tam tikrus operatorius mūsų klasėms. Deja, "-" stringo atveju neturi jokios ypatingos prasmės, todėl šis metodas string tipui neleidžiamas.

Tipų konvertavimas

Dar svarbiau paminėti metodus, leidžiančius paversti duomenis iš vieno tipo į kitą:

str()
int()
float()

Svarbu paminėti, kad ne visi duomenų tipai yra suderinami su tokiomis operacijomis. Pavyzdžiui:

a = "Hello"
b = int(a)

Tai paprasčiausiai išmes klaidą, tai būtų kažkokia nesamonė, kaip string'as iš raidžių gali būti paverstas skaitine išraiška?

Pagrindinė taisyklė yra ta, kad visus integer, float duomenų tipus galima kovertuoti į string tipą, bet ne visus string galima paversti į integer arba float:

✅ 
a = "55"
b = int(a)
c = float(a)

a = 55
b = str(a)
c = float(a)

🛑 
a = "Sveiki"
b = int(a)

c = float(a)

Vartotojo įvestis (input)

Programa gali paprašyti vartotojo ką nors įvesti ir naudoti tai tolesnėms operacijoms:

name = input("Enter you name: ")
age = input("Enter your age: ")

print(f"Your name is {name}, you are {age} years old"

Taisyklingas kintamųjų vadinimas

Pagal PEP8 https://peps.python.org/pep-0008/ yra tam tikros gairės, kurių reikia laikytis suteikiant vardus kintamiesiems. Python kalboje paprasti kintamieji, kaip jau matėme, turėtų būti pavadinti snake_case stiliumi. Be to, konstantos visada turėtų būti rašomos didžiosiomis raidėmis, o paslėpti kintamieji arba funkcijos turėtų prasidėti raide "_".

_hidden_variable = "secret"
PI = 3,14
vardas = "Albert"
pavardė = "Einstein"

⛔ įmanoma, bet neatitinka PEP8:

Name = "Albert"
First_Name = "Albert"
FIRST_NAME = "Alb

"Python" supras tokią tokį užrašymą, bet jūsų kolegoms bus sunku suprasti kokia kintamųjų prasmė, tad vardan visų - naudokit teisingas naming konvencijas.

Kintamieji negali būti vadinami "Python" built-in funkcijų vardais arba specialūs žodžiai, pvz:

"False", "None", "True", "and", "as", "assert", "async", "await", "break", "class", "continue", "def", "del", "elif", "else", "except", "finally", "for", "from", "global", "if", "import", "in", "is", "lambda", "nonlocal", "not", "or", "pass", "raise", "return", "try", "while", "with", "yield" etc.

Pratimai 🧠

1

  • Sukurkite programą, leidžiančią vartotojui įvesti savo vardą ir amžių.
  • Apskaičiuoti metus, kuriais vartotojas gimė.
  • Išspausdinti atsakymą į terminalą.

2

  • Sukurti programą, leidžiančią vartotojui įvesti pilną sakinį.
  • išspausdinti sakinį atbuline tvarka.
  • spausdinti kas antrą sakinio raidę.

3

  • Sukurkite programą, kuri tikisi, kad naudotojas įves du skaičius.
  • padauginkite šiuos skaičius ir išspausdinkite atsakymą.
  • Sukurkite panašias programas su kitais ženklais.

🌐 Papildomas skaitymas: