《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月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
158 1
|
1月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
242 1
|
2月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
270 102
|
2月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
250 103
|
2月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
189 82
|
6月前
|
API C++ 开发者
PySide vs PyQt:Python GUI开发史诗级对决,谁才是王者?
PySide 和 PyQt 是 Python GUI 开发领域的两大利器,各有特色。PySide 采用 LGPL 协议,更灵活;PyQt 默认 GPL,商业使用需授权。两者背后团队实力雄厚,PySide 得到 Qt 官方支持,PyQt 由 Riverbank Computing 打造。API 设计上,PySide 简洁直观,贴近原生 Qt;PyQt 增加 Pythonic 接口,操作更高效。性能方面,两者表现优异,适合不同需求的项目开发。选择时可根据项目特点与开源要求决定。
574 20
|
1月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
134 4
|
4月前
|
Python
Python中的循环可以嵌套使用吗?
Python中的循环可以嵌套使用吗?
329 57
|
3月前
|
机器学习/深度学习 自然语言处理 数据可视化
Python:简洁而强大的通用语言
Python:简洁而强大的通用语言

推荐镜像

更多