Primeri s predavanja

Nič ne bo škodilo, če to narediš znova - s čim manj škiljenja v zapiske. :)

  1. Izpiši vse temperature v datoteki temperature.txt.
  2. Izpiši vse temperature, vendar pretvorjene v Fahrenheite.
  3. Izpiši povprečno temperaturo.
  4. Izpiši vse temperature višje od 17 stopinj.
  5. Izpiši število dni, ko je temperatura višja od 17 stopinj.
  6. Izpiši najnižjo in najvišjo napovedano temperaturo. Poskusi oboje izračunati v okviru ene same zanke.
  7. Izpiši zaporedno številko dneva z najnižjo temperaturo.

Rešitev

Glej zapiske predavanj. :)

Še malo vremena

Poprečje kot pri smučarskih skokih

Znaš izračunati poprečno temperaturo tako, kot to delajo pri smučarskih skokih, kjer ne upoštevajo tistega ocenjevalca, ki je dal najmanjšo in ocenjevalca, ki je dal največjo oceno? Če je najmanjšo (ali največjo) oceno dalo več ocenjevalcev, seveda odstranijo le enega. (Nasvet: računaj vsoto, minimum in maksimum. Po zanki odšteješ minimum in maksimum od vsote ter izračunaš povprečje.)

Rešitev

najm = 10000
najv = -1000
vsota = 0
n = 0
for vrstica in open("temperature.txt"):
    temp = int(vrstica)
    vsota += temp
    if temp < najm:
        najm = temp
    if temp > najv:
        najv = temp
    n += 1

print((vsota - najv - najm) / (n - 2))
17.333333333333332

"Graf"

Nariši (no, izpiši) graf temperatur:

24 ************************
18 ******************
15 ***************
16 ****************
18 ******************

Rešitev

for vrstica in open("temperature.txt"):
    temp = int(vrstica)
    print(temp, "*" * temp)
24 ************************
18 ******************
15 ***************
16 ****************
18 ******************

Kitajci V datoteki yuan.txt je tečaj evra proti kitajske valute yuan (ki se menda izgovori tako, kot bi Nemci izgovorili üen) v času od 1. aprila 2005 do 9. oktobra 2023, brez sobot in nedelj.

Izpiši najvišjo in najnižjo vrednost - točneje, koliko največ in koliko najmanj yuanov je bil vreden evro. Koliko dni je bil evro vreden več ali enako 10 yuanov? Kolikšen delež dni (v odstotki) je bil evro vreden več ali enako 10 yuanov? Na kateri dan (zaporedna številka dneva) je evro prvič padel pod osem yuanov? (Opazka: na razmerje med yuanom in evrom najbrž vpliva predvsem ravnanje kitajske in ne toliko evropske banke. Ko je vrednost yuana nizka, je to lahko dobro za kitajski izvoz, čeprav stvari seveda niso tako preproste.) Malo težja: kako dolgo je najdaljše zaporedje dni, ko je bil evro vreden manj kot 8 yuanov? Še malo težja: na kateri dan se je začelo to zaporedje? Kolesa Lastnik štirih koles različnih znamk (Cube, Canyon, Stevens, Nakamura) si v datoteko "kolesa.txt" beleži, kolikokrat se pelje s katerim.

Napiši program, ki to prešteje in izpiše. Napiši program, ki izpiše, s katerim kolesom se je peljal največkrat. Problem: iz razlogov, ki jih bomo spoznali zdaj zdaj, je na koncu vrstice, prebrane iz datoteke, še nekaj šare. Namesto niza "Cube" bo Python prebral "Cube\n". Če se želiš tega znebiti, dodaj vrstico vrstica = vrstica.strip() (ob predpostavki, da se prebrana vrstica nahaja v spremenljivki vrstica.)

najm = 0
najv = 0
for vrstica in open("yuan.txt"):
    vrednost = float(vrstica)
    if najv == 0 or vrednost > najv:
        najv = vrednost
    if najm == 0 or vrednost < najm:
        najm = vrednost
        
print("Najnižja vrednost", najm)
print("Najvišja vrednost", najv)
Najnižja vrednost 6.5552
Najvišja vrednost 11.169
nad_10 = 0
vseh = 0
for vrstica in open("yuan.txt"):
    if float(vrstica) >= 10:
        nad_10 = nad_10 + 1
    vseh += 1
print(nad_10)
print(nad_10 / vseh * 100)
722
15.212810788032026
najdaljsi = 0
tekoci = 0
kdaj_najdaljsi = 0
dan = 0
for vrstica in open("yuan.txt"):
    dan += 1
    if float(vrstica) < 8:
        tekoci = tekoci + 1
        if tekoci > najdaljsi:
            najdaljsi = tekoci
            kdaj_najdaljsi = dan - najdaljsi
    else:
        tekoci = 1
print(najdaljsi)
print(kdaj_najdaljsi, tekoci)
999
2414 58
dni = 0
for vrstica in open("yuan.txt"):
    dni += 1
    if float(vrstica) < 8:
        break
print(dni)
1833