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]