Python 程序的流程控制
一、顺序结构
顺序结构是最简单的控制结构,按照语句的书写顺序依次从上到下执行,这没什么好说的。
# 顺序结构
a = input("请输入长方形的长:")
b = input("请输入长方形的宽:")
# 注意:上面是 string类型,需要先转换成整型,否则无法计算
a,b = int(a),int(b)
s = a * b
print("长方形的面积为:",s)
# 输出:
# 请输入长方形的长:3
# 请输入长方形的宽:5
# 长方形的面积为: 15
二、选择结构
选择结构又分为分支结构,即按照给定条件来选择其中一个分支执行程序中特定的语句。
在 Python 语言中,选择结构分为:
- 单选择结构(if 语句)
- 双选择结构(if … else 语句)
- 多选择结构(if … elif … else 语句)
1、if 语句
if 语句通过条件表达式来判断真假,当且仅当该表达式为真时,则执行语句序列,否则直接执行 if 语句下面的语句。
if 语句格式如下:
if <表达式>:
<语句序列>
示例如下:
# if 语句示例
a = int(input("a = "))
b = int(input("b = "))
print("before exchange:",a,b)
if a > b: # a 大于 b 则交换
a,b = b,a
print("after exchange:",a,b)
# 输出:
# a = 6
# b = 2
# before exchange: 6 2
# after exchange: 2 6
2、if … else 语句
if … else 语句为双选择结构,它的作用为:
- 当某个条件为真时,执行 if 里面的语句
- 当某个条件为假时,执行 else 里面的语句
非常简单,直接上例子:
# if ... else 语句
grade = int(input("请输入学生成绩:"))
if grade >= 60:
print("及格")
else:
print("不及格")
# 输入:
# 请输入学生成绩:60
# 及格
3、if … elif … else 语句
if … elif … else 语句为 Python 中的多选择结构,当选择结构需要的分支多于两个时,就需要用到多分支结构。
语法格式如下:
if <表达式1>:
<语句序列1>
elif<表达式2>:
<语法序列2>
...
elif<表达式3>:
<语法序列3>
else:
<语法序列4>
示例如下:
# if ... elif ... else 语句
score = float(input("请输入百分制成绩:"))
if score > 100 or score < 0:
print("输入数据无效")
elif score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("E")
# 输出1:
# 请输入百分制成绩:60
# D
# 输出2:
# 请输入百分制成绩:-1
# 输入数据无效
三、循环结构
循环结构是一种让指定代码块重复执行的有效机制,Python 可以使用循环使得在满足 “预设条件” 下,重复执行一段语句块。
构造循环结构的两个要素:
- 一是循环体,即重复执行的语句和代码。
- 二是循环条件,即重复执行代码所要满足的条件。
1、while 语句
while 语句用于实现循环结构,其特点是先判断,再执行。
如果刚进入循环是条件就不满足,则循环体一次也不执行。还需要注意的是,一定要有语句修改判断条件,使其值为假的时候退出,否则将出现 “死循环” 。while 语法格式如下:
while <表达式>:
<语句序列>
数字累加求和,示例:
# 计算 1 + 2 + ... + 50 的和
i = 1
Sum = 0
while i <= 50:
Sum += i
i += 1
print("Sum = 1 + 2 + ... + 50 = ",Sum)
# 输出:
# Sum = 1 + 2 + ... + 50 = 1275
2、for 语句
在 Python 中,for 循环可以遍历任何序列的项目,如一个列表或者一个字符串。for 循环语句的语法结构如下:
for <变量> in <序列>:
<语句序列>
使用 for 遍历输出字符串 “ABC” ,示例如下:
# for 语句
for i in "ABC":
print(i)
# 输出:
# A
# B
# C
统计用户输入的一段字符串中某个字符的数量,示例如下:
# 统计用户输入的一段字符串中某个字符的数量
str = input("请输入一个语句:")
i = 0
for ch in str:
if ch == ' ':
i = i + 1
print("这个语句有",i,"空格")
# 输出:
# 请输入一个语句:中午 吃 什么?
# 这个语句有 2 空格
我们可以创建一个 ex.txt 文件存放在本地 C 盘,在 txt 中输入 出门在外,饿了别忘吃饭,渴了别忘喝水~
使用 for 获取文件内容,代码如下:
fd = open("C:/ex.txt")
for i in fd.readlines():
print(i)
# open() - Python内置函数,用于打开文件
# fd.readlines() - 文件对象的方法,用于读取文件的所有行,返回一个列表,其中每个元素是文件中的一行(包含行尾的换行符)
# 输出:
# Python
# 无法读取汉字,编码错误,所以把文本内容改为:Python
Traceback (most recent call last):
File "c:\Gitee\python\03_Day\for.py", line 26, in <module>
for i in fd.readlines():
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 10: illegal multibyte sequence

