* 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
--
http://mail.python.org/mailman/listinfo/python-list