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...

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. iOS - 开发屏幕及视图层次

    //屏幕视图分层 .UIWindow .UILayoutContainerView .UITransitionView .UIViewControllerWrpaperView .UILayoutCo ...

  2. iOS - WKWebView那些坑

    WKWebView 是苹果在 WWDC 2014 上推出的新一代 webView 组件,用以替代 UIKit 中笨重难用.内存泄漏的 UIWebView.WKWebView 拥有60fps滚动刷新率. ...

  3. webconfig的配置说明

    转自 :http://www.cnblogs.com/kissdodog/archive/2013/04/16/3025315.html <?xml version="1.0" ...

  4. CCCC 月饼

    https://www.patest.cn/contests/gplt/L2-003 题解:按平均值贪心. 坑:有一个样例卡住了,是因为 while (i<=n&&x - bs[ ...

  5. flume学习笔记

    #################################################################################################### ...

  6. FW 每秒百万级别的 HTTP 请求 sung: 重型的(heavy-duty)、分布式的、多协议测试工具

    本文是构建能够每秒处理 3 百万请求的高性能 Web 集群系列文章的第一篇.它记录了我使用负载生成器工具的一些经历,希望它能帮助每一个像我一样不得不使用这些工具的人节省时间. 负载生成器是一些生成用于 ...

  7. mysql 连接查询 join

    本文用到的表 CREATE TABLE `cls` ( `cls_id` ) NOT NULL AUTO_INCREMENT, `name` ) NOT NULL, PRIMARY KEY (`cls ...

  8. Shell的>/dev/null、2>&1、2>1

    转载自:http://dos2unix.cn/link/480 1. 标准输入stdin文件描述符为0,标准输出stdout文件描述符为1,标准错误stderr文件描述符为2 2. /dev/null ...

  9. [django]celery_redis探索

    celery+redis能做什么及简单原理 能干嘛: 看这里http://yshblog.com/blog/163 https://segmentfault.com/a/119000001565487 ...

  10. [py]django上线部署-uwsgi+nginx+py3/django1.10

    https://github.com/lannyMa/django-uwsgi-nginx.git 单机调试启动-确保项目代码没问题 - 克隆代码进入项目 git clone https://gith ...