python入门
小儿小儿朗
这个作者很懒,什么都没留下…
展开
-
python之二分法
函数二分法面向过程编程思想匿名函数原理应用迭代的内容 比较的值模块什么是模块为何要用模块如何用模块foo二分法算法:高效解决问题的办法需求:有一个从小到大顺序排列的数字列表,需要从该数字列表中要找我们想要的那个数字,如何更高效nums = [-3,4,7,10,13,21,43,77,89]find_num = 13#方案一:整体遍历效率太低for num in nums: if num == find_num: print('find it') break#方案二:原创 2021-04-25 15:25:59 · 589 阅读 · 1 评论 -
python之叠加装饰器
叠加装饰器叠加多个装饰器加载顺序运行分析生成器的高级玩法yield挂起函数生成式列表生成式字典生成式集合生成式生成器表达式函数的递归调用叠加多个装饰器加载顺序一、叠加多个装饰器的加载(了解)加载顺序自下而上#@deco1 #index = deco1(deco2.wrapper的内存地址)#@deco2 #deco2.wrapper的内存地址=deco2(deco3.wrapper的内存地址)#@deco3 #deco3.wrapper的内存地址=deco3(index)def deco1原创 2021-04-22 23:00:35 · 303 阅读 · 0 评论 -
python之有参装饰器
装饰器装饰器补充有参装饰器迭代器生成器装饰器补充#偷梁换柱:即将原函数名指向的内存地址偷梁换柱成了wrapper函数,所以应该将wrapper做的跟原函数一样才行from functools import wrapsdef outer(func): @wraps(func) def wrapper(*args,**kwargs): res = func(*args,**kwargs) #res=index(1,2) return res #将原函数的属性赋值给wrapper函数 #函原创 2021-04-18 15:12:01 · 256 阅读 · 1 评论 -
python之无参装饰器
在讲装饰器之前,要知道以下知识点一、储备知识点1.*args,**kwargsdef index(x,y): print(x,y)def wrapper(*args,**kwargs): index(*args,**kwargs) #index(y = 222,x = 111)wrapper(y = 222, x = 111)2.名称空间与作用域:名称空间的‘嵌套’关系是在函数定义阶段,即检测语法的时候确定的。3.函数对象可以把函数当做参数传入可以把行数当做返回值返回def in原创 2021-03-28 17:36:28 · 1235 阅读 · 2 评论 -
python之闭包函数
一、大前提闭包函数 = 名称空间与作用域+函数嵌套+函数对象核心点:名字的查找关系是以函数定义阶段为准二、什么是闭包函数‘闭’函数指的是该函数是内嵌函数‘包’函数指的是该函数包含对外层作用域名称的引用(不是对全局作用域)闭包函数之名称空间与作用域的应用+函数嵌套def f1(): def f2(): pass #闭包函数之名称空间与作用域的应用+函数嵌套def f1(): x = 3333 def f2(): print(x) f2()x = 111def bar(原创 2021-03-28 15:58:27 · 162 阅读 · 1 评论 -
python之函数嵌套
函数嵌套1.函数的嵌套调用:在调用一个函数的过程中又调用其他函数。def max2(x,y): if x > y: return x else: return ydef max4(a,b,c,d): #第一步:比较a和b得到res1 res1 = max2(a,b) #第二步:比较res1,c得到res2 res2 = max(res1,c) #第三步:比较res2,d得到res3 res3 = max2(res2,d) return res3res = max4原创 2021-03-28 15:23:57 · 294 阅读 · 0 评论 -
python之函数对象
函数1.函数对象函数对象的实质1.1赋值1.2 传参数1.3返回值1.3容器类型1.3.1应用1.函数对象函数对象的实质函数对象的实质在于,可以把函数当成变量去用func = 内存地址def func(): print('from func')1.1赋值函数对象可以赋值def func(): print('from func')f = funcprint(f,func)f()1.2 传参数可以把函数当做参数传给另外一个函数def func(): print('from原创 2021-03-24 22:16:23 · 920 阅读 · 1 评论 -
python之名称空间
一、名称空间namespaces:存放名字的空间,是对栈区的划分,有了名称之后,就可以在栈区中存放相同的名字,详细的,名称空间分为三种。1.1 内置名称空间存放的名字:存放的是python解释器内内置的名字存活周期:python解释器启动则产生。python解释器关闭则销毁。'''>>> print<built-in function print>'''1.2 全局名称空间存放的名字:只要不是函数内定义,也不是内置的,剩下的都是全局孔家名称。存活周期:py原创 2021-03-17 19:32:58 · 392 阅读 · 1 评论 -
python之函数参数的使用
函数参数的使用一、形参与实参介绍1.形参:在定义函数阶段定义的参数称之为形式参数。简称形参,相当于变量名def func(x,y): print(x,y)2.实参:在调用函数阶段传入的值称之为实际参数,简称实参,相当于变量。func(1,2)形参与实参的关系:①在调用阶段,实参(变量值)会绑定给形参(变量名)②这种绑定关系只能在函数体内使用③实参与形参的绑定关系在函数调用时生效,函数调用结束后解除绑定关系实参是传入的值,值可以是??形式形式一:func(1,2)形式二:原创 2021-03-14 09:15:59 · 312 阅读 · 1 评论 -
python之函数的基本使用
‘’’1.什么是函数?函数就相当于具备某一功能的工具函数的使用必须遵循一个原则:先定义后调用2.为何要用函数:组织结构不清晰,可读性差;代码冗余;可维护性、扩展性差3.如何用函数先定义:三种定义方式后调用:三种调用方式返回值:三种返回值的形式‘’’1.先定义定义的语法def 函数名(参数1,参数2,...): '''文档描述''' 函数体 return 值形式一:无参函数def func(): #x #print( print('哈哈哈哈哈') print('原创 2021-03-12 10:26:30 · 205 阅读 · 0 评论 -
python之文件修改的两种方式
c.txt的内容alex is sbsb is alexegon is hahahahh方式一:文本编辑器采用的方式优点:省硬盘空间with open('c.txt',modse='rt',encoding='utf-8') as f: res = f.read() data = res.replace('alex','dsb') print(date)with open ('c.txt',mode='wt',encoding= 'utf-8') as f1: f1.write(da原创 2021-03-12 09:04:32 · 135 阅读 · 0 评论 -
python之seek的使用
import timewith open ('access.log',mode='rb') as f:#1将指针跳到文件末尾#f.read() #错误做法 f.seek(0,2) while True: line = f.readline() if len(line) == 0: time.sleep(0.3) else: print(line.decode('utf-8')下面往acess.log里面输入日志,上面可以动态监测到日志的一个变化with open('a原创 2021-03-12 08:53:42 · 316 阅读 · 0 评论 -
python之文件操作2
1.x模式(控制文件操作的模式)–>了解x模式,只写模式[不可读;不存在则创建,存在则报错]with open(r'c.txt',mode='x',encoding='utf-8') as f: f.read() #报错with open(r'x.txt',mode='x',encoding='utf-8') as f: f.write('哈哈哈哈哈哈') #指针将在头部with open (r'd.txt',mode = 'x',encoding='utf-8') as f: f.原创 2021-03-11 13:43:06 · 89 阅读 · 0 评论 -
python之文件操作模式详解
以t模式为基础进行内存操作r(默认的操作模式):只读模式,当文件不存在时报错,当文件存在时文件指针跳到最开始位置with open ('ccc.txt',mode='rt',encoding='utf-8') as f: print('第一次读'.center(50,'*')) res = f.read() #把所有内容从硬盘读入内存 print(res)with open ('ccc.txt',mode='rt',encoding='utf-8') as f: print('第二次读'.c原创 2021-03-08 22:32:56 · 532 阅读 · 2 评论 -
python之指定字符编码
控制文本读写内容的模式t文本b二进制 / bytes控制文件读写操作的模式r只读模式w只写模式a只追加写模式+:r + w + a +#没有指定encoding参数操作系统会使用自己默认的编码#linux系统默认utf-8#windows系统默认为gbkwith open('ccc.txt',mode='rt',**encoding='utf-8'**) as f: res = f.read() #t模式会将f.read()独处的结果解码成unicode print(res,typ原创 2021-03-08 21:53:39 · 470 阅读 · 1 评论 -
python之with上下文管理
#文件对象又称为文件句柄with open(‘a.txt’,mode = ‘rt’) as f1,open(‘b.txt’,mode=‘rt’) as f2:res1 = f1.read()res2 = f2.read()print(res1)print(res2)f1.close()f2.close()原创 2021-03-08 21:46:16 · 69 阅读 · 0 评论 -
python之文件操作流程
1.打开文件open()注:windows路径分隔符问题open('C:\a\b\d.txt')解决方案一:(推荐)open(r'C:\a\b\d.txt')解决方案二:open('C:/a/b/d.txt')f = open(r'C:\a\b\d.txt,mode = 'rt')print(f)#f的值是一种变量,占用的是应用程序的内存空间2.操作文件:读/写,应用程序对文件的读写请求都是在向操作系统发送系统调用,然后由操作系统控制硬盘把数据读入内存或者写入硬盘res = f.原创 2021-03-08 21:40:47 · 135 阅读 · 1 评论 -
文件与文件模式介绍
1.什么是文件?文件是操作系统提供给用户/应用程序操作硬盘的一个虚拟的接口/功能。用户/应用程序操作系统(文件)计算机硬件(硬盘)2.为何要用文件?①用户/应用程序可以通过文件将数据永久保存到硬盘中。即操作文件就是操作硬盘。②用户/应用程序直接操作的是文件,对文件进行所有的操作,都是在向操作系统发送调用,然后在由操作将其转换成具体的硬盘操作。3.如何用文件: open()①控制文本读写内容的模式:r和b强调:t和b不能单独使用,必须跟r/w/a连用t文本(默认模式)(1)读写的都是以原创 2021-03-08 21:30:52 · 239 阅读 · 0 评论 -
python之列表、元组
一、列表1.作用 按位置存放多个值2.定义l = [1,1.2,'aaa']print(type(l))3.类型转换 但凡能够被for循环遍历的类型都可以当做参数传给list()转成列表res = list('hello')print(res)l = []for x in 'hello': l.append(x)print(l)res = list({'k1':111,'k2':222,'k3':333})print(res)3.内置方法优先掌握的操作3.1 按索引取原创 2021-03-03 21:24:46 · 149 阅读 · 2 评论 -
python之数字类型、字符串类型
一、 数字类型1.int类型作用:定义:age = 10 # age = int(10)类型转换:2.1 纯数字的字符串转成intres = int('100011')print(res,type(res))2.2(了解)2.2.1 十进制转换成其他进制10进制—> 二进制print(bin(11))10进制–>八进制print(oct(11))10进制–>十六进制print(hex(11))2.2.2其他进制转成十进制二进制–>十进制原创 2021-03-03 12:14:20 · 171 阅读 · 0 评论 -
python之for循环
1.什么是for循环?循环就是重复某件事,for循环是python提供的第二种循环机制2.为什么要有for循环?理论上for循环能做的事情,while循环都可以做之所以要有for循环,是因为for循环在循环取值(遍历)上比while循环更简洁3.如何用for循环?语法:for 变量名 in 可迭代对象: #可迭代对象可以是:列表,字典,字符串,元组,集合 代码1 代码2 代码3一、基本使用之循环取值案例 1:列表循环取值简单版:for x in ['alex_dsb','lxx原创 2021-03-03 12:14:05 · 14058 阅读 · 0 评论 -
python之流程控制while循环
1.循环的语法与基本使用语法1:while 条件: 代码1 代码2 代码3print(3)count = 0while count < 5 : print(count) count+=12.死循环与效率问题方式一:count = 0while count <5: print(count) 方式二:while True: name = input('your name>>>>>') print(name)方式三:whi原创 2021-03-03 12:13:51 · 169 阅读 · 0 评论 -
python之深浅拷贝
list1 = ['egon','lxx',[1,2]]#二者分隔不开,liist1改list2也跟着改,因为指向的就是同一个内存地址list2 = list1 # 这不叫拷贝list1[0] ='EGON'print(list2)需求:1.拷贝一下原列表产生一个新的列表2.想让两个列表完全独立开,针对改操作的独立而不是读操作3.如何拷贝列表3.1 浅拷贝 是把列表第一层的内存地址不加区分玩玩拷贝一份给新列表实验一:list1 = ['egon','lxx',[1,2]]lis原创 2021-03-02 19:27:58 · 99 阅读 · 0 评论 -
python之流程控制if判断
语法1:if 条件:代码1代码2代码3age = 18is_beautiful = Truestar = '水瓶座'if age > 16 and age < 20 and is_beautiful and star == '水瓶座': print('我喜欢你,我们在一起吧')print('byebye~')语法2:if 条件:代码1代码2代码3else:代码1代码2代码3age = 60is_beautiful = Truestar = '水瓶座原创 2021-03-02 17:14:51 · 125 阅读 · 0 评论 -
python之运算符
1、逻辑运算符1.1 and or not的基本使用not 就是把紧跟其后的那个条件结果取反ps:not与紧跟 其后的那个条件是一个不可分割的整体print(not 16 > 33)print( not True)print( not False)print( not 0)print( not '')print(not None)and:逻辑与,and用来连接左右两个条件,两个条件同时为真,最后结果才为真。条件 1 and 条件2print( True and 10 >原创 2021-03-02 16:34:33 · 112 阅读 · 1 评论 -
python之可变不可变类型
1.可变与不可变类型可变类型:值改变,id不变,证明改的是原值,证明原值是可以被改变的。不可变类型:值改变了,id也跟着改变,证明是产生了新的值,压根没有改变原值,证明原值是不可以被修改的。2.验证2.1 int是不可变类型x = 10print(id(x))x = 11 # 产生新值print(id(x))2.2 float是不可变类型x = 3.3print(id(x))x = 3.1 # 产生新值print(id(x))2.3 str是不可变类型x = ‘原创 2021-03-02 16:03:13 · 133 阅读 · 0 评论 -
python之基本运算符
1、算术运算符print(10+3)print(10/3) # 结果带小数print(10//3) # 只保留整数部分print(10%3) # 取模、取余数print(10**3) # 几次方2.赋值运算符2.1 = 变量的赋值2.2 增量赋值:age = 18age += 1age -=1age *=1prinnt(age)2.3 链式赋值x = 10y = xz = yy = z = x = 10 # 链式赋值print(x,y,z)print(id(x),原创 2021-03-02 15:48:17 · 77 阅读 · 0 评论 -
python之与用户交互
接收用户的输入在python3中,input会将用户输入的所有内容都存成字符串类型。username = input('请输入您的账号:')print(username,type(username))age = input('请输入你的年龄:') # age = '18'print(age,type(age))age = int(age) # int智能将存数字的字符串转成整形print(age > 16)在python2中:raw_input():用法与python3中的i.原创 2021-03-02 15:28:16 · 164 阅读 · 0 评论 -
python之基本数据类型
1、数字类型整形 int1.1 作用 :记录年龄、身份证号、个数等1.2 定义:age = 18print(type(age))浮点型 float1.3 作用:记录薪资、身高、体重1.4 定义:salary = 3.3height = 1.87weight = 70.3print(type(salary))print(type(height))print(type(weight))1.5 数字类型的其他使用level = 1level = level+1print(l原创 2021-03-02 13:44:11 · 98 阅读 · 0 评论 -
python之变量
1、什么是变量变量就是可以变化的量,量指的是事物的状态,比如人的年龄、性别,游戏角色的等级、金钱等。2、为什么要有变量?为了让计算机能够像人一样去记忆事物的某种状态,并且状态时可以发生变化的。详细的说就是:程序执行的本质就是一系列状态的变化,变是程序执行的直接提现,所以我们需要一种机制。3、如何使用变量?3.1变量基本使用3.1.1 原则:先定义,后引用①name = ‘egon’ # 定义 print(name) # 引用②age = 18 print(age)原创 2021-03-02 13:09:16 · 151 阅读 · 0 评论