使用 for 循环求 1~10 的整数累加,示例如下:
Sum = 0
for i in range(1,11): # range() 不包含最后一个数字
Sum += 1
print("Sum = 1 + 2 + ··· + 10 = ",Sum)
# 输出:
# Sum = 1 + 2 + ··· + 10 = 55
四、流程控制的其他语句
pass 语句可以算作顺序语句,可以用在任何地方,是为了保持程序结构的完整性。break 、countinue 可以算作特殊的顺序语句,而且它们用的地方特别,需要与分支、循环语句合作使用。
1、pass 语句
pass 是 Python 中的一个占位符语句,用于保持代码结构的完整性。当需要在 if 条件中暂时不执行任何操作时,可以使用 pass 来避免语法错误。
示例如下:
# pass 语句
for i in "ABC":
if i == 'B':
pass
print("这是pass块")
print(i)
# 输出:
# A
# 这是pass块
# B
# C
2、break 语句
break 语句用在循环语句(迭代)中,结束当前的循环条件(迭代)跳转到循环语句的下一条。
break 语句常常与 if 语句联合,满足某条件使退出循环(迭代)。break 语句示例如下:
# break 语句
i = 10
while i > 0:
print("当前的变量值:",i)
i = i - 1
if i == 5: # i 等于 5,终止循环
break
print("end!")
# 输出:
# 当前的变量值: 10
# end!
# 当前的变量值: 9
# end!
# 当前的变量值: 8
# end!
# 当前的变量值: 7
# end!
# 当前的变量值: 6

3、continue 语句
continue 语句用在循环语句(迭代)中,忽略循环体内 continue 语句后面的语句,回到下一次循环(迭代)。
示例如下:
# continue 语句
l = ['a', 'b', 'c', 'd', 'e']
for i in l:
if i == 'c':
continue # 跳过当前循环,直接进入下一次循环
print(i)
# 输出:
# a
# b
# d
# e
示例如下:
# 结果有点抽象
# 如果没咋看懂,就把自己当成计算机,按步骤在脑子里执行一遍就懂了
for i in range(1,5): # 1,2,3,4
print(i)
if(i % 3): # 取模,非零为真
print("* ")
else:
continue
print("% ")
print("end!")
# 输出:
# 1
# *
# %
# 2
# *
# %
# 3
# 4
# *
# %
# end!
用 continue 语句输出1~10 之间的所有奇数:
for i in range(1,11):
if i % 2 == 0:
continue
else:
print(i)
# 输出:
# 1
# 3
# 5
# 7
# 9
给个综合题,输出乘法表:
# 代码如下:
for j in range(1,10): # 循环变量 j 从1循环到9
for k in range(1,j+1): # 循环变量 k 从1循环到j+1
print(k,"*",j,"=",j*k," ",end = "") # 输出乘法表达式
print("") # 输出空字符,用来换行
# 输出:
# 1 * 1 = 1
# 1 * 2 = 2 2 * 2 = 4
# 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
# 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
# 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
# 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
# 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
# 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
# 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81

看不懂,加个断点调试下就懂了
-
j 控制的是行,j = 1 就是第一行,以此类推
-
k 控制的是每行的变动的值,观察输出的每行数据,j 没有发生改变, k 每次加1
-
按照特定的格式输出就行
写在最后
优快云 每天只能上传 2 篇文章,这是今天在优快云的最后一篇文章了。
这种简单的博客,每篇大约花费2小时时间,不过比看视频的效率高(就我而言)。
1545

被折叠的 条评论
为什么被折叠?



