Testi

Testi

Testi: testi-oblikovanje-tekacev.py

Obvezna naloga

Napiši funkcijo tekac(startna, ime, leto, h, m, s), ki dobi podatke o nekem tekaču (startna številka, ime in priimek, leto, čas teka v urah, minutah in sekundah, vrne pa niz v točno predpisani obliki.

>>> tekac(1, "ROMAN SONJA", 1979, 1, 15, 2)
'   1. ROMAN SONJA          01:15:02'
>>> tekac(1, "JAN HUS", 1979, 1, 15, 2)
'   1. JAN HUS              01:15:02'
>>> tekac(1234, "ROMAN SONJA", 1979, 0, 1, 23)
'1234. ROMAN SONJA          00:01:23'

Pomoč:

>>> "{:05}".format(42)
'00042'

Ime ima 20 znakov (+ presledek spredaj in zadaj).

Rešitev

Tako preproste domače naloge letos ne boste več dobili. :) Zahteva samo nekaj štetja.

Najprej je potrebno izpisati štartno številko na štiri mesta ({:4}), nato piko in presledek (.), pa ime na dvajset mest ({:20}), spet presledek, nato pa ure, minute in sekunde na dve mesti, z vodilno ničlo in z dvopičjem vmes ({:02}:{:02}:{:02}). Malo zmede povzročajo le vsa ta dvopičja: tista znotraj oklepajev določajo obliko, tista izven pa se v resnici izpišejo. Vse skupaj je torej

def tekac(startna, ime, leto, h, m, s):
    return "{:4}. {:20} {:02}:{:02}:{:02}".format(startna, ime, h, m, s)

Dodatna naloga

Napiši funkcijo tekac_star(startna, ime, leto, h, m, s), ki naredi isto, le še letnico vključi, takole:

>>> tekac_star(1, "ROMAN SONJA", 1979, 1, 15, 2)
'   1. ROMAN SONJA (1979)         01:15:02'
>>> tekac_star(1234, "ROMAN SONJA", 1979, 0, 1, 23)
'1234. ROMAN SONJA (1979)         00:01:23'
>>> tekac_star(1234, "JAN HUS", 1979, 0, 1, 23)
'1234. JAN HUS (1979)             00:01:23'

**Pomoč: ** Ime ima 26 znakov, skupaj z letnico.

Rešitev

Če morata ime in letnica skupaj zavzeti 26 znakov, je najboljše, da ju obravnavamo kot eno reč. Sestavimo ju, preden se lotimo sestavljati končni niz.

def tekac_star(startna, ime, leto, h, m, s):
    ime_leto = "{} ({})".format(ime, leto)
    return "{:4}. {:26} {:02}:{:02}:{:02}".format(startna, ime_leto, h, m, s)

Pomoč

>>> "{:05}".format(42)
'00042'
Zadnja sprememba: četrtek, 25. marec 2021, 18.22