做网站时怎么裁切存图/现场直播的视频
程序的异常处理 由于使用了eval()函数,如果用户输入不是一个数字则可能报错。这类由于输入与预期不匹配造成的错误有很多种可能,不能逐一列出可能性进行判断。为了保证程序运行的稳定性,这类运行错误应该被程序捕获并合理控制。 程序的异常处理 Python语言使用保留字try和except进行异常处理,基本的语法格式如下:。 try: <语句块1> except: <语句块2> 语句块1是正常执行的程序内容,当执行这个语句块发生异常时,则执行except保留字后面的语句块2。 程序的异常处理 ? ? 1 2 3 4 5 try: n = eval(input("请输入一个数字: ")) print("输入数字的3次方值为: ", n**3) except: print("输入错误,请输入一个数字!") ? ? >>>? 请输入一个数字: 1010 输入数字的3次方值为: 1030301000 >>>? 请输入一个数字: python 输入错误,请输入一个数字! 程序的异常处理 >>>for i in range(5): print(10/i, end=" ") Traceback (most recent call last): File "", line 2, in print(10/i, end=" ") ZeroDivisionError: division by zero 除了输入之外,异常处理还可以处理程序执行中的运行异常。 ? ? 1 2 3 4 5 try: for i in range(5): print(10/i, end=" ") except: print("某种原因,出错了!") ? ? >>>? 某种原因,出错了! 实例解析:猜数字游戏 实例解析:猜数字游戏 编写一个“猜数字游戏”的程序,在1到1000之间随机产生一个数,然后请用户循环猜测这个数字,对于每个答案只回答“猜大了”或“猜小了”,直到猜测准确为止,输出用户的猜测次数。 实例解析:猜数字游戏 为了产生随机数,需要使用Python语言的随机数标准库random 根据程序需求,需要考虑不断地让用户循环输入猜测值,并根据猜测值和目标值之间的比较决定程序逻辑。 ? ? 1 2 import random target = random.randint(1,1000) ? ? 实例解析:猜数字游戏 ? ? ? 1 2 3 4 5 6 7 8 9 10 11 12 13 import random target = random.randint(1,1000) count = 0 while True: guess = eval(input('请输入一个猜测的整数(1至1000):')) count = count + 1 if guess > target: print('猜大了') elif guess < target: print('猜小了') else: print('猜对了') break print("此轮的猜测次数是:", count) ? ? 实例解析:猜数字游戏 由于使用了eval(input())方式获得用户输入,如果用户输入非数字产生运行错误,程序将会退出。为了增加程序鲁棒性,增加异常处理机制。 ? ? ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 import random target = random.randint(1,1000) count = 0 while True: try: guess = eval(input('请输入一个猜测的整数(1至1000):')) except: print('输入有误,请重试,不计入猜测次数哦!') continue count = count + 1 if guess > target: print('猜大了') elif guess < target: print('猜小了') else: print('猜对了') break print("此轮的猜测次数是:", count) ? ? 实例解析:猜数字游戏 该程序执行效果如下 >>>? 请输入一个猜测的整数(1至1000):500 猜大了 请输入一个猜测的整数(1至1000):Python 输入有误,请重试,不计入猜测次数哦! 请输入一个猜测的整数(1至1000):260 猜小了 请输入一个