通过游戏学python 3.6 第一季 第三章 实例项目 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码 可复制直接使用 娱乐 可封装 函数

 
 猜数字游戏--核心代码--猜测次数--随机函数和屏蔽错误代码
 
 1 #猜数字--核心代码--猜测次数--随机函数和屏蔽错误代码 
 2 
 3 import random
 4 secrst = random.randint(1,99)
 5 
 6 number = secrst
 7 
 8 amount = random.randint(3,8)
 9 print('本次游戏次数为',amount,'')
10 
11 count=0
12 while count<=amount:
13     try:
14         conversion=input('请猜数字')
15         guess=int(conversion)
16 
17         if guess == number:
18             print('猜对了')
19             break
20         elif guess > number:
21             print('大了')
22         else:
23             print('小了')
24 
25         count=count+1
26 
27         if count==amount:
28             countine=input('任意键重新开始,“N”键退出游戏')
29             if countine !='n':
30                 count=0
31             else:
32                 exit()
33     except:
34         print('请输入数字,而不是其他')                
猜数字--随机函数和屏蔽错误代码

 

import random

  1 '''
  2 
  3 1.定义:
  4 
  5 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),
  6      本质就是.py结尾的python文件(文件名:test.py,对应的模块名test)
  7     
  8 包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py 的文件)
  9 
 10 2.导入方法
 11 
 12 import module_name                              #快捷方式调用
 13 import module_name,module2_name                 #使用方法   module_name.m1()  
 14 
 15 from module_name  import *                      #完全复制,不建议使用,容易被覆盖
 16 from module_name  import m1,m2,m3               #使用方法    m1()
 17 
 18 from module_name import logger as logger_alex   #完全复制并且as改名
 19 
 20 3.import本质(路径搜索和搜索路径)
 21 
 22 导入模块的本质就是把python文件解释一遍
 23 (import test   test='test.py all code')
 24 (from test import name  name='code')
 25 #  import test1  #test1='test1.py 全部执行一遍'
 26 #  from.import test1  #当前目录路径下完全复制运行执行一遍
 27 
 28 导入包的本质就是执行该包下的__init__.py 的文件
 29 import module_name  ---> module_name.py ---->module_name.py的路径--->sys.path
 30 
 31 4.导入优化
 32 
 33 不重复搜索调用的方法
 34 from module_name  import m1                      #单个完全复制,使用方法  m1()
 35 from module_name import logger as logger_alex    #完全复制并且as改名
 36 
 37 5.模块的分类
 38 
 39 a:标准库
 40 b:开源模块(第三方模块)
 41 c:自定义模块
 42 
 43 '''
 44 
 45 print('-----------寻找当前环境目录路径--------')
 46 import sys,os
 47 a = os.path.abspath(__file__)
 48 b = os.path.dirname(os.path.abspath(__file__))
 49 c = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 50 d = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 51 
 52 print(a)
 53 print(b)
 54 print(c)
 55 print(d)
 56 
 57 
 58 print('--------创建新目录开始-----------')
 59 '''
 60 Python对文件的操作还算是方便的,只需要包含os模块进来,使用相关函数即可实现目录的创建。
 61 主要涉及到三个函数
 62 1、os.path.exists(path) 判断一个目录是否存在
 63 2、os.makedirs(path) 多层创建目录
 64 3、os.mkdir(path) 创建目录
 65 '''
 66 
 67 def mkdir(path):
 68     # 引入模块
 69     import os
 70  
 71     # 去除首位空格
 72     path=path.strip()
 73     # 去除尾部 \ 符号
 74     path=path.rstrip("\\")
 75  
 76     # 判断路径是否存在
 77     # 存在     True
 78     # 不存在   False
 79     isExists=os.path.exists(path)
 80  
 81     # 判断结果
 82     if not isExists:
 83         # 如果不存在则创建目录
 84         print(path+'创建成功')
 85         # 创建目录操作函数
 86         os.makedirs(path)
 87         return True
 88     else:
 89         # 如果目录存在则不创建,并提示目录已存在
 90         print (path+'目录已存在')
 91         return False
 92  
 93 # 定义要创建的目录
 94 m = '\\foo'
 95 mkpath = c+m
 96 # 调用函数
 97 mkdir(mkpath)
 98 print('--------创建新目录完成-----------')
 99 
