python自学篇八[循环:while+for+pass+range()+推导式]

本文是Python自学系列的第八篇,详细介绍了循环语句的使用,包括while、for循环,pass语句,range()函数,以及列表、集合、字典推导式。同时提供了一些实例和练习,帮助读者掌握Python中的循环和推导式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python基础系列:
python自学篇一[ Anaconda3安装 ]
python自学篇二[ pycharm安装及使用 ]
python自学篇三[ 判断语句if的使用 ]
python自学篇四[ 基本数据类型和字符串常用处理 ]
python自学篇五[ 列表 ]
python自学篇六[ 元组 ]
python自学篇七[ 字典+深拷贝与浅拷贝 ]描述
python自学篇八[ 循环:while+for+pass+range()+推导式 ]
python自学篇九[ 函数(一):参数+对象 ]
python自学篇九[ 函数(二):返回值return+yield+迭代器+生成器 ]
python自学篇九[ 函数(三):变量作用域+ATM+5个小练习 ]
python自学篇九[ 函数(四):递归函数+匿名函数+内置函数+高阶函数 ]
python自学篇十[ 面向对象 (一) :面向对象概念+定义类+练习一]
python自学篇十[ 面向对象 (二) :继承+多继承+类属性+实例属性]
python自学篇十[ 面向对象 (三) :访问限制+类方法+静态方法]
python自学篇十[ 面向对象 (四) :王者荣耀小游戏+模拟一个简单的银行进行业务办理的类]
python自学篇十一[ 模块简介+模块制作+dir()函数+标准模块+包]
python自学篇十二[ 文件:打开+读取+写入+3个习题]

什么是循环语句

  • 循环语句就是在符合条件的情况下。重复执行一个代码段。Python中的循环语句有while和for。

简单的while循环

while是一个条件循环语句,与if一样,他也有条件表达式。如果条件为真,while中的代码就会一直循环执行,直到循环条件不再为真才停止。

while 条件:
	代码块
  • if中可以再嵌套if,那么while中也可以嵌套while循环,从而实现一些特殊的效果。
while 条件1:
	满足条件1执行代码块1
	while 条件2:
		满足条件1又满足条件2执行代码块2
......
  • while循环使用else语句
语法:
while 条件:
	满足条件执行代码块
else:
	不满足条件执行代码块
  • break退出循环
    在循环语句中使用break的作用是,在循环体内遇到break则会跳出循环,终止循环,并且不论循环的条件是否为真,都不再继续循环下去。
  • 循环中使用continue
    如果想要一种效果,退出当前循环,再继续执行下一次循环。就可以使用continue

for循环

for是Python中另外一个循环语句,提供了Python中最强大的循环结构,它可以循环遍历任何序列项目, 如一个列表或者一个字符串。(sequence可以是列表元组集合,如果是字典只能遍历keys,无法遍历values)

  • 语法:
for <variable> in <sequence>:
    <statements>
else:
    <statements>
  • 示例:
students=['jack','tom','john','amy','kim','sunny']
for item in students: #用item接收遍历的元素
    print(item)

pass

  • pass语句的使用表示不希望任何代码或者命令的执行
  • pass语句是一个空操作,在执行的时候不会产生任何反应
  • pass语句常出现在if、while、for等各种判断或者循环语句中

range()函数

Python中range() 函数返回的是一个整数序列的对象,一般用在 for 循环中。

  • 语法:
range(start, stop[, step]) 

start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
end: 计数到 end 结束,但不包括 end。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

  • range()函数使用
list(range(10))     # 从 0 开始到 10 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
list(range(1, 11)) # 从 1 开始到 11 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
list(range(0, 30, 5)) # 步长为 5 [0, 5, 10, 15, 20, 25] 
list(range(0, 10, 3)) # 步长为 3 [0, 3, 6, 9] 
list(range(-10 ,0,2)) # 负数 [-10, -8, -6, -4, -2] 

推导式

  • 列表推导式:列表推导式(list comprehension)是利用其它列表创建新列表的一种方式,工作原理类似for循环,即可对得到的元素进行转换变形 ,其基本格式如下(可以有多个for语句):
[expr for value in collection ifcondition]
#expr可以使for循环的变量,也可以是表达式
  • 集合推导式:集合推导式跟列表推导式非常相似,唯一区别在于用{}代替[]。其基本格式如下:
{ expr for value in collection if condition }
  • 字典推导式:
{ key_expr: value_expr for value in collection if condition }
strings = ['import','is','with','if','file','exception']
D = {key: val for val,key in enumerate(strings)}  
  • 嵌套列表推导式
names=[['Tom','Billy','Jefferson','Andrew','Wesley','Steven','Joe'],['Alice','Jill','Ana','Wendy','Jennifer','Sherry','Eva']]  
#注意遍历顺序,这是实现的关键   
bb=[name for lst in names for name in lst if name.count('e')>=2] 
print(bb)   
['Jefferson', 'Wesley', 'Steven', 'Jennifer']

推导式练习

  • 找出name中长度大于4的名字,组成列表打印出来.
    过滤掉长度小于5的字符串列表,并将剩下的转换成大写字母.
    代码:
names = ['Tom','Billy','Jefferson','Andrew','Wesley','Steven','Joe', 'Alice','Jill','Ana','Wendy','Jennifer','Sherry','Eva']
Mm=[name.upper() for name in names if len(name)>4]
print(Mm)
  • 求M,N中矩阵对应元素的乘积
m = [[1,2,3],[4,5,6],[7,8,9]]
n = [[2,2,2],[3,3,3],[4,4,4]]
sum=[ m[i][j]*n[i][j] for i in range(3) for j in range(3)]
print(sum)

结果:

[2, 4, 6, 12, 15, 18, 28, 32, 36]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值