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 (1)
Oct 31 Python
Python基于PycURL自动处理cookie的方法
Jul 25 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
Dec 20 Python
Python使用matplotlib填充图形指定区域代码示例
Jan 16 Python
Python生成器以及应用实例解析
Feb 08 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
Jul 10 Python
Python爬虫之正则表达式基本用法实例分析
Aug 08 Python
基于Python实现剪切板实时监控方法解析
Sep 11 Python
pycharm设置python文件模板信息过程图解
Mar 10 Python
pycharm 实现本地写代码,服务器运行的操作
Jun 08 Python
Python实现迪杰斯特拉算法过程解析
Sep 18 Python
Python  Asyncio模块实现的生产消费者模型的方法
Mar 01 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中的命名空间相关概念浅析
2015/01/22 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
如何让你的Lightbox支持滚轮缩放及Base64图片
2014/12/04 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
简单模拟node.js中require的加载机制
2016/10/27 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
深入理解Vuex 模块化(module)
2017/09/26 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
在Python的web框架中配置app的教程
2015/04/30 Python
Python 通配符删除文件的实例
2018/04/24 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
马来西亚和新加坡巴士票在线预订:CatchThatBus
2018/11/17 全球购物
求职简历的自我评价怎样写好
2013/10/07 职场文书
外贸学院会计专业应届生求职信
2013/11/14 职场文书
家具厂厂长岗位职责
2014/01/01 职场文书
法学院方阵解说词
2014/01/29 职场文书
一夜的工作教学反思
2014/02/08 职场文书
2014年国庆标语
2014/06/30 职场文书
反四风对照检查材料
2014/09/22 职场文书
初中生物教学反思
2016/02/20 职场文书
2016年全国爱眼日宣传教育活动总结
2016/04/05 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python