[Tutor] (no subject)

Emile van Sebille emile at fenx.com
Wed Jun 20 04:03:45 CEST 2012


On 6/19/2012 12:35 PM Selby Rowley-Cannon said...
> Mailing list;
> I have a small, [for the most part] functioning translation app for
> Rydish, a language created for the sole purpose of an RPG. The only
> problem is when I enter a word that has not yet been translated, I get
> this error:
>
> Traceback (most recent call last):
> File "translator.py", line 25, in <module>
> Etranslate()
> File "translator.py", line 14, in Etranslate
> print(Edictionary[Eword])
> KeyError: 'world'
>
> Is there a way to print a user-freindly message instead of displaying a
> traceback?

As you're writing a translator it may be interesting to swap in 
something that can still be used in the translation.  No one's mentioned 
get as an option:

 >>> Edict = dict(zip('abcde','ABCDE'))
 >>> for ii in 'agbdteabcdfe':
...     print Edict.get(ii,'-grumble-')
...
A
-grumble-
B
D
-grumble-
E
A
B
C
D
-grumble-
E
 >>>


Or spice it up!

 >>> import random
 >>> undefined = ['-grumble-','-mumble-','-garbled-','-cough-']

 >>> for ii in 'agbdteabcdfe':
...     print Edict.get(ii,random.choice(undefined))
...
A
-mumble-
B
D
-grumble-
E
A
B
C
D
-cough-
E
 >>>


Emile







More information about the Tutor mailing list