常用模块:http://www.cnblogs.com/Eva-J/articles/7228075.html

今日概要:

#time
# —— 时间:时间戳 字符串 结构化时间
#collections —— 扩展数据类型的模块:可命名元祖,有序字典,默认字典,双端队列,计数器
#sys —— 和py解释器打交道的模块
#—— sys.path : 和路径有关,且关系到模块导入相关的路径
#—— sys.argv : [xxx.py,argv1,argv2],python xxx.py argv1 argv2 ... #常用模块
# random 随机数相关 ***
# os 操作系统相关 *****
# 序列化
# json *****
# pickle ****
# shelve ***
#异常处理 *****

random模块:

import random
# print(random.random()) #0-1之间的小数
# print(random.uniform(10,12)) #n,m 之间的小数 #生成随机整数
# print(random.randint(1,2)) #必须是两个参数,规定一个范围 [1,2]
# print(random.randrange(100)) #一个参数
# print(random.randrange(1,2)) #两个个参数 [1,2)
# print(random.randrange(90,100,2)) #三个参数,最后一个是步长 #从一个序列中随机选择:一个 choice,多个 sample
# print(random.choice('abc'))
# print(random.sample([1,'23',[4,5]],2)) #打乱一个序列的顺序
# item=[1,3,5,7,9]
# random.shuffle(item) #改变了原列表
# print(item) #验证码
#生成一个6位数字随机验证码
#randint(100000,999999)
#randrange(100000,1000000)
# l = []
# for i in range(6):
# rand_num = random.randint(0,9)
# l.append(str(rand_num))
# print(''.join(l)) #生成一个6位数字随机验证码,不能有重复,少了好多种情况
# print(random.sample(range(0,10),6)) #[0,1,2,3,4,5,6,7,8,9] #生成一个6位数字+字母的验证码
#0-9 randrange(0,10)
#a-z 65-90,97-122
#几个数字几个字母
# 方法一
# l = ['a','b'...,'z','0','1','2'...'9'] sample 取6个
# for i in range(6):
# rand_val = random.choice(l)
#方法二
# alpha = random.randint(65,90) #random.randrange(65,91)
# alpha2 = chr(alpha)
# print(alpha2)
# num = random.randint(0,9) #random.randrange(0,10)
# print(num)
# print(random.choice([alpha2,str(num)]))
l = []
for i in range(6):
alpha = chr(random.randint(65, 90)) # random.randrange(65,91)
alpha_lower = chr(random.randint(97, 122)) # random.randrange(65,91)
num = str(random.randint(0, 9))
ret = random.choice([alpha,num,alpha_lower])
l.append(ret)
print(''.join(l))

os模块:

import random
# print(random.random()) #0-1之间的小数
# print(random.uniform(10,12)) #n,m 之间的小数 #生成随机整数
# print(random.randint(1,2)) #必须是两个参数,规定一个范围 [1,2]
# print(random.randrange(100)) #一个参数
# print(random.randrange(1,2)) #两个个参数 [1,2)
# print(random.randrange(90,100,2)) #三个参数,最后一个是步长 #从一个序列中随机选择:一个 choice,多个 sample
# print(random.choice('abc'))
# print(random.sample([1,'23',[4,5]],2)) #打乱一个序列的顺序
# item=[1,3,5,7,9]
# random.shuffle(item) #改变了原列表
# print(item) #验证码
#生成一个6位数字随机验证码
#randint(100000,999999)
#randrange(100000,1000000)
# l = []
# for i in range(6):
# rand_num = random.randint(0,9)
# l.append(str(rand_num))
# print(''.join(l)) #生成一个6位数字随机验证码,不能有重复,少了好多种情况
# print(random.sample(range(0,10),6)) #[0,1,2,3,4,5,6,7,8,9] #生成一个6位数字+字母的验证码
#0-9 randrange(0,10)
#a-z 65-90,97-122
#几个数字几个字母
# 方法一
# l = ['a','b'...,'z','0','1','2'...'9'] sample 取6个
# for i in range(6):
# rand_val = random.choice(l)
#方法二
# alpha = random.randint(65,90) #random.randrange(65,91)
# alpha2 = chr(alpha)
# print(alpha2)
# num = random.randint(0,9) #random.randrange(0,10)
# print(num)
# print(random.choice([alpha2,str(num)]))
l = []
for i in range(6):
alpha = chr(random.randint(65, 90)) # random.randrange(65,91)
alpha_lower = chr(random.randint(97, 122)) # random.randrange(65,91)
num = str(random.randint(0, 9))
ret = random.choice([alpha,num,alpha_lower])
l.append(ret)
print(''.join(l))

序列化模块:

