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编写生成验证码的脚本的教程
May 04 Python
详解Django中的ifequal和ifnotequal标签使用
Jul 16 Python
Python脚本暴力破解栅栏密码
Oct 19 Python
python类的继承实例详解
Mar 30 Python
Python中的二维数组实例(list与numpy.array)
Apr 13 Python
Appium+Python自动化测试之运行App程序示例
Jan 23 Python
python实现全盘扫描搜索功能的方法
Feb 14 Python
教你一步步利用python实现贪吃蛇游戏
Jun 27 Python
python多线程案例之多任务copy文件完整实例
Oct 29 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
Apr 24 Python
python程序如何进行保存
Jul 03 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
Jul 07 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 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
php实现小程序支付完整版
2018/10/09 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
jQuery之日期选择器的深入解析
2013/06/19 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
2016/08/12 Javascript
javascript特殊文本输入框网页特效
2016/09/13 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
javaScript语法总结
2016/11/25 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
JavaScript实现的级联算法示例【省市二级联动功能】
2018/12/25 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
JS实现普通轮播图特效
2020/01/01 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
JS对象属性的检测与获取操作实例分析
2020/03/17 Javascript
[09:37]DOTA2卡尔工作室 英雄介绍圣堂刺客篇
2013/06/13 DOTA
教你安装python Django(图文)
2013/11/04 Python
在Windows8上的搭建Python和Django环境
2014/07/03 Python
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
最新会计专业求职信范文
2014/01/28 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
领导干部贪图享乐整改措施
2014/09/21 职场文书
单位实习鉴定评语
2015/01/04 职场文书
员工自我评价范文
2015/03/11 职场文书
检讨书格式范文
2015/05/07 职场文书
不同意离婚答辩状
2015/05/22 职场文书
承兑汇票延期证明
2015/06/23 职场文书
怎样写好工作计划
2019/04/10 职场文书