Pogosto želimo preveriti, ali je nek znak (ali niz) črka, števka in podobno.
Nizi imajo precej funkcij, ki nam pri tem pomagajo:
isalpha
preveri, če je znak črka;isdigit
preveri, če je števka;isupper
in islower
preverita, če je velika oz. mala črka;isspace
preveri, če je presledek (ti vključujejo poleg »pravega« presledka tudi nekatere druge znake, na primer tabulator in konec vrstice);isalnum
preveri, če je znak črka ali števka.V funkciji PrestejCrke
imamo zanko, ki se sprehodi po vseh znakih niza. Pravzaprav se s spremenljivko i
sprehodi po vseh indeksih od 0
do len(s) - 1
s[i]
. Če nam indeksi niso pomembni, lahko gremo z zanko tudi neposredno po znakih niza:
def PrestejCrke(s): n = 0 for c in s: if c.isalpha(): n += 1 return n
Če na primer pokličemo PrestejCrke("1ab")
, bi bil c
v prvi iteraciji zanke enak "1"
, v drugi iteraciji "a"
in v tretji "b"
.
Napiši funkcijo NizVStevilo(s)
, ki kot parameter dobi niz z zapisom nekega naravnega števila v desetiškem zapisu; funkcija naj vrne to število. Primer: NizVStevilo("123")
mora vrniti 123
(kot celo število, ne kot niz).
(Za to v pythonu seveda že obstaja funkcija int
– namen te naloge pa je, da nekaj podobnega napišeš sam(-a) brez uporabe te funkcije.)