首页
登录
搜索
登录
搜索
emer
累计撰写
197
篇文章
累计收到
496
条评论
首页
栏目
首页
登录
作者 【1】 的文章
2019-9-22
Python学习笔记之文件操作
# 文件操作 ''' w write 写入模式 文件不存在则创建文件,如果文件存在则清空文件,并将指针置于文件开头 r read 读取模式 文件不存在则报错,如果文件存在打开文件并将指针置于文件开头 a append 追加默认 文件不存在则创建文件,如果文件存在则打开文件,并将指针置于文件开头 x xor 异或默模式 文件已存在则报错,不存在则创建文件,将文件指针置于文件开头 # 扩展模式 + plus 可以让文件具有读写功能 b bytes (bytes模式)二进制字节流 # 模式一共16种 w, w+, wb, wb+ r, r+, rb, rb+ a, a+, ab, ab+ x, x+, xb, xb+ # encoding = 'utf-8' 不能写在二进制字节流模式 ''' # 写操作 # 使用write模式 对 zhangyutong.text 文件进行打开 fp = open('zhangyutong.text','w') # 在里面写一段话 fp.write('张宇童 - 前沿技术博客') # 关闭文件 fp.close() # 张宇童 - 前沿技术博客 # 使用read打开 zhangyutong.text 文件 fp = open('zhangyutong.text','r') res = fp.read() print(res) # 张宇童 - 前沿技术博客 # 使用append打开 zhangyutong.text 文件 fp = open('zhangyutong.text', 'a') fp.write('---温馨技术博客') fp.close() # 使用xor打开 zhangyutong.text 文件 # fp = open('zhangyutong2.text', 'x') # fp.write('hello') # fp.close() # 将字符串和字节流之间转换 # encode() 编码 # decode() 解码 # 打开文件操作 fp = open('zhangyutong.text','rb') res = fp.read() fp.close() print(res.decode('utf-8')) fp = open('zhangyutong.text', 'wb') fp.write('你好张宇童'.encode('utf-8')) fp.close() # utf-8一个中文汉字 占用 三个字节 # read() 读取字符的个数,里面的参数表示字符的个数 # seek() 调整指针的位置,里面的参数代表字符的个数 # tell() 返回指针的位置, fp = open('zhangyutong.text','a+') fp.seek(3) res = fp.read() r = fp.tell() fp.close() print(res) # 你好世界 # 刷新缓冲区flush触发时机 # 作用:迅速将缓冲区里面的内容写到文件内部 # 1、当文件关闭的时候自动刷新缓冲区 # 2、当整个程序运行完毕时自动刷新缓冲区 # 3、当缓冲区写满时自动刷新缓冲区 # 4、手动刷新缓冲区 # fp = open('blog.txt','a+', encoding='utf-8') # fp.write('hello ni haõ') # fp.flush() # fp.close() # with语法 会自动的close文件,as右侧 用于接受open句柄 with open('blog.txt', 'r+', encoding='utf-8') as fp: res = fp.read() print(res) # hello ni haõhello # 文件相关函数 ''' readline() 功能: 用于读取一行文件的内容 readlines() 功能: 将文件中的内容按换行读取到list里面 writelines() 功能: 将内容时字符串的可迭代数据写到文件中 参数: 内容为字符串的可迭代数据 truncate 功能: 把要截取的字符串提取出来,清空文件内容,重新写入(字节) ''' print('========><========') # 使用readline读出文件所有内容 with open('blog.txt', 'r+', encoding= 'utf-8') as fp: res = fp.readline() while res: print(res, end='') res = fp.readline() with open('blog.txt', 'r+', encoding= 'utf-8') as fp: res = fp.readline(2) print(res) # 白日 res = fp.readline(2) print(res) # 依山 res = fp.readline(2) print(res) # 尽 print('========>readlines<========') with open('blog.txt', 'r+', encoding='utf-8') as fp: res = fp.readlines() res = {i:k.strip() for i,k in enumerate(res)} print(res) print('==========>writeline<===========') with open('blog.txt', 'a+', encoding='utf-8') as fp: strvar = '春眠不觉晓' fp.writelines(strvar) listvar = ['\n唧唧复唧唧歪\n','木兰当户织'] fp.writelines(listvar) fp.writelines(map(str, range(6))) print('==========>truncate<==========') with open('blog.txt', 'r+', encoding='utf-8') as fp: fp.truncate(10)
2019年-9月-22日
58 阅读
0 评论
未分类
2019-9-22
Python学习笔记之冰冻集合
# 冰冻集合 # frozenset一旦创建就不能修改了 # 只能做交叉并补的操作,可以复制,但是不能添加,获取,修改,删除,清空 # frozenset本身是一个强转函数可以将任何容器类型的数据转换为frozenset类型 # 冰冻集合的定义 res = frozenset() print(res,type(res)) # frozenset() <class 'frozenset'> # 冰冻集合的遍历 for i in frozenset([1,2,3,4,5,6,7,8]): print(i, end='') # 12345678 # 冰冻集合的推导式 res = frozenset({i << 1 for i in range(6)}) print(res,type(res)) # frozenset({0, 2, 4, 6, 8, 10}) <class 'frozenset'> # 冰冻集合 res1 = frozenset([1,2,3,4]) res2 = frozenset([5,6,7,8,1]) res = res1.intersection(res2) print(res) # frozenset({1})
2019年-9月-22日
74 阅读
0 评论
未分类
2019-9-22
Python学习笔记之集合操作
# 集合操作(交叉并补) # intersection() 交集 setvar = {'hello','world','python'} setvar2 = {'张宇童','博客','python'} res = setvar.intersection(setvar2) print(res) # {'python'} # intersection_update() 计算交集本更新到setvar res = setvar.intersection_update(setvar2) print(setvar) # {'python'} # difference() 差集 setvar1 = {'hello','world','python'} setvar2 = {'张宇童','博客','python'} res = setvar1.difference(setvar2) print(res) # {'world', 'hello'} 是 setvar1 的差集 # difference_update() 计算差集并更新到setvar1 setvar1.difference_update(setvar2) print(setvar1) # {'world', 'hello'} # union() 并集 setvar1 = {'hello','world','python'} setvar2 = {'张宇童','博客','python'} res = setvar1.union(setvar2) print(res) # {'python', '张宇童', 'world', 'hello', '博客'} # update() 并集并更新 setvar1.update(setvar2) print(setvar1) # {'博客', '张宇童', 'world', 'python', 'hello'} # symmetric_difference() 去掉两个集合共同部分,剩下数据组成一个集合 setvar1 = {'hello','world','python'} setvar2 = {'张宇童','博客','python'} res = setvar1.symmetric_difference(setvar2) print(res) # {'张宇童', 'world', 'hello', '博客'} # symmetric_difference_update() 去掉两个集合共同部分,剩下的数据组成一个集合并更新到 setvar1.symmetric_difference_update(setvar2) print(setvar1) # {'博客', 'hello', 'world', '张宇童'} # issubset() 判断一个集合是否是另一个集合的自己 setvar1 = {'hello','world','python'} setvar2 = {'张宇童','博客','python'} res = setvar1.issubset(setvar2) print(res) # False setvar1 = {'hello','world','python'} setvar2 = {'python'} res = setvar2.issubset(setvar1) print(res) # True # issuperset() 检测一个集合是否是另一个集合的超级 setvar1 = {'hello','world','python'} setvar2 = {'python'} res = setvar1.issuperset(setvar2) print(res) # True # isdisjoint() 检测两个集合没有相交的部分 setvar1 = {'hello','world','python'} setvar2 = {'python'} res = setvar1.isdisjoint(setvar2) print(res) # False # 集合相关函数 # add() 向集合中添加元素 setvar1 = {'张宇童',' - ','前沿技术博客'} print(setvar1) # {'张宇童', ' - ', '前沿技术博客'} setvar1.add('原创技术博客') print(setvar1) # {'张宇童', ' - ', '原创技术博客', '前沿技术博客'} # pop() 随机删除一个元素 setvar1.pop() print(setvar1) # {'张宇童', '原创技术博客', ' - '} # discard() 删除一个指定的值 不存在不删除 setvar1.discard(' - ') print(setvar1) # {'张宇童', '原创技术博客'} # remove() 删除集合指定的值 不存在则报错 # clear() 清空集合 # copy() 复制集合 setvar1 = {'hello','world','python'} print(setvar1) setvar2 = setvar1.copy() setvar1.pop() print(setvar2)
2019年-9月-22日
65 阅读
0 评论
未分类
2019-9-22
Python学习笔记之元组推导式
# 元组推导式 # 元组不能修改和删除 # generator 生成器 listvar = [1,2,3,4] res = (i<<1 for i in listvar) print(res) # <generator object <genexpr> at 0x10330e250> print(type(res)) # <class 'generator'> from collections.abc import Iterator, Iterable print(isinstance(res, Iterator)) # True print(next(res)) # 2 print(next(res)) # 4 print(next(res)) # 6 print(next(res)) # 8 #Error : print(next(res)) # generator 与 for 搭配使用 # yield 有点像 return # 执行到yield这句话的时候会把这个值返回出去,会记住当前的位置 # 下次再次调用的时候会从上一次的位置向下走 # 格式 yield(3) 或 yield 3 res = (i<<1 for i in [1,2,3,4]) for i in range(2): print(next(res)) # 含有yield关键字的函数是生成器的函数 def example(): print('张宇童') yield 1 print('前沿技术博客') yield 2 # 初始化生成器函数 形成生成器对象 gen gen = example() res = next(gen) print(res) # 1 res = next(gen) print(res) # 2 # 配合for使用 generator函数 res = example() for i in range(2): next(res) # 张宇童 前沿技术博客 res = example() for i in res: print(i)
2019年-9月-22日
62 阅读
0 评论
未分类
2019-9-22
Python学习笔记之字典推导式
# 字典推导式 # enumerate(iterable, [start = 0]) ''' 参数 iterable 可迭代数据(容器类型,range,迭代器) start 可以选择索引号 (默认从0开始) 返回值: 迭代器 ''' listvar = ['a','b','c'] res = enumerate(listvar) print(res) # <enumerate object at 0x103313280> from collections.abc import Iterable, Iterator print(isinstance(res, Iterator)) # True print(list(res)) # [(0, 'a'), (1, 'b'), (2, 'c')] res = {a:b for a,b in enumerate(listvar)} print(res) # {0: 'a', 1: 'b', 2: 'c'} # zip # 可以将多个具有iterable的数据拼接成元组 放到list中里 # example from collections.abc import Iterable,Iterator list1 = ['name','age','sex'] list2 = ['张宇童','18','保密'] res = zip(list1,list2) print(isinstance(res, Iterable)) # True print(isinstance(res, Iterator)) # True print(list(res)) # [('name', '张宇童'), ('age', '18'), ('sex', '保密')] print(dict(res)) # {'name': '张宇童', 'age': '18', 'sex': '保密'} res = {a:b for a,b in zip(list1,list2)} print(res) # {'name': '张宇童', 'age': '18', 'sex': '保密'} # example 2 dictvar = {'zyt': '张宇童', 'content': '博客内容'} dictvar2 = {0: '前沿技术博客', 1: '都是原创'} res1 = dictvar.values() res2 = dictvar2.values() res = zip(res1,res2) print(dict(res)) # {'张宇童': '前沿技术博客', '博客内容': '都是原创'} # example 3 list1 = [1,2,3,4,5,6,7,8,9] # print((list1.index(3)+1)) res = [(i,list1[list1.index(i)]) for i in list1 if list1.index(i) % 2 == 0] print(res)
2019年-9月-22日
56 阅读
0 评论
未分类
2019-9-21
Python学习笔记之集合推导式
# 集合推导式 listvar = [ {'name': '张三', 'age': 18}, {'name': '李四', 'age': 21} ] setvar = { '尊贵白金博客卡老'+i['name'][0] if 17 < i['age'] < 20 else '一边玩去卡老'+i['name'][0] for i in listvar } print(setvar) # {'一边玩去卡老李', '尊贵白金博客卡老张'}
2019年-9月-21日
90 阅读
0 评论
未分类
2019-9-21
Python学习笔记之推导式
# 推导式 # 通过一行循环判断遍历出一些列数据的方式就是推导式 # 列表推导式 里面一行数据循环判断 外面是[] listvar = [1,2,3,4,5] # 在遍历时如果需要的值就放到左侧 i 为例 res = [i << 1 for i in listvar] print(res) # [2, 4, 6, 8, 10] # 带有判断条件的列表推导式 # for 循环接的判断条件只能是if listvar = [1,2,3,4,5,6] # 取所有奇数 res = [i for i in listvar if i % 2 == 1] print(res) # [1, 3, 5] # 多循环推导式 listvar = ['小白','小黑','小嗨','小蓝','小黄'] listvar2 = ['小红', '小花', '小天', '小绿', '小金'] res = [i+ '和' + x + '玩' for i in listvar for x in listvar2] print(res) # ['小白和小红玩', '小白和小花玩', '小白和小...] res = [i + '和' + listvar2[listvar.index(i)] for i in listvar] print(res) # ['小白和小红', '小黑和小花', '小嗨和小天', '小蓝和小绿', '小黄和小金'] res = [i + '和' + x + '出去玩' for i in listvar for x in listvar2 if listvar.index(i) == listvar2.index(x)] print(res) # ['小白和小红出去玩', '小黑和小花出去玩', '小嗨和小天出去玩', '小蓝和小绿出去玩', '小黄和小金出去玩']
2019年-9月-21日
57 阅读
0 评论
未分类
2019-9-21
Python学习笔记之字典的相关函数
# 字典相关函数 # clear 清空字典 dictvar = {'a': 1, 'b': 2} print(dictvar) # {'a': 1, 'b': 2} dictvar.clear() print(dictvar) # {} # copy 复制字典 dictvar = {'a': 1, 'b': [1,2,3,4,5]} print(dictvar) # {'a': 1, 'b': [1, 2, 3, 4, 5]} dictvar2 = dictvar dictvar['b'].append(3) print(dictvar2) # {'a': 1, 'b': [1, 2, 3, 4, 5, 3]} import copy dictvar3 = copy.deepcopy(dictvar2) print(dictvar3) # {'a': 1, 'b': [1, 2, 3, 4, 5, 3]} dictvar2['hello'] = 'world' print(dictvar3) # {'a': 1, 'b': [1, 2, 3, 4, 5, 3]} # fromkeys() 使用指定的序列和值创建字典 listvar = ['a','b','c'] res = {}.fromkeys(listvar, 'moodgood') print(res) # {'a': 'moodgood', 'b': 'moodgood', 'c': 'moodgood'} # keys() print(res.keys()) # dict_keys(['a', 'b', 'c']) # values() print(res.values()) # dict_values(['moodgood', 'moodgood', 'moodgood']) # items() print(res.items()) # dict_items([('a', 'moodgood'), ('b', 'moodgood'), ('c', 'moodgood')]) # popitem() 随机在字典里面删除一个键值对 并返回被删除的键值 当字典为空时执行会Error resvalue = res.popitem() print(resvalue) # ('c', 'moodgood') print(res) # {'a': 'moodgood', 'b': 'moodgood'} # get() 通过键获取字典的值 如果键不存在将会返回一个None dictvar = {'a': 'hello', 'b': 'world', 'c': '张宇童博客'} print(dictvar) # {'a': 'hello', 'b': 'world', 'c': '张宇童博客'} res = dictvar.get('as') print(res) # None # update() 用于批量更新数据,和添加数据 dictvar = {'a': 'hello', 'b': 'good', 'c': 'morning'} print(dictvar) dictvar.update({'a': 'nihao','b':'zaoshang','c': 'hao'}) print(dictvar) dictvar.update(a = 'ha lo', b = 'hao', c = 'zaoshang', d = 'surplus') print(dictvar)
2019年-9月-21日
55 阅读
0 评论
未分类
2019-9-21
Python学习笔记之列表操作
# 列表的相关函数 ''' list.append() 功能: 在列表的末尾添加一个元素 格式: 列表.append(值) 返回值: None 注意: 直接操作原有列表没有返回值 ''' ''' list.insert(索引,值) 功能: 在指定索引之前插入数据 格式: 列表.insert(值) 返回值: None 注意: 直接操作原有列表没有返回值 ''' listvar = [1,2,3,4,5,6] listvar.insert(1,'hello') print(listvar) # [1, 'hello', 2, 3, 4, 5, 6] ''' list.extend() 功能: 将一个列表继承给另一个列表 格式: list.extend(序列) 返回值: None 注意: 直接操作原有列表没有返回值 ''' list2 = [11,22,33] list2.extend(listvar) print(list2) # [11, 22, 33, 1, 'hello', 2, 3, 4, 5, 6] ''' list.pop() 功能:通过索引弹出一个元素 格式:list.pop(索引) 返回值:被删除的值 注意:直接操作原有列表 返回值是被删除的值 ''' res = list2.pop() print(list2) # [11, 22, 33, 1, 'hello', 2, 3, 4, 5] list2.pop(3) print(list2) # [11, 22, 33, 'hello', 2, 3, 4, 5] ''' list.remove() 功能: 通过给予的值来删除,如果多个相同元素,默认删除第一个 格式: list.remove(值) 返回值: 无 注意: 如果有索引的话推荐使用pop,pop效率比remove高,但remove可以删除无序容器的值 ''' setvar = {1,2,3,3,2,1,'hello','world'} print(setvar) # {1, 2, 3, 'hello', 'world'} setvar.remove('hello') print(setvar) # {1, 2, 3, 'world'} # 深拷贝 和 浅拷贝 # example 浅拷贝 listvar = [1,2,3,4,5,6] listvar2 = listvar listvar.append(7) print(listvar2) # [1, 2, 3, 4, 5, 6, 7] # 使用copy # copy 拷贝顶级中的list import copy # copy.copy() listvar = [1,2,3,4,5] listvar2 = listvar.copy() listvar.append(6) print(listvar2) # [1, 2, 3, 4, 5] listvar = [1,2,3,[4,5,6]] listvar2 = copy.copy(listvar) listvar.append(3) print(listvar2) # 深拷贝 import copy listvar = [1,2,3,4,5,[6,7,8]] listvar2 = copy.deepcopy(listvar) listvar[-1].append(8) print(listvar2)
2019年-9月-21日
61 阅读
0 评论
未分类
2019-9-21
Python学习笔记之列表的相关操作
# 列表的相关操作 # 1 example 合并操作 list1 = [1,2,3] list2 = [4,5,6] res = list1 + list2 print(res) # [1, 2, 3, 4, 5, 6] # 2 example 重复操作 list1 = [1,2,3] res = list1*2 print(res) # [1, 2, 3, 1, 2, 3] # 3 example 列表的索引 list1 = ['张宇童', ' - ', '前沿技术博客'] print(list1[0]) # 张宇童 print(list1[-1]) # 前沿技术博客 # 4 example 列表的修改 list1 = ['hello','world'] print(list1) # ['hello', 'world'] list1[0] = 'ha lo' print(list1) # ['ha lo', 'world'] # 5 example 字符串的切片 # list[start, end, step] list1 = ['0', '1', '2', '3', '4', '5', '6'] print(list1[2:5]) # ['2', '3', '4'] print(list1[::2]) # ['0', '2', '4', '6'] # 6 example 列表的删除 del list1[0] print(list1) # ['1', '2', '3', '4', '5', '6'] del list1[::3] print(list1) # ['2', '3', '5', '6']
2019年-9月-21日
76 阅读
0 评论
未分类
8
9
10
11
12