educoder:实验四 分支结构
Python,educoder
第1关:判断三角形类型
任务描述
本关任务:编写一个能判断三角形类型的小程序。 输入三个数值,判断其是否能构成三角形的三条边。如果能构成,判断其是否等边三角形、直角三角形还是普通三角形。
相关知识
为了完成本关任务,你需要掌握: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 or x+z<y or y+z<x):
print("无法构成三角形")
elif(x*x+y*y==z*z or x*x+z*z==y*y or z*z+y*y==x*x):
print("直角三角形")
elif(x==y and x==z and y==z):
print("等边三角形")
else:
print("普通三角形")
第2关:分段函数
任务描述
有一分段函数如图所示
本关任务:编写一个能根据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(1<=x and x<10):
y=2*x-1
else:
y=3*x-1
print("{:.2f}".format(y))
第3关:阶梯电价计算电费
任务描述
本关任务:长沙市按照阶梯电价计算电费,第一档是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("输入月份"))
ds=by-sy
if((3<=yf and yf<=5)or(9<=yf and yf<=11)):
if(ds>200 and ds<350):
df=0.588*200+0.638*(ds-200)
else:
df=0.588*200+0.638*150+0.888*(ds-350)
else:
if(ds>200 and ds<450):
df=0.588*200+0.638*(ds-200)
else:
df=0.588*200+0.638*250+0.888*(ds-450)
print("用电度数{:.2f}电费{:.2f}".format(ds,df))
第4关:阶梯水价计算水费
任务描述
本关任务:编写一个计算水费的小程序。 长沙市水费计量实施阶梯式水价制度:对四口之家及以下以户为单位进行计量,五口之家及以上按人均计量办法。 对四口之家及以下户:第一级水价为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(db=='y'):
sl=by-sy-6
if(rs<5):
if(sl<=15):
sf=2.58*sl
elif(15<sl and sl<=22):
sf=2.58*15+3.34*(22-sl)
else:
sf=2.58*15+3.34*7+4.09*(sl-22)
else:
if(sl<=0):
sf=0.00
elif(sl<=4*rs):
sf=sl*2.58
elif(sl<=5*rs):
sf=sl*3.34
else:
sf=sl*4.09
else:
sl=by-sy
if(rs<5):
if(sl<=15):
sf=2.58*sl
elif(15<sl and sl<=22):
sf=2.58*15+3.34*(sl-15)
else:
sf=2.58*15+3.34*7+4.09*(sl-22)
else:
if(sl<=4*rs):
sf=sl*2.58
elif(sl<=5*rs):
sf=sl*3.34
else:
sf=sl*4.09
print("用水吨数(减免后){:.2f}水费{:.2f}".format(sl,sf))
第5关:手机话费计算
任务描述
本关任务:编写一个能计算手机话费的小程序。 某用户办理了中国移动128元的5g套餐,套餐内包含每月30g流量和500分钟的通话时间。通话超出时间,按0.15元每分钟计算。套餐流量超出后,5元1GB.满15元后,按照3元1G进行计费。 输入该用户使用的流量和通话时间,计算其费用
测试说明
平台会对你编写的代码进行测试:
测试输入: 流量20 通话时间300 预期输出: 费用128
流量60 通话时间600 预期输出: 费用239
开始你的任务吧,祝你成功!
代码:
ll=eval(input("流量"))
thsj=eval(input("通话时间"))
fy=128
if(ll<=30 or thsj<=500):
print("费用{:.2f}".format(fy))
else:
if(ll<=33):
fy=5*(ll-30)+0.15*(thsj-500)+fy
else:
fy=5*3+3*(ll-33)+0.15*(thsj-500)+fy
print("费用{:.2f}".format(fy))
第6关:血压判断
任务描述
。 成年人血压的正常范围是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关:党费计算
任务描述
对于在职党员,工资收入在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=='n'):
if(s<=3000):
df=s*0.005
elif(3000<s and s<=5000):
df=s*0.01
elif(5000<s and s<=10000):
df=s*0.015
else:
df=s*0.02
else:
if(s<=5000):
df=s*0.005
else:
df=s*0.01
print("{:.2f}".format(df))
第8关:周薪计算
任务描述
某公司按小时计费工资。规定每周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):
if(xxr<=4):
gz=gzbz*gzr+xxr*gzbz*2
else:
gz=gzbz*gzr+4*gzbz*2+(xxr-4)*3*gzbz
elif(gzr>40):
if(xxr<=4):
gz=gzbz*40+gzbz*(gzr-40)*1.5+xxr*gzbz*2
elif(xxr>4):
gz=gzbz*40+gzbz*(gzr-40)*1.5+4*gzbz*2+(xxr-4)*3*gzbz
print("工资{:.2f}".format(gz))
更多推荐
所有评论(0)