From 816ffe9a13c4aa7e1d0d4ec95355e1dcd6e24faa Mon Sep 17 00:00:00 2001
From: Timotej Lazar <timotej.lazar@araneo.org>
Date: Tue, 15 Sep 2015 14:37:35 +0200
Subject: Update hints for python/fahrenheit_to_celsius

---
 .../introduction/fahrenheit_to_celsius/common.py   | 17 ++++++++++----
 .../introduction/fahrenheit_to_celsius/sl.py       | 27 +++++++++++++---------
 2 files changed, 28 insertions(+), 16 deletions(-)

(limited to 'python/problems/introduction')

diff --git a/python/problems/introduction/fahrenheit_to_celsius/common.py b/python/problems/introduction/fahrenheit_to_celsius/common.py
index 076d322..8362260 100644
--- a/python/problems/introduction/fahrenheit_to_celsius/common.py
+++ b/python/problems/introduction/fahrenheit_to_celsius/common.py
@@ -17,6 +17,13 @@ print("Temperatura je", c, "C")
 hint_type = {
     'plan': Hint('plan'),
     'no_input_call': Hint('no_input_call'),
+    'expressions_python': Hint('expressions_python'),
+    'printing': Hint('printing'),
+    'name_error': HintSequence('name_error', 4),
+    'unsupported_operand': HintSequence('unsupported_operand', 4),
+    'not_callable': HintSequence('not_callable', 4),
+    'syntax_error': HintSequence('syntax_error', 4),
+    'indentation_error': HintSequence('indentation_error', 3),
 }
 
 def test(python, code):
@@ -55,15 +62,15 @@ def hint(python, code):
     # have an exception!
     if exc:
         if 'NameError' in exc:
-            return [{'id':'name_error'}]
+            return [{'id':'name_error', 'args': {'message': exc}}]
         if 'not callable' in exc:
-            return [{'id':'not_callable'}]
+            return [{'id':'not_callable', 'args': {'message': exc}}]
         if 'unsupported operand' in exc:
-            return [{'id':'unsupported_operand'}]
+            return [{'id':'unsupported_operand', 'args': {'message': exc}}]
         if 'SyntaxError' in exc:
-            return [{'id':'syntax_error'}]
+            return [{'id':'syntax_error', 'args': {'message': exc}}]
         if 'IndentationError' in exc:
-            return [{'id':'indentation_error'}]
+            return [{'id':'indentation_error', 'args': {'message': exc}}]
 
 
     # the trick is to decide when to show the plan and when the first hint. 
diff --git a/python/problems/introduction/fahrenheit_to_celsius/sl.py b/python/problems/introduction/fahrenheit_to_celsius/sl.py
index d5cef06..350cd62 100644
--- a/python/problems/introduction/fahrenheit_to_celsius/sl.py
+++ b/python/problems/introduction/fahrenheit_to_celsius/sl.py
@@ -10,7 +10,12 @@ stopinjah, program pa jo izpiše v Celzijevih. Med temperaturama pretvarjamo po
 formuli C = 5/9 (F – 32).</p>'''
 
 general_exception = {
-    'error_head' : '<p>Napaka:</p>',
+    'error_head' : '''\
+<p>Napaka:</p>
+<pre>
+[%=message%]
+</pre>
+''',
 
     'general': '''
     <p>Pri razumevanju napake sta pomembni dve vrstici. V drugi vrstici je specificirana lokacija
@@ -38,21 +43,21 @@ general_exception = {
     <p>Napaka v sintaksi programa. Napisali ste nekaj, kar Python ne zna prebrati.</p> ''',
 
     'indentation_error': '''
-    <p> Pomeni, da imate napačno število presledkov na začetku vrstice. Poskrbite, da so vse vrstice pravilno
+    <p>Pomeni, da imate napačno število presledkov na začetku vrstice. Poskrbite, da so vse vrstice pravilno
 poravnane. </p>'''
 
 }
 
 hint = {
-    'plan': ['''\
+    'plan': '''\
 <p>Program izvedemo v treh korakih:</p>
 <ol>
   <li>Vprašanje za temperaturo v Fahrenheitih (F = ?).</li>
   <li>Izračun temperature v Celzijih: C = 5/9 (F – 32)</li>
   <li>Izpis temperature v Celzijih (izpiši C).</li>
-</ol>'''],
+</ol>''',
 
-    'no_input_call': ['''\
+    'no_input_call': '''\
 <p>Uporabnika lahko nekaj vprašamo s funkcijo <code>input</code>. Funkcija
 <code>input</code> sprejme kot argument niz (<em>angl.</em> string), ki se
 prikaže uporabniku kot vprašanje in vrne niz, ki ga je uporabnik napisal. Nize
@@ -62,10 +67,10 @@ vrstica:</p>
 ime = input("Kako ti je ime?")
 </pre>
 <p>pokliče funkcijo <code>input</code>, ki povpraša uporabnika po imenu in si
-shrani uporabnikov odgovor v spremenljivko <code>ime</code>.</p>'''],
+shrani uporabnikov odgovor v spremenljivko <code>ime</code>.</p>''',
 
     
-    'expressions_python': ['''
+    'expressions_python': '''
 <p>Računanje: če v Pythonu napišemo izraz, se bo ta izračunal. Npr., če napišemo</p>
 <pre>
 3 + 6
@@ -76,15 +81,15 @@ napišemo ime spremenljivke, na desno pa izraz:</p>
 <pre>
 c = 2 * a * (3 + b)
 </pre>
-<p> Kot vidite, izraz lahko uporablja tudi spremenljivke. </p>'''],
+<p>Kot vidite, izraz lahko uporablja tudi spremenljivke. </p>''',
 
-    'printing': ['''
+    'printing': '''
 <p> V Pythonu izpisujemo s funkcijo <code>print. Če želimo izpisati več elementov, 
 jih ločimo z vejico.  Recimo, da imamo spremenljivko <code>ime</code>, 
 ki vsebuje naše ime, potem lahko napišemo:
 <pre>
 print("Ime mi je", ime, ".")
-</pre>'''],
+</pre>''',
 
     'name_error' : [general_exception['error_head'], general_exception['general'],
     general_exception['name_error'], '''
@@ -110,7 +115,7 @@ f = float(fniz)
 f = float(input("Temperatura [F]: "))
 </pre>
 <p>Funkcijo <code>float</code> lahko kličemo le, če je v nizu zapisano število,
-npr. "10". Če imamo v nizu tudi kakšno črko, bo Python javil napako.</p> '''],
+npr. "10". Če imamo v nizu tudi kakšno črko, bo Python javil napako.</p>'''],
 
 
     'not_callable' : [general_exception['error_head'], general_exception['general'],
-- 
cgit v1.2.1