Python基础知识二(分支结构,小练习:判断一年中的某一天,输出成绩等级)

倖福魔咒の 提交于 2020-01-24 06:45:51

Python基础知识二 (分支结构)

学习目标

在这里插入图片描述

1.0 分支结构的应用场景

1.1 分支结构的语法

  1. if 语句是一种单选结构,它选择的是做与不做,if 语句的语法形式如下:
    if 表达式:
      语句1
  2. if语句的流程图如图所示:

在这里插入图片描述

  1. if…else语句是一种双选结构,用于解决在两种备选行动中选择哪一个的问题。if…else语句的语法形式如下:
    if 表达式:
     语句一
    else:
     语句二

  2. 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的语句体是用缩进形式来表示的。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!