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

本节书摘来自异步社区《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循环的对象是丰富多样的,应用十分灵活。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值