关于python:Python从入门到精通十Python流程控制的关键字该怎么用呢收藏下来常看常新

您好,我是码农飞哥,感谢您浏览本文,欢送一键三连哦
这篇文章次要介绍Python中流程管制的关键字的应用,波及到if else,for,while等关键字
干货满满,倡议珍藏,须要用到时常看看。 小伙伴们如有问题及须要,欢送踊跃留言哦~ ~ ~。

前言

有句话说程序就是由流程+数据结构组成。任何程序都是如此。后面花了好几个篇幅来介绍Python中的各种数据结构,这一篇文章接着来介绍下流程管制。数据结构说白了就是用来存储数据的,而流程就是用来控制系统的运行的。

流程管制

流程管制有三种构造,一种是程序构造,一种是抉择(分支)构造,一种是循环构造。
程序构造:就是让程序依照从头到尾的程序执行代码,不反复执行任何一行代码,也不跳过任何一行代码。一步一个脚印示意的就是这个意思。
抉择(分支)构造:就是让程序依据不同的条件执行不同的代码,比方:依据年龄判断某个人是否是成年人。
循环构造: 就是让程序循环执行某一段代码。程序的流程这里不做介绍了。

抉择构造(if,else):

if语句

只应用if语句是Python中最简略的模式。如果满足条件则执行表达式。则跳过表达式的执行。其伪代码是:

if 条件为真:
   代码块

如果if 前面的条件为真则执行代码块。否则则跳过代码的执行。
其流程图是:

就是说只应用if的话,则表达式成立的话执行代码块,不成立的话就完结。
上面就是一个简略的例子,如果满足a==1这个条件则打印a,否则跳过该语句。

a = 1
if a == 1:
    print(a)

if else语句

if else语句是if的变体,如果满足条件的话则执行代码块1,否则则执行代码块2。其伪代码是:

if 条件为真:
   代码块1
else 
   代码块2

流程图是:

同时应用if和else的话,则表达式成立的话执行一个代码块,表达式不成立的话则执行另一个代码块。
举个简略的例子吧。

age = 3
if age >= 18:
    print('your age is', age)
    print('adult')
else:
    print("your age is", age)
    print('kid')

依据输出的年龄判断某人是否是成年人。如果age大于等于18岁,则输入adult,否则输入kid。

if elif else语句

if elif else语句针对的就是多个条件判断的状况,如果if条件不满足则执行elif的条件,如果elif的条件也不满足的话,则执行else外面的表达式。其伪代码是:

if 条件为真:
   表达式a
elif 条件为真:
   表达式b
....
elif 条件为真:
   表白是n-1
else 
   表达式n

其中elif能够有多个,然而elif不能独自应用,必须搭配if和else一起应用
须要留神的是if,elif和else前面的代码块肯定要缩进,而且缩进量要大于if,elif和else自身,倡议的缩进量是4个空格。同一代码中所有语句都要有雷同的缩进。 仍然是举例说明:

bmi = 80.5 / (1.75 * 1.75)
if bmi < 18.5:
    print('过轻')
elif 18.5 <= bmi < 25:
    print('失常')
elif 25 <= bmi < 28:
    print('过重')
elif 28 <= bmi < 32:
    print('瘦削')
else:
    print('重大瘦削')
pass

上面就是依据bmi规范来判断一个人是过轻,失常还是瘦削。pass是Python中的关键字,用来让解释器跳过此处,什么都不做。

嵌套语句的应用

嵌套语句就是在一个if或者else的代码块中还存在子判断。如下例所示:

num = 23
if num < 20:
    print('不形成饮酒行为')
else:
    if 20 <= num and num < 80:
        print('已达到酒驾的规范')
    else:
        print('曾经达到醉驾的规范')

循环的关键字

while循环语句详解

while是作为循环的一个关键字。其伪代码是:

while 条件表达式:
    代码块

肯定要保障循环条件有变成假的时候,否则这个循环将成为一个死循环,即该循环无奈完结。 其流程图是:

如果while中的表达式成立的话则执行循环体,否则的话则间接完结。
举个栗子:计算从1~100的求和,这就是一个经典的使用循环的场景

sum = 0
n = 1
while n <= 100:
    sum = sum + n
    n = n + 1
print('sum=', sum)

运行后果是sum= 5050,这个循环的完结条件是n>100,也就是说当n>100是会跳出循环。

range函数

range函数用于生成一系列的数字,其语法结构是:

range(start,end,step)

其各局部的语法解释是:
start示意开始的数字(包含,能够不填写),
end 完结的数字(不包含,必须填写),
step 步长(能够不填写),默认是1
计算1~100的求和能够通过range函数来实现则是这样:


sum = 0
for x in range(101):
    sum = sum + x
print(sum)
print(range(101))

运行后果是:

5050
range(0, 101)

能够看出range()函数失去的是一个range对象,必须通过for循环解析输入其内容。range(101)理论运行的后果是range(0,101),默认start等于0,会输入0~100范畴内的所有数字,不包含数字101。

for循环

在介绍range函数时用到了for关键字,这里介绍一下for关键字的应用。其语法结构是:

for 迭代变量 in 字符串|列表|元组|字典|汇合:
    代码块

字符串,列表,元祖,字典,汇合都能够还用for来迭代。其流程图是:

