zl程序教程

您现在的位置是:首页 >  Python

当前栏目

Python基础入门(4)- 流程控制

2023-02-18 16:23:24 时间

流程控制

  • if....else
  • for循环
  • while循环

 

if...else流程控制

Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。

可以通过下图来简单了解条件语句的执行过程:

if

Python 支持来自数学的常用逻辑条件:

操作符描述
< 小于
<= 小于或等于
> 大于
>= 大于或等于
== 等于,比较两个值是否相等
!= 不等于

不同数值类型的 true 和 false 情况:

类型FalseTrue
布尔 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
'''