python3.4学习笔记(二) 类型判断,异常处理,终止程序
python3.4学习笔记(二) 类型判断,异常处理,终止程序,实例代码:
- #idle中按F5可以运行代码
- #引入外部模块 import xxx
- #random模块,randint(开始数,结束数) 产生整数随机数
- import random
- import sys
- import os
- secret = random.randint(1,10)
- temp = input("请输入一个数字\n")
- #print(type(temp))#<class 'str'> 类型判断
- #print(isinstance(temp,int))#False
- #异常处理 try except finally 没有catch函数
- try:
- guess = int(temp)
- except:
- print("输入的不是数字,程序终止了")#注释内容不能在逻辑代码块里独立一行进行
- os._exit(0)#os._exit() 用于在线程中退出,sys.exit()用于在主线程中退出,exit(0)#终止退出程序,会关闭窗口
- count = 0;
- while guess != secret: #猜错的时候才进入循环条件
- if count == 0 and guess > secret:
- print("猜大了")
- if count == 0 and guess < secret:
- print("猜小了")
- temp = input("请重新输入数字\n") #需要在判断之前让用户输入,否则猜对了就直接退出了
- try:
- guess = int(temp)
- except (ZeroDivisionError,Exception):
- print("输入的不是数字,请重新输入")
- print(ZeroDivisionError,":",Exception)
- count += 1 #不能使用count++这种方式
- if count > 2:
- print("猜错4次自动退出了")
- break #退出循环
- if guess == secret:
- print("恭喜,你猜对了")
- print("猜对了也就那样")
- else:
- if guess > secret:
- print("猜大了")
- else:
- print("猜小了")
- print("游戏结束")
- ----------------------------------
- 请输入一个数字
- 2
- 猜小了
- 请重新输入数字
- fads
- 输入的不是数字,请重新输入
- <class 'ZeroDivisionError'> : <class 'Exception'>
- 猜小了
- 请重新输入数字
===============================
- Python os._exit() sys.exit() exit()区别
- Python退出程序的方式有两种:os._exit(), sys.exit()
- 1)os._exit() 直接退出 Python程序,其后的代码也不会继续执行。
- 2)sys.exit() 引发一个 SystemExit异常,若没有捕获这个异常,Python解释器会直接退出;捕获这个异常可以做一些额外的清理工作。
- 0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。
- exit() 跟 C 语言等其他语言的 exit() 应该是一样的。
- os._exit() 调用 C 语言的 _exit() 函数。
- __builtin__.exit 是一个 Quitter 对象,这个对象的 __call__ 方法会抛出一个 SystemExit 异常。
- 一般来说os._exit() 用于在线程中退出
- sys.exit() 用于在主线程中退出。
- import os
- os._exit(0)
- 不能直接使用return
- python注释内容不能在逻辑代码块里独立一行进行,空格和tab键都是有意义的
- if try 等模块下面不能一行内容都没有,编译会认为逻辑有问题报错。
- -------------------------------------
- python中try except处理程序异常的三种常用方法
- 方法一:捕获所有异常
- try:
- a=b
- b=c
- except (ZeroDivisionError,Exception):
- print(ZeroDivisionError,":",Exception)
- 方法二:采用traceback模块查看异常
- #引入python中的traceback模块,跟踪错误
- import traceback
- try:
- a=b
- b=c
- except:
- traceback.print_exc()
- 方法三:采用sys模块回溯最后的异常
- #引入sys模块
- import sys
- try:
- a=b
- b=c
- except:
- info=sys.exc_info()
- print info[0],":",info[1]
- 但是,如果你还想把这些异常保存到一个日志文件中,来分析这些异常,那么请看下面的方法:
- 把 traceback.print_exc() 打印在屏幕上的信息保存到一个文本文件中
- import traceback
- try:
- a=b
- b=c
- except:
- f=open("c:log.txt",'a')
- traceback.print_exc(file=f)
- f.flush()
- f.close()
=========================================
- import traceback
- #断言assert关键字,程序自动崩溃并抛出AssertionError异常,用在重新中植入检查点
- assert 4 > 3 #条件正确自动忽略跳过
- print("pass...")
- try:
- assert 3 > 4
- except (AssertionError):
- traceback.print_exc()
- print("after assert...")
输出结果:
pass...
Traceback (most recent call last):
File "F:/kanbox/pythoncode/if_for.py", line 28, in <module>
assert 3 > 4
AssertionError
after assert...
python3.4学习笔记(二) 类型判断,异常处理,终止程序的更多相关文章
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
- python3.4学习笔记(二十五) Python 调用mysql redis实例代码
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...
- python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法
python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...
- python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码
python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...
- python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字
python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...
- python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法
python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0.zfill()方法语法:s ...
- python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法
python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法 在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数 ...
- Spring Boot学习笔记(二)全局捕获异常处理
非常简单只需要创建自己的异常处理类,加上两个注解,就可以了
- Arduino学习笔记二:修改LED点灯程序
看了开源社区的LED控制程序,开始上手代码编写,修改,下载以及调试,原文地址:http://www.arduino.cn/thread-1072-1-1.html,这个帖子写的比较通俗易懂. 自己移植 ...
随机推荐
- spring配置多视图解析器
最近做一个小项目(移动端),自己搭了个简单的SSM框架(spring + spring MVC + Mybitis),展示层本来选用的是jsp,各方便都已经搭建好,结果发现有些页面需要用到H5的一些功 ...
- vue--子组件主动获取父组件的数据和方法
子组件主动获取父组件的数据和方法 简单示例: this.$parent.数组 this.$parent.方法 示例: <template> <div id="Header& ...
- react封装组织架构递归树
想用react实现一个递归树,但一些框架里面的有些不符合需求,于是自己写了个,功能比较简单,欢迎批评指正.. react实现这样一个组织架构递归树,下级部门的收起和展开,点击部门名称时请求接口获取下级 ...
- 洛谷P2463 Sandy的卡片【后缀数组】【二分】
题目描述 Sandy和Sue的热衷于收集干脆面中的卡片. 然而,Sue收集卡片是因为卡片上漂亮的人物形象,而Sandy则是为了积攒卡片兑换超炫的人物模型. 每一张卡片都由一些数字进行标记,第i张卡片的 ...
- 猿团专访 |以技术推动发展 msup 成为企业经验智库
随着企业的发展,几乎所有的管理者都有同样一个痛点:如何才能让自己的团队变得更强,技术能力更能匹配企业发展需求?msup的创立毫无疑问解决了这个难点. 麦思博(msup)有限公司发源于美国西雅图,是一家 ...
- linux:正则表达式grep命令
基本语法一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列符合某个句法规则的字符串. 一.选择:| | 竖直分隔符表示选择,例如"boy|girl"可 ...
- 安装中文输入法 ubuntu shortcut desktop
安装中文输入法 Kali自带是不能输入中文的,因此我安装了搜狗输入法和谷歌输入法(我做备份的),安装其一便可以.建议安装前apt-get update下,刷新下.其次安装好任意输入法需要重启下才能正常 ...
- SQL语句常见视图操作部分试题(一)
创建一个名称为EMPLOYEES_VU的视图,它基于EMPLOYEES表中的雇员号.雇员名和部门号.将雇员名的列标题改为EMPLOYEE. CREATE VIEW EMPLOYEES_VU AS SE ...
- LoadRunner-创建场景
录制完脚本,并调试运行正常后,想要模拟并发进行压力测试,需要创建场景. 1.点击Tools->Create Controller Scenario... 2.选择手工场景,并设置并发用户数.点击 ...
- 简单利用gulp-babel搭建es6转es5环境
es6是什么?借着这个话题,我想说:身为web前端的工作者连es6没听说,转行吧. demo的代码如下: 源码下载 或者 gitclone地址: git@git.oschina.net:sisheb/ ...