Python程序设计基础——目录
第一部分——基础篇
一、Python程序控制
一、程序结构
流程控制是编程语言中极其重要的一部分,它提供了控制程序执行的方法。
在计算机程序设计中,有
3
3
3 种基本程序结构:顺序结构
、选择结构
以及 循环结构
。因此,对应有三种语句:顺序执行语句、选择执行语句以及循环执行语句。
说明:
- 顺序结构要求编写的语句按照编写顺序依次被执行;
- 选择结构要求根据条件语句的结果选择执行不同的语句;
- 循环结构要求根据循环条件循环执行某一段程序。其中,被反复执行的语句称为循环体。
二、选择语句
选择语句,又称为条件语句,按照条件选择执不同的代码片段。
Python中,选择语句主要有
3
3
3 种形式:if
语句、if...else
语句、if...elif...else
多分支语句。
注意:
在C、C++、Java等高级程序语言中,选择语句还包括
switch
语句,也可以实现多重选择。但是,Python中没有
switch
语句,因此在实现多重选择的功能时,只能使用if...elif...else
多分支语句或if
语句的嵌套。
2.1 if语句
if
语句是最简单、最基本的选择语句,语法形式如下:
if expression:
statement block 1
其中,expression
可以是简单的的布尔值或布尔型变量,也可以是关系表达式或逻辑表达式。
若 expression
为真,则执行 statement block 1
,否则,跳过执行。
注意:在python中,仍有“非零即真”的规范。
示例:非零即真。
x = 52
if x: # 非零即真!
print("Hello world!")
Hello world!
注意:使用
if
语句,若语句块中只有一条语句,可以将语句块直接写到冒号:
的右侧。
但是,为了程序代码的可读性,不建议这么做!
示例:if
语句的简写形式。
x = 52
if x:print("Hello world!")
Hello world!
2.2 if…else语句
if...else
语句可用于二选一的情形。语法形式如下:
if expression:
statement block 1
else:
statement block 2
其中,expression
可以是简单的的布尔值或布尔型变量,也可以是关系表达式或逻辑表达式。
若 expression
为真,则执行 statement block 1
,否则,执行statement block 2
。
示例:判断最大值。
x = 50
max_value = 70
if x > max_value:
max_value = x
else:
max_value = max_value
print("The max value is " + str(max_value))
The max value is 70
在一些特殊情形中,if...else
语句可以进行一定的简化。
示例:判断最大值(简化形式)。
x = 50
max_value = 70
max_value = x if x > max_value else max_value
print("The max value is " + str(max_value))
The max value is 70
如果出现选择语句的嵌套形式,else
语句会根据缩进确定对应的 if
语句。
示例:判断三个数中的最大值。
a = 30
b = 60
c = 50
if a > b:
if b > c:
max_value = a
else:
if a > c:
max_value = a
else:
max_value = c
else:
if a > c:
max_value = b
else:
if b > c:
max_value = b
else:
max_value = c
print("The max value is " + str(max_value))
The max value is 60
2.3 if…elif…else语句
if...elif...else
语句适合多选择分支的情况。语法形式如下:
if expression 1:
statemant block 1
elif expression 2:
statement block 2
elif expression 3:
statement block 3
...
else: # 可以不需要!
statement block n
其中,expression k
()
k
=
1
,
2
,
⋯
,
n
k=1,2,\cdots,n
k=1,2,⋯,n )可以是简单的的布尔值或布尔型变量,也可以是关系表达式或逻辑表达式。
若 expression
为真,则执行 statement block 1
,否则,执行下一个elif
的判断,只有在所有表达式都为假时,才执行 else
中的语句。
注意:
if
语句与elif
语句都需要判断表达式的真假,而else则不需要判断。
elif
语句与else
语句都必须跟if
语句一起使用,不能单独使用。
示例:身体质量指数BMI。
# 身体质量指数BMI
height = float(input("请输入身高:")) # 输入:1.72
weight = float(input("请输入体重:")) # 输入:70
BMI = weight/(height*height)
if BMI < 18.5:
print("偏瘦!")
elif BMI > 18.5 and BMI < 24:
print("正常!")
elif BMI > 24 and BMI < 28:
print("偏胖!")
elif BMI >= 28:
print("肥胖!")
正常!
2.4 选择语句的嵌套
if
语句、if...else
语句以及 if...elif...else
语句可以相互嵌套,形成更复杂的选择结构。
注意:可以根据程序开发的需要,选择任意合适的嵌套方式,但一定要注意嵌套时代码块的缩进量。
示例:判断闰年。
# 判断闰年,“四年一闰,百年不闰,四百年一闰”
year = int(input("输入年份:")) # 输入 2021
if year % 4 == 0:
if year % 100 == 0:
if year % 400 == 0:
print(year,"年是闰年!")
else:
print(year,"年不是闰年!")
else:
print(year,"年是闰年!")
else:
print(year,"年不是闰年!")
2021 年不是闰年!
三、循环语句
循环语句要求在给定条件下,反复执行某个语句块,直到条件不满足为止。
给定的条件称为循环条件,反复执行的代码块称为循环体。
循环主要有两种形式:
- 重复一定次数的循环,称为计次循环,如
for
循环。 - 一直重复,直到条件不满足的循环,称为条件循环,如
while
循环。
注意:在C、C++、Java等高级程序语言中,条件循环还包括
do...while
循环,但Python不具有该功能。
3.1 for循环
3.1.1 for循环基础
不同于C、C++、Java等高级程序语言通过循环控制变量来控制循环,Python的for
循环语句通过循环遍历某一个序列来构建循环,循环结束的条件就是遍历完序列。
for iterating_variable in sequence:
statement block
其中,所遍历的序列对象通常是列表、元组和字典等。
示例:遍历列表。
subjects = ['数学分析','高等代数','常微分方程','实变函数与泛函分析']
print("主要课程有:")
for i in subjects:
print('课程:',i)
主要课程有:
课程: 数学分析
课程: 高等代数
课程: 常微分方程
课程: 实变函数与泛函分析
示例:遍历字符串。
# 遍历字符串
string = 'python'
for char in string:
print(char)
p
y
t
h
o
n
3.1.2 序列索引迭代
# 输出斐波那契数列的前 n 项
first = 0
last = 1
number = 10
print(first)
print(last)
for i in range(number - 2):
first,last = last,first + last
print(last)
0
1
1
2
3
5
8
13
21
34
注意:Python内置函数
range()
,语法形式如下:range([start,] stop [,step])
其中:
start
:可选参数,起始值,默认为 0 0 0。stop
:终止值,range(n)
将生成 0 , 1 , ⋯ , n − 1 0,1,\cdots,n-1 0,1,⋯,n−1的整数列表。step
:可选参数,表示步长。
3.1.3 for…else语句
for...else
语句中的else
部分会在for
语句部分正常循环后执行。语法形式如下:
for iterating_variable in sequence:
statement block 1
else:
statement block 2 # 循环未被break终止,可执行else语句
注意:正常循环是指未经
break
语句提前终止的情况。
示例:判断质数。
# 判断质数
number = 13
for i in range(2,number):
if number % i == 0:
print(number,"不是质数!")
break
else:
print(number,"是一个质数!")
13 是一个质数!
3.1.4 for循环语句的嵌套
python中的 for
循环语句可以嵌套使用!
示例:打印九九乘法表。
# 打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(i,"*",j,"=",i*j,end=' ')
print("\n")
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
3.2 while循环
3.2.1 while循环基础
while
循环可基于循环条件,反复执行循环体。语法形式如下:
while circulating_conditions:
circulating body
其中,当 circulating_conditions
为真时,将执行 circulating body
,当 circulating_conditions
为假时,循环停止。
示例:计算前 n n n 个自然数的和。
# 计算自然数的前 n 项和
number = 5
iter = 0
sum = 0
while (iter <= number):
sum += iter
iter += 1
print("前",number,"项和为:",sum)
前 5 项和为: 15
3.2.2 while…else语句
同for...else
语句类似,当while
循环结束后,执行else
部分。语法形式如下:
while circulating_conditions:
circulating body
else:
statement block # 循环未被break终止,可执行else语句
示例:计算自然数的前 n n n 项和。
# 计算自然数的前 n 项和
number = 5
iter = 0
sum = 0
while (iter <= number):
sum += iter
iter += 1
else:
print("前",number,"项和为:",sum)
前 5 项和为: 15
3.2.3 while死循环
死循环,即无限循环。由于循环条件始终成立,程序一直执行循环体部分。
示例:死循环。
while True:
number = input("请输入密码:")
print("密码是:",number)
密码是: 124
密码是: 566
密码是: 678
密码是: 654
密码是: 345
密码是: 235
...
3.2.4 while循环语句的嵌套
python中的 while
循环语句同样可以嵌套使用!
示例:打印九九乘法表。
# 打印九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print(i,"*",j,"=",i*j,end=' ')
j += 1
print(end="\n")
i += 1
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
四、break、continue与pass语句
在循环语句中,如果不想继续执行循环操作,可以使用跳转语句对程序进行跳转。
Python中有
2
2
2 种跳转语句:break
语句以及continue
。
4.1 break语句
在Python程序中,break
语句可终止当前循环。通常情况下,break
语句会搭配if
语句使用。语法形式如下:
# for循环:
for iterating_variable in sequence:
statement block
if expression:
break
# while循环:
while circulating_conditions:
circulating body
if expression:
break
示例:打印python。
for ch in 'python':
if ch == 'o':
break
print(ch)
p
y
t
h
letter = 'python'
i = 0
while i <= len(letter):
if letter[i] == 'o':
break
print(letter[i])
i += 1
p
y
t
h
4.2 continue语句
不同于break
语句终止当前循环,continue
语句执行跳出当前循环操作。语法形式如下:
# for循环:
for iterating_variable in sequence:
statement block
if expression:
continue
# while循环:
while circulating_conditions:
circulating body
if expression:
continue
示例:打印python。
# for循环 break
for ch in 'python':
if ch == 'o':
continue
print(ch)
p
y
t
h
letter = 'python'
i = 0
while i <= len(letter):
if letter[i] == 'o':
continue
print(letter[i])
i += 1
p
y
t
h
4.3 pass语句
pass
语句是一个空语句,表示不做任何操作,为保持程序结构的完整性而起到占位作用。
示例:打印python。
# for循环 break
for ch in 'python':
if ch == 'o':
pass
print("空语句,什么也不执行!")
print(ch)
p
y
t
h
空语句,什么也不执行!
o
n
参考文献
[1] 明日科技编著. Python从入门到精通. 北京:清华大学出版社, 2018.10.
[2] 叶维忠编著. Python编程从入门到精通. 北京:人民邮电出版社, 2018.11.