case do problem
MRAB
python at mrabarnett.plus.com
Tue Mar 2 13:26:08 EST 2010
Tracubik wrote:
> hi, i've to convert from Pascal this code:
>
> iterations=0;
> count=0;
> REPEAT;
> iterations = iterations+1;
> ...
> IF (genericCondition) THEN count=count+1;
> ...
> CASE count OF:
> 1: m = 1
> 2: m = 10
> 3: m = 100
> UNTIL count = 4 OR iterations = 20
>
> i do something like this:
>
> iterations = 0
> count = 0
>
> m_Switch = (1,10,100)
>
> while True:
> iterations +=1
> ...
> if (genericCondition):
> count +=1
> ...
> try:
> m = m_Switch[count-1]
> except: pass
> if count = 4 or iterations = 20
>
> the problem is that when count = 4 m_Switch[4-1] have no value, so i use
> the try..except.
>
> Is there a better solution to solve this problem? and, generally
> speaking, the try..except block slow down the execution of the program or
> not?
>
Use a dict:
m_Switch = {1: 1, 2: 10, 3: 100}
and then catch the KeyError.
Don't use a bare 'except', catch the specific exception you want to
catch, and don't worry about the speed unless you discover that it's
real problem.
More information about the Python-list
mailing list