for 循环就是:首先依据in 关键字判断序列中是否有项,如果有的话则取下一项,接着执行循环体。如果没有的话则间接完结循环。

range疾速生成推导式

列表推导式

列表推导式的语法格局是

[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]

此格局中,[if 条件表达式]不是必须的,能够应用,也能够省略。上面就是输入1~10的列表的乘积的一个例子:

L = [x * x for x in range(1, 11)]
print(L)

此表达式相当于

L = []
for x in range(1, 11):
    L.append(x * x)
print(L)

运行后果是:

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

来点简单的吧,上面就是输入

print([x for x in range(1, 11) if x % 2 == 0])

运行后果是[2, 4, 6, 8, 10]
再来点简单的,应用多个循环,生成推导式。

d_list = [(x, y) for x in range(5) for y in range(4)]
print(d_list)

运行后果是:

[(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3), (4, 0), (4, 1), (4, 2), (4, 3)]

下面代码,x是遍历range(5)的迭代变量(计数器),因而该x可迭代5次,y是遍历range(4)的计数器,因而该y可迭代4次。因而,该(x,y)表达式一共迭代了20次。它相当于上面这样一个嵌套表达式。

dd_list = []
for x in range(5):
    for y in range(4):
        dd_list.append((x, y))
print(dd_list)

元组推导式

元组推导式与列表推导式相似,其语法结构是:

(表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] )

此格局中,[if 条件表达式]不是必须的,能够应用,也能够省略。上面就是输入1~10的元组的乘积的一个例子:

d_tuple = (x * x for x in range(1, 11))
print(d_tuple)

运行后果是:

<generator object <genexpr> at 0x103322e08>

从下面的执行后果能够看出,应用元组推导式生成的后果并不是一个元组,而是一个生成器对象。
应用tuple()函数,能够间接将生成器对象转换成元组。例如:

d_tuple = (x * x for x in range(1, 11))
print(tuple(d_tuple))

输入后果是(1, 4, 9, 16, 25, 36, 49, 64, 81, 100)

字典推导式

字典推导式的语法结构是:

{表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]}

其中[if 条件表达式]能够应用,也能够省略。举个例子:

key_list = ['姓名:码农飞哥', '年龄:18', '喜好:写博客']
test_dict = {key.split(':')[0]: key.split(':')[1] for key in key_list}
print(test_dict)

运行后果是:

{'喜好': '写博客', '年龄': '18', '姓名': '码农飞哥'}

嵌套循环

嵌套循环就是循环外面还有循环,最经典就是冒泡排序。冒泡排序每次比拟左右相邻的数字,如果后面的数字比前面的大则替换两个数字的地位。上面就演示一下:

test_list = [12, 3, 1, 13, 10, 5, 9]
for i in range(len(test_list)):
    for j in range(len(test_list) - i - 1):
        if test_list[j] > test_list[j + 1]:
            tmp = test_list[j]
            test_list[j] = test_list[j + 1]
            test_list[j + 1] = tmp
    print('第{0}循环后的后果是='.format(str(i)), test_list)
print('最终后果是=', test_list)

运行后果是:

第0循环后的后果是= [3, 1, 12, 10, 5, 9, 13]
第1循环后的后果是= [1, 3, 10, 5, 9, 12, 13]
第2循环后的后果是= [1, 3, 5, 9, 10, 12, 13]
第3循环后的后果是= [1, 3, 5, 9, 10, 12, 13]
第4循环后的后果是= [1, 3, 5, 9, 10, 12, 13]
第5循环后的后果是= [1, 3, 5, 9, 10, 12, 13]
第6循环后的后果是= [1, 3, 5, 9, 10, 12, 13]
最终后果是= [1, 3, 5, 9, 10, 12, 13]

冒泡排序过程介绍:
从下面能够看出,外层循环负责冒泡排序进行的次数,而内层循环负责将列表中相邻的两个元素进行比拟,并调整程序,行将较小的放在后面。

跳出循环

跳出循环的关键字有两个,一个是continue语句,一个是break。

  1. 其中continue语句用于跳出执行本次循环体中残余的代码,转而执行下一次循环。
n = 0
while n <= 5:
    n = n + 1
    if n == 3:
        continue
    print(n)

运行的后果是:

1
2
4
5
6

能够看到数字3被跳过了。

  1. break语句用于齐全终止以后循环,须要留神的是如果是嵌套循环的话,只能中断应用break的循环。还是拿后面的冒泡排序来举个例子吧!
for i in range(len(test_list)):
    for j in range(len(test_list) - i - 1):
        if test_list[j] > test_list[j + 1]:
            test_list[j], test_list[j + 1] = test_list[j + 1], test_list[j]
        if j == 2:
            print('内层循环break')
            break
    if i == 3:
        print('外层循环break')
        break

运行后果是:

内层循环break
内层循环break
内层循环break
内层循环break
外层循环break

能够看出内层循环的break不影响外层循环。也就是说break只会跳出以后的循环。

总结

本文简略介绍了Python中流程管制的几个关键字,抉择构造的话就是: if,elif,else三个关键字。循环构造的话就是while和for两个关键字。语法比较简单。

我是码农飞哥,再次感谢您读完本文
全网同名【码农飞哥】。不积跬步,无以至千里,享受分享的高兴
我是码农飞哥,再次感谢您读完本文

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理