目录

Python06流程控制语句

【Python】06、流程控制语句

通过流程控制语句,可以改变程序的执行顺序,也可以让指定程序反复执行多次。

流程控制语句分类:

  • 条件判断语句
  • 循环语句

1.条件判断语句

1.1 if 语句

if语句是常见的条件判断语句

语法格式:if 条件表达式 :语句

默认情况下,if语句只会控制紧随其后的那条语句,

如果希望控制多条语句,可以使用代码块(即在冒号后另起一行,带有一个缩进)

https://i-blog.csdnimg.cn/direct/dfb21516d9ed494aaf5cb94b4168be02.png

执行流程:if语句在执行时,先对条件表达式进行求值判断,

如果为True,则执行if后的语句,如果为False,则不执行

注意

在if的条件表达式中可以使用逻辑运算符连接多个条件

缩进的方式

  1. 一种使用Tab键,一种使用空格(4个)
  2. Python的官方文档中推荐使用空格来缩进
  3. Python代码中使用的缩进方式必须统一

为了统一缩进方式,可以在sublime中设置按Tab键时生成4个空格

设置步骤:

首选项-设置,在弹出的文档中搜索 translate_tabs_to_spaces,将这个值设置为true

2. input 函数

该函数用来获取用户的输入

  1. input()函数调用后,程序会立即暂停,等待用户输入。用户输入完成后,点击回车程序才会继续执行
  2. input函数中可以设置一个字符串参数,这个字符串将会作为提示文字显示
  3. 用户输入完成后,输入的内容会以返回值的形式返回

https://i-blog.csdnimg.cn/direct/da9a48f6dff44457861a50690867f4de.png

https://i-blog.csdnimg.cn/direct/03d1f07958fb472888d6450f2c43f25c.png

注意: input的返回值是一个字符串,如果输入的是数字类型,接收的时候需要做类型转换

3.if-else 语句

语法结构:if-else 条件表达式:

if 条件表达式 :
      代码块
else : 
      代码块

eg:

https://i-blog.csdnimg.cn/direct/d7a178a927b649a6a5d6ddab7f4031e1.png

https://i-blog.csdnimg.cn/direct/cd90cfeaa26141238b1ec7e132af01b5.png

4.if-elif-else 语句

多条件判断语句,语法结构如下:

if 条件表达式 : 
	代码块
elif 条件表达式 : 
	代码块
elif 条件表达式 : 
	代码块
	.
	.
	.
else : 
	代码块

代码执行流程:

if-elif-else 语句在执行时,会自上而下一次对条件表达式进行求值判断,

  • 如果表达式的结果为True,则执行当前代码块,然后语句结束
  • 如果表达式结果为False,则继续向下判断,直到找到True为止
  • 如果所有的表达式都是False,则执行else后的代码块

if-elif-else语句只有一个代码块会被执行

eg:

https://i-blog.csdnimg.cn/direct/326cbfa700c645d5bfa2f170894f4718.png

https://i-blog.csdnimg.cn/direct/2ead6abf7ea94a2a948561039cc922a8.png

https://i-blog.csdnimg.cn/direct/9c1d1afa45c2425c84109eb81ef51969.png

2.循环语句

循环语句可以指定的代码块重复指定的次数,循环语句分为:

  • while循环
  • for循环

2.1 while语句

语法结构

 while 条件表达式 : 
 	代码块

执行流程:

  • while语句在执行时,会先对while后的条件表达式进行求值判断,
  • 如果判断结果为True,则执行循环体(代码块)
  • 循环体执行完毕,继续对条件表达式进行求值判断,以此类推,直到判断结果为False,则循环终止
  • 如果循环有对应的else,则执行else后的代码块
  • 循环三要素
  1. 初始化表达式,通过初始化表达式初始化一个变量
  2. 条件表达式,用来设置循环执行的条件
  3. 更新表达式,修改初始化变量的值

eg:

# 1.初始化表达式
i = 0
# 2.条件表达式,设置循环执行条件
while i < 10 :
	print(i)
	# 3.更新表达式,修改初始化值
	i += 1

执行结果:

0
1
2
3
4
5
6
7
8
9

***Repl Closed***

2.2 while语句练习:

  1. 求100以内所有奇数的和:
i= 1
res = 0

while i < 100 :
		res += i
		i += 2

print('100以内奇数和=',res)

结果:

100以内奇数和= 2500

***Repl Closed***
  1. 获取1000以内的水仙花数
i = 100

while i < 1000 :
	# 百位数
	a = i // 100
	# 十位数
	b = (i - a * 100) // 10
	# 个位数
	c = i % 10

	# 执行判断
	if a ** 3 + b ** 3 + c ** 3 == i :
		print(i)
	i += 1

运行结果:

153
370
371
407

***Repl Closed***

2.3 循环嵌套

循环嵌套时,外层循环每执行一次,内层循环就要执行一圈

i = 0

while i < 5 : 
    j = 0
    while  j < i + 1 : 
        print('*',end='')
        j += 1
    print()
    i += 1

# 结果
*
**
***
****
*****

***Repl Closed***

打印乘法表:

user_input = int(input('请输入乘法表大小:'))

if user_input > 0 : 
    # 表示行
    i = 1
    #表示列
    # j = 1

    while i < user_input : 
        j = 1
        while j <= i : 
            print(f'{j}*{i}={j * i}',end=' ')
            j += 1
        print()
        i += 1

# 结果:

请输入乘法表大小:10
1*1=1 
1*2=2 2*2=4 
1*3=3 2*3=6 3*3=9 
1*4=4 2*4=8 3*4=12 4*4=16 
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81 

***Repl Closed***

2.4 break和continue

  • break可以用来立即退出当前循环(退出内层循环,如果外层有循环会继续执行)
  • continue 表示跳过当次,执行下一次循环

break和continue都是针对距离最近的循环起作用

  • pass

pass在Python中用来在判断或循环语句中占位的