# coding=utf-8 id = 180 name = 'Pretvarjanje iz Fahrenheitov v Celzije' slug = 'Pretvarjanje iz Fahrenheitov v Celzije' description = '''\

Napiši program, ki mu uporabnik vpiše temperaturo v Fahrenheitovih stopinjah, program pa jo izpiše v Celzijevih. Med temperaturama pretvarjamo po formuli C = 5/9 (F – 32).

''' general_exception = { 'error_head' : '''\

Napaka:

[%=message%]
''', 'general': '''\

Pri razumevanju napake sta pomembni dve vrstici. V predzadnji vrstici je napisana lokacija napake (line ...), v zadnji vrstici pa izvemo za kakšno napako gre.

''', 'name_error' : '''\

Napaka NameError pomeni, da uporabljate nedefinirano vrednost: ali vrednost spremenljivke ni določena ali uporabljate funkcijo, ki ni uvožena.

''', 'type_error': '''\

TypeError napaka pomeni, da želite izvesti operacijo na nedovoljenih tipih. Npr., če želite sešteti niz in število ali klicati funkcijo, čeprav tisto ni funkcija, itd.

''', } hint = { 'plan': '''\

Program izvedemo v treh korakih:

  1. Vprašanje za temperaturo v Fahrenheitih (F = ?).
  2. Izračun temperature v Celzijih: C = 5/9 (F – 32)
  3. Izpis temperature v Celzijih (izpiši C).
''', 'no_input_call': '''\

Uporabnika lahko nekaj vprašamo s funkcijo input. Funkcija input sprejme kot argument niz (angl. string), ki se prikaže uporabniku kot vprašanje in vrne niz, ki ga je uporabnik napisal. Nize zapisujemo v narekovaje (lahko so enojni ali dvojni). Npr., naslednja vrstica:

ime = input("Kako ti je ime?")

pokliče funkcijo input, ki povpraša uporabnika po imenu in si shrani uporabnikov odgovor v spremenljivko ime.

''', 'expressions_python': '''\

Računanje: če v Pythonu napišemo izraz, se bo ta izračunal. Npr., če napišemo

3 + 6

bo Python seštel vrednosti 3 in 6 in ... rezultat pozabil. Kadar pa želimo rezultat shraniti, za to uporabimo prireditveni stavek, kjer na levo napišemo ime spremenljivke, na desno pa izraz:

c = 2 * a * (3 + b)

Kot vidite, izraz lahko uporablja tudi spremenljivke.

''', 'printing': '''\

V Pythonu izpisujemo s funkcijo print. Če želimo izpisati več elementov, jih ločimo z vejico. Recimo, da imamo spremenljivko ime, ki vsebuje naše ime, potem lahko napišemo:

print("Ime mi je", ime, ".")
''', 'name_error' : [ general_exception['error_head'], general_exception['general'], general_exception['name_error'], '''\

Verjetno uporabljate spremenljivko, ki nima vrednosti. Ali v izrazu za izračun uporabljate napačno spremenljivko? Ali pri izpisu morda poskušate izpisati napačno spremenljivko?

''' ], 'unsupported_operand' : [ general_exception['error_head'], general_exception['general'], general_exception['type_error'], '''\

Verjetni razlog: funkcija input vrača vrednost tipa niz, ki jo moramo najprej pretvoriti v tip float, če želimo z njo računati:

v = float(input(" ...

Zakaj je tako, boste razumeli kasneje, zaenkrat je dovolj, da to poznate.

Na primeru pretvarjanja temperatur:

fniz = input("Temperatura [F]: ")
f = float(fniz)

ali krajše, združeno v eno vrstico:

f = float(input("Temperatura [F]: "))

Funkcijo float lahko kličemo le, če je v nizu zapisano število, npr. "10". Če imamo v nizu tudi kakšno črko, bo Python javil napako.

''' ], 'not_callable' : [ general_exception['error_head'], general_exception['general'], general_exception['type_error'], '''\

V programu poskušate uporabiti število kot funkcijo, a to ne gre. Verjetni razlog: Ali ste v izrazu pozabili na znak *. Pri pretvorbi temperatur bi namesto:

C = 5/9(F – 32)

morali napisati:

C = 5/9 * (F – 32).

Python ne zna izpuščati znaka za množenje, kot to delamo pri matematiki.

''' ], }