python3.4学习笔记(二) 类型判断,异常处理,终止程序,实例代码:

  1. #idle中按F5可以运行代码
  2. #引入外部模块 import xxx
  3. #random模块,randint(开始数,结束数) 产生整数随机数
  4. import random
  5. import sys
  6. import os
  7. secret = random.randint(1,10)
  8. temp = input("请输入一个数字\n")
  9. #print(type(temp))#<class 'str'> 类型判断
  10. #print(isinstance(temp,int))#False
  11. #异常处理 try except finally 没有catch函数
  12. try:
  13. guess = int(temp)
  14. except:
  15. print("输入的不是数字,程序终止了")#注释内容不能在逻辑代码块里独立一行进行
  16. os._exit(0)#os._exit() 用于在线程中退出,sys.exit()用于在主线程中退出,exit(0)#终止退出程序,会关闭窗口
  17. count = 0;
  18. while guess != secret: #猜错的时候才进入循环条件
  19. if count == 0 and guess > secret:
  20. print("猜大了")
  21. if count == 0 and guess < secret:
  22. print("猜小了")
  23. temp = input("请重新输入数字\n") #需要在判断之前让用户输入,否则猜对了就直接退出了
  24. try:
  25. guess = int(temp)
  26. except (ZeroDivisionError,Exception):
  27. print("输入的不是数字,请重新输入")
  28. print(ZeroDivisionError,":",Exception)
  29. count += 1 #不能使用count++这种方式
  30. if count > 2:
  31. print("猜错4次自动退出了")
  32. break #退出循环
  33. if guess == secret:
  34. print("恭喜,你猜对了")
  35. print("猜对了也就那样")
  36. else:
  37. if guess > secret:
  38. print("猜大了")
  39. else:
  40. print("猜小了")
  41. print("游戏结束")
  42. ----------------------------------
  43. 请输入一个数字
  44. 2
  45. 猜小了
  46. 请重新输入数字
  47. fads
  48. 输入的不是数字,请重新输入
  49. <class 'ZeroDivisionError'> : <class 'Exception'>
  50. 猜小了
  51. 请重新输入数字

===============================

  1. Python os._exit() sys.exit() exit()区别
  2. Python退出程序的方式有两种:os._exit(), sys.exit()
  3. 1os._exit() 直接退出 Python程序,其后的代码也不会继续执行。
  4.  
  5. 2sys.exit() 引发一个 SystemExit异常,若没有捕获这个异常,Python解释器会直接退出;捕获这个异常可以做一些额外的清理工作。
  6. 0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。
  7. exit() C 语言等其他语言的 exit() 应该是一样的。
  8. os._exit() 调用 C 语言的 _exit() 函数。
  9. __builtin__.exit 是一个 Quitter 对象,这个对象的 __call__ 方法会抛出一个 SystemExit 异常。
  10.  
  11. 一般来说os._exit() 用于在线程中退出
  12. sys.exit() 用于在主线程中退出。
  13. import os
  14. os._exit(0)
  15.  
  16. 不能直接使用return
  17.  
  18. python注释内容不能在逻辑代码块里独立一行进行,空格和tab键都是有意义的
  19. if try 等模块下面不能一行内容都没有,编译会认为逻辑有问题报错。
  20.  
  21. -------------------------------------
  22. pythontry except处理程序异常的三种常用方法
  23. 方法一:捕获所有异常
  24. try:
  25. a=b
  26. b=c
  27. except (ZeroDivisionError,Exception):
  28. print(ZeroDivisionError,":",Exception)
  29.  
  30. 方法二:采用traceback模块查看异常
  31. #引入python中的traceback模块,跟踪错误
  32. import traceback
  33. try:
  34. a=b
  35. b=c
  36. except:
  37. traceback.print_exc()
  38.  
  39. 方法三:采用sys模块回溯最后的异常
  40. #引入sys模块
  41. import sys
  42. try:
  43. a=b
  44. b=c
  45. except:
  46. info=sys.exc_info()
  47. print info[0],":",info[1]
  48. 但是,如果你还想把这些异常保存到一个日志文件中,来分析这些异常,那么请看下面的方法:
  49. 把 traceback.print_exc() 打印在屏幕上的信息保存到一个文本文件中
  50. import traceback
  51. try:
  52. a=b
  53. b=c
  54. except:
  55. f=open("c:log.txt",'a')
  56. traceback.print_exc(file=f)
  57. f.flush()
  58. f.close()

