Ko spremenljivko pot
izpišemo, vidimo, da jo je python shranil kot niz, ne kot število. Funkcija input
namreč ne more vedeti, katero vrsto podatkov naj pričakuje, zato uporabnikov vnos vedno obravnava kot niz.
K sreči pa niz, ki predstavlja število, zlahka pretvorimo v dejansko število. Uporabimo operator int
(za pretvorbo v celo število) oziroma float
(za pretvorbo v realno število), ki smo ju spoznali že v prejšnji učni enoti.
>>> a = '3.2' >>> b = '-47' >>> c = '13 je srečna številka.' >>> float(a) 3.2 >>> int(b) -47 >>> int(c) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: '13 je srečna številka.'
Pri spremenljivki c
se nam je zalomilo, saj operatorja int
in float
delujeta samo, če je celotno vsebino niza možno razumeti kot eno samo število.
Skopirajmo naš program hitrost.py
v program hitrostVhod.py
in ga spremenimo tako, da bo vse podatke vnesel uporabnik:
Prevožena pot je v splošnem lahko realno število, zato smo rezultat funkcije input
(uporabnikov vnos) pretvorili v vrednost tipa float
. Tudi izpis je sedaj nekoliko bolj prijazen: najprej izpišemo niz Vozila(a) si s povprečno hitrostjo, nato vrednost spremenljivke povprecnaHitrost
, nazadnje pa še niz km/h
. Posamezne dele izpisa med seboj ločimo z znakom +
.
Zaženimo naš novi program v terminalu operacijskega sistema:
> python3 hitrostVhod.py Koliko kilometrov si prevozil(a)? 20 Vnesi uro ob začetku vožnje: 8 Vnesi minuto ob začetku vožnje: 50 Vnesi uro ob koncu vožnje: 10 Vnesi minuto ob koncu vožnje: 0 Vozil(a) si s povprečno hitrostjo 17.1428571429 km/h.