import random
cislo1 = random.randint(1,4)
cislo2 = random.randint(1,4)
print ("Kolko je:", cislo1, "x", cislo2, "?")
while 1:
odpoved = input("vasa odpoved je: ")
try:
odpoved = int(odpoved)
break
except (NameError):
pass
spr = cislo1*cislo2
if spr==odpoved:
print("spravne .... si frajer")
else:
print("zle .... hanbi sa", "je to:", cislo1*cislo2)
problém je ten že ak sa program spýta na výsledok a ja zadám písmeno a nie čislo tak vypíše chybu namiesto toho aby sa spýtal ešte raz až kým nezadám číslo.
chyba:
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
('Kolko je:', 2, 'x', 2, '?')
vasa odpoved je: ddd
Traceback (most recent call last):
File "/home/tommq/Dokumenty/nasobilka.py", line 7, in <module>
odpoved = input("vasa odpoved je: ")
File "<string>", line 1, in <module>
NameError: name 'ddd' is not defined
>>>
kde mam chybu ? diki
http://docs.python.org/library/functions.html?highlight=input#input
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
('Kolko je:', 2, 'x', 3, '?')
vasa odpoved je: 6
spravne .... si frajer
>>> ================================ RESTART ================================
>>>
('Kolko je:', 2, 'x', 3, '?')
vasa odpoved je: sdr
Traceback (most recent call last):
File "/home/tommq/Dokumenty/nasobilka.py", line 9, in <module>
odpoved = int(odpoved)
ValueError: invalid literal for int() with base 10: 'sdr'
>>>'
ked zadam cislo je to ok ale ked pismena tak opet chyba (ale už ina :-))