随笔分类 -  Python学习笔记

摘要:# re模块 # findall # search # match import re # findall 所有满足条件的放在列表中 ret = re.findall('a', 'eva egon yuan') print(ret) ret = re.findall('[a-z]+', 'eva e 阅读全文
posted @ 2020-04-04 17:37 vivagoal
摘要:# 正则表达式 # 默认是贪婪匹配 # 量词后加?成为惰性匹配 ''' import re while 1: ph_num = input('please input ur phone number: ') if re.match('^(13|14|15|16|17|18)[0-9]{9}$', p 阅读全文
posted @ 2020-04-04 12:14 vivagoal
摘要:# 匿名函数 def calc(n): return n ** n print(calc(10)) calc = lambda n: n ** n # :前是参数,:后是返回值 print(calc(10)) plus = lambda x, y: x + y print(plus(12, 15)) 阅读全文
posted @ 2020-04-02 20:07 vivagoal
摘要:# 内置函数 # print([1, 2, 3].__len__()) # print(len([1, 2, 3])) # 迭代相关函数 #迭代器.__next__() #next(迭代器) # 迭代器 = iter(可迭代对象) # 迭代器 = 可迭代对象.__iter__ # range(10) 阅读全文
posted @ 2020-04-02 09:55 vivagoal
摘要:列表推导式和生成器表达式就[ ] ( )不同 但列表推导式占内存 生成器表达式生成生成器,不占内存,每次取才产生数据 [满足条件的i for i in 可迭代数据类型 if i的相关条件] # 列表推导式 # egg_list = [] # for i in range(10): # egg_lis 阅读全文
posted @ 2020-03-31 22:00 vivagoal
摘要:send=传值的__next__ #生成器函数进阶 def generator(): print(111) content = yield 1 print(' ', content) print(222) yield 2 g = generator() ret = g.send(None) # re 阅读全文
posted @ 2020-03-31 20:25 vivagoal
摘要:def monitor(filename): f = open(filename, encoding='utf-8') while 1: line = f.readline().strip() if line: yield line.strip() m_g = monitor('file') for 阅读全文
posted @ 2020-03-31 17:28 vivagoal
摘要:生成器 返回的是一个生成器对象(本质是一个迭代器),而不是函数的执行结果,函数的执行结果需要使用next来获取 #生成器函数 #只要有yield关键字的函数都是生成器函数 #yield不能和return共用 #返回值为生成器 #yield不结束生成器函数 def generator(): print 阅读全文
posted @ 2020-03-31 17:27 vivagoal
摘要:# 迭代器 l = [1, 2, 3] # 索引 # 循环 for print(dir([])) # 输出列表拥有的所有方法 print(dir(str)) # 双下划线的方法:双下方法,C语言代码 iter = l.__iter__() # 迭代器 item = iter.__next__() # 阅读全文
posted @ 2020-03-31 15:27 vivagoal
摘要:为多个函数加上认证功能(用户账号密码来源于文件) #编写装饰器,为多个函数加上认证功能(用户账号密码来源于文件) #要求登陆成功一次,后续的函数都无序输入用户名密码 FLAG = 0 def login(f): def inner(*args, **kwargs): global FLAG if F 阅读全文
posted @ 2020-03-30 16:20 vivagoal
摘要:完美装饰器在inner前加@wrapps 需要from functools import wrapps def wrapper(func): def inner(*args, **kwargs): print('begin') ret = func(*args, **kwargs) print('e 阅读全文
posted @ 2020-03-30 12:38 vivagoal
摘要:装饰器原理 import time # # time.sleep(2) #让程序执行到这个位置时停一会 # print('2 sec') # # print(time.time()) #从1970年至现在的秒数 # # def func(): # start = time.time() #获取当前时 阅读全文
posted @ 2020-03-29 21:14 vivagoal
摘要:# 检查传入列表火元组对象所有奇数位索引对应的元素,并将其作为新列表返回 def list_odd(li): # li1 = [] # for i in range(len(li)): # if i % 2: # li1.append(li[i]) # return li1 return li[1: 阅读全文
posted @ 2020-03-29 17:13 vivagoal
摘要:#闭包Cell:嵌套的函数,且内部函数调用外部函数的变量 def outer(): a = 1 def inner(): #inner是一个闭包 print(a) # print(inner.__closure__) return inner inn = outer() #inn变量接收outer返 阅读全文
posted @ 2020-03-28 21:06 vivagoal
摘要:def max(a,b): return a if a>b else b def the_max(a,b,c): x = max(a, b) return max(c, x) #函数的嵌套调用 res = the_max(1,2,3) print(res) def outer(): a = 1 de 阅读全文
posted @ 2020-03-28 20:45 vivagoal
摘要:max = 1 def max(*args): print(args) return min(args) print(max(1, 2, 3)) print(max) a = 1 def func(): global a a = 2 func() print(a) #如果在局部声明了global变量 阅读全文
posted @ 2020-03-28 19:42 vivagoal
摘要:''' 站在实参的角度上 位置传参 关键字传参 必须先按位置传参,再按关键字传参 不能给同一个变量传多个值 站在形参的角度上 位置参数:必须传,且有几个参数就传几个值 先定义位置参数,再定义默认参数 ''' def my_add(a, b): res = a + b return res ret = 阅读全文
posted @ 2020-03-27 22:15 vivagoal
摘要:''' 注册登录程序 注册账号写入文件 登录允许失败3次 ''' def register(usr_name, usr_psd): #定义注册函数 with open('usr_info.txt', mode='r+', encoding='utf-8') as reg_obj: for line 阅读全文
posted @ 2020-03-27 17:16 vivagoal
摘要:带b的基本不用,存储传输用,r+最常用 读 f = open('info.txt', mode='r', encoding='utf-8') #rb用于非文字文件储存传输 content = f.read() print(content) f.close() read 一次性读完(占内存) read 阅读全文
posted @ 2020-03-26 22:18 vivagoal
摘要:在python3中,内存数据为unicode编码 str类型变量为内存数据,以unicode编码 bytes类型为特殊类型,以utf-8 gbk askii gb2312等方式编码,用于存储传输 编码 s1 = 'alex' s11 = s1.encode('utf-8') #s11为bytes类型 阅读全文
posted @ 2020-03-26 17:44 vivagoal