summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorMartin <martin@leo.fri1.uni-lj.si>2015-10-08 12:02:43 +0200
committerMartin <martin@leo.fri1.uni-lj.si>2015-10-08 12:02:43 +0200
commit45474b5c8cefa916aeb64e1c15a79f647a86d58c (patch)
treee8df83544ed4da18f1288fee3bf0506069eab4e8 /python
parent1f9f6de923e4b490c42a44d660b3e32dbe11426e (diff)
Added final hints.
Diffstat (limited to 'python')
-rw-r--r--python/problems/lists_and_for/contains_42/sl.py6
-rw-r--r--python/problems/lists_and_for/contains_string/common.py10
-rw-r--r--python/problems/lists_and_for/contains_string/sl.py20
-rw-r--r--python/problems/lists_and_for/counting/sl.py17
-rw-r--r--python/problems/lists_and_for/divisors/sl.py9
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>'''],