From 898789199e6af91dfa900650c22df6d26f7e635f Mon Sep 17 00:00:00 2001 From: Martin Date: Thu, 24 Sep 2015 12:39:32 +0200 Subject: Finished the first version of introduction section. --- python/problems/introduction/fast_fingers_2/sl.py | 99 ++++++++++------------- 1 file changed, 42 insertions(+), 57 deletions(-) (limited to 'python/problems/introduction/fast_fingers_2/sl.py') diff --git a/python/problems/introduction/fast_fingers_2/sl.py b/python/problems/introduction/fast_fingers_2/sl.py index da2751c..5b70044 100644 --- a/python/problems/introduction/fast_fingers_2/sl.py +++ b/python/problems/introduction/fast_fingers_2/sl.py @@ -1,4 +1,6 @@ # coding=utf-8 +import server +mod = server.problems.load_language('python', 'sl') id = 191 name = 'Hitri prsti 2' @@ -7,54 +9,42 @@ slug = 'Hitri prsti 2' description = '''\

Napiši program, podoben prejšnjemu, vendar naj ne vpraša vedno, koliko je 6 krat 7, temveč naj si izmišlja naključna vprašanja iz poštevanke. Program bo torej izžrebal dve števili med 1 in 10 in izpisal -račun s tema dvema številoma namesto s 6 in 7. Tokrat naj program tudi preveri, ali je uporabnik -pravilno izračunal produkt.

+račun s tema dvema številoma namesto s 6 in 7. Tokrat naj program izpiše True, če je uporabnik +pravilno izračunal produkt, drugače naj izpiše False.

 Koliko je 6 krat 3? UPORABNIK VTIPKA 18
-Odgovor je pravilen.
+True
 Za razmišljanje ste porabili 2.1922357082366943 s.
 
-

Pri tej nalogi prav tako ni testnih primerov.

''' -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 = { - 'random': '''\ -

Če napišemo na začetek programa

+random = ['''\ +

V modulu random imate funkcijo randint, +ki vrača naključno celo število.

''', + '''\ +

Če napišemo na začetek programa:

 from random import *
 
-

dobimo (med drugim) tudi funkcijo randint(x,y), ki vrne naključno +

dobimo (med drugim) dostop do funkcije randint(x,y), ki vrne naključno celo število med x in y:

 st = randint(1, 10)
-
''', +'''] - 'plan': ['''\ +if_clause = [''' +

Program se mora obnašati ustrezno rezultatu. Če izračunamo pravilno, bo izpisal True, drugače +False. To omogoča pogojni stavek.

''', +'''

Primer pogojnega stavka if: +

+if a == b: # dvopičje na koncu pogoja!
+    print(True)
+else:
+    print(False)
+
''' + ], + +plan = ['''\

Razširimo plan iz prejšnje naloge:

  1. Izmisli si dve naključni števili
  2. @@ -66,39 +56,34 @@ st = randint(1, 10)
  3. Izpiši
''', -'''

Pri vprašanju za rezultat produkta moramo navesti tudi vrednosti -dveh spremenljivk. Najlažje bo, če uporabite dve vrstici:

-

-print("Koliko je", x, " * ", y, "?")
-rezultat = float(input())
-
'''], + random, + if_clause] - 'if_clause': [''' -

Program se mora obnašati ustrezno rezultatu. Če izračunamo pravilno, bo napisal "Odgovor je pravilen", drugače -"Odgovor ni pravilen". To omogoča pogojni stavek.

''', -'''

Primer pogojnega stavka if: +hint = { + 'random': random, + + 'if_clause': if_clause, + + 'final_hint': '''\ +

Odlično! Za konec pa še zanimivost: +Pri tej nalogi stavka if niti ne potrebujemo, saj bi lahko napisali le:

-if a == b: # dvopičje na koncu pogoja!
-    print("a je enak b")
-else:
-    print("a ni enak b")
-
''' - ], +print(a == b) + +

kar bi izpisalo rezultat izraza a == b. Poskusi!

''', - 'name_error' : [general_exception['error_head'], general_exception['general'], - general_exception['name_error'], ''' + 'name_error' : [mod.general_msg['error_head'], mod.general_msg['general_exception'], + mod.general_msg['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?

'''], - 'type_error' : [general_exception['error_head'], general_exception['general'], - general_exception['type_error'], ''' + 'type_error' : [mod.general_msg['error_head'], mod.general_msg['general_exception'], + mod.general_msg['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(" ...
 
'''], - - 'error' : [general_exception['error_head'], general_exception['general'],] } -- cgit v1.2.1