我们的目标是:通过这一套资料学习下来,通过熟练掌握python基础,然后结合经典实例、实践相结合,使我们完全掌握python,并做到独立完成项目开发的能力。
上篇文章我们通过举例学习了python 中集合的定义及相关操作。今天详细讨论流程控制语句,先学习选择语句。也是经常使用到的。
1、程序结构
一般有:顺序结构、选择结构、循环结构
顺序结构:按照编写的语句顺序依次执行,如下图所示
选择结构:根据条件语句的结构选择性执行语句,如下图所示
循环结构:在某个条件下会反复执行某个语句块的结构。参考如下:
2、最简单的选择语句
使用语法: if 表达式:
语句块
解释:if 后面表达式为真,语句块就执行,反之不执行
举例说明:
your_score = 68
if your_score>60:
print("你及格了!")
her_score = 56
if her_score>60:
print("她及格了!")
只是及格的有输出:
注意:if 表达式后面的冒号不能忘记。
3、if …else 语句
上面的例子只是满足条件的时候执行语句,是不是感觉不完整?
If … else 语句来解决
语法格式: if 表达式:
语句块1
Else:
语句块2
举例说明:
your_score = 68
if your_score>60:
print("你及格了!")
her_score = 56
if her_score>60:
print("她及格了!")
else:
print("她没有及格,下次要加油啊!")
输出:
举个实例,如计算一个数的绝对值:
number = input("请输入一个整数,我们来计算它的绝对值:")
if int(number) >= 0:
print("输入的数的绝对值是:",number)
else:
number = int(number) * (-1)
print("输入的数的绝对值是:",number)
输出:
4、if … elif … else 语句
语句格式: if 表达式1:
语句块1
Elif 表达式2:
语句块 2
Elif 表达式3:
语句块 3
….
Else:
语句块 n
执行顺序说明:若是表达式1为真,执行语块1;
表达式1为假,查看表达式2是否为真,为真执行语块2,为假的话查看表达式3
依次类推,若是上面的表达式都为假,执行else 后面的语句块
举例说明:
#成绩判断等级,如分数大于等于90为A,分数80-89为B,分数70-79为C,60-69为D,其他为E
english_score = int(input("请输入你的英语分数,我们来计算等级:"))
if english_score >= 90:
print("你的英语成绩等级是A")
elif english_score >= 80:
print("你的英语成绩等级是B")
elif english_score >= 70:
print("你的英语成绩等级是C")
elif english_score >= 60:
print("你的英语成绩等级是D")
else:
print("你的英语成绩等级E,要加油了啊!")
输出:
5、选择语句的嵌套
If…else 表达式中又嵌套if…else 表达式
语法格式: if 表达式1:
If 表达式 2:
Else:
语句块2
Else:
If 表达式3:
语句块 3
Else:
语句块4
举例说明:
如我们要计算一个年份是不是闰年,首先我们了解一下闰年的判断规则:四年一闰,百年不闰,四百年再闰。这样我们先试着理清楚逻辑:
能被4整除但是不能被100整除的是普通闰年,能被400整除的是世纪闰年。
#一个年份输入
#若是年份对4取余,若是等于0,就需要进一步判断能不能被100整除,若是不等于0,直接判定不是闰年
#接上一步判断不能被100整除则判断是闰年,能被100整除然后在对400取余计算
从上面的简单分析可以看出是有多层嵌套。
伪代码:明显中间有两层嵌套
Your_year
如果 your_year % 4==0:
继续判断 若是 your_year %100 ==0
继续判断:若是 your_year %400 ==0
是闰年
Else:
不是闰年
Else:
是闰年
Else:
不是闰年
#输入一个年份,判断是不是闰年
your_year = int(input("请输入一个年份:"))
if your_year %4 ==0:
if your_year %100 ==0:
if your_year %400 ==0:
print("你输入了:", your_year, "是闰年")
else:
print("你输入了:", your_year, "不是闰年")
else:
print("你输入了:", your_year, "是闰年")
else:
print("你输入了:",your_year,"不是闰年")
以上输出,输入4,400,2024 是闰年,若是输入100,200,300 不是闰年
6、match …case 语句
这个和if … elif ….else 类似,
其强大之处在于,可以匹配列表、元组、字典、类以及其他更复杂的结构。
语法: match subject:
Case <pattern_1>:
<action_1>
Case <pattern_2>:
<action_2>
Case <pattern_3>:
<action_3>
……
Case _:
<action_wildcard>
参数说明:
Subject :必选参数,用于指定具有特定类型的数据
<pattern_1>….:参数中的某个值,用于进行模式匹配
<action_1>…..:匹配上后执行语句
_:
<action_wildcard> :用于前面都不能匹配时执行的部分
举个小栗子:
#输入一个年份,判断是不是闰年,使用match...case 语句
def year_check(your_year):
if your_year %4==0 and your_year %100 !=0:
return 0
elif your_year %400 ==0:
return 1
else:
return 2
your_year = int(input("请输入一个年份:"))
check_number = year_check(your_year)
match check_number:
case 0:
print("是闰年")
case 1:
print("是闰年")
case _:
print("不是闰年")
这里写的复杂点了,主要是练习一下match ..case ,输出结果参考:
今天先写到这里了,每天进步一点点。今天你加油了吗!