【纯文本教程】大学专科的Python基础开发课?p=5

“Python基础开发”课程_课堂笔记(HTML版_005)

Class notes of "Python basic development",this webPage is fifth Page.

本页面的“代码demo索引”:


第二章 流程控制

分三种结构:顺序、分支、循环

  • 顺序结构的程序,是在执行的时候逐行执行的程序(按照程序中语句的先后顺序,自上而下依次执行);
  • 分支结构是一种“会转弯”的程序结构,可以根据条件,来决定该执行哪些语句,在计算机编程语言中,最常见的是“if...else”语句——C语言中也有if语句,但是Python语言中的if语句与C语言中的if语句,在语法结构上,有些不同;
  • 循环结构一般是for循环和while循环使用较多,语法结构也(与C语言)不太一样。

流程图

在讲解循环之前,要了解一下流程图的简介
——这里在PPT上有一张介绍,因为(在PPT里面)后面初学三种结构的时候,有用到,但是我做Word文档和用HTML写博客的时候就跳过了,只是说看录屏整理笔记的时候,感觉还是写上更合适一些。

流程图,是(使用图形来)表示流程控制的一种方法,是一种传统的算法表示方法——这个是之后在做“流程图”的时候,需要用到的符号
——“算法”是编程术语,说白了就是解决问题的思路,简单(没有选择、分支)的事情,用纯文字描述,问题不大,但是问题复杂了,就需要画流程图了,一般是用“Microsoft Visio”软件来绘制流程图(Word是文字处理软件,虽然也能画,但是——不!专!业!)

  • 圆角矩形用来表示“开始”与“结束”;
  • 矩形用来表示要执行的动作或算法;
  • 菱形用来表示问题判断;
  • 平行四边形用来表示输入输出;
  • 箭头用来代表工作流方向。

【注意】“流程图”这个概念,只是说在这里提到一下,并不算是“知识点”。主要作用,是在PPT上用来对程序的执行过程进行辅助说明的——但是这篇博客是HTML,而不是PPT,所以后面并不会用到“流程图”。

2.0 顺序结构

众所周知,程序是分“代码块”的,因此,每个程序的大方向都是逐段执行的,分支和循环是在大代码块里面而言的。

【注意】Python语句不强制使用英文分号!

Python语句使用换行符分隔,一行一条语句。也允许用一个英文分号分开语句,在一行写多条语句。但是不能用连续两个英文分号,从第一列开始,前面不能有任何空格。

(顺便说一句,在其它计算机编程语言中,用来划分代码块的大括号,在Python语言中,是某种数据类型的标志,本套教程会在后面第五章第4节讲到)

“顺序结构”不做过多介绍。

2.1条件语句if

此语句是由if发起的一个条件语句,在满足此条件后执行相应内容,Python的if语句基本结构如下:

if 表达式1:#第一个条件
 语句块1
elif 表达式2:
 语句块2
……
else:
 语句块n

if语句是条件语句,在敲了英文冒号后,按回车符,文本编辑器都会自动缩进——这个缩进,是“tab”键(默认是四个空格符,比空格缩进看起来更明显,便于阅读)。

“elif”是“else if”(否则如果)的缩写,自上而下,逐个判断表达式,满足某个表达式的条件,就执行那个表达式下属的语句块,然后跳过后面的表达式,进入下一个代码块,如果中间的语句,都不满足,就执行最后一个语句(“else语句”)。

  • 【注意事项1】else、elif为if语句的子语句块,不能独立使用;
  • 【注意事项2】每个条件后面要使用英文冒号,表示满足条件后需要执行的语句块,后面几种其它形式的选择结构和循环结构中是冒号也是必须要有的,缺失英文冒号的话,在运行时会报错;
  • 【注意事项3】Python特色:使用缩进来划分语句块,相同缩进数的语句组成一个语句块——Python这种计算机编程语言的代码,不是用大括号{}表示代码块,而是用“英文冒号”加相同缩进的后续行,来代表一个代码块!
  • 【注意事项4】在Python中没有switch…case语句.

2.1.1 单向条件

单向分支选择结构是最简单的一种形式,不包含elif和else,而是直接输入一个“条件”(表达式),当“条件”(表达式的值)为True时,执行语句块,如果“不满足条件”(表达式的值为False)时,就跳过这个代码块,继续执行后面的代码。其语法如下:

if 表达式:
 语句块

【例题】输出实数的绝对值
n = float(input("Enter:\n"))
if n>=0:
 print(n)
else:
 print(-n)
print("mission passed!")

【例题】求两个数的最大值的两种思路
#求两个数的最大值——第一种思路是先判断谁大,再赋值到新变量中输出
a = float(input("a="))
b = float(input("b="))
if a>b:
 c=a
else:
 c=b
print(c)

#可以简化一下代码——第二种思路是先定义要输出的变量,然后给它赋值,再判断:
a = float(input("a="))
b = float(input("b="))
c=a
if a<b:
 c=b
print(c)
print("mission passed!")

2.1.2 双向条件

双分支语句是由if和else两部分组成,当表达式的值为True时,执行语句块1否则执行语句块2。双分支选择结构的语法如下:

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

