[python] Obsluha uživatelských chyb
Leos Pol
leos na radiante-corp.com
Středa Listopad 1 21:25:42 CET 2006
Jakub Lucký wrote:
> Tak, a je tu můj premiérový lamerský dotaz
>
> Mám jednoduchý kód
>
> promenna = input("zadej cislo:")
>
> což mi v konzoli zobrazí normální dotaz, pokud ovšem místo čísel zadá
> dotyčný řetězec, vyhodí Python relativně ošklivý error...
> Nejde to nějak "pořešit" aby se místo toho dával třeba ValueError?
> napadají mě řešení přes Try/Except a Raise, ale nepodařilo se mi to
> zprovoznit
>
> Děkuji za radu
> Jakub
>
Obavam se, ze hledate neco jineho. Build-in fce input() je vlastne
eval(raw_input()) a prave raw_input, je to ono:
promenna = raw_input('zadej cislo: ')
Pozor, vyledek teto fce je vzdy string, takze musite provest dodatecny
prevod na cislo a prave tam provest kontrolu vstupu.
Abych uplne nekecal, tak lze pouzit i ten input, ale musel byste
uzivatele prinutit vstup davat do uvozovek (apostrofu):
>>> promenna = input('zadej cislo: ')
zadej cislo: 'nezadam :-)'
>>> promenna
'nezadam :-)'
>>>
Leo
BTW: pro pochopeni doporucuji nastudovat chovani eval()
--
----
Leos Pol
SW Engineer
Radiante Corp.
If it can be imagined,
we can implement it
Další informace o konferenci Python