循环命令在IDL中等效于python

时间:2016-02-14 13:45:11

标签: python idl-programming-language

关于将IDL中的循环命令转换为python的简单问题。

我在IDL语法中有以下循环结构:

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

现在,我想说这大致转化为

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

在python中。

但是,我会说endelse和endfor命令是多余的?但是我应该用它替换它们呢?

4 个答案:

答案 0 :(得分:2)

您部分正确,您只需要放弃endelseendfor并将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

答案 1 :(得分:2)

Python分组仅依赖于缩进,因此您的endif循环/组不需要for

这是有效的Python代码:

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

答案 2 :(得分:2)

  

但是,我会说endelse和endfor命令是多余的?但是我应该用它替换它们呢?

你不要用任何东西替换它们。

来自the Python tutorial

  

循环的 body 缩进:缩进是Python对语句进行分组的方式。在交互式提示符下,您必须为每个缩进行键入一个选项卡或空格。在实践中,您将使用文本编辑器为Python准备更复杂的输入;所有体面的文本编辑都有自动缩进功能。当以交互方式输入复合语句时,必须后跟一个空行以指示完成(因为解析器在您键入最后一行时无法猜出)。请注意,基本块中的每一行必须缩进相同的数量。

要结束一个块,只需返回上一级缩进。

答案 3 :(得分:1)

python中没有endif或endfor。你取消了这一行以表示和elif是“其他如果”

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

我可能会将“end if begin”误解为新的if语句,而不仅仅是其他语句。在那种情况下,它是

 for ... :
   for ... :
      if ...:
         ...
      else:
         ...