case do problem
Alf P. Steinbach
alfps at start.no
Tue Mar 2 13:04:21 EST 2010
* Alf P. Steinbach:
> * 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.
Oh dear, it's one of those days.
if 1 <= count <= 3:
m = (1, 10, 100)[count - 1]
>>> 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
>> that's what you're asking about:
>>
>>
>>> 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
More information about the Python-list
mailing list