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中实现参数类型检查的简单方法
Apr 21 Python
python删除列表内容
Aug 04 Python
Python正则表达式教程之二:捕获篇
Mar 02 Python
python 请求服务器的实现代码(http请求和https请求)
May 25 Python
Django+JS 实现点击头像即可更改头像的方法示例
Dec 26 Python
Python动态赋值的陷阱知识点总结
Mar 17 Python
详解python解压压缩包的五种方法
Jul 05 Python
Python Django 命名空间模式的实现
Aug 09 Python
Python API 操作Hadoop hdfs详解
Jun 06 Python
Python 利用OpenCV给照片换底色的示例代码
Aug 03 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
Sep 11 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 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
我的群发邮件程序
2006/10/09 PHP
一个简单的php实现的MySQL数据浏览器
2007/03/11 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
PHP运行模式汇总
2016/11/06 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
PHP里的$_GET数组介绍
2019/03/22 PHP
javascript 计算两个整数的百分比值
2009/12/26 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
JavaScript登录验证基础教程
2017/11/01 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
说说如何利用 Node.js 代理解决跨域问题
2019/04/22 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
Python脚本实现下载合并SAE日志
2015/02/10 Python
python使用标准库根据进程名如何获取进程的pid详解
2017/10/31 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
python删除字符串中指定字符的方法
2018/08/13 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
Pycharm 解决自动格式化冲突的设置操作
2021/01/15 Python
实验室的标语
2014/06/20 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
2015年保洁工作总结范文
2015/04/28 职场文书
导游词之贵州织金洞
2019/10/12 职场文书
Python中Permission denied的解决方案
2021/04/02 Python