# 什么叫做序列化
# 字符串 列表 字典 元组
# 字典和列表 不能写到文件里
#{[]} ==str== str({[]})
#str({[]}) == eval('')
# s_dic = str({'k':'v'})
# print(repr(s_dic))
# print(repr(eval(s_dic)),type(eval(s_dic)))
# 序列化方法
# 格式转换
# 把python中的数据转换成str —— 序列化
# 可以str转换成python的数据 —— 反序列化 #json
#所有的语言都通用,它能序列化的数据是有限的:字典列表元组
#序列化中的内容只能包含:字典 列表 数字 字符串,如果是元组——自动转成列表的样子
import json
# ret = json.dumps({'k':(1,2,3)})
# print(repr(ret),type(ret))
# ret2 = json.loads(ret)
# print(repr(ret2),type(ret2))
# f = open('json_file','a')
# json.dump({'k':'v'},f)
# f.close()
# with open('json_file') as f:
# ret = json.load(f)
# print(ret,type(ret))
# for line in f:
# json.loads(line) # str = json.dumps(dict)
# f.write(str+'\n') #回去自己练 #pickle是py特有的
#dumps
#loads
#dump
#load
#pickle ---- 序列化任何数据类型,python专有的不能和其他语言兼容,结果是bytes
# import pickle #用pickle序列化的数据,反序列化也必须用pickle
# ret = pickle.dumps({1,2,3,4})
# print(ret) #shelve 只提供一个open,shelve.open('文件名')拿到一个文件句柄,这个文件句柄就可以当做字典操作
#正常情况下shelve打开的文件句柄感知不到值的修改,设置writeback = True就可以保存修改内容了
#正常情况下不支持多个人同时写,支持多个人同时读,如果只是读的化,就设置flag=‘r’
# import shelve
# f = shelve.open('shelve_file')
# f['key'] = {'int':10, 'float':9.5, 'string':'Sample data'} #直接对文件句柄操作,就可以存入数据
# f.close() # import shelve
# f1 = shelve.open('shelve_file')
# existing = f1['key'] #取出数据的时候也只需要直接用key获取即可,但是如果key不存在会报错
# f1.close()
# print(existing) #不支持多个人同时写,支持多个人同时读,如果只是读的化,就设置flag=‘r’
# import shelve
# f = shelve.open('shelve_file',flag='r')
# f['key'] = {'int':10, 'float':9.5, 'string':'Sample data'} #直接对文件句柄操作,就可以存入数据
# f.close() # f1 = shelve.open('shelve_file')
# print(f1['key'])
# f1['key']['new_value'] = 'this was not here before' #改
# f1.close()
#
# f = shelve.open('shelve_file',flag='r')
# print(f['key'])
# f.close() #正常情况下shelve打开的文件句柄感知不到值的修改,设置writeback = True就可以保存修改内容了
import shelve
# f2 = shelve.open('shelve_file', writeback=True)
# print(f2['key'])
# f2['key']['new_value'] = {1,2,3}
# f2.close()
# import shelve
f = shelve.open('shelve_file',flag='r')
print(f['key'])
f.close() #json :所有语言通用,能转换的数据类型有限 *****
#pickle :只限于python,能转换所有的数据类型 做游戏的时候
#shelve : 只限于python语言,能转换所有的数据类型,使用方法类似字典

异常处理:

#异常
# a #NameError 错误
# 2+'' #TypeError 错误
# 1/0 #ZeroDivisionError 错误
#iter([]).next() #AttributeError 错误
# iter([]).__next__() #StopIteration 异常
# import hahaha #ModuleNotFoundError
# [][4] #IndexError # try:
# a=1
# except NameError:
# print('NameError')
# print(123)
# try:
# num = int(input('请输入序号 : '))
# # print(num)
# # 1/0
# except ValueError as e:
# print('出错啦',e)
# except Exception as e:
# print('')
#try except语句
#需要检测异常的代码放在try代码块
#需要处理的代码放在except代码块
#不报错不执行except内的代码,except处理的错误名称应该和实际报错一致,否则无效
#如果报错try中报错之后的代码不执行
#不影响try外面的代码
#except ErrorName as 变量名:变量名中存储的就是错误的具体提示
#except支持多分支处理的方式,从上到下先找到能处理的error类型,就执行该except中的内容
#万能异常 except Exception as e,e表示错误提示,应该放在所有except之后
#对于你已经预料到的错误 应该使用指定的异常进行特殊处理
#万能异常是用来处理预料不到的异常类型的
# try:
# num = int(input('请输入序号 : '))
# except Exception as e:
# print('异常啦')
# else: #如果try中的代码不会发生异常,就走这个else中的内容
# print('没毛病') # try:
# num = int(input('请输入序号 : '))
# except Exception as e:
# print('异常啦')
# else: #如果try中的代码不会发生异常,就走这个else中的内容
# print('没毛病')
# finally:
# print('不管异常不异常我都走这个') def func():
f = open('f','w')
try:
for i in range(10):
f.write(i)
except Exception:
print(123)
return
finally: #在一个函数中 操作一个文件 需要关闭,在finally中关闭
print('before close')
f.close()
print('after close') func() #异常处理:不要在大段代码外面加 ********* def main():
func()
func() try:
main()
except Exception:
pass