=========================================

  1. import traceback
  2. #断言assert关键字,程序自动崩溃并抛出AssertionError异常,用在重新中植入检查点
  3. assert 4 > 3 #条件正确自动忽略跳过
  4. print("pass...")
  5. try:
  6. assert 3 > 4
  7. except (AssertionError):
  8. traceback.print_exc()
  9. 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...

python3.4学习笔记(二) 类型判断,异常处理,终止程序的更多相关文章

  1. python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码

    python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...

  2. python3.4学习笔记(二十五) Python 调用mysql redis实例代码

    python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...

  3. python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法

    python3.4学习笔记(二十四) Python pycharm window安装redis MySQL-python相关方法window安装redis,下载Redis的压缩包https://git ...

  4. python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码

    python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...

  5. python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字

    python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...

  6. python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法

    python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0.zfill()方法语法:s ...

  7. python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法

    python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法 在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数 ...

  8. Spring Boot学习笔记(二)全局捕获异常处理

    非常简单只需要创建自己的异常处理类,加上两个注解,就可以了

  9. Arduino学习笔记二:修改LED点灯程序

    看了开源社区的LED控制程序,开始上手代码编写,修改,下载以及调试,原文地址:http://www.arduino.cn/thread-1072-1-1.html,这个帖子写的比较通俗易懂. 自己移植 ...

随机推荐

  1. spring配置多视图解析器

    最近做一个小项目(移动端),自己搭了个简单的SSM框架(spring + spring MVC + Mybitis),展示层本来选用的是jsp,各方便都已经搭建好,结果发现有些页面需要用到H5的一些功 ...

  2. vue--子组件主动获取父组件的数据和方法

    子组件主动获取父组件的数据和方法 简单示例: this.$parent.数组 this.$parent.方法 示例: <template> <div id="Header& ...

  3. react封装组织架构递归树

    想用react实现一个递归树,但一些框架里面的有些不符合需求,于是自己写了个,功能比较简单,欢迎批评指正.. react实现这样一个组织架构递归树,下级部门的收起和展开,点击部门名称时请求接口获取下级 ...

  4. 洛谷P2463 Sandy的卡片【后缀数组】【二分】

    题目描述 Sandy和Sue的热衷于收集干脆面中的卡片. 然而,Sue收集卡片是因为卡片上漂亮的人物形象,而Sandy则是为了积攒卡片兑换超炫的人物模型. 每一张卡片都由一些数字进行标记,第i张卡片的 ...

  5. 猿团专访 |以技术推动发展 msup 成为企业经验智库

    随着企业的发展,几乎所有的管理者都有同样一个痛点:如何才能让自己的团队变得更强,技术能力更能匹配企业发展需求?msup的创立毫无疑问解决了这个难点. 麦思博(msup)有限公司发源于美国西雅图,是一家 ...

  6. linux:正则表达式grep命令

    基本语法一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列符合某个句法规则的字符串. 一.选择:| |   竖直分隔符表示选择,例如"boy|girl"可 ...

  7. 安装中文输入法 ubuntu shortcut desktop

    安装中文输入法 Kali自带是不能输入中文的,因此我安装了搜狗输入法和谷歌输入法(我做备份的),安装其一便可以.建议安装前apt-get update下,刷新下.其次安装好任意输入法需要重启下才能正常 ...

  8. SQL语句常见视图操作部分试题(一)

    创建一个名称为EMPLOYEES_VU的视图,它基于EMPLOYEES表中的雇员号.雇员名和部门号.将雇员名的列标题改为EMPLOYEE. CREATE VIEW EMPLOYEES_VU AS SE ...

  9. LoadRunner-创建场景

    录制完脚本,并调试运行正常后,想要模拟并发进行压力测试,需要创建场景. 1.点击Tools->Create Controller Scenario... 2.选择手工场景,并设置并发用户数.点击 ...

  10. 简单利用gulp-babel搭建es6转es5环境

    es6是什么?借着这个话题,我想说:身为web前端的工作者连es6没听说,转行吧. demo的代码如下: 源码下载 或者 gitclone地址: git@git.oschina.net:sisheb/ ...