实验四 分支结构

第1关:判断三角形类型

300

  • 任务要求
  • 评论39

任务描述

本关任务:编写一个能判断三角形类型的小程序。 输入三个数值,判断其是否能构成三角形的三条边。如果能构成,判断其是否等边三角形、直角三角形还是普通三角形。

相关知识

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

条件表达式

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

多分支语句

多分支语句的语法格式为: if <条件1>: <语句块1> elif <条件2>: <语句块2> …… else: <语句块N>

Python依次评估寻找第一个结果为True的条件,执行该条件下的语句块,同时结束后跳过整个if-elif-else结构,执行后面的语句。 如果没有任何条件成立,else下面的语句块被执行。 else子句是可选的

编程要求

根据提示,在右侧编辑器补充代码,判断三角形类型。

测试说明

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

测试输入:3,4,5; 预期输出: 直角三角形

测试输入:6,6,6; 预期输出: 等边三角形

测试输入:1,2,3; 预期输出: 无法构成三角形

测试输入:3,4,6; 预期输出: 普通三角形


开始你的任务吧,祝你成功!

x=eval(input("边长一"))
y=eval(input("边长二"))
z=eval(input("边长三"))
#代码开始
if x<y+z and y<x+z and z<x+y:
    if x==y==z:
        print("等边三角形")
    elif x**2+y**2==z**2 or y**2+z**2==x**2 or x**2+z**2==y**2:
        print("直角三角形")
    else:
        print("普通三角形")
else:
    print("无法构成三角形")
#代码结束

第2关:分段函数

100

  • 任务要求
  • 评论39

任务描述

有一分段函数如图所示

本关任务:编写一个能根据x的值计算y值的小程序。

相关知识

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

多分支结构

语法格式 if <条件1>: <语句块1> elif <条件2>: <语句块2> …… else: <语句块N>

Python依次评估寻找第一个结果为True的条件,执行该条件下的语句块,同时结束后跳过整个if-elif-else结构,执行后面的语句。 如果没有任何条件成立,else下面的语句块被执行。 else子句是可选的

编程要求

根据提示,在右侧编辑器补充代码,实现上图所示的分段函数。

测试说明

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

测试输入:50; 预期输出: 149

测试输入:-5; 预期输出: -5

测试输入:5; 预期输出: 9


开始你的任务吧,祝你成功!

x=eval(input())
#代码开始
if x<1:
    y=x
elif x>=1 and x<10:
    y=2*x-1
else:
    y=3*x-1
#代码结束
print("{:.2f}".format(y))

第3关:阶梯电价计算电费

300

  • 任务要求
  • 评论39

任务描述

本关任务:长沙市按照阶梯电价计算电费,第一档是200度及以下的0.588/度。第二,三档分季节,春秋季:第二档是200度以上-350度的0.638/度,第三档是350度以上0.888/度。冬夏季:第二档是200度以上-450度的0.638/度,第三档是450度以上0.888/度。根据输入的上月电表度数、本月电表度数和月份来计算电费。3-5月份为春季,6-8月份为夏季,9-11为秋季,12-2月份为冬季。 输入居民的上月和本月的电表度数,计算用电度数和电费。

测试说明

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

测试输入: 上月电表读数200 本月电表读数800 月份7

预期输出: 用电度数600.0 电费410.30

测试输入: 上月电表读数150 本月电表读数450 月份4

预期输出: 用电度数300.0 电费181.40

提示: 哪个条件嵌条在哪个条件里面,需要考虑清楚


开始你的任务吧,祝你成功!

sy=eval(input("输入上月电表度数"))
by=eval(input("输入本月电表度数"))
yf=eval(input("输入月份"))
#代码开始
if yf>=3 and yf<=5 and yf>=9 and yf<=11:
    ds=by-sy
    if ds<=200:
        df=0.588*200
    elif ds>200 and ds<=350:
        df=0.588*200+(ds-200)*0.638
    else:
        df=0.588*200+150*0.638+(ds-350)*0.888
else:
    ds=by-sy
    if ds<=200:
        df=0.588*200
    elif ds>200 and ds<=450:
        df=0.588*200+(ds-200)*0.638
    else:
        df=0.588*200+250*0.638+(ds-450)*0.888
