第1关:读取用户输入的公式参数

def Eval():
    #   请在此添加实现代码   #
    # ********** Begin *********#
    t = float(input('t=?'))
    v0 = float(input('v0=?'))
    g = 9.81
    y = v0*t - 0.5*g*t**2
    print(y)
    # ********** End **********#

第2关:异常处理 - 测试输入数据的有效性

def Eval():
    #   请在此添加实现代码   #
    # ********** Begin *********#
    g = 9.81    
    t = float(input('t=?'))
    v0 = float(input('v0=?'))
    if(t<0 or t>2*v0/g):
        raise ValueError("t必须在0到2v0/g之间")
    y = v0*t - 0.5*g*t**2
    print(y)
    # ********** End **********#

第3关:读取文件中的数据计算公式

def Eval(path):
    output = "step3/out.txt"
    #从文件中读取公式参数,检查有效性,并输出结果到文件
    #   请在此添加实现代码   #
    # ********** Begin *********#
    g = 9.81
    #读取数据
    ifile = open(path,'r')
    ls = ifile.readlines()
    v0 = float(ls[0].split()[-1])
    t=[]
    for i in range(2,len(ls)):
        for k in ls[i].split():
            t.append(float(k))
    ifile.close();
    #排序
    t.sort()
    #计算
    ofile = open(output,'w')
    ofile.write('v0 = %.10f\n' % v0)
    ofile.write('t\t\ty\n')
    for k in t:
        if(k < 0 or k > 2*v0/g):
            ofile.write('%.10f\tInvalid\n' % (k))
        else:
            y = v0*k-0.5*9.81*k*k
            ofile.write('%.10f\t%.10f\n' % (k,y))
    ofile.close()
    # ********** End **********#

第4关:根据测试函数写出原函数

def halve(a):
    #针对test_halve测试函数
    #   请在此添加实现代码   #
    # ********** Begin *********#
    if isinstance(a,int):
        return a//2
    return a/2
    # ********** End **********#
def add(a,b):
    #针对test_add测试函数
    #   请在此添加实现代码   #
    # ********** Begin *********#
    return a+b
    # ********** End **********#
def equal(a,b):
    #针对test_equal测试函数
    #   请在此添加实现代码   #
    # ********** Begin *********#
    if a==b:
        return True,a
    r=''
    lens = max(len(a),len(b))
    for i in range(lens):
        try:
            x=a[i]
        except IndexError:
            x='*'
        try:
            y=b[i]
        except IndexError:
            y='*'
        if x==y:
            r = r+x
        else:
            r=r+x+'|'+y
    return False,r
    # ********** End **********#

第5关:计算汽车停止所需的距离

def Eval():
    #读取用户输入的公式参数,并输出计算结果
    #   请在此添加实现代码   #
    # ********** Begin *********#
    g=9.81
    u=float(input('u=?'))
    v0=float(input('v0=?'))/3.6
    d=0.5*v0*v0/u/g
    print(d)
    # ********** End **********#
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