Python基础知识二 (分支结构)
学习目标
1.0 分支结构的应用场景
1.1 分支结构的语法
- if 语句是一种单选结构,它选择的是做与不做,if 语句的语法形式如下:
if 表达式:
语句1 - if语句的流程图如图所示:
-
if…else语句是一种双选结构,用于解决在两种备选行动中选择哪一个的问题。if…else语句的语法形式如下:
if 表达式:
语句一
else:
语句二 -
if…else语句的流程图如图所示
例1-1 输入一个年份,判断是否为闰年
闰年的年份必须满足以下两个条件之一:
- 能被4整除,但不能被100整除
- 能被400整除
分析:设变量year表示年份,判断year是否满足以下表达式
条件一的逻辑表达式是year % 4 == 0 && year % 100 != 0
条件二的逻辑表达式是year % 400 == 0
两者取"或",即得到判断闰年的逻辑表达式:
(year%4 == 0 and year %100 != 0) or year % 400 == 0
程序代码:
year = int(input("输入年份:")) #输入x,input()获取的是字符串,所以需要转换成整型
if (year%4 == 0 and year %100 != 0) or year % 400 == 0: #注意运算符的优先级
print(year,"是闰年")
else:
print(year,"不是闰年")
在判断闰年后,也可以输入某年某月某日,判断这一天是这一年的第几天,以3月5日为例,应该把前两个月的天数加起来,然后再加上5天,即本年的第几天,特殊情况时闰年,在输入月份大于3时需考虑多加一天
程序代码:
"""
题目:判断这一天是某一年的第几天
作者:假书生@
日期:2020年1月7日
"""
year = int(input('year:')) # 输入年
month = int(input("month:")) #输入月
day = int(input("day:")) # 输入日
months = (0,31,59,90,120,151,181,212,243,273,304,334)
if 0 <= month <= 12:
sum = months[month-1]
else:
print('月份输入有误')
sum += day
leap = 0
if (year%4 == 0 and year % 100 != 0) or year % 400 == 0: #注意运算符的优先级
leap = 1
if (leap == 1) and (month >2):
sum += 1
print('这一天时这一年的第{}天'.format(sum))
有时候需要在多组动作中选择一组执行,这时就要用到多选结构,对于Python语言而言就是if…elif…else,该语句的语法格式如下:
if 表达式1:
语句1
elif 表达式2:
语句2
…
elif 表达式n:
语句n
else:
语句n+1
注意:最后一个elif子句之后的子句没有进行条件判断,它实际上处理跟前面所有条件不匹配的情况,所以else子句必须放在最后,if …elif…else语句的流程图如图所示:
例1-2 输入学生的成绩score,按分数输出其等级,即score >= 90 为优,90 > score >= 80 为良,80>score >= 70 为中等,70 > score >= 60 为及格,score<60 为不及格。
score = int(input("请输入成绩"))
if score >= 90:
print("优")
elif score >= 80:
print("良")
elif score >= 70:
print("中")
elif score >= 60:
print("及格")
else:
print("不及格")
说明: 在3种选择语句中,条件表达式都是必不可少的组成部分,当条件表达式的值为零时,表示条件为假,当条件表达式的值为零时,表示条件为真,那么哪些表达式可作为条件表达式呢?最常用的是关系表达式和逻辑表达式,例如:
if a == x and b == y:
print("a =x , b = y")
除此之外,条件表达式可以是任何数值类型的表达式,字符串也可以:
if 'a': # 'abc'也可以
print("a=x,b=y")
另外,C语言用花括号{}来区分语句体,但Python的语句体是用缩进形式来表示的。
来源:CSDN
作者:欠我一个关注
链接:https://blog.csdn.net/weixin_45144837/article/details/103873192