#代码结束
print("用电度数{:.2f}电费{:.2f}".format(ds,df))

第4关:阶梯水价计算水费

300

  • 任务要求
  • 评论39

任务描述

本关任务:编写一个计算水费的小程序。 长沙市水费计量实施阶梯式水价制度:对四口之家及以下以户为单位进行计量,五口之家及以上按人均计量办法。 对四口之家及以下户:第一级水价为15吨及以下,按2.58元每吨计费;第二级水价为22吨及以下,按3.34元每吨计费;第二级水价为超过22吨,按4.09元每吨计费。 对五口之家及以上户:第一级水价为每人每月4吨及以下,按2.58元每吨计费;第二级水价为每人每月5吨及以下,按3.34元每吨计费;第二级水价为超过每人每月5吨,按4.09元每吨计费。 此外,对于低保居民,每户每月减免6立方米的水费

编程要求

根据提示,在右侧编辑器补充代码,输入上月水表读数、本月水表读数、家庭人数、是否低保(y/n),计算并输出用水度数和水费。

测试说明

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

测试输入:输入上月水表吨数10 输入本月水表吨数40 输入家庭人数3 是否低保(y/n)y

预期输出: 用水吨数(减免后)24.00水费70.26

测试输入:输入上月水表吨数30 输入本月水表吨数80 输入家庭人数6 是否低保(y/n)n 预期输出: 用水吨数(减免后)50.00水费163.76

测试输入:输入上月水表吨数10 输入本月水表吨数13 输入家庭人数6 是否低保(y/n)y 预期输出: 用水吨数(减免后)-3.00水费0


开始你的任务吧,祝你成功!

sy=eval(input("输入上月水表吨数"))
by=eval(input("输入本月水表吨数"))
rs=eval(input("输入家庭人数"))
db=input("是否低保(y/n)")
#代码开始
if rs<=4:
    if db=='y':
        sl=by-sy-6
        if sl<0:
            sf=0
        elif sl<=15:
            sf=sl*2.58
        elif sl>15 and sl<=22:
            sf=15*2.58+(sl-15)*3.34
        else:
            sf=15*2.58+7*3.34+(sl-22)*4.09
    else:
        sl=by-sy
        if sl<=15:
            sf=sl*2.58
        elif sl>15 and sl<=22:
            sf=15*2.58+(sl-15)*3.34
        else:
            sf=15*2.58+7*3.34+(sl-22)*4.09
else:
    if db=='y':
        sl=by-sy-6
        if sl<0:
            sf=0
        elif sl<=15:
            sf=sl*2.58
        elif sl>15 and sl<=22:
            sf=15*2.58+(sl-15)*3.34
        else:
            sf=15*2.58+7*3.34+(sl-22)*4.09
    else:
        sl=by-sy
        if sl<=4:
            sf=sl*2.58
        elif sl>4 and sl<=5:
            sf=4*2.58+(sl-4)*3.34
        else:
            sf=4*2.58+1*3.34+(sl-5)*4.09
#代码结束
print("用水吨数(减免后){:.2f}水费{:.2f}".format(sl,sf))

第5关:手机话费计算

300

  • 任务要求
  • 评论39

任务描述

本关任务:编写一个能计算手机话费的小程序。 某用户办理了中国移动128元的5g套餐,套餐内包含每月30g流量和500分钟的通话时间。通话超出时间,按0.15元每分钟计算。套餐流量超出后,5元1GB.满15元后,按照3元1G进行计费。 输入该用户使用的流量和通话时间,计算其费用

测试说明

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

测试输入: 流量20 通话时间300 预期输出: 费用128

流量60 通话时间600 预期输出: 费用239


开始你的任务吧,祝你成功!

ll=eval(input("流量"))
thsj=eval(input("通话时间"))
#代码开始
if ll<=30 and thsj<=500:
    fy=128
elif ll<=30 and thsj>500:
    tsy=thsj-500
    fy=128+tsy*0.15
elif ll>30 and thsj<=500:
    lsy=ll-30
    if lsy<=3:
        fy=lsy*5+128
    else:
        fy=15+128+(lsy-3)*3
else:
    lsy=ll-30
    tsy=thsj-500
    if lsy<=3:
        fy=128+tsy*0.15+lsy*5
    else:
        fy=128+tsy*0.15+(lsy-3)*3+15
