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 相关文章推荐
使用wxpython实现的一个简单图片浏览器实例
Jul 10 Python
python使用Flask框架获取用户IP地址的方法
Mar 21 Python
Python中列表和元组的使用方法和区别详解
Dec 30 Python
Python 搭建Web站点之Web服务器与Web框架
Nov 06 Python
使用Python中的tkinter模块作图的方法
Feb 07 Python
python实现图书馆研习室自动预约功能
Apr 27 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 Python
pygame编写音乐播放器的实现代码示例
Nov 19 Python
Python字符串的修改方法实例
Dec 19 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
Python的信号库Blinker用法详解
Dec 31 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微信开发之上传临时素材
2016/06/24 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
超级强大的表单验证
2006/06/26 Javascript
JavaScript Prototype对象
2009/01/07 Javascript
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
jQuery浏览器CSS3特写兼容实例
2015/01/19 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
vue实现节点增删改功能
2019/09/26 Javascript
Vue2.4+新增属性.sync、$attrs、$listeners的具体使用
2020/03/08 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
Python 文件操作技巧(File operation) 实例代码分析
2008/08/11 Python
深入解析Python中的WSGI接口
2015/05/11 Python
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
详解python单元测试框架unittest
2018/07/02 Python
Python对excel文档的操作方法详解
2018/12/10 Python
如何用python批量调整视频声音
2020/12/22 Python
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
应届生学校辅导员求职信
2013/11/07 职场文书
中秋节主持词
2014/04/02 职场文书
信用卡工资证明范本
2014/10/17 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
军训新闻稿范文
2015/07/17 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers