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中使用select模块实现非阻塞的IO
Feb 03 Python
介绍Python的Django框架中的QuerySets
Apr 20 Python
开始着手第一个Django项目
Jul 15 Python
Python进阶学习之特殊方法实例详析
Dec 01 Python
Django中cookie的基本使用方法示例
Feb 03 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 Python
对python修改xml文件的节点值方法详解
Dec 24 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
django中的图片验证码功能
Sep 18 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
Dec 09 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 27 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 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页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
php获取随机数组列表的方法
2014/11/13 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
2016/11/22 PHP
ASP SQL防注入的方法
2008/12/25 Javascript
一个基于jquery的文本框记数器
2012/09/19 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
Javascript单例模式的介绍和实例
2016/10/08 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
2019/11/07 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
详解python的webrtc库实现语音端点检测
2017/05/31 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
python机器人运动范围问题的解答
2019/04/29 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
Python面试题集
2012/03/08 面试题
教师节促销方案
2014/03/22 职场文书
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
欢迎领导标语
2014/06/27 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
预备党员考察表党小组意见
2015/06/01 职场文书
导游词之寿县报恩寺
2020/01/19 职场文书
了解MySQL查询语句执行过程(5大组件)
2022/08/14 MySQL