Python基础入门(4)- 流程控制
流程控制
- if....else
- for循环
- while循环
if...else流程控制
Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。
可以通过下图来简单了解条件语句的执行过程:
if
Python 支持来自数学的常用逻辑条件:
操作符 描述 <
小于 <=
小于或等于 >
大于 >=
大于或等于 ==
等于,比较两个值是否相等 !=
不等于 不同数值类型的 true 和 false 情况:
类型 False True 布尔 False(与0等价) True(与1等价) 数值 0, 0.0 非零的数值 字符串 '', ""(空字符串) 非空字符串 容器 [], (), {}, set() 至少有一个元素的容器对象 None None 非None对象 实例:
a = 22 b = 33 if b > a: print(b) #33注意:
- 1、每个条件后面要使用冒号 :,表示接下来是满足条件后要执行的语句块。
- 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。Python 依赖缩进,使用空格来定义代码中的范围。其他编程语言通常使用花括号来实现此目的。
- 3、在Python中没有switch – case语句。
if...elif
elif 关键字是 python 对“如果之前的条件不正确,那么试试这个条件”的表达方式
# coding:utf-8 a = 22 b = 22 if b > a: print("b大于a") elif b==a: print("a与b相等") # 输出结果:a与b相等
if...else
else 关键字捕获未被之前的条件捕获的任何内容
# coding:utf-8 a = 22 b = 15 if b > a: print("b大于a") elif b==a: print("a与b相等") else: print("b<a") # 输出结果:b<a
简写if
如果只有一条语句要执行,则可以将其与 if 语句放在同一行
# coding:utf-8 a = 22 b = 33 if b > a : print(b) # 输出结果:33
简写if...else
如果只有两条语句要执行,一条用于 if,另一条用于 else,则可以将它们全部放在同一行:
# coding:utf-8 a = 22 b = 33 print("b>a") if b>a else print("b<a") # 输出结果:"b>a"
逻辑运算符
- and:多个判断条件同时成立,为True
- or:多个判断条件有一个成立,为True
# coding:utf-8 a=1 list_1=[1,2,3,4] list_2=[5,6,7,8] if a in list_1 and a not in list_2: print("a在list_1中,不在list_2中") # 输出结果:"a在list_1中,不在list_2中"# coding:utf-8 a=1 list_1=[1,2,3,4] list_2=[5,6,7,8] if a in list_1 or a in list_2: print("a在list_1和list_2其中一个列表中") # 输出结果:"a在list_1和list_2其中一个列表中"
嵌套if
if 语句中包含 if 语句,这称为嵌套 if 语句
# coding:utf-8 students={"name":"小张"} if students: if students.get("name") == "小张": print("学生字典里面有数据,并且小张在字典中") # 输出结果:学生字典里面有数据,并且小张在字典中
pass语句
if 语句不能为空,但是如果处于某种原因写了无内容的 if 语句,使用 pass 语句来避免错误
# coding:utf-8 students={"name":"小张"} if students: pass # 编辑器不会报错,并且代码可运行
for循环
for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。
for循环的一般格式如下:
for 判断条件: 为True时,执行的代码块for循环语法
# coding:utf-8 fruits = ["apple", "banana", "cherry"] for x in fruits: print(x) ''' 输出结果: apple banana cherry ''' for x in "banana": print(x) ''' 输出结果: b a n a n a ''' for x in {"name":"zhangsan","age":20,"top":180}: print(x) ''' 输出结果: name age top '''
break语句
使用 break 语句,我们可以在循环遍历所有项目之前停止循环
# coding:utf-8 # 当 x 为 "banana" 时退出循环 fruits = ["apple", "banana", "cherry"] for x in fruits: print(x) if x == "banana": break ''' 输出结果: apple banana '''
continue语句
使用 continue 语句,我们可以停止循环的当前迭代,并继续下一个
# coding:utf-8 # 不打印香蕉 fruits = ["apple", "banana", "cherry"] for x in fruits: if x == "banana": continue print(x) ''' 输出结果: apple cherry '''
range()函数
如需循环一组代码指定的次数,我们可以使用 range() 函数,range() 函数返回一个数字序列,默认情况下从 0 开始,并递增 1(默认地),并以指定的数字结束
# coding:utf-8 list_1=[] for x in range(10): list_1.append(x) print(list_1) # 输出结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]注意:range(10) 不是 0 到 10 的值,而是值 0 到 9;range()范围包左不包右;同时range支持设置步长取数
# coding:utf-8 list_1=[] # 1:从1开始 10:不包含10,即到9结束 2:步长为2,隔2个取一个 for x in range(1,10,2): list_1.append(x) print(list_1) # 输出结果:[1, 3, 5, 7, 9]
For 循环中的 Else
for 循环中的 else 关键字指定循环结束时要执行的代码块:
# coding:utf-8 list_1=[] # 1:从1开始 10:不包含10,即到9结束 2:步长为2,隔2个取一个 for x in range(1,10,2): list_1.append(x) else: list_2=list_1[::-1] print(list_2) # [9, 7, 5, 3, 1]
嵌套循环
# coding:utf-8 adj = ["red", "big", "tasty"] fruits = ["apple", "banana", "cherry"] for x in adj: for y in fruits: print(x, y) ''' 输出结果: red apple red banana red cherry big apple big banana big cherry tasty apple tasty banana tasty cherry '''
While循环
以一定条件为基础的循环,条件满足则无限循环,条件不满足退出循环
# coding:utf-8 i = 1 while i < 7: print(i) if i == 3: break i += 1 print("==========================") ''' 输出结果: 1 2 3 ========================== ''' j = 1 while j < 7: j += 1 if j == 3: continue print(j) print("==========================") ''' 输出结果: 2 4 5 6 7 ========================== ''' k = 1 while k < 7: print(k) k += 1 else: #当条件不再成立时,我们可以运行一次代码块👇 print("k is no longer less than 7") ''' 输出结果: 1 2 3 4 5 6 k is no longer less than 7 '''