Python 计算思维训练——输入和错误处理练习(二)

第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
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Python计算思维训练——输入错误处理练习()涉及的内容是如何处理输入和错误。在Python中,我们经常需要用户输入一些数据来执行特定的计算或操作,但用户可能会输入错误或非预期的数据。因此,我们需要能够正确地处理这些情况,以便程序能够继续执行。 为了处理输入和错误,Python提供了一些内置函数和异常处理机制。其中,一个常用的函数是input(),它用于从用户那里获取输入。我们可以对输入进行验证,以确保它是我们所期望的类型或格式。例如,我们可以使用int()函数将输入转换为整数,如果输入不是整数,则会引发一个异常。为了处理这种异常,我们可以使用try-except块来捕获并处理它。 除了用函数验证输入之外,我们还可以使用条件语句来检查输入是否满足特定的要求。如果输入不符合要求,我们可以提醒用户重新输入或给予错误提示。 另外,Python还提供了一些内置的异常类型,如ValueError、TypeError等,用于处理常见的错误情况。我们可以通过捕获特定的异常类型,并根据需要进行相应的处理。 总之,Python提供了丰富的工具和机制来处理输入和错误。在编写程序时,我们应该合理利用这些工具,以确保我们的程序能够在各种情况下正常运行,而不会因为无效的输入或错误而崩溃。通过训练练习,我们可以提高我们的计算思维错误处理能力,使我们的程序更加稳健和健壮。 ### 回答2: Python计算思维训练-输入错误处理练习() 在Python中,输入错误处理是非常重要的技能。它们俩都是帮助我们编写健壮的程序的工具。下面是一些关于这方面的练习和示例。 1. 输入整数: 练习编写一个程序,要求用户输入一个整数,并输出这个整数的平方。同时,需要处理用户输入非整数的情况。 代码示例: ``` while True: try: num = int(input("请输入一个整数: ")) square = num ** 2 print("平方值为: ", square) break except ValueError: print("输入错误,请重新输入一个整数。") ``` 这段代码使用了`try`和`except`语句来捕获可能发生的`ValueError`异常,即用户输入的不是整数。如果发生异常,程序会打印错误信息,并重新提示用户输入直到输入一个正确的整数为止。 2. 输入列表元素: 练习编写一个程序,要求用户输入一系列的数字,并将它们存储在一个列表中。同时,需要检测并处理用户输入非数字的情况。 代码示例: ``` nums = [] while True: try: num = float(input("请输入一个数字(输入字母退出): ")) nums.append(num) except ValueError: print("输入错误,请输入一个数字或字母退出。") continue except KeyboardInterrupt: break print("输入的数字列表为: ", nums) ``` 这段代码使用了`try`和`except`语句来捕获可能发生的`ValueError`异常,即用户输入的不是数字。如果发生异常,程序会打印错误信息,并继续提示用户输入直到输入一个正确的数字或字母为止。同时,使用了`KeyboardInterrupt`异常来响应用户输入字母退出的操作。 这些练习可以帮助你熟悉Python中的输入错误处理的技巧。当编写程序时,务必记得考虑到用户可能输入非法的情况,使用适当的错误处理机制来增强程序的健壮性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值