学习内容:《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这些的用法不清晰明确,不知道到底什么时候可以用,什么时候不能,以及怎么用更好,好像是只学到表面的知识点,没有深入,也不会举一反三。这种情况该怎么办呢?