大学计算——基于Python的计算思维与工程实践能力训练 (第1关:读取用户输入的公式参数)

异常

一、我们一般使用try-except代码块处理异常,try-except代码块让 Python 程序在遇到错误时执行指定的操作
例如,我们编写如下程序:

try:
    print(2/0)
except:
    print("We can't divide by zero!")
程序运行结果:

We can't divide by zero!

我们将 print(2/0)语句放在了try代码块中,很显然这是一个错误语句,因为 0 不能当除数。try-except代码块的作用就是当try代码块中的程序代码运行没有错误,则跳过except代码块;反之如果try代码块中的程序代码运行出现错误,则运行except代码块中的内容,一般except代码块中的内容都是输出错误信息。

如果except代码块后面还有其他代码,程序将继续运行,因为 Python 已经在程序报错后执行了except代码块中的内容,告诉了错误信息,所以可以继续运行程序。

、除了系统自动抛出异常外,程序员也可以通过 Python 的raise显式抛出自己的包含特定信息的异常。一旦执行了raise语句,raise之后的语句将不能执行。

def read_C():
    try:
        C = float(sys.argv[1])
       except ValueError:
        raise ValueError('Degrees must be number, not "%s"' % sys.argv[1])
    if C < -273.15:
        raise ValueError('C=%g is a non-physical value!' % C)
    return C

编程要求

在上一关的基础上,增加对用户输入的数据的有效性进行检查。

参数v0
的范围不限,但是参数t的范围必须是

0≤t≤ g2v0

当参数t不满足范围时,请引发一个ValueError异常,异常信息为:t必须在 0 到 2v0/g 之间。如果满足,则打印出计算的结果。

评测代码会捕捉这个异常,并将异常信息打印出来,打印的内容将会与规定的内容进行比较,详细要求请见测试说明。

def Eval():
    #读取用户输入的公式参数,检查有效性,并输出计算结果
    #   请在此添加实现代码   #
	# ********** Begin *********#
    g=9.81
    t=int(input())
    v0=int(input())
    print("t=?",end='')
    print("v0=?",end='')
    
    if 0>t or t>2*v0/g:
        raise ValueError('t必须在0到2v0/g之间')


    yt=v0*t-g*(t**2)*1/2
    
    print(yt)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值