与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 "CODESYS": # 字符表示为长度为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("CODESYS"):
print(i, v)
输出结果:
如果除工程外还需要索引或数字,则应使用示例脚本的最后一种情况中所示的enumerate。以下代码被认为是较差的样式:
.例如:Poor style
text = "CODESYS"
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")
另请参阅