2016-02-14 3 views
1

Просто быстрый вопрос относительно преобразования команд цикла в IDL на python.Loop-команды эквивалентны в IDL для python

I имеет следующую структуру цикла в синтаксисе IDL:

for ... do begin 
    for ... do begin 
     if ... 
     ... 
     endif else begin 
     .... 
     endelse 
    endfor 
endfor 

Теперь, я бы сказал, что примерно переводится

for ... : 
    for ... : 
     if ... 
     ... 
     end if else: 
     .... 
     endelse 
    endfor 
endfor 

В питоне.

Однако, я бы сказал, что команды endelse и endfor являются излишними? Но что я должен их заменить?

ответ

3

Вы частично правы, вам просто нужно отказаться от endelse и endfor и заменить else if с elif.

for ... : 
    for ... : 
     if ...: 
     .... 
     elif: 
     .... 

Из Python documentation, вот пример для If statement:

>>> x = int(raw_input("Please enter an integer: ")) 
Please enter an integer: 42 
>>> if x < 0: 
...  x = 0 
...  print 'Negative changed to zero' 
... elif x == 0: 
...  print 'Zero' 
... elif x == 1: 
...  print 'Single' 
... else: 
...  print 'More' 
... 
More 

For statement

>>> # Measure some strings: 
... words = ['cat', 'window', 'defenestrate'] 
>>> for w in words: 
...  print w, len(w) 
... 
cat 3 
window 6 
defenestrate 12 
2

В python отсутствует endif или endfor. Вы Unindent линию, чтобы указать, что и Элиф является «еще, если»

for ... : 
    for ... : 
     if ...: 
     ... 
     elif...: 

Я мог бы быть искажая «конец, если начать» как новый, если заявление вместо просто еще. В этом случае,

for ... : 
    for ... : 
     if ...: 
     ... 
     else: 
     ... 
+0

Итак, это будет elif или еще. (У меня было два ответа еще один elif, я больше склонен идти с вашим ответом, поскольку у вас более высокая репутация ...) – user3125347

+0

Репутация ничего не значит, просто я трачу слишком много времени на ответы на вопросы :) elif требует условия вроде if: do action1, else if that: do action2, else: do action 3. Если вы делаете простой, если else между такими же четными, где есть только два условия, вы можете просто сделать, если, тогда иначе, и пропустите elif –

3

Python группировка опирается только на отступы, так что вам не нужен никакой end для вашего if и for петли/группы.

Это правильный код Python:

for i in range(5): 
    print(i) 
3

Однако, я бы сказал endelse и ENDFOR команды являются избыточными? Но что я должен их заменить?

Вы не заменяете их ничем.

От the Python tutorial:

тело цикла является отступом: отступы способ Пайтона группировки заявлений. В интерактивной подсказке вам нужно ввести вкладку или пробел для каждой строки с отступом. На практике вы подготовите более сложный ввод для Python с помощью текстового редактора; все достойные текстовые редакторы имеют средство автоматического ввода. Когда составной оператор вводится в интерактивном режиме, за ним должна следовать пустая строка для указания завершения (поскольку анализатор не может угадать, когда вы набрали последнюю строку). Обратите внимание, что каждая строка в базовом блоке должна иметь отступы на одну и ту же сумму.

Чтобы закончить блок, просто вернитесь к предыдущему уровню отступа.

Смежные вопросы