day21 模块 异常处理的更多相关文章

  1. day21 03 异常处理

    day21 03 异常处理 1.什么是异常 异常:程序运行时发生错误的信号 错误:语法错误(一般是不能处理的异常) 逻辑错误(可处理的异常) 特点:程序一旦发生错误,就从错误的位置停下来,不再继续执行 ...

  2. json等序列化模块 异常处理

    今日学习内容如下: 1.序列化模块 什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给? 现 ...

  3. python学习之正则表达式,StringIO模块,异常处理,搭建测试环境

    python正则表达式 引入一个强大的匹配功能来匹配字符串 import re 正则表达式的表示类型raw string类型(原生字符串类型) r'sa\\/sad/asd'用r转为raw strin ...

  4. python笔记7 logging模块 hashlib模块 异常处理 datetime模块 shutil模块 xml模块(了解)

    logging模块 日志就是记录一些信息,方便查询或者辅助开发 记录文件,显示屏幕 低配日志, 只能写入文件或者屏幕输出 屏幕输出 import logging logging.debug('调试模式 ...

  5. drf框架的解析模块-异常处理模块-响应模块-序列化模块

    解析模块 为什么要配置解析模块 (1).drf给我们通过了多种解析数据包方式的解析类. (2).我们可以通过配置来控制前台提交的那些格式的数据台解析,那些数据不解析. (3).全局配置就是针对一个视图 ...

  6. django-rest-framework-源码解析002-序列化/请求模块/响应模块/异常处理模块/渲染模块/十大接口

    简介 当我们使用django-rest-framework框架时, 项目必定是前后端分离的, 那么前后端进行数据交互时, 常见的数据类型就是xml和json(现在主流的是json), 这里就需要我们d ...

  7. day21.模块和包

    博客整理来源:http://www.cnblogs.com/Eva-J/articles/7292109.html 模块 1.什么是模块 常见的场景:一个模块就是一个包含了python定义和声明的文件 ...

  8. Python day21模块介绍4(logging模块,configparser模块)

    1.日志等级从上往下依次降低 logging.basicConfig(#日志报错打印的基础配置 level=logging.DEBUG, filename="logger.log" ...

  9. day21 模块

    目录 模块 import 与 from...import 循环导入问题 解决方案一 解决方案二 Python文件的两种用途 从普通的面条型代码,到函数型代码,其实是在做什么? 封装代码,一个函数差不多 ...

随机推荐

  1. nginx负载均衡后端tomcat无法加载js资源

    JS或css无法完全加载 nginx的代理缓存区,默认较小导致部分文件出现加载不全的问题,比较典型的如jQuery框架,可以通过配置调整nginx的缓存区即可.主要参考proxy参数 最终完整配置如下 ...

  2. Android 代码混淆 混淆方案

    本篇文章:自己在混淆的时候整理出比较全面的混淆方法,比较实用,自己走过的坑,淌出来的路.请大家不要再走回头路,可能只要我们代码加混淆,一点不对就会导致项目运行崩溃等后果,有许多人发现没有打包运行好好地 ...

  3. Swift 学习- 06 -- 控制流

    // 控制流 // swift 提供了多种控制流结构,包括可以多次执行的 while 循环,基于特定条件选择执行不同分支的 if, guard 和 switch 语句,还有控制流程跳转到其它代码位置的 ...

  4. Modbus库开发笔记之七:Modbus其他辅助功能开发

    前面开发了各种应用,但是却一直没有提到一个问题,你就是对具体的数据进行读写操作.对于Modbus来说标准的数据有4种:线圈数据(地址:0000x).输入状态量数据(地址:1000x).保持寄存器数据( ...

  5. InstallUtil操作WindowsService

    要安装windows service 首先要找到 InstallUtil.exe,InstallUtil.exe位置在 C:\Windows\Microsoft.NET\Framework\v4.0. ...

  6. GZip使用

    class Program { static void Main(string[] args) { //Trace.Listeners.Clear(); //Trace.Listeners.Add(n ...

  7. JavaScript从入门到精通(附光盘1张):作者:明日科技出版社:清华大学出版社出版时间:2012年09月

    本书介绍 一:本书 pdf 获取信息 本书下载:请申请加入本群 (QQ群:668345923),   并联系群主. 本群主有:本书pdf 全文教材 及附带的 光盘内容 二:本书目录介绍 第1篇  基 ...

  8. Spark Streaming 实现思路与模块概述

    一.基于 Spark 做 Spark Streaming 的思路 Spark Streaming 与 Spark Core 的关系可以用下面的经典部件图来表述: 在本节,我们先探讨一下基于 Spark ...

  9. vuejs项目---配置理解:

    当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) 1 2 3 4 5 6 7 8 9 10 11 12 ...

  10. 1706: 神奇的编码(zzuli)

    题目描述 假如没有阿拉伯数字,我们要怎么表示数字呢 小明想了一个方法如下: 1 -> A 2 -> B 3 -> C .... 25 -> Y 26 -> Z 27 -& ...