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 备份程序代码实现
Mar 06 Python
Python编程实现的图片识别功能示例
Aug 03 Python
[原创]教女朋友学Python(一)运行环境搭建
Nov 29 Python
浅谈Python使用Bottle来提供一个简单的web服务
Dec 27 Python
Python DataFrame.groupby()聚合函数,分组级运算
Sep 18 Python
python模拟菜刀反弹shell绕过限制【推荐】
Jun 25 Python
Python实现最大子序和的方法示例
Jul 05 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
Pytorch高阶OP操作where,gather原理
Apr 30 Python
numba提升python运行速度的实例方法
Jan 25 Python
Django debug为True时,css加载失败的解决方案
Apr 24 Python
Python实现文字pdf转换图片pdf效果
Apr 03 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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
PHP生成带有雪花背景的验证码
2008/09/28 PHP
纯php打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
php断点续传之如何分割合并文件
2014/03/22 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
PHP缓冲区用法总结
2016/02/14 PHP
cakephp常见知识点汇总
2017/02/24 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
JavaScript实用技巧(一)
2010/08/16 Javascript
jQuery(1.6.3) 中css方法对浮动的实现缺陷分析
2011/09/09 Javascript
JS实现自动变换的菜单效果代码
2015/09/09 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
2016/06/02 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
nodejs 递归拷贝、读取目录下所有文件和目录
2019/07/18 NodeJs
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
Python模块学习 datetime介绍
2012/08/27 Python
python获取一组数据里最大值max函数用法实例
2015/05/26 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
python实现12306抢票及自动邮件发送提醒付款功能
2018/03/08 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
python读写csv文件实例代码
2019/07/05 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
宾馆前台接待岗位职责
2015/04/02 职场文书
2016年小学生寒假总结
2015/10/10 职场文书
高考升学宴主持词
2019/06/21 职场文书
css display table 自适应高度、宽度问题的解决
2021/05/07 HTML / CSS
Python中requests做接口测试的方法
2021/05/30 Python