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实现博客文章爬虫示例
Feb 26 Python
跟老齐学Python之使用Python查询更新数据库
Nov 25 Python
Python编程中的文件读写及相关的文件对象方法讲解
Jan 19 Python
Python中的迭代器与生成器高级用法解析
Jun 28 Python
详解python中的Turtle函数库
Nov 19 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
Jul 23 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 Python
详解pandas中iloc, loc和ix的区别和联系
Mar 09 Python
详解Flask前后端分离项目案例
Jul 24 Python
Numpy数组的广播机制的实现
Nov 03 Python
Python Matplotlib绘制等高线图与渐变色扇形图
Apr 14 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 表单数据的获取代码
2009/03/10 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
laravel实现Auth认证,登录、注册后的页面回跳方法
2019/09/30 PHP
使用laravel根据用户类型来显示或隐藏字段
2019/10/17 PHP
Javascript中正则表达式的全局匹配模式分析
2011/04/26 Javascript
Jquery操作radio的简单实例
2014/01/06 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
js实现鼠标点击左上角滑动菜单效果代码
2015/09/06 Javascript
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
更优雅的微信小程序骨架屏实现详解
2019/08/07 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
python如何创建TCP服务端和客户端
2018/08/26 Python
Python 实现大整数乘法算法的示例代码
2019/09/17 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
2020/09/21 Python
HTML5 canvas基本绘图之图形组合
2016/06/27 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
男女钓鱼靴和甲板鞋:XTRATUF
2021/01/09 全球购物
海量信息软件测试笔试题
2015/08/08 面试题
生产副总岗位职责
2013/11/28 职场文书
白鹤梁导游词
2015/02/06 职场文书
会议通知格式范文
2015/04/15 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
vue3如何优雅的实现移动端登录注册模块
2021/03/29 Vue.js
nginx里的rewrite跳转的实现
2021/03/31 Servers
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android
mysql 获取时间方式
2022/03/20 MySQL
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA