diff options
author | Timotej Lazar <timotej.lazar@araneo.org> | 2015-09-15 14:37:35 +0200 |
---|---|---|
committer | Timotej Lazar <timotej.lazar@araneo.org> | 2015-09-15 14:37:35 +0200 |
commit | 816ffe9a13c4aa7e1d0d4ec95355e1dcd6e24faa (patch) | |
tree | 3552a5f25941647aee81ed09e89c769841bccd3d | |
parent | b2e1800fa19d18840c3d399c4a379f2da53fe7b0 (diff) |
Update hints for python/fahrenheit_to_celsius
-rw-r--r-- | python/problems/introduction/fahrenheit_to_celsius/common.py | 17 | ||||
-rw-r--r-- | python/problems/introduction/fahrenheit_to_celsius/sl.py | 27 |
2 files changed, 28 insertions, 16 deletions
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'], |