第1关:实现分段函数计算
本关必读
函数是一种特殊的映射,即数集到数集的映射。虽然本质上都是映射,但为了方便研究和应用,数学家们对函数做了很多分类,如线性函数,非线性函数,随机函数,还有一些具有特殊性质的函数等等。
本关我们要关注的是分段函数。所谓分段函数:即对于自变量x的不同取值范围,有着不同的对应法则,这样的函数通常叫做分段函数。
本关需要计算的分段函数参见下表:
x | y |
---|---|
x<0 | 0 |
0<=x<5 | x |
5<=x<10 | 3x-5 |
10<=x<20 | 0.5x-2 |
20<=x | 0 |
本关任务
本关任务是实现上述表格中分段函数的计算,即实现step1/SegFunctionCal.py
文件中的SegFun(x)
函数,SegFunctionCal.py
文件的代码如下:
# -*- coding:utf-8 -*-
# 计算分段函数的值
def SegFun(x):
# 请在此添加实现代码
其中:x
是传递给函数SegFun
的参数。
测试说明
本关的测试文件是step1/SegFunctionCalTest.py
,负责对你写的实现代码进行测试。具体说明如下:
# -*- coding:utf-8 -*-
import SegFunctionCal,os
# 从命令行读入一个整数
# 这个整数取自测试集的输入
x = int(input())
print (SegFunctionCal.SegFun(x))
上述代码中所调用函数的参数从命令行读入,并将处理后的结果通过命令行输出。平台将根据这个命令行输出来判断SegFun(x)
函数是否正确实现。注意,step1/SegFunctionCalTest.py
的代码不能被修改。
以下是平台对step1.SegFunctionCalTest
的测试样例: 测试输入:-3
预期输出:0
测试输入:2
预期输出:2
测试输入:8
预期输出:19
测试输入:15
预期输出:5.5
测试输入:100
预期输出:0
开始你的任务吧,祝你成功!
参考答案
# -*- coding:utf-8 -*-
#计算分段函数的值
def SegFun(x):
# 请在此添加实现代码
if x<0:
return 0
elif 0<=x<5:
return x
elif 5<=x<10:
return 3*x-5
elif 10<=x<20:
return 0.5*x-2
elif 20<=x:
return 0
return 0
第2关:根据输入的分数输出对应的等级
本关必读
一般情况下,对于学校而言评判一个学生成绩的好坏有两种方式:一种是百分制,如:90100、8089、7079、6069、0~59;而与百分制对应的另外一种方式则是等级,如:”A”、 ”B”、 ”C”、 ”D”、 ”E”。
那么在现实情况下经常会遇到百分制与等级之间转换的问题,本关正是这样一个问题,具体要求是:将分数转换成对应的等级。其中:
- 学习成绩
>=90
分的同学用A表示; - 学习成绩间于
60-89
分之间的用B表示; - 学习成绩
60
分以下的用C表示。
本关任务
本关任务是根据输入的分数输出对应的等级,即实现step2/ScoreToGrade.py
文件中的Grade(score)
函数,ScoreToGrade.py
文件的代码如下:
# -*- coding:utf-8 -*-
# 将分数转换为对应等级
def Grade(score):
# 请在此添加实现代码
其中:score
是传递给函数Grade
的参数。
测试说明
本关的测试文件是step2/ScoreToGradeTest.py
,负责对你写的实现代码进行测试。具体说明如下:
# -*- coding:utf-8 -*-
import ScoreToGrade,os
# 从命令行读入一个正整数
# 这个整数取自测试集的输入
score = int(input())
print (ScoreToGrade.Grade(score))
上述代码中所调用函数的参数从命令行读入,并将处理后的结果通过命令行输出。平台将根据这个命令行输出来判断Grade(score)
函数是否正确实现。注意,step2/ScoreToGradeTest.py
的代码不能被修改。
以下是平台对step2.ScoreToGradeTest
的测试样例: 测试输入:100
预期输出:A
测试输入:90
预期输出:A
测试输入:89
预期输出:B
测试输入:60
预期输出:B
测试输入:59
预期输出:C
测试输入:25
预期输出:C
开始你的任务吧,祝你成功!
参考答案
# -*- coding:utf-8 -*-
# 将分数转换为对应等级
def Grade(score):
# 请在此添加实现代码
if score>=90:
return 'A'
elif 60<=score<=89:
return 'B'
else:
return 'C'
第3关:根据利润来计算应发放的奖金数
本关必读
通常情况下企业给员工发放奖金一般是参照企业获得的利润来进行规划的,本关需要同学们完成的就是一道根据企业利润来计算的奖金的题目,题目如下:
企业发放的奖金根据利润提成。
- 当利润低于或等于
10万
元时,奖金可提10%
; - 当利润高于
10万
元,低于20万
元时,低于10万
元的部分按10%
提成,高于10万
元的部分,可提成7.5%
; - 当利润为
20万
到40万
之间时,高于20万
元的部分,可提成5%
; - 当利润为
40万
到60万
之间时,高于40万
元的部分,可提成3%
; - 当利润为
60万
到100万
之间时,高于60万
元的部分,可提成1.5%
; - 当利润高于
100万
元时,超过100万
元的部分按1%
提成, 请根据利润来计算应发放奖金总数。
本关任务
本关任务是根据利润来计算应发放的奖金数,即实现step3/BonusOfProfit.py
文件中的Bonus(x)
函数,BonusOfProfit.py
文件的代码如下:
# -*- coding:utf-8 -*-
# 将分数转换为对应等级
def Bonus(x):
# 请在此添加实现代码
其中:x
是传递给函数Bonus
的参数。
测试说明
本关的测试文件是step3/BonusOfProfitTest.py
,负责对你写的实现代码进行测试。具体说明如下:
# -*- coding:utf-8 -*-
import BonusOfProfit,os
# 从命令行读入一个整数
# 这个整数取自测试集的输入
x = int(input())
print (BonusOfProfit.Bonus(x))
上述代码中所调用函数的参数从命令行读入,并将处理后的结果通过命令行输出。平台将根据这个命令行输出来判断Bonus(x)
函数是否正确实现。注意,step3/BonusOfProfitTest.py
的代码不能被修改。
以下是平台对step3.BonusOfProfitTest
的测试样例: 测试输入:12000
预期输出:1200.0
测试输入:120000
预期输出:11500.0
测试输入:250000
预期输出:20000.0
测试输入:450000
预期输出:29000.0
开始你的任务吧,祝你成功!
参考答案
方法一
# -*- coding:utf-8 -*-
# 将分数转换为对应等级
def Bonus(x):
# 请在此添加实现代码
if x<=100000:
return x*0.1
elif 100000<x<=200000:
return Bonus(100000)+(x-100000)*0.075
elif 200000<x<=400000:
return Bonus(200000)+(x-200000)*0.05
elif 400000<x<=600000:
return Bonus(400000)+(x-400000)*0.03
elif 600000<x<=1000000:
return Bonus(600000)+(x-600000)*0.015
elif x>1000000:
return Bonus(1000000)+(x-1000000)*0.01
return 0
方法二
# 将分数转换为对应等级
def Bonus(x):
if x<=100000:
bonus=x*0.1
return bonus
elif 100001<x<=200000:
bonus=10000+(x-100000)*0.075
return bonus
elif 200001<x<=400000:
bonus=10000+7500+(x-200000)*0.05
return bonus
elif 400001<x<=600000:
bonus=10000+7500+10000+(x-400000)*0.03
return bonus
elif 600001<x<=1000000:
bonus=10000+7500+10000+6000+(x-600000)*0.015
return bonus
elif 600001<x<=1000000:
bonus=10000+7500+10000+6000+6000+(x-600000)*0.01
return bonus
————————分割线————————
本人python小白,内容如有不妥之处,还请大佬指教。