IntelliJ IDEA kubeflow java设计模式 regex string input scrapy grid vue注册组件 vue绑定事件 vue手册 bootstrap侧边栏 a标签去除下划线 mysql连接 python下载安装教程 python自学入门 python命令大全 java基础学习 java数组输出 java定义 linux用户 linux系统如何安装 打马赛克的软件 图片放大软件 模拟人生2夜生活 烧饼修改器打不开 r330不能识别墨盒 ug拔模 linux解压命令 光标变粗 启用宏在哪里设置 cad圆变成多边形 vbs代码表白 祸星龙 rdpwrap bat下载 ps怎么做圆角矩形 画吧教程 思源字体包 jdk11下载
当前位置: 首页 > 学习教程  > 编程语言

Python:Task03:异常处理——2020.01.27

2021/1/28 22:54:53 文章标签:

Task03:异常处理——2020.01.27 try-except语句: 先执行try语句,当其中出现异常的时候,匹配下面对应的异常类型的except,执行其语句,再往下执行 try :f open("test.txt")print(f.read())f.cl…

Task03:异常处理——2020.01.27

try-except语句:

先执行try语句,当其中出现异常的时候,匹配下面对应的异常类型的except,执行其语句,再往下执行

try :
	f = open("test.txt")
    print(f.read())
    f.close()
except OSError as error:  #把出错原因赋给error
    print("打开文件出错的原因是",str(error))
except TypeError as error:
    print()
except ValueError as error:
    print()

#如果几个except后面的类型存在父子关系,先写子再写父

try-except-finally语句

try:
    检测范围
except Exception[as reason]:
    出现异常后的处理代码
finally:
    无论如何都会被执行的代码

不管try子句里面有没有发生异常,finally子句都会执行。

如果一个异常在try子句里被抛出,而又没有任何的except把它截住,那么这个异常会在finally子句执行后被抛出。

try-except-else语句

如果在try子句执行时没有发生异常,Python将执行else语句后的语句。

try:
    检测范围
except(Exception1[, Exception2[,...ExceptionN]]]):
   发生以上多个异常中的一个,执行这块代码
else:
    如果没有异常执行这块代码

raise语句

Python 使用raise语句抛出一个指定的异常。

try:
    raise NameError('HiThere')
except NameError:
    print('An exception flew by!')
    
# An exception flew by!

猜数字游戏

题目描述:

电脑产生一个零到100之间的随机数字,然后让用户来猜,如果用户猜的数字比这个数字大,提示太大,否则提示太小,当用户正好猜中电脑会提示,“恭喜你猜到了这个数是…”。在用户每次猜测之前程序会输出用户是第几次猜测,如果用户输入的根本不是一个数字,程序会告诉用户"输入无效"。

(尝试使用try catch异常处理结构对输入情况进行处理)

获取随机数采用random模块。

分析:

1.在random模块中有randint方法来随机生成一个整数random.randint(0,100)

2.由于我对错误类型不太了解,不好从帮助文档里查找输入错误应该是什么类型的错误,于是我强行输入字符串并将其转化为int型,这时系统报错:

ValueError: invalid literal for int() with base 10: 'kr'

嗯,随后在帮助文档中查找到了ValueError:ValueError:传入无效的参数。于是我确定了错误类型,完成解题。

import random
a = random.randint(0,100)
print("请输入一个0到100之间的整数.")
b = True
times = 0
while b:
    times += 1
    try:
        c = int(input("第"+str(times)+"次猜,请输入一个整形数字:"))
        if c > a :
            print("太大")
        elif c < a :
            print("太小")
        else:
            print("恭喜你猜到了这个数是",a)
            b = False
    except ValueError as error:
        print("输入无效")
        
#
C:\ProgramData\Anaconda3\python.exe C:/Users/zhaohaobing/PycharmProjects/pythonProject/task03.py
121次猜测,请输入猜测结果1
太小
第2次猜测,请输入猜测结果62
太大
第3次猜测,请输入猜测结果88
太大
第4次猜测,请输入猜测结果12
恭喜你猜到了这个数是12

Process finished with exit code 0

分析:

c = int(input(“第”+str(times)+“次猜,请输入一个整形数字:”))

这里input输入的是一个字符串,没有转换成int类型,一直出错。


本文链接: http://www.dtmao.cc/news_show_650105.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?