From 816ffe9a13c4aa7e1d0d4ec95355e1dcd6e24faa Mon Sep 17 00:00:00 2001 From: Timotej Lazar 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).

''' general_exception = { - 'error_head' : '

Napaka:

', + 'error_head' : '''\ +

Napaka:

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

Pri razumevanju napake sta pomembni dve vrstici. V drugi vrstici je specificirana lokacija @@ -38,21 +43,21 @@ general_exception = {

Napaka v sintaksi programa. Napisali ste nekaj, kar Python ne zna prebrati.

''', 'indentation_error': ''' -

Pomeni, da imate napačno število presledkov na začetku vrstice. Poskrbite, da so vse vrstice pravilno +

Pomeni, da imate napačno število presledkov na začetku vrstice. Poskrbite, da so vse vrstice pravilno poravnane.

''' } hint = { - 'plan': ['''\ + '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).
  4. -
'''], +''', - 'no_input_call': ['''\ + '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 @@ -62,10 +67,10 @@ 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.

'''], +shrani uporabnikov odgovor v spremenljivko ime.

''', - 'expressions_python': [''' + 'expressions_python': '''

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

 3 + 6
@@ -76,15 +81,15 @@ napišemo ime spremenljivke, na desno pa izraz:

 c = 2 * a * (3 + b)
 
-

Kot vidite, izraz lahko uporablja tudi spremenljivke.

'''], +

Kot vidite, izraz lahko uporablja tudi spremenljivke.

''', - 'printing': [''' + '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'], ''' @@ -110,7 +115,7 @@ f = float(fniz) 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.

'''], +npr. "10". Če imamo v nizu tudi kakšno črko, bo Python javil napako.

'''], 'not_callable' : [general_exception['error_head'], general_exception['general'], -- cgit v1.2.1