• 【头歌实验】四、Python分支结构


    >>>第1关:判断闰年

    • 任务描述
    • 案例分析
    • 相关知识
      • 条件表达式
      • 分支语句
    • 测试说明

    任务描述

    本关任务: 输入年号,输出其是闰年还是平年
    公历分闰年和平年。 闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。 平年有365天,闰年有366天(2月中多一天)。 闰年分为普通闰年和世纪闰年。 普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。 世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)

    案例分析

    输入: 年号 处理: 假设年号为4的倍数并且不是100的倍数,或者是400的倍数,显示闰年。 如果不是上述条件,显示平年。

    相关知识

    为了完成本关任务,你需要掌握:1.如何写条件,2.分支语句。

    条件表达式

    条件表达式中可以包含关系运算和逻辑运算 关系运算有大于>、等于==,小于<等操作符,结果为True或False 逻辑运算有逻辑与and,逻辑或or和逻辑非not

    分支语句

    分支语句的语法格式为: if <条件>: <语句块1> else: <语句块N>
    如果条件为True,执行该条件下的语句块,否则执行else后面的语句。

    测试说明

    平台会对你编写的代码进行测试:
    测试输入:2000; 预期输出: 闰年
    测试输入:2004; 预期输出: 闰年
    测试输入:1997; 预期输出: 平年

    参考答案

    year = eval(input("输入年号"))
    # 代码开始
    
    if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
        print("闰年")
    else:
        print("平年")
    # 代码结束
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    >>>第2关:计算快递费用

    • 任务描述
    • 案例分析
    • 相关知识
      • 分支结构
      • 向上取整的函数ceil
    • 测试说明

    任务描述

    某快递公司同城快递的收费标准为5公斤内12元。 超过部分则每公斤2元。 不足一公斤的部分按一公斤计算。 本关任务:输入快递物品的重量,计算其费用。

    案例分析

    输入: 重量 处理: 设置费用为12 假设重量超过5,费用加上(重量-5)向上取整的值*2 输出费用

    相关知识

    为了完成本关任务,你需要掌握: 1.分支结构 2.向上取整的函数ceil

    分支结构

    语法格式 if <条件> : <语句块> 功能: 如果<条件>的结果值为True,则执行语句块里的语句序列。 如果结果为False,语句块里的语句会被跳过。

    向上取整的函数ceil

    math库的ceil函数,可以对其表达式向上取整 例如: import math math.ceil(5.6)的值为6 math.ceil(5.4)的值为6

    测试说明

    平台会对你编写的代码进行测试:
    测试输入:3; 预期输出: 12
    测试输入:15; 预期输出: 32
    测试输入:6.3; 预期输出: 16

    参考答案

    import math
    
    w = eval(input("请输入重量"))
    # 代码开始
    f = 12
    if w > 5:
        f = f + math.ceil(w - 5) * 2
    # 代码结束
    print("费用{}".format(f))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    >>>第3关:成绩等级判定

    • 任务描述
    • 案例分析
    • 相关知识
      • 多分支结构
    • 测试说明

    任务描述

    全国计算机等级考试(NCRE)是经教育部批准,由教育部考试中心主办,面向社会,用于考查应试人员计算机应用知识与技能的全国性计算机水平测评体系。 NCRE考试实行百分制计分,但以等第形式通知考生成绩。100-90分为“优秀”,89-80分为“良好”,79-60分为“及格”,59-0分为“不及格”。 编写程序,输入一个百分制的成绩,以等第形式显示结果。

    案例分析

    输入: 成绩 处理: 若成绩小于60,设置等级为不及格 否则若成绩小于80,设置等级为及格 否则若成绩小于90,设置等级为良好 否则设置等级为优秀 输出等级

    相关知识

    为了完成本关任务,你需要掌握: 多分支结构

    多分支结构

    语法格式: if <条件1>: <语句块1> elif <条件2>: <语句块2> …… else: <语句块N> 功能: 如果<条件1>的结果值为True,则执行语句块1里的语句序列。 如果结果为False,且<条件2>的结果值为True,则执行语句块2里的语句序列。 …… 如果所有条件均为False,则执行语句块N

    测试说明

    平台会对你编写的代码进行测试:
    测试输入: 输入成绩95 预期输出 等级是优秀
    测试输入: 输入成绩59 预期输出 等级是不及格
    提示: 注意各条件语句的条件的顺序


    参考答案

    cj = eval(input("输入成绩"))
    # 代码开始
    if cj >= 90:
        print("等级是优秀")
    elif cj >= 80:
        print("等级是良好")
    elif cj >= 60:
        print("等级是及格")
    else:
        print("等级是不及格")
    # 代码结束
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    >>>第4关:计算个人所得税

    • 任务描述
    • 案例分析
    • 测试说明

    任务描述

    本关任务:编写一个计算个人所得税的小程序。 根据我国的宪法规定,每个人都有纳税的义务,个人需要缴纳个人所得税。新个税法于2019年1月1日起施行,规定纳税人以月收入额减除五千元以及专项扣除后的余额为应纳税所得额,依照个人所得税税率表(综合所得适用),计算缴纳税款。 编写程序,输入月收入和专项扣除,计算并显示个人所得税

    案例分析

    1.通过input()函数接收用户输入的月收入,转换为数值,将其保存在变量sr中。
    2.通过input()函数接收用户输入的专项扣除,转换为数值,将其保存在变量kc中。
    3.计算应税所得ys=sr-kc-5000
    4.如果ys<0,tax=0。
    5.如果不符合上述条件,假设ys<3000,tax=ys*0.03。
    6.如果不符合上述条件,假设ys<12000,tax=3000*0.03+(ys-3000)*0.1。
    7.如果不符合上述条件,假设ys<25000,tax=90+(12000-3000)*0.1+(ys-12000)*0.2。
    8.如果不符合上述条件,假设ys<35000,tax=90+900+(25000-12000)*0.2+(ys-25000)*0.25。
    9.如果不符合上述条件,假设ys<55000,tax=90+900+2600+(35000-25000)*0.25+(ys-35000)*0.3。
    10.如果不符合上述条件,假设ys<80000,tax=90+900+2600+2500+(55000-35000)*0.3+(ys-55000)*0.35。
    11.如果不符合上述条件,tax=90+900+2600+6000+(80000-55000)*0.35++(ys-80000)*0.45
    12.显示税收tax。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    测试说明

    平台会对你编写的代码进行测试:


    参考答案

    sr = eval(input("输入月收入"))
    kc = eval(input("输入专项扣除"))
    # 代码开始
    tax = 0
    ys = sr - kc - 5000
    if ys < 3000:
        tax = ys * 0.03
    elif ys < 12000:
        tax = 3000 * 0.03 + (ys - 3000) * 0.1
    elif ys < 25000:
        tax = 90 + (12000 - 3000) * 0.1 + (ys - 12000) * 0.2
    elif ys < 35000:
        tax = 90 + 900 + (25000 - 12000) * 0.2 + (ys - 25000) * 0.25
    elif ys < 55000:
        tax = 90 + 900 + 2600 + (35000 - 25000) * 0.25 + (ys - 35000) * 0.3
    elif ys < 80000:
        tax = 90 + 900 + 2600 + 2500 + (55000 - 35000) * 0.3 + (ys - 55000) * 0.35
    else:
        tax = 90 + 900 + 2600 + 6000 + (80000 - 55000) * 0.35 + +(ys - 80000) * 0.45
    # 代码结束
    print("个人所得税{}".format(tax))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    >>>第5关:商场促销

    • 任务描述
    • 案例分析
    • 相关知识
      • 条件语句的并列和嵌套
    • 测试说明

    任务描述

    本关任务: 在商品经济如此发达的今天,为了吸引更多的客流、 跻身于市场不败之地, 百货商场使出浑身解数来吸引顾客的客流。打折是非常有效的促销方式,办理会员卡也是常用的促销手段。 某商场十一期间提供下列优惠:累计购物金额为1000元及以上,9折;2000元及以上,8折;5000元及以上,7折。 若用户是vip会员,另外享受5%折扣。 若是vip会员且购物金额在3000及以上,还享受50元的现金优惠。 编写程序,输入消费金额,以及是否为会员,
    显示其实际付款和优惠金额

    案例分析

    1.通过input()函数接收用户输入的购物金额,转换为数值,将其保存在变量je中。 2.通过input()函数接收用户输入的是否vip,输入y或Y表示是vip会员,将其保存在变量vip中。 3.如果je>=5000,实际金额sj=je0.7。 5.如果不符合上述条件,假设je>=2000,实际金额sj=je0.8。 6.如果不符合上述条件,假设je>=1000,实际金额sj=je0.9。 7.如果不符合上述条件,实际金额sj=je 8.如果vip为y或Y,执行下列条件语句: 如果je>=3000,sj=sj0.95-50否则sj=sj*0.95。 9.输出实际付款sj和优惠金额je-sj(购物金额减去实际付款)。

    相关知识

    条件语句的并列和嵌套

    当我们需要解决的问题涉及到多个条件时,我们需要考虑如何使用分支结构。 互斥的条件应该使用多分支结构。 例如,该案例中的不同购物金额采取不同折扣的优惠,此时应采取if elif else结构。 购物金额的条件和会员的条件是两个互不相关的条件,所以应该采取两个并列的结构来实现。 在是会员的情况下,购物金额在3000元及以上和以下,要采取不同的优惠方式。此时,这个if语句应该嵌套在会员为y的if语句之下,采取if else的双分支形式。 同时,我们需要根据逻辑关系来安排语句的先后顺序,否则可能会造成计算错误。

    测试说明

    平台会对你编写的代码进行测试:


    参考答案

    je = eval(input("输入购物金额"))
    vip = input("是否vip(y/n)")
    # 代码开始
    sj = 0
    if je >= 5000:
        sj = je * 0.7
    elif je >= 2000:
        sj = je * 0.8
    elif je >= 1000:
        sj = je * 0.9
    else:
        sj = je
    
    if vip == 'y' or vip == 'Y':
        if je >= 3000:
            sj = sj * 0.95 - 50
        else:
            sj = sj * 0.95
    
    print('实际付款为%.2f优惠金额为%.2f' % (sj, je - sj), end='')
    # print('实际付款为{:.2%}优惠金额为{:.2%}'.format(sj,je-sj),end='')
    # 代码结束
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    >>>第6关:选择题

    1、以下选项中,输出结果是False的是
    A、5!=5
    B、5>=5
    C、5==5
    D、not 5!=5

    2、列哪个表达式判断x为奇数
    A、x%2==1
    B、x//2==1
    C、x/2= =1
    D、x**2= =1

    3、下列代码的运行结果是
    x=4
    if 2:
    print (5)
    else:
    print(6)
    A、4
    B、5
    C、6
    D、False

    4、以下语句执行后a、b、c的值是:
    a = “watermelon”
    b = “strawberry”
    c = “cherry”
    if a > b:
    c = a
    a = b
    b = c

    A、watermelon strawberry cherry
    B、watermelon cherry strawberry
    C、strawberry cherry watermelon
    D、strawberry watermelon watermelon

    5、变量x=-5
    下列哪段程序不能将y赋值为x的绝对值
    A、y=-x if x<0 else x
    B、y=x if x<=0 else -x
    C、if x>=0:
    y=x
    else:
    y=-x
    D、y=abs(x)

    6、以下程序的输出结果是:
    a = 30
    b = 1
    if a >=10:
    a = 20
    elif a>=20:
    a = 30
    elif a>=30:
    b = a
    else:
    b = 0
    print(‘a={}, b={}’.format(a,b))
    A、a=30, b=1
    B、a=30, b=30
    C、a=20, b=20
    D、a=20, b=1

    7、关于 Python 的分支结构,以下选项中描述错误的是
    A、分支结构使用 if 保留字
    B、Python 中 if-else 语句用来形成二分支结构
    C、Python 中 if-elif-else 语句描述多分支结构
    D、可以使用if<条件><表达式1>else<表达式2>的紧凑结构,返回一个表达式的值

    8、执行下列程序的输出结果是
    fs=90
    if fs>=60:
    y=“及格”
    elif fs>=80:
    y=“良好”
    elif fs>=90:
    y=“优秀”
    else:
    y=“补考”
    print(y)
    A、及格
    B、良好
    C、优秀
    D、补考

    9、以下程序的输出结果是:
    t = “Python”
    print(t if t>=”python” else “None”)
    A、Python
    B、python
    C、None
    D、True

  • 相关阅读:
    YOLOV7改进-具有隐式知识学习的Efficient解耦头
    深眸科技自研轻辙视觉引擎,以AI机器视觉赋能杆号牌识别与分拣
    R语言【base】——abs(),sqrt():杂项数学函数
    GD32F4(10):GD32转RS422在115200下接收乱码分析
    stm32-定时器输入捕获
    Linux中DNS的正向和反向解析
    Leetcode刷题详解——移动零
    k8s容器定时伸缩(CronHPA)
    用Python实现数据透视表、音频文件格式转换
    【中国平安社招校招】【内推】【当天内推】
  • 原文地址:https://blog.csdn.net/weixin_44893902/article/details/128006619