python-25-零基础自学python-处理异常三兄弟try-except-else

学习内容:《python编程:从入门到实践》第二版第十章

知识点:

程序异常如何处理?try-except-else

try-尝试可能引起错误的步骤

except-错误步骤发生,打印一些需要用户知道的信息,没有就pass

else-错误不发生的时候程序继续运行的部分

练习内容:

练习10-6:加法运算 提示用户提供数值输入时,常出现的一个问题是,用户提供的是文本而不是数。在此情况下,当你尝试将输入转换为整数时,将引发ValueError异常。编写一个程序,提示用户输入两个数,再将其相加并打印结果。在用户输入的任何一个值不是数时都捕获ValueError异常,并打印一条友好的错误消息。对你编写的程序进行测试:先输入两个数,再输入一些文本而不是数。

我的代码&运行结果: 

prompt = '请输入2个数值,第一个数是:'
number1 = input(prompt)
number2 = input('第二个数值是')
try:
    number = int(number1) + int(number2)
except ValueError:
    print(f"非数字无法相加,请输入数字")
    #continue

else:
    print(f"两数之和是{number}")

这样运行的结果如下,左一个是两次输入数字,程序结束。

右图一个是两次中有一次输入非数字,程序结束,但是我希望程序继续运行↓

首先采用return,但是不对,加了函数也不对,这个时候发现问题,函数到底是怎么用的基础原理部分没有掌握,另一个是continue到底怎么用,也不明确

以上两个方法试过后,还是回归while,正好是下一个练习:

练习10-7:加法计算器 将为完成练习10-6而编写的代码放在一个while循环中,让用户犯错(输入的是文本而不是数)后能够继续输入数。

while True:
    prompt = '请输入2个数值,第一个数是:'
    number1 = input(prompt)
    number2 = input('第二个数值是')
    try:
        number = int(number1) + int(number2)
    except ValueError:
        print(f"非数字无法相加,请输入数字")
    else:
        print(f"两数之和是{number}")

 

这样就可以无限循环下去,如果是放置不管,进行数据处理,就可以不停处理不用管了

总结&问题:

1.return和continue似乎不能返回到最开始。交互更好的还是用while,只是需要设置break程序。

如果以后学会了怎么更好处理文件异常,再回来补上怎么使用的方法。

这个思考发现自己的def方法、return这些的用法不清晰明确,不知道到底什么时候可以用,什么时候不能,以及怎么用更好,好像是只学到表面的知识点,没有深入,也不会举一反三。这种情况该怎么办呢?

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值