Nuo šios pamokos pavyzdžiai ir kodo įvedimo laukeliai turės mygtukus „Programavimo konsolė“ ir „Veiksmų sekimas“. Naudokite juos kodo nagrinėjimui.
"Hello, World!" uždavinyje mes išmokome, kad Python gali pakartoti įvestą tekstą. Mes taip pat išmokome atlikti keletą veiksmų su skaičiais. Skaičiai ir tekstas yra skirtingo tipo duomenys - skiriasi jų saugojimas kompiuterio atmintyje ir veiksmai, kuriuos galima su jais atlikti.
Kaip matote, gauname klaidos pranešimą, kad funkcijai max
pateikti argumentai yra skirtingo tipo - neaišku, pagal ką juos lyginti.
"Hello, World!"
yra teksto eilutė (angl. (text) string). Ji Python’e žymimastr
. Tai yra simbolių ar skyrybos ženklų eilė (daugiau žr. 7A pamokoje).35
yra sveikasis skaičius (angl. integer), žymimas -int
. Pavyzdžiui, 42, -12, and 0 yra „int“ tipo.
Ar galėtumėte paaiškinti, kuo skiriasi “42”
ir 42
?
Netinkamo tipo duomenų naudojimas yra dažnai pasitaikinti programavimo klaida. Įsivaizduokite, jog bandote gerti obuolį: to negalite padaryti, kadangi gerti galima tik skysčius.
Duomenų tipą galite sužinoti iškviesdami type
funkciją.
(Žodžio class
reikšmė panaši kaip „tipas“ - nurodo duomenų pavadinimą bendroje klasifikacijoje.) Pavyzdyje matome, kad skaičiai yra toliau kategorizuojami į tipus: int
ir float
, kuris naudojamas skaičiams su reikšme po kablelio saugoti - tuomet reikšmės atminty saugomos kiek kitaip - būna apytikslės (daugiau žr. pamokoje 7B). Jei skaičiavime bus ir float
, ir int
tipų reikšmės, rezultatas bus float
tipo, žr. pvz.
Kai Python gauna veiksmą su int
ir float
, jis paverčia visus int
į float
ir tada atlieka veiksmus.
1.2
į 1.5
, ką atspausdins pirma eilutė?z
buvo atspausdintas 3.0
(o ne 3).
- Skaičiuojant
x * y
kartu naudojamiint
irfloat
tipai, todėl Pythonas int paverčia įfloat
, ir grąžinaz
reikšmę su kableliu.
float
reikšmę, būtinai spausdinamas ir kablelis; jeigu skaičius yra sveikas - pridedama .0
.
P.s.: šio skaičiavimo metu y
reikšmė ir tipas nepasikeitė .
Dažnai būna svarbu pakeisti duomenų tipą. Panašiai kaip obuolį galime paversti skysta mase, naudodami blenderį. Tam naudojamos tipo pakeitimo (angl., typecast) funkcijos:
x = float("3.4") print(x-1)Tekstą, kuriame buvo užrašyta
"3.4"
pakeičia į skaičių su kableliu3.4
,ir atspausdina 2.4
. Be tipo pakeitimo, programa užlūžtų.
Python leidžia kai kuriuos aritmetinius veiksmus atlikti su tekstu naudojant skaičius. Komanda atspausdina Valio!Valio! . Kaip matote, Python tiesiog 2 kartus padaugino nurodytą tekstą. Vėliau pamatysime, jog str tipo duomenis taip pat galima sudėti, bet atlikti dalybos ar atimties nepavyks. |
Įvairios tipo pakeitimo funkcijos elgiasi skirtingai :
- keičiant
float
įint
„nubraukiama“ informacija po kablelio:int(1.234)
duoda1
, oint(-34.7)
duoda-34
(atliekamas apvalinimas žemyn). - keisti tekstą (
str
) įint
galima tik tada, kai tekste yra užrašytas sveikas skaičius (pvz, skaitant duomenis iš failo), pvz.,int("1.234")
bus klaida. - keisti
str
įfloat
galima tik tada, jei tekste užrašytas realusis skaičius (ir nieko daugiau), o, pvz.,float("sandwich")
bus klaida.
Vienas dažniausių atvejų, kai reikia tipo keitimo, yra naudotojo įvestų duomenų atpažinimas. Įvestas tekstas verčiamas į skaičių:
Dar vienas pratimas pamokos pabaigai.
Kadangi yra daug mygtukų po kodo įvedimo laukeliu, kai kuriuos perkelėme į meniu „Daugiau veiksmų…“ |
Vėlesniuose pavyzdžiuose dažnai duomenys bus nuskaitomi iš teksto (po vieną eilutę), naudojant funkciją "input( )
" -- angl. reiškia „(duomenų) įvedimas“. Pvz., tokiu atveju, picos užduoties pradžioje būtų parašyta:
inputStr
=input( )