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爬虫之HTTP异常处理
Nov 05 Python
Python对字符串实现去重操作的方法示例
Aug 11 Python
python3爬取各类天气信息
Feb 24 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 Python
python实现朴素贝叶斯算法
Nov 19 Python
pycharm远程开发项目的实现步骤
Jan 20 Python
详解Python Qt的窗体开发的基本操作
Jul 14 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
Aug 17 Python
python+Selenium自动化测试——输入,点击操作
Mar 06 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
Nov 17 Python
python实现简单聊天功能
Jul 07 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和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
PHP中IP地址与整型数字互相转换详解
2014/08/20 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
php pdo连接数据库操作示例
2019/11/18 PHP
js同时按下两个方向键
2007/12/01 Javascript
JQuery 常用方法基础教程
2009/02/06 Javascript
基于jQuery的表格操作插件
2010/04/22 Javascript
JavaScript实现快速排序(自已编写)
2012/12/19 Javascript
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
JavaScript简介
2015/02/15 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
微信小程序canvas拖拽、截图组件功能
2018/09/04 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
Python中DJANGO简单测试实例
2015/05/11 Python
在Django的模型中添加自定义方法的示例
2015/07/21 Python
Python pickle模块实现对象序列化
2019/11/22 Python
Python类中self参数用法详解
2020/02/13 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
python调用百度API实现人脸识别
2020/11/17 Python
用python批量下载apk
2020/12/29 Python
一个大学生十年的职业规划
2014/01/17 职场文书
学习十八大报告感言
2014/02/04 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
贷款担保申请书
2014/05/20 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
Python爬虫基础之简单说一下scrapy的框架结构
2021/06/26 Python