Python 计算思维训练——输入和错误处理练习(二)
文章目录第1关:读取用户输入的公式参数第2关:异常处理 - 测试输入数据的有效性第3关:读取文件中的数据计算公式第4关:根据测试函数写出原函数第5关:计算汽车停止所需的距离第1关:读取用户输入的公式参数def Eval():#请在此添加实现代码## ********** Begin *********#t = float(input('t=?'))v0 = float(input('v0=?'))
·
第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 **********#
更多推荐
已为社区贡献4条内容
所有评论(0)