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 contextlib模块使用示例
Feb 18 Python
python中常用检测字符串相关函数汇总
Apr 15 Python
Python实现的基数排序算法原理与用法实例分析
Nov 23 Python
使用Python横向合并excel文件的实例
Dec 11 Python
Python流程控制 if else实现解析
Sep 02 Python
Python中*args和**kwargs的区别详解
Sep 17 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
Python如何使用PIL Image制作GIF图片
May 16 Python
Vs Code中8个好用的python 扩展插件
Oct 12 Python
python 写一个水果忍者游戏
Jan 13 Python
Python入门基础之数字字符串与列表
Feb 01 Python
梳理总结Python开发中需要摒弃的18个坏习惯
Jan 22 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语法(2)
2006/10/09 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
JS获取页面窗口大小的代码解读
2011/12/01 Javascript
javascript动画浅析
2012/08/30 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
JavaScript创建对象的写法
2013/08/29 Javascript
jquery单行文字向上滚动效果的实现代码
2014/09/05 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
2019/11/29 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
[02:23]DOTA2英雄基础教程 幻影长矛手
2013/12/09 DOTA
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
python正则分组的应用
2013/11/10 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
2018/07/18 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
python字典与json转换的方法总结
2020/12/28 Python
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
哈曼俄罗斯官方网上商店:Harman.club
2020/07/24 全球购物
介绍一下Make? 为什么使用make
2013/12/08 面试题
初三政治教学反思
2014/01/30 职场文书
十佳护士先进事迹
2014/05/08 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js