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 sort、sorted高级排序技巧
Nov 21 Python
Python多线程编程(五):死锁的形成
Apr 05 Python
python利用有道翻译实现&quot;语言翻译器&quot;的功能实例
Nov 14 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
Python eval的常见错误封装及利用原理详解
Mar 26 Python
python多进程并发demo实例解析
Dec 13 Python
pytorch数据预处理错误的解决
Feb 20 Python
浅谈Python线程的同步互斥与死锁
Mar 22 Python
浅谈django 重载str 方法
May 19 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
Oct 12 Python
pycharm2020.1.2永久破解激活教程,实测有效
Oct 29 Python
python编写扎金花小程序的实例代码
Feb 23 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
关于尾递归的使用详解
2013/05/02 PHP
PHP云打印类完整示例
2016/10/15 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
js拦截alert对话框另类应用
2013/01/16 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
js中scrollTop()方法和scroll()方法用法示例
2016/10/03 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
VueJS 组件参数名命名与组件属性转化问题
2018/12/03 Javascript
vue实现分页组件
2020/06/16 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python实现查询某个目录下修改时间最新的文件示例
2018/08/29 Python
Python subprocess库的使用详解
2018/10/26 Python
python+selenium实现QQ邮箱自动发送功能
2019/01/23 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
Python 中pandas索引切片读取数据缺失数据处理问题
2019/10/09 Python
python通过链接抓取网站详解
2019/11/20 Python
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
培训主管的岗位职责
2013/11/23 职场文书
校园门卫岗位职责
2013/12/09 职场文书
校本教研工作方案
2014/01/14 职场文书
餐厅执行经理岗位职责范本
2014/02/26 职场文书
《去年的树》教学反思
2014/04/11 职场文书
推荐信格式要求
2014/05/09 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
党员民主评议总结
2014/10/20 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
学生党员检讨书范文
2014/12/27 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书
导游词之西递宏村
2019/12/10 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python