print("费用{:.2f}".format(fy))
#代码结束
    

第6关:血压判断

100

  • 任务要求
  • 评论39

任务描述

。 成年人血压的正常范围是60mmHg<舒张压<90mmHg 90mmHg<收缩压<140mmHg。 若舒张压大于等于90或收缩压大于等于140为高血压。 若舒张压小于60或收缩压小于90为低血压。 输入舒张压和收缩压,判断其属于高血压、低血压或正常血压。 例如,输入70 100显示正常血压 输入100 130 显示高血压 输入50 100显示低血压。

本关任务:编写一个程序,输入舒张压和收缩压,判断其属于高血压、低血压或正常血压。

测试说明

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

测试输入:70 100; 预期输出:正常血压

测试输入:100 130 预期输出: 高血压

测试输入:50 100 预期输出: 低血压


开始你的任务吧,祝你成功!

x=eval(input())
y=eval(input())
#代码开始
if x>=90 or y>=140:
    print("高血压")
elif x<60 or y<90:
    print("低血压")
else:
    print("正常血压")
#代码结束

第7关:党费计算

100

  • 任务要求
  • 评论39

任务描述

对于在职党员,工资收入在3000元及以下,交纳月工资收入的0.5%; 3000元以上至5000元(含5000元)者,交纳1%; 5000元以上至10000元(含10000元)者,交纳1.5%; 10000元以上者,交纳2%。 对于离退休党员,离退休费总额5000元以下(含5000元)的按0.5%交纳党费,5000元以上的按1%交纳党费。

本关任务:编写程序,输入是否退休(y或Y表示退休)和收入,输出应缴纳党费

注意:党费不是累进计算,而是直接按比例收取,例如,在职党员,收入8000,直接按1.5%收取 离退休党员,收入6000,直接按1%收取

测试说明

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

测试输入:n 8000 预期输出:120.00

测试输入:y 8000 预期输出:80.00

测试输入:n 2000 预期输出:10.00

测试输入:y 2000 预期输出:10.00


开始你的任务吧,祝你成功!

ch=input("")
s=eval(input(""))
#代码开始
if ch=='y' or ch=='Y':
    if s<=5000:
        df=s*0.005
    else:
        df=s*0.01
else:
    if s<=3000:
        df=s*0.005
    elif s>3000 and s<=5000:
        df=s*0.01
    elif s>5000 and s<=10000:
        df=s*0.015
    else:
        df=s*0.02
#代码结束
print("{:.2f}".format(df))

第8关:周薪计算

100

  • 任务要求
  • 评论39

任务描述

某公司按小时计费工资。规定每周5个工作日,每天工作8小时。工作日超时工作工资为正常工资的1.5倍。休息日工资,4小时内为正常工资的2倍,超过4小时的部分为正常工资的3倍。 输入每小时工资,员工每周的工作日工作小时数和休息日工作小时数,计算其该周工资 例如每小时工资30元。工作日50小时,休息日8小时,其工资为2250.00元 40*30+10*30*1.5+4*30*2+4*30*3=2250 本关任务:输入每小时工资,员工每周的工作日工作小时数和休息日工作小时数,计算其该周工资

测试说明

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

测试输入: 工资标准30 工作日工作时间50 休息日工作时间8 预期输出: 工资2250.00

测试输入: 工资标准20 工作日工作时间80 休息日工作时间40 预期输出: 工资4320.00


开始你的任务吧,祝你成功!

gzbz=eval(input("工资标准"))
gzr=eval(input("工作日工作时间"))
xxr=eval(input("休息日工作时间"))
#代码开始
if gzr>40 and xxr<=4:
    sy=gzr-40
    gz=40*gzbz+sy*(gzbz*1.5)+xxr*gzbz*2
elif gzr<=40 and xxr>4:
    sy=xxr-4
    gz=gzr*gzbz+4*gzbz*2+sy*gzbz*3
elif gzr>40 and xxr>4:
    gsy=gzr-40
    xsy=xxr-4
    gz=40*gzbz+gsy*gzbz*1.5+4*gzbz*2+xsy*gzbz*3
else:
    gz=gzr*gzbz+xxr*gzbz*2
#代码结束
print("工资{:.2f}".format(gz)) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值