菜单

Python控制结构(带有示例)

循环​

与C和ST相对,Python中的for循环不计算循环变量,而是在序列上进行迭代。这种序列可以是字典,列表,元组,字符串中的字符或文件中的行。

以下示例显示了一些for循环:以下示例显示了典型循环:

例如: loops.py

from __future__ import print_function

print("Enumerating over a simple list:")
for i in (1,2,3,4): 
    print(i, end=", ") # end =将换行符替换为“,”
print()                # 但是在本案例的结尾,我们仍然需要换行符。

print("Enumerating over the characters in a string:")
for i in "MetaFacture": # 字符表示为长度为1的字符串。
    print(i, end=", ")
print()

print("Enumerating over the integers 1 to 4:")
for i in range(1, 5): # 上界是唯一的。
    print(i, end=", ")
print()

print("Enumerating using xrange:")
for i in xrange(5): # xrange与range相似,但是大范围需要较少的内存。
    print(i, end=", ")
print()

print("Enumerating including the item number:")
for i, v in enumerate("MetaFacture"): 
    print(i, v)
 
输出结果:

 

 

如果除工程外还需要索引或数字,则应使用示例脚本的最后一种情况中所示的enumerate。以下代码被认为是较差的样式:

例如:Poor style

text = "MetaFacture"

for i in range(len(text)):   # BAD STYLE! 
    v = text[i]              # DON'T TRY THIS AT HOME! 
    print(i, v)
 

除了for循环,Python还具有while循环,这与C和ST中的非常相似:

例如:"while”循环

i = 0
while i < 3;    
    print(i)
    i += 1
 
注意:这个例子不是很实际。你更有可能使用带范围的for循环。

 


IF / ELSE​

if/else构造类似于其他编程语言中的构造。这有一个简短的例子:

例如:"if_else.py"

from __future__ import print_function
i = int(system.ui.query_string("Please enter an integral number..."))
if i < 0: 
    print("Your number was negative.")
elif i > 0: 
    print("Your number was positive.")
else: 
    print("It seems your number was zero.")

 

else分支是可选的,可以有零个,一个或多个elif分支。

 


函数,类和方法​

Python允许使用方法定义函数和类。具有方法的类基本上类似于ST中的功能块,或者类似于C ++,Java或C#等语言的类。但是,Python不支持接口。

有关详细信息,请参阅Python文档以定义函数和类。

例如:函数,类和方法

#用名称sum和两个参数a和b定义一个函数:
def sum(a, b): 
    return a + b # we return the sum of a and b.

# 我们现在可以调用上面定义的函数:
print(sum(5,7))

# 现在我们定义一个Foo类:
class Foo: 
    # 该类获取方法“ bar”。
    # 注意:对于方法,第一个参数始终是“ self”,
    # 指向当前实例。这类似于# ST和其他的语言中的“ this”
    
    def bar(self, a, b): 
        print("bar(%s,%s)" % (a,b))

# 我们创建该类的一个实例:
f = Foo()

我们在实例上调用方法栏。
f.bar("some", "params")

 


模块和标准库​

在IEC中,你可以导入库以供其他书面代码重复使用。作为插件,Python中有可能导入模块。

Python标准库包含许多用于不同目的的模块,例如:

  • 字符串处理
  • 日期和时间处理
  • 搜集
  • 通行
  • 数学函数
  • 文件处理
  • 保持
  • 压缩和归档
  • 数据库访问
  • 加密服务
  • 网络及Internet访问
  • 发送邮件

要创建自己的模块,请编写一个Python文件,该文件定义要提供的功能和类。将此文件保存到与示例脚本相同的目录中。如果将文件命名为mymodule.py,则可以使用import mymodule将其导入。

这是从math模块导入和使用余弦函数和pi常量的示例:

例如:导入数学函数

from math import cos, pi

print(pi) # prints 3.14159265359

print(cos(pi)) # prints -1.0

以下包含更多示例,这些示例访问有关操作系统,Python版本和解释器的信息:

很重要的例子

import os
print(os.environ["OS"])

from sys import platform, version, executable
print(platform)
print(version)
print(executable)


有一个特殊的模块__future__用于激活新的语言功能。最重要的是,它在Python开发人员引入向后兼容的新功能时使用。这些功能必须通过特殊的“__future__导入”来激活。我们在此处的大多数示例脚本中使用的一个示例是激活print的新功能语法作为函数而不是语句。

例如:"__future__"

# 使print()成为函数而不是语句
从__future__导入print_function

Python文档提供了所有__future__导入的完整列表。

除了普通的Python模块之外,IronPython代码还可以像使用Python模块一样访问.NET程序集。这将打开对.NET Framework类库和第三方库的访问。这是一个示例,如何通过库Windows Forms打开对话框:

例如:Opening a .NET dialog box

import clr
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import MessageBox

MessageBox.Show("Hello")
 

最近修改: 2025-07-24