100 
101 print('--------创建  module_alex.py 开始-----------')
102 data1="name='alex'\n"
103 data2="def say_hello():\n"
104 data3="\tprint ('hello alex')"
105 
106 sys.path.append(d)
107 f = open (mkpath + '\\module_alex.py','w+')
108 f.write(data1)
109 f.write(data2)
110 f.write(data3)
111 
112 f.flush()
113 f.close()
114 print(f)
115 print('--------创建 module_alex.py 完毕-----------')
116 
117 '''
118 flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,
119 同时清空缓冲区,不需要是被动的等待输出缓冲区写入。
120 一般情况下,文件关闭后会自动刷新缓冲区,但
121 有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。
122 '''
123 print('--------演示import 功能-----------')
124 
125 import sys,os
126 print (sys.path)
127 x=(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
128 sys.path.append(x)
129 
130 
131 print('--------演示调用模块-----------')
132 
133 import module_alex
134 print(module_alex.name)
135 module_alex.say_hello()
136 
137 
138 
139 
140 '''
141 创建和读取文件
142 
143 info = {
144     'name':'alex',
145     'age':22
146         }
147 
148 f = open ('test.txt','w')
149 f.write(str(info))
150 
151 f.close()
152 
153 
154 
155 f = open ('test.txt','r')
156 
157 data = eval(f.read())
158 
159 f.close()
160 
161 print (data['age'])
162 
163 '''
import演示

 

  1 #自动生成代码
  2 
  3 print('-----------寻找当前环境目录路径--------')
  4 import sys,os
  5 a = os.path.abspath(__file__)
  6 b = os.path.dirname(os.path.abspath(__file__))
  7 c = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  8 d = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  9 
 10 print(a)
 11 print(b)
 12 print(c)
 13 print(d)
 14 
 15 
 16 print('--------创建新目录开始-----------')
 17 
 18 
 19 def mkdir(path):
 20     # 引入模块
 21     import os
 22  
 23     # 去除首位空格
 24     path=path.strip()
 25     # 去除尾部 \ 符号
 26     path=path.rstrip("\\")
 27  
 28     # 判断路径是否存在
 29     # 存在     True
 30     # 不存在   False
 31     isExists=os.path.exists(path)
 32  
 33     # 判断结果
 34     if not isExists:
 35         # 如果不存在则创建目录
 36         print(path+'创建成功')
 37         # 创建目录操作函数
 38         os.makedirs(path)
 39         return True
 40     else:
 41         # 如果目录存在则不创建,并提示目录已存在
 42         print (path+'目录已存在')
 43         return False
 44  
 45 # 定义要创建的目录
 46 m = '\\'+input('目录名称:')
 47 mkpath = c+m
 48 # 调用函数
 49 mkdir(mkpath)
 50 print('--------创建新目录完成-----------')
 51 
 52 
 53 print('--------创建  module_alex.py 开始-----------')
 54 data1='''
 55 
 56 #socketserver基本使用
 57 import os
 58 import json
 59 
 60 import socketserver
 61 
 62 class MyTCPHandler(socketserver.BaseRequestHandler):
 63 
 64     def put(self,*args):
 65         #接收客户端文件
 66         cmd_dic = args[0]
 67         filename = cmd_dic['filename']
 68         filesize = cmd_dic['size']
 69         if os.path.isfile(filename):
 70             f = open(filename + '.new','wb')
 71         else:
 72             f = open(filename ,'wb')
 73 
 74         self.request.send(b'200 ok')#返回json格式
 75         received_size = 0
 76         while received_size < filesize:
 77             data = self.request.recv(1024)
 78             f.write(data)
 79             received_size += len(data)
 80         else:
 81             print ('file[%s] has uploaded...' % filename)
 82 
 83     
 84     def handle(self):
 85         while True:
 86             try:
 87                 self.data =self.request.recv(1024).strip()
 88                 print ('{} wrote:'.format(self.client_address[0]))
 89                 print (self.data)
 90 
 91                 cmd_dic = json.loads(self.data.decode())
 92                 action = cmd_dic['action']
 93 
 94                 if hasattr(self,action):
 95                     func = getattr(self,action)
 96                     func(cmd_dic)
 97 
 98                 #self.request.send(self.data.upper())
 99             except ConnectionResetError as e:
100                 print ('err,e')
101                 break
102 
103 
104 
105 
106 if __name__ == '__main__':
107     
108     HOST,PORT = 'localhost',9999
109     #HOST,PORT = '0.0.0.0',9999
110     
111     server = socketserver.TCPServer((HOST,PORT),MyTCPHandler)
112     server.serve_forever()
113 
114 
115 '''
116 
117 
118 sys.path.append(d)
119 ls = input('文件名称:')
120 f = open (mkpath + '\\'+ ls + '.py','w+',encoding='utf-8')
121 f.write(data1)
122 
123 
124 f.flush()
125 f.close()
126 print(f)
127 print('--------创建 module_alex.py 完毕-----------')
#自动生成代码

 

 

 

 

 

  1 #random模块  String(字符串)
  2 #随机模块
  3 
  4 #!/usr/bin/env python
  5 #_*_encoding: utf-8_*_
  6 import random
  7 print('#random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0')
  8 print (random.random())  #0.6445010863311293  
  9 
 10 print('用于生成一个指定范围内的整数。')
 11 print (random.randint(1,7)) #4
 12 #random.randint()的函数原型为:random.randint(a, b),
 13 #用于生成一个指定范围内的整数。
 14 # 其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b
 15 
 16 print('从指定范围内,按指定基数递增的集合中 获取一个随机数。')
 17 print (random.randrange(1,10)) #5  顾头不顾尾只不会1-9
 18 #random.randrange的函数原型为:random.randrange([start], stop[, step]),
 19 # 从指定范围内,按指定基数递增的集合中 获取一个随机数。如:random.randrange(10, 100, 2),
 20 # 结果相当于从[10, 12, 14, 16, ... 96, 98]序列中获取一个随机数。
 21 # random.randrange(10, 100, 2)在结果上与 random.choice(range(10, 100, 2) 等效。
 22 
 23 print('从序列中获取一个随机元素。')
 24 print(random.choice('liukuni')) #i  #从字符串,列表,元组,字典里随机取值
 25 #random.choice从序列中获取一个随机元素。
 26 # 其函数原型为:random.choice(sequence)。参数sequence表示一个有序类型。
 27 # 这里要说明一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。
 28 # list, tuple, 字符串都属于sequence。有关sequence可以查看python手册数据模型这一章。
 29 
 30 
 31 
 32 #random.sample的函数原型为:
 33 #random.sample(sequence, k),
 34 #从指定序列中随机获取指定长度的片断。
 35 #sample函数不会修改原有序列。
 36 
 37 
 38 print('-------#实际应用:------------')
 39 #!/usr/bin/env python
 40 # encoding: utf-8
 41 import random
 42 import string
 43 
 44 print('-------#随机整数:------------')
 45 print( random.randint(0,99))  #70
 46  
 47 print('-------#随机选取0到100间的偶数:------------')
 48 print(random.randrange(0, 101, 2)) #4
 49  
 50 print('-------#随机浮点数::------------')
 51 print( random.random()) #0.2746445568079129
 52 print(random.uniform(1, 10)) #9.887001463194844   #增加区间的功能
 53  
 54 print('-------#随机字符:------------')
 55 print(random.choice('abcdefg&#%^*f')) #f
 56 print(random.choice("学习Python"))#
 57 print(random.choice(["JGood","is","a","handsome","boy"]))  #List
 58 print(random.choice(("Tuple","List","Dict")))   #List
 59  
 60 print('-------#多个字符中选取特定数量的字符:------------')
 61 print(random.sample('abcdefghij',3)) #['f', 'h', 'd']
 62 print(random.sample([1,2,3,4,5],3))    #[1, 2, 5] #从前面,随机取(参数:3)位
 63  
 64 print('-------#随机选取字符串:------------')
 65 print( random.choice ( ['apple', 'pear', 'peach', 'orange', 'lemon'] )) #apple
 66 
 67 print('-------#洗牌#:------------')
 68 items = [1,2,3,4,5,6,7]
 69 print(items) #[1, 2, 3, 4, 5, 6, 7]
 70 random.shuffle(items)  #shuffle() 方法将序列的所有元素随机排序
 71 print(items) #[1, 4, 7, 2, 5, 3, 6]
 72 
 73 
 74 print('-------生成随机验证码:------------')
 75 import random
 76 checkcode = ''  #定义全局变量
 77 for i in range(6):
 78     current = random.randrange(0,6) 
 79     if current != i:
 80         temp = chr(random.randint(65,90)) #chr()数字转换成ASCII,
 81     else:
 82         temp = random.randint(0,9)
 83     checkcode += str(temp)
 84 print (checkcode)
 85 
 86 
 87 
 88 #String(字符串)import string
 89 print('-------string类型介绍------------')
 90 import random
 91 import string
 92 a = string.__all__              #类型介绍
 93 b = string.ascii_letters        #大小写字母
 94 c = string.ascii_lowercase      #小写字母
 95 d = string.ascii_uppercase      #大写字母
 96 e = string.digits               #0-9
 97 f = string.hexdigits            #0-9,a-f,A-F
 98 g = string.octdigits            #0-7
 99 h = string.printable            #0-9,大小写字母,标点符号
100 i = string.punctuation          #标点符号
101 j = string.whitespace           #空格
102 
103 print(a)
104 print('-------分割为了看的更清楚------------')
105 print(b)
106 print(c)
107 print(d)
108 print(e)
109 print(f)
110 print(g)
111 print(h)
112 print('-------分割为了看的更清楚------------')
113 print(i)
114 print('-------分割为了看的更清楚------------')
115 print(j)
116 
117 
118 
119 print('-------随机函数测试string------------')
120 x = random.choice(f)
121 y = random.sample(f,5)
122 print('-------用随机选取字符串测试string------------')
123 print(x)
124 print('-------用多个字符中选取特定数量的字符测试string------------')
125 print(y)
#random模块 String(字符串)

 

 1 #  import os
 2 #  help(os)
 3 # print(os)模块
 4 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
 5 os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
 6 os.curdir  返回当前目录: ('.')
 7 os.pardir  获取当前目录的父目录字符串名:('..')
 8 os.makedirs('dirname1/dirname2')    可生成多层递归目录
 9 os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
10 os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
11 os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
12 os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
13 os.remove()  删除一个文件
14 os.rename("oldname","newname")  重命名文件/目录
15 os.stat('path/filename')  获取文件/目录信息
16 #重要
17 os.sep    输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
18 os.linesep    输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n"
19 os.pathsep    输出用于分割文件路径的字符串
20 os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
21 os.system("bash command")  运行shell命令,直接显示
22 os.environ  获取系统环境变量   字典模式{k:v}
23 #重要
24 #  (path)路径  (r'c:\a\b\c\d\a.txt')
25 os.path.abspath(path)  返回path规范化的绝对路径
26 os.path.split(path)  将path分割成目录和文件名二元组返回(r'c:\a\b\c\d\a.txt')
27 os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
28 os.path.basename(path)  返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
29 os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
30 os.path.isabs(path)  如果path是绝对路径,返回True(r'c:\a')
31 os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
32 os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
33 os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
34 import os
35 x = os.path.join(r'c:',r'\a',r'\a.txt')
36 print (x)
37 os.path.getatime(path)  返回path所指向的文件或者目录的最后存取时间
38 os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
39 
40 #  sys模块
41 sys.argv           命令行参数List,第一个元素是程序本身路径
42 ['C:/Users/Administrator/AppData/Local/Programs/Python/Python36-32/212.py']
43 sys.exit(n)        退出程序,正常退出时exit(0)
44 sys.version        获取Python解释程序的版本信息
45 sys.maxint         最大的Int值
46 sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
47 sys.platform       返回操作系统平台名称
48 sys.stdout.write('please:')
49 val = sys.stdin.readline()[:-1]
(os)模块sys模块

 


  try:

  except:

  

 1 #异常处理
 2 try:
 3     #name[3]
 4     #data['name']
 5     #open('r')
 6     a = 1
 7     print (a)
 8 except KeyError as e :
 9     print ('没有这个KEY',e)
10 
11 except IndexError as e :
12     print ('列表操作错误',e)
13 
14     
15 except (KeyError,IndexError) as e :
16     print ('多个错误统一处理',e)
17 
18 
19 except Exception as e :
20     print ('所有的错误都处理,未知错误使用',e)
21 
22 
23 else:
24     print ('一切正常打印这个')
25 
26 finally:
27     print ('不管有没有错误,都执行')
#异常处理except

 

 1 #1、异常基础
 2 #在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,
 3 #   而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!!
 4 
 5 try:
 6     pass
 7 except Exception as ex:
 8     pass
 9 
10 
11 print('需求:将用户输入的两个数字相加,输入字母或者其他报错')
12 while True:
13     num1 = input('num1:')
14     num2 = input('num2:')
15     try:
16         num1 = int(num1)
17         num2 = int(num2)
18         result = num1 + num2
19     except Exception as e:
20         print('出现异常,信息如下:')
21         print(e)
异常基础 

 

  1 '''
  2 2、异常种类
  3 
  4 常用异常
  5 
  6 AttributeError      试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
  7 IOError             输入/输出异常;基本上是无法打开文件
  8 ImportError         无法引入模块或包;基本上是路径问题或名称错误
  9 IndentationError    语法错误(的子类) ;代码没有正确对齐
 10 IndexError          下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
 11 KeyError            试图访问字典里不存在的键
 12 KeyboardInterrupt   Ctrl+C被按下
 13 NameError           使用一个还未被赋予对象的变量
 14 SyntaxError Python  代码非法,代码不能编译(个人认为这是语法错误,写错了)
 15 TypeError           传入对象类型与要求的不符合
 16 UnboundLocalError   试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
 17                     导致你以为正在访问它
 18 ValueError          传入一个调用者不期望的值,即使值的类型是正确的
 19 
 20 常用异常
 21 '''
 22 
 23 print('----以下实例,异常类只能用来处理指定的异常情况,如果非指定异常则无法处理。----')
 24 dic = ["wupeiqi", 'alex']
 25 try:
 26     dic[10]
 27 except IndexError as e:
 28     print (e)
 29 
 30 
 31 dic = {'k1':'v1'}
 32 try:
 33     dic['k20']
 34 except KeyError as e:
 35     print (e)
 36 
 37 
 38 s1 = 'hello111111111111111'
 39 try:
 40     int(s1)
 41 except ValueError as e:
 42     print (e)
 43 
 44 
 45 print('-----未捕获到异常,程序直接报错---不演示了,自己测试吧-----')
 46 
 47 '''
 48 s1 = 'hello222222222222'
 49 try:
 50     int(s1)
 51 except IndexError as e:
 52     print (e)
 53 '''
 54 
 55 print('-----所以,写程序时需要考虑到try代码块中可能出现的任意异常,可以这样写:')
 56 
 57 s1 = 'hello33333333333333'
 58 try:
 59     int(s1)
 60 except IndexError as e:
 61     print (e)
 62 except KeyError as e:
 63     print (e)
 64 except ValueError as e:
 65     print (e)
 66 
 67     
 68 print('-----万能异常 在python的异常中,有一个万能异常:Exception,他可以捕获任意异常,即:')
 69 
 70 s1 = 'hello4444444444444444'
 71 try:
 72     int(s1)
 73 except Exception as e:
 74     print (e)
 75 
 76 print('----接下来你可能要问了,既然有这个万能异常,其他异常是不是就可以忽略了!----')
 77 print('----答:当然不是,对于特殊处理或提醒的异常需要先定义,最后定义Exception来确保程序正常运行。----')
 78 
 79 s1 = 'hello5555555555555555'
 80 try:
 81     int(s1)
 82 except KeyError as e:
 83     print( '键错误')
 84 except IndexError as e:
 85     print ('索引错误')
 86 except Exception as e:
 87     print ('错误')
 88 
 89 
 90 
 91 print('--------异常其他结构--------')
 92 try:
 93     #name[3]
 94     #data['name']
 95     #open('r')
 96     a = 1
 97     print (a)
 98 except KeyError as e :
 99     print ('没有这个KEY',e)
100 
101 except IndexError as e :
102     print ('列表操作错误',e)
103 
104     
105 except (KeyError,IndexError) as e :
106     print ('多个错误统一处理',e)
107 
108 
109 except Exception as e :
110     print ('所有的错误都处理,未知错误使用',e)
111 
112 
113 else:
114     print ('一切正常打印这个')
115 
116 finally:
117     print ('不管有没有错误,都执行')
118 
119 
120 print('------------------主动触发异常---------------')
121 try:
122     raise Exception('错误了。。。')
123 except Exception as e:
124     print (e)
125 
126 
127 print('------------------主动触发异常222222222222222222---------------')
128 s1 = 'hello'
129 try:
130     int(s1)
131 except ValueError as e:
132     print(e)
133 
134 
135 
136 print('---------自定义异常--------')
137 class AlexException(Exception):
138     def __init__(self,msg):
139         self.message = msg
140     #def __str__(self):
141     #    return '替换了,自定义的异常'
142     
143 try:
144     raise AlexException('自定义的异常,数据库连不上,我自己定义的异常')
145 except AlexException as e:
146     print(e)
147 
148 
149 
150 print('---------------断言------# assert 条件--------')
151 
152 assert 1 == 1   # 条件成立,则继续执行下面的代码
153 
154 print('''
155 1、assert语句用来声明某个条件是真的。
156 2、如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么assert语句是应用在这种情形下的理想语句。
157 3、当assert语句失败的时候,会引发一AssertionError。
158       ''')
159 assert 1 == 2  #  条件不成立,则报错
常用异常和实例

 

 1 ArithmeticError
 2 AssertionError
 3 AttributeError
 4 BaseException
 5 BufferError
 6 BytesWarning
 7 DeprecationWarning
 8 EnvironmentError
 9 EOFError
10 Exception
11 FloatingPointError
12 FutureWarning
13 GeneratorExit
14 ImportError
15 ImportWarning
16 IndentationError
17 IndexError
18 IOError
19 KeyboardInterrupt
20 KeyError
21 LookupError
22 MemoryError
23 NameError
24 NotImplementedError
25 OSError
26 OverflowError
27 PendingDeprecationWarning
28 ReferenceError
29 RuntimeError
30 RuntimeWarning
31 StandardError
32 StopIteration
33 SyntaxError
34 SyntaxWarning
35 SystemError
36 SystemExit
37 TabError
38 TypeError
39 UnboundLocalError
40 UnicodeDecodeError
41 UnicodeEncodeError
42 UnicodeError
43 UnicodeTranslateError
44 UnicodeWarning
45 UserWarning
46 ValueError
47 Warning
48 ZeroDivisionError
49 
50 更多异常
更多异常--来个会翻译联系我

 


 exit()

 1 Python里   os._exit() sys.exit() exit()    的区别
 2 
 3 Python退出程序的方式有两种:os._exit(), sys.exit()
 4 1)os._exit()   直接退出 Python程序,其后的代码也不会继续执行。
 5 
 6 2)sys.exit()   引发一个 SystemExit异常,若没有捕获这个异常,Python解释器会直接退出;
 7                 捕获这个异常可以做一些额外的清理工作。
 8                 0为正常退出,其他数值(1-127)为不正常,可抛异常事件供捕获。
 9               
10 3) exit()       跟 C 语言等其他语言的 exit() 应该是一样的。
11    os._exit()   调用 C 语言的 _exit() 函数。
12 
13 
14    os._exit()   用于在线程中退出
15    sys.exit()   用于在主线程中退出。
exit()

 

posted @ 2017-07-28 12:40  颜言  阅读(384)  评论(0编辑  收藏  举报