《Abaqus GUI程序开发指南(Python语言)》——2.8 while和for循环

    xiaoxiao2023-09-09  164

    本节书摘来自异步社区《Abaqus GUI程序开发指南(Python语言)》一书中的第2章,第2.8节,作者: 贾利勇 , 富琛阳子 , 贺高 , 周正光 更多章节内容可以访问云栖社区“异步社区”公众号查看。

    2.8 while和for循环

    循环语句指的是重复执行的代码块,由循环体和循环终止语句组成。重复执行的语句称为循环体,循环体执行的次数由循环终止语句来控制。在Python语言中,一般采用while循环和for循环两种方式。

    **2.8.1 while循环**while循环语句是Python语言中最通用的迭代结构,只要while语句的顶端测试一直是真值,那么就会一直执行循环体内的代码块,每次循环之后,控制权会返回到开头部分,直到测试为假时,控制权才会传给while块之后的语句。

    while循环的一般格式如下。

    while <test>:     <statements1> else:     <statements2>

    其中,while和else的缩进位置必须一致。

    需要注意的是,Python中没有其他语言所谓的“do until”的概念,不过程序员可以在循环主体内部添加一个测试语句和break/continue/pass语句来实现类似的功能。其格式如下。

    while <test1>:   <statements1>   if <test2>:break   if <test3>:continue   if <test4>:pass else:   <statements2>

    其中,break代表的是跳出最内层循环,执行之后会立刻离开循环;continue 代表的是跳过本次循环,直接跳至下一次循环;pass语句是无运算的占位语句,它通常用于为复合语句编写一个空的主体。

    2.8.2 for循环for循环在Python中是一个通用的序列迭代器,可以遍历任何有序的序列对象中的元素。for语句可用于字符串、元组以及列表等多种数据类型。for循环的一般格式如下。

    for <target> in <object>:   <statements1> else:   <statements2>

    当运行for循环时,Python会逐个将序列对象中的元素赋值给目标,然后为每个元素执行循环主体。for循环也支持一个选用的else块,如果循环结束时没有碰到break语句,就会执行else语句,前面介绍的break和continue语句同样可以用于for循环,例如:

    for <target> in <object>:   <statements1>   if <test>:break   if <test>:continue else:   <statements2>

    【实例2.30】

    (1)对列表数据遍历循环

    p=mdb.models['Model-1'].parts['Part-1'] for i in [1,2,5,7,10]: highlight(p.elements[i])

    依次将模型'Model-1'中零件'Part-1'的指定单元高亮显示。

    (2)对一定范围的数据遍历循环

    p=mdb.models['Model-1'].parts['Part-1'] for i in range(0,10): print p.elements[i].label   #打印零件'Part-1'中前10个单元的单元号

    上述实例中,range(x,y,z)函数对应的是获取某一范围的数值,其中x为起始索引号,y为截止索引号,z为间隔数值,如果z空缺,默认z=1,并且range(x,y,z)所能获取的最大值为y-1,而不是y。

    除此之外,Python语言不仅可以对数值进行索引循环,还可以对某一类别对象内的各个元素进行遍历循环。

    【实例2.31】

    p = mdb.models[modelName].parts[partName] f = p.faces e=p.element n=p.nodes for face in f:   print f   # modelName为模型名称,partName为零件名称。   #f为零件的全部几何面,此循环表示对几何体的所有面元素进行循环。 for element in e:   print element.label   #循环输出模型中零件单元编号 for node in n:   print node.coordinates   #循环输出模型中零件节点坐标值。

    由上面的实例可以看出,在Python语言中,for循环的对象是丰富多样的,应用十分灵活。

    相关资源:《Abaqus GUI程序开发指南(Python语言)》配套资
    最新回复(0)