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实现从web抓取文档的方法
Sep 26 Python
python基于windows平台锁定键盘输入的方法
Mar 05 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
Python中super()函数简介及用法分享
Jul 11 Python
使用Python编写一个最基础的代码解释器的要点解析
Jul 12 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
python对excel文档去重及求和的实例
Apr 18 Python
cmd运行python文件时对结果进行保存的方法
May 16 Python
Django框架 querySet功能解析
Sep 04 Python
Django中提示消息messages的设置方式
Nov 15 Python
解析python 类方法、对象方法、静态方法
Aug 15 Python
python文本处理的方案(结巴分词并去除符号)
May 26 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的大小写敏感问题整理
2011/12/29 PHP
php生成txt文件标题及内容的方法
2014/01/16 PHP
php定时执行任务设置详解
2015/02/06 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
Alliance vs AM BO3 第二场2.13
2021/03/10 DOTA
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
2010/09/10 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
python装饰器使用方法实例
2013/11/21 Python
Python学习笔记之解析json的方法分析
2017/04/21 Python
Python错误处理操作示例
2018/07/18 Python
Python3中bytes类型转换为str类型
2018/09/27 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
python取均匀不重复的随机数方式
2019/11/27 Python
Python 创建守护进程的示例
2020/09/29 Python
探究 canvas 绘图中撤销(undo)功能的实现方式详解
2018/05/17 HTML / CSS
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
英国领先的新鲜松露和最好的松露产品供应商:TruffleHunter
2019/08/26 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
2013/04/24 面试题
升职自荐信范文
2013/10/05 职场文书
大学校运会广播稿
2014/02/03 职场文书
调解员先进事迹材料
2014/02/07 职场文书
学校爱国卫生月活动总结
2014/06/25 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
无子女夫妻离婚协议书(4篇)
2014/10/20 职场文书
2014年办公室主任工作总结
2014/11/12 职场文书
个人事迹材料怎么写
2014/12/30 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js