心得
异常处理在C#中接触过,形式大致相同。
Python | C# |
---|---|
try-except | try-catch |
try-except-finally | try-catch-finally |
try-except-else |
异常是程序在运行过程中检测到了错误,从而触发了计算机预定的异常处理程序,然后根据异常错误信息进行相应的处理,而不影响程序大体的正常运行1。错误的出现并不总是编写程序的人的原因2,也有可能是用户导致的。比如程序需要通过用户输入获取一个整型变量,但是用户在实际输入过程中可能会输入除数字之外的信息,此时就可以用异常处理实现对该错误操作的纠正。
未进行异常处理的程序:
# 存在输入非整型数字的风险,从而导致程序出现bug
a = int(input())
进行异常处理的程序:
try:
# 放在 try-except 语句中可以有效避免程序出错导致崩溃的情况,并且还可以友好的提醒用户输入有误
a = int(input())
except ValueError:
print("数字输入错误,请重新输入。")
另外,C#也可以自定义异常类,极大的使异常信息变得更加灵活,更加的符合项目的使用需求。
习题
- 猜数字游戏
题目描述:
电脑产生一个零到100之间的随机数字,然后让用户来猜,如果用户猜的数字比这个数字大,提示太大,否则提示
太小,当用户正好猜中电脑会提示,“恭喜你猜到了这个数是…”。在用户每次猜测之前程序会输出用户是第几次猜测,如果用户输入的根本不是一个数字,程序会告诉用户"输入无效"。
(尝试使用try catch异常处理结构对输入情况进行处理)
获取随机数采用random模块。
import random as rd
print("猜测一个0到100的数字。")
expect = rd.randrange(101)
cnt = 1
while True:
try:
print("第"+str(cnt)+"次猜测,请输入一个整型数字:")
x = input()
num = int(x)
cnt += 1
if num > expect:
print("太大")
elif num < expect:
print("太小")
else:
print("对了")
break
except ValueError:
print("数字输入错误,请重新输入。")