本人已参与[新人创作礼]活动,一起开启掘金创作之路。
分支与循环
一、分支
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 表达式1:
while 表达式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