说白了,就是有两种情况。这里就不放demo了。

2.1.3 多向条件

多分支选择结构由if、一个或多个elif和一个else子块组成,else子块可省略。一个if语句可以包含多个elif语句,但结尾最多只能有一个else。多分支选择结构的语法如下:

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

从语法上来说,最后这个“else”语句,是可以省略的,不会报错。

这个语句块的逻辑是从第一个表达式开始判断,满足条件,就执行语句,跳过后面的分支。这里就不放demo了。

2.1.4 条件嵌套

选择结构可以进行嵌套来表达更复杂的逻辑关系。使用选择结构嵌套时,一定要控制好不同级别的代码块的缩进,否则就不能被Python正确理解和执行。在if 语句嵌套中,if、if...else、if...elif...else它们可以进行一次或多次相互嵌套,例如如下结构:

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

说白了,就是在if条件分支语句中,再嵌套使用if条件分支语句。

它与“多向条件”的逻辑相同。这里就不放demo了。只是提醒一下,在实际使用时,要注意缩进级别一定要正确,否则容易直接报错,甚至是——出Bug。

2.2 for循环语句

在“循环流程控制”部分,Python提供for和while两种循环语句。for语句,用来遍历序列对象内的元素,通常用在已知的循环次数;while语句,提供了编写通用循环的方法。

Python的for语句与众不同——for语句必须使用一个可迭代对象,其中有多个数据。每次取一个数据来执行一次for语句块的操作,当集合中的元素迭代完毕,for语句结束,其格式如下:

for 变量 in 对象集合:
 循环体代码块
else:
 循环正常结束执行的语句块

【demo】“for...in”遍历
在运行时,每次取一个数据来执行,依次遍历集合中的每一个元素
>>> for x in (1,2,3):
 print(x,x*x)
1 1
2 4
3 9
>>>

一般来说,in后面的“对象集合”是使用“range()”函数的。

range()函数

生成一个Python3 内置的一个迭代器对象,能够产生指定范围的数字序列。其格式为range(start,stop [,step]) 返回从start开始到stop结束不包括stop的数字序列。step 默认为1。

索引位置,从零开始,取值区间,左闭右开。

range(起始值,结束值,步长),起始值默认为零,运行过程不包括“结束值”(本身只是结束的信号,不参与程序的运行结果——可以理解为基因中的“终止子”),步长不是必须的,默认为1。

【生物学术语】“终止子”是给予RNA聚合酶转录终止信号的DNA序列,在……一个基因的后面有一个终止子。嗯……DNA(所携带的遗传信息)是四进制,计算机(保存的数据)是二进制,两者有内在联系。
“终止子”本身不参与转录(遗传信息由DNA转换到RNA的过程称为“转录”)——游离在细胞质中的各种氨基酸,就以mRNA为模板合成具有一定氨基酸顺序的蛋白质,这一过程叫翻译(生物学术语,是从语言学中的这个术语“借鉴”过来的)。

“range()”函数至少要有一个参数——结束值:

for i in range(11):
 print(i)#依次输出整数0...10
for i in range(2,13,2):
 print(i) #依次输出整数 2 4 6 8 10 12

【demo】指数爆炸(这个是写着玩儿的,不在索引里面——注意,HTML语言没有“制表符”,显示效果可能会不整齐)

>>> for i in range(33):
 print(i,"\t",2**i)

0 1
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1024#“计算机容量单位”(KB、MB、GB、TB……)的进制关系
11 2048
12 4096
13 8192
14 16384#破万
15 32768
16 65536
17 131072#13万
18 262144
19 524288
20 1048576#104万
21 2097152
22 4194304
23 8388608
24 16777216#一千六百万,同时,也是256的三次方,即RGB颜色的总数
25 33554432
26 67108864
27 134217728#破亿
28 268435456
29 536870912
30 1073741824#超过十亿
31 2147483648
32 4294967296
>>>

【例题】求1到100的累加和,range()函数是生成1到100的整数,sum是累加的和。
sum=0
for s in range(1,101):
 sum+=s
print(s)

2.3 循环的嵌套

for循环嵌套是指在for循环里有一个或多个for语句,循环里面再嵌套一重循环的叫双重循环,嵌套两层以上的叫多重循环。

例如使用两个for循环打印出九九乘法表,使用for循环和range()函数,变量i控制外层循环,变量j是控制内层循环的次数。

【例题】打印乘法表
for i in range(1,10):#外循环,循环9次(行数)
 for j in range(1,i + 1):#内循环,控制每行输出的个数
  print(str(i) + "*" + str(j) + "=" + str(i * j) + "\t",end="")#如果在输出函数中,需要直接通过英文加号连接字符串的话,就必须要将其他数据类型转换为字符串,才能够运行——至于那个“\t”,是用来排版的。
 print()#换行
print("mission passed!")


第5堂课,内容为条件分支语句和循环语句。

本页面(?p=5)的实际上课时间为2020年4月22日第1小节课。

猜你喜欢

转载自www.cnblogs.com/Robot-DX3906/p/12903687.html