Python3.4学习笔记之类型判断,异常处理,终止程序操作小结


Posted in Python onMarch 01, 2019

本文实例讲述了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...

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python del()函数用法
Mar 24 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
python 队列详解及实例代码
Oct 18 Python
python3调用百度翻译API实现实时翻译
Aug 16 Python
python破解bilibili滑动验证码登录功能
Sep 11 Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 Python
Pytorch数据拼接与拆分操作实现图解
Apr 30 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
May 26 Python
Python轻量级web框架bottle使用方法解析
Jun 13 Python
Python连接Mysql进行增删改查的示例代码
Aug 03 Python
Python paramiko使用方法代码汇总
Nov 20 Python
在python中读取和写入CSV文件详情
Jun 28 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
Mar 01 #Python
Python脚本按照当前日期创建多级目录
Mar 01 #Python
Python enumerate函数功能与用法示例
Mar 01 #Python
django模板加载静态文件的方法步骤
Mar 01 #Python
Python3中编码与解码之Unicode与bytes的讲解
Feb 28 #Python
Python multiprocessing多进程原理与应用示例
Feb 28 #Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 #Python
You might like
php获取mysql数据库中的所有表名的代码
2011/04/23 PHP
PHP 自定义错误处理函数trigger_error()
2013/03/26 PHP
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
PHP中使用匿名函数操作数据库的例子
2014/11/17 PHP
php mysql_list_dbs()函数用法示例
2017/03/29 PHP
客户端静态页面玩分页
2006/06/26 Javascript
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
Javascript将string类型转换int类型
2010/12/09 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
Vue.js中数据绑定的语法教程
2017/06/02 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
python微信撤回监测代码
2019/04/29 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
python统计文章中单词出现次数实例
2020/02/27 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
2020/03/11 Python
python进度条显示之tqmd模块
2020/08/22 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
餐厅楼面主管岗位职责范本
2014/02/16 职场文书
介绍信样本
2015/01/31 职场文书
任命书格式范文
2015/09/22 职场文书
SQL优化老出错,那是你没弄明白MySQL解释计划用法
2021/11/27 MySQL
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers