Python 流程控制语句

117 阅读3分钟

本人已参与[新人创作礼]活动,一起开启掘金创作之路。

分支与循环

一、分支

if...else

如果遇到二选一的条件,使用if else分支,其语法结构如下

if 表达式:
	语句块1
else:
	语句块2

流程图如下:

graph TD
	b{表达式}
    b--ture-->c[语句块1]
    b--false-->d[语句块2]

if...else语句还可简化,该简化形式与C++中的三目运算符相似以下面代码为例:

a = 1
if a > 0:
	b = a
else:
	b = -a

简写为

a = 1
b = a if a > 0 else -a

if...elif...else

elif相当于把else if缩写在了一起,该语句等同于C++中的if...else if...else,我们直接看流程图:

graph TD
	judge1{表达式}
    judge1--ture-->a[语句块1]
    judge1--false-->judge2{表达式2}
    judge2--true-->b[语句块2]
    judge2--false-->judge3{表达式3}
    judge3--true-->c[语句块3]
    judge3--false-->judge4[语句块n]

语法格式如下:

if 表达式1:
	语句块1
elif 表达式2:
	语句块2
elif 表达式3:
	语句块3
...
else:
	语句块 n

elif和else都必须和if一起使用,不能单独使用

if语句的嵌套:

注意:一定要严格控制缩进量

if 表达式1:
	if 表达式2:
		语句块1
	else:
		语句块2
else:
	if 表达式 3:
		语句块3
	else:
		语句块4

二、循环

1.while循环

while 表达式为真时执行:
	循环体

流程图:

graph TD
	START((开始))
	START-->judge1{条件表达式}
	judge1{条件表达式}--true-->a[循环体]
	a-->judge1
	judge1{条件表达式}--false-->END((结束))

2.for循环

for 变量 in 对象:
	循环体

对于for循环我们直接用流程图说明:

graph TD
START((开始))
	START-->judge1{序列中是否还有项}
	judge1--true-->a[取下一项]
	a-->b[循环体]
	b-->judge1
	judge1--false-->END((结束))

如输出1-100:

for i in range(101):
	print(i)

range()函数也是Py的一个内置函数,它的作用是生成一系列的整数,其语法格式如下:

range(start,end,step)
  • start:计数起始值,省略则从0开始。
  • end:计数结束值(不包括本值),如range(3)表示0~2,不可省略!
  • step:步长。 重点: 使用range()函数时,如果只有一个参数,那么表示指定的是 end值,如果是两个参数,则表示的是start和end,只有三个参数都在时步长才可以表示出来。

典例:输出10以内的所有奇数:

for i in range(1,10,2):
	print(i,end = ' ')

输出结果:1 3 5 7 9

这里专门说明一下end= ' '这个语句,它表明结束是以空格的方式结束,如果不加这个则默认为换行,输出结果如下:

1 3 5 7 9

遍历字符串: 如string= ‘我是一个字符串’ 如果直接print(string),则会将其整个输出,我们也可以用for循环对其遍历输出:

string = '我是一个字符串'
for i in string:
	print(i)

结合前面提到过的end,其输出结果:

我
是
一
个
字
符
串

横向输出而不空格:

for i in string:
	print(i,end = '')

#结果
我是一个字符串

循环嵌套:原理完全一样,举一个例子:

while 表达式1while 表达式2:
		循环体2
	循环体1

其他for for嵌套,for while嵌套和其格式一样,把握好缩进即可。

跳转语句

1.break

遇到break即跳出循环

2.continue

遇到后跳出本次循环进行下一次循环

补充:pass空语句:占位置用的,没别的作用 例子:

for i in range(1,10):
	if a == 5:
		print(a)
	else:
		pass
		#程序只会输出5