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连接池实现示例程序
Nov 26 Python
跟老齐学Python之集成开发环境(IDE)
Sep 12 Python
使用Python进行QQ批量登录的实例代码
Jun 11 Python
pytorch训练imagenet分类的方法
Jul 27 Python
对Python3+gdal 读取tiff格式数据的实例讲解
Dec 04 Python
通过python爬虫赚钱的方法
Jan 29 Python
Python绘制堆叠柱状图的实例
Jul 09 Python
Python socket实现的文件下载器功能示例
Nov 15 Python
Python爬虫实现vip电影下载的示例代码
Apr 20 Python
Python使用sqlite3模块内置数据库
May 07 Python
python statsmodel的使用
Dec 21 Python
Python字符串对齐方法使用(ljust()、rjust()和center())
Apr 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中实现进程间通讯
2006/10/09 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
php注册和登录界面的实现案例(推荐)
2016/10/24 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
2017/05/20 PHP
PHP编程快速实现数组去重的方法详解
2017/07/22 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
javascript textarea光标定位方法(兼容IE和FF)
2011/03/12 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
JQuery选择器、过滤器大整理
2015/05/26 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
Javascript 5种方法实现过滤删除前后所有空格
2016/06/22 Javascript
webpack使用 babel-loader 转换 ES6代码示例
2017/08/21 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
使用Python脚本将Bing的每日图片作为桌面的教程
2015/05/04 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
Python print不能立即打印的解决方式
2020/02/19 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
英国乡村时尚和宠物用品专家:Pet & Country
2018/07/02 全球购物
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
班级入场式解说词
2014/02/01 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
2014全国两会学习心得体会1000字
2014/03/10 职场文书
三字经教学反思
2014/04/26 职场文书
药剂专业自荐书
2014/06/20 职场文书
开展创先争优活动总结
2014/08/28 职场文书
紧急通知
2015/04/17 职场文书
MySQL系列之二 多实例配置
2021/07/02 MySQL