case do problem

Alf P. Steinbach alfps at start.no
Tue Mar 2 19:01:36 CET 2010

```* Alf P. Steinbach:
> * Tracubik:
>> 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
>
> Uhm, is this syntactically valid Pascal? As I recall, every Pascal
> construct was delimited in some way. Once I had the complete Pascal
> syntax in my head, but alas, not anymore...
>
>
>> 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.
>
>   iterations = 0
>   count = 0
>   while not( count == 4 or iterations == 20 ):
>       iterations += 1
>       # ...
>       if generic_condition:
>           count += 1
>       # ...
>       m = (1, 10, 100, 100)[count]

Add one extra 100 there.

>> Is there a better solution to solve this problem?
>
> Define "better". Do you mean faster, more clear, shorter, using less
> memory, what?
>
> Above I've assumed that you want to get rid of the try block, since
>
>
>> and, generally speaking, the try..except block slow down the execution
>> of the program or not?
>
> Probably, but don't think about it. Python programming is at a level
> where that kind of efficiency doesn't count. Or, ideally it shouldn't
> count.
>
>
> Cheers & hth.,
>
> - Alf

```