diff options
Diffstat (limited to 'python/problems')
-rw-r--r-- | python/problems/lists_and_for/contains_42/sl.py | 6 | ||||
-rw-r--r-- | python/problems/lists_and_for/contains_string/common.py | 10 | ||||
-rw-r--r-- | python/problems/lists_and_for/contains_string/sl.py | 20 | ||||
-rw-r--r-- | python/problems/lists_and_for/counting/sl.py | 17 | ||||
-rw-r--r-- | python/problems/lists_and_for/divisors/sl.py | 9 |
5 files changed, 47 insertions, 15 deletions
diff --git a/python/problems/lists_and_for/contains_42/sl.py b/python/problems/lists_and_for/contains_42/sl.py index 1a40549..245d346 100644 --- a/python/problems/lists_and_for/contains_42/sl.py +++ b/python/problems/lists_and_for/contains_42/sl.py @@ -93,4 +93,10 @@ hint = { <p>Program deluje pravilno! <br> Namig za bolj učinkovit program: ni vedno potrebno, da se program pregleda vse elemente. Če najdemo vrednost 42, nam ni potrebno več naprej iskati - zanko lahko prekinemo z ukazom <code>break</code> </p>'''], + + 'problematic_test_case': ['''\ +<p>Program ne dela pravilno!<br> +Poskusi xs = [%=testin%] <br> +pravilen rezultat: [%=testout%]</p> +'''], } diff --git a/python/problems/lists_and_for/contains_string/common.py b/python/problems/lists_and_for/contains_string/common.py index 29bc9f2..1f19d7f 100644 --- a/python/problems/lists_and_for/contains_string/common.py +++ b/python/problems/lists_and_for/contains_string/common.py @@ -25,7 +25,8 @@ hint_type = { 'for_loop': Hint('for_loop'), 'if_clause': Hint('if_clause'), 'printing': Hint('printing'), - 'print_out_for': Hint('print_out_for') + 'print_out_for': Hint('print_out_for'), + 'final_hint': Hint('final_hint') } def test(python, code): @@ -36,12 +37,12 @@ def test(python, code): [], ['Waldo']] test_out = [ + False, True, True, True, False, - True, - False + True ] n_correct = 0 @@ -69,6 +70,9 @@ def test(python, code): hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_xs)}}] if tin: hints.append({'id': 'problematic_test_case', 'args': {'testin': str(tin), 'testout': str(tout)}}) + if passed: + hints.append({'id': 'final_hint'}) + return passed, hints def hint(python, code): diff --git a/python/problems/lists_and_for/contains_string/sl.py b/python/problems/lists_and_for/contains_string/sl.py index d177463..49f0ed0 100644 --- a/python/problems/lists_and_for/contains_string/sl.py +++ b/python/problems/lists_and_for/contains_string/sl.py @@ -20,7 +20,7 @@ xs = ['foo', 'bar', 'baz', 'Waldo', 'foobar'] for_loop = ['''\ <p>Pregledati bo treba vse elemente v seznamu <code>xs</code>''', '''\ -<p>Najlažje bo s <b>for</b> zanko. +<p>Najlažje bo s <code>for</code> zanko. ''', '''\ <p>Poskusii naslednji dve vrstici:</p> @@ -43,7 +43,7 @@ if x == 'Waldo': plan = ['''\ -<p><b>Plan</b> je enak kot pri prvi nalogi: +<p>Plan je enak kot pri prvi nalogi: <pre> Za vsak element v seznamu Poglej, ali je element enak 'Waldo'? @@ -66,6 +66,20 @@ hint = { <p>Izpiši rezultat!</p>'''], 'print_out_for': ['''\ -<p>Pazi, da izpišeš rezultat izven zanke!</p>'''] +<p>Pazi, da izpišeš rezultat izven zanke!</p>'''], + + 'problematic_test_case': ['''\ +<p>Program ne dela pravilno!<br> +Poskusi xs = [%=testin%] <br> +pravilen rezultat: [%=testout%]</p> +'''], + + 'final_hint': ['''\ +<p>Program deluje pravilno! <br> +Nalogo lahko rešiš hitreje z operatorjem <code>in</code></p> +<pre> +xs = ['foo', 'bar', 'baz', 'Waldo', 'foobar'] +print('Waldo' in xs) +</pre>'''], } diff --git a/python/problems/lists_and_for/counting/sl.py b/python/problems/lists_and_for/counting/sl.py index 67dc323..c2fc820 100644 --- a/python/problems/lists_and_for/counting/sl.py +++ b/python/problems/lists_and_for/counting/sl.py @@ -80,11 +80,18 @@ hint = { 'print_out_for': ['''\ <p>Pazi, da izpišeš rezultat izven zanke!</p>'''], - 'final_hint:': ['''\ - <p>Nalogo lahko rešiš bistveno hitreje, če poznaš metodo <code>count</code></p> + 'final_hint': ['''\ +<p>Program je pravilen! <br> +Nalogo lahko rešiš hitreje, če poznaš metodo <code>count</code></p> <pre> - xs = [42, 5, 4, -7, 2, 12, -3, -4, 11, 42, 2] - print('Število 42 se v seznamu pojavi', xs.count(42), 'krat.') -</pre>'''] +xs = [42, 5, 4, -7, 2, 12, -3, -4, 11, 42, 2] +print('Število 42 se v seznamu pojavi', xs.count(42), 'krat.') +</pre>'''], + + 'problematic_test_case': ['''\ +<p>Program ne dela pravilno!<br> +Poskusi xs = [%=testin%] <br> +pravilen rezultat: [%=testout%]</p> +'''], } diff --git a/python/problems/lists_and_for/divisors/sl.py b/python/problems/lists_and_for/divisors/sl.py index 5ba36e1..cddeae8 100644 --- a/python/problems/lists_and_for/divisors/sl.py +++ b/python/problems/lists_and_for/divisors/sl.py @@ -74,15 +74,16 @@ hint = { 'last_number': ['''\ <p>Število deli samega sebe!</p>'''], - 'final_hint:': ['''\ + 'final_hint': ['''\ <p>Naloga rešena!</p> - <p>Dejansko ne potrebujemo pregledati vseh števil med <code>1</code> in </code>n-1</code>, + <p>Dejansko ne potrebujemo pregledati vseh števil med <code>1</code> in <code>n-1</code>, dovolj bo če gremo do kvadratnega korena od števila <code>n</code>:</p> <pre> -from math import sqrt +from math import * + n = int(input('Vnesi število: ')) -for i in range(1, sqrt(n)+1): +for i in range(1, int(sqrt(n)+1)): if n % i == 0: print(i, n/i) </pre>'''], |