
python基础
文章平均质量分 86
记录python学习的基础知识点
杨鸿儒
做自己喜欢的事。
展开
-
32.lambda与map、filter、reduce
1.lambdalambda 是匿名函数,比普通函数更方便,适合配合其他内置函数使用,调用方式与函数无异定义:lambda 参数:函数体代码 eg:求两个数的和(lambda x,y:x+y)(1,2) #结果为32.mapmap(func,iterable) #映射,对一个可迭代对象的元素进行操作,map会将iterable的每一个元素传入func,结果是一个生成器,可以使用list()将其所有值序列化eg:lst = [1,2,3,4,5]#将lst的所有元原创 2020-06-15 21:23:08 · 424 阅读 · 1 评论 -
31.三元表达式和生成式
三元表达式条件成立的返回值 if 条件 else 条件不成立的返回值使用三元表达式可以将代码简化def func(x,y): if x > y: return x else: return y使用三元表达式: x if x > y else y生成式1.列表生成式[i for i in iterable 条件]eg:生成一个包含1-10的列表:lst = [i for i in range(1,11)]生成一个包含1-10中奇数的列表: lst = [i原创 2020-06-15 21:22:57 · 194 阅读 · 0 评论 -
30.Python三大器(3)----生成器
1.初识生成器生成器就是自定义的迭代器生成器的定义:def func(): print(1) yield 1 print(2) #yield的返回值相当于__next__()获得的值 yield 2 print(3) yield 3ret = func()print(ret) 结果是:<generator object func at 0x0000023293B52C50> 生成器对象print(ret.__iter__) 结果是:<method-原创 2020-06-10 20:15:18 · 266 阅读 · 0 评论 -
29.Python三大器(2)----迭代器
一.初识迭代器1.认识迭代迭代是一个重复的过程,每次重复都是基于上次的结果,单纯的重复不叫迭代单纯的重复:while 1: print(1)迭代:count = 1while count <= 5: print(count) count += 1 2.可迭代对象与迭代器对象1.可迭代对象可迭代对象:拥有__iter__方法的对象称为可迭代对象可迭代对象调用__iter__会返回一个迭代器对象2.迭代器对象迭代器对象:拥有__iter__和__next__方法的对象原创 2020-06-10 20:15:12 · 200 阅读 · 0 评论 -
28.Python三大器(1)----装饰器
1.初识装饰器装饰器:具有特定功能的一个函数或类(类装饰器以后会讲),大多数情况下是一个函数,装饰器是闭包的一种应用。作用:不改变原来函数的代码和调用方式,额外增加新的功能软件开发有一个开放封闭原则:开放:对于拓展功能是开放的封闭:对于修改源代码是封闭的装饰器将这个原则体现的淋漓尽致。2.装饰器的使用1.装饰器的模板:def outer(func): def inner(*args,**kwargs): ...... 函数执行前的操作 ret = func() ...原创 2020-06-10 20:15:01 · 220 阅读 · 0 评论 -
27.函数(6)----闭包
1.初识闭包闭包全称是闭包函数,由外函数和内函数构成闭:指该函数存在内嵌函数,返回值是内嵌函数;包:外函数将内函数包起来形成一个’包’,内函数这个’包’引用外函数的名称闭和包缺一都不能叫闭包函数。ps: 内嵌函数.__ closure __如果有值,则他和外部函数组成闭包,如果为None,则不是闭包闭包函数的基本写法:def outer(): x 外部变量x def inner(): 引用外部变量x xxxx return inner示例代码1:def func():原创 2020-06-07 21:33:37 · 229 阅读 · 0 评论 -
26.函数(5)----函数对象
Python中一切皆为对象,对于函数对象,只需记住:可以当做变量来使用1.赋值def func(): print(1)a = funca() 结果是:12.做函数参数def func(a): print(a)def foo(): print(1)b = func(foo)b() 结果是:<function foo at 0x0000020040A1F1E0> 函数对象3.做函数返回值def func1(): return fun原创 2020-06-07 21:32:44 · 183 阅读 · 0 评论 -
25.函数(4)----名称空间与作用域
一.名称空间1.认识名称空间我们都知道,变量在内存中存储的方式如下:所有的名称(变量名、函数名等)都放在栈区,那么就会存在一个问题,就是名称重复,假设有一个名为a的函数,同时也存在一个名为a的变量,这样的话肯定有一个失效,被另一个覆盖。为了解决这个问题,python将栈区空间划分为3部分,即内置名称空间、全局名称空间、局部名称空间。如下图:所以名称空间就是存放名字的地方的代称,不是真是存在的东西,只是对栈区的一个划分。2.三种名称空间详解1.内置名称空间内置名称空间: 存放python解释原创 2020-06-07 21:33:24 · 314 阅读 · 0 评论 -
24.函数(3)----参数
详解函数参数原创 2020-05-30 18:52:59 · 686 阅读 · 0 评论 -
23.函数(2)----返回值
详解函数返回值原创 2020-05-30 18:52:49 · 465 阅读 · 0 评论 -
22.函数(1)----初识函数
初识函数参数原创 2020-05-30 18:50:22 · 317 阅读 · 0 评论 -
21.文件操作(5)----常用案例
1.拷贝文件src_file = input("请输入原文件路径:")new_file = input("请输入新文件路径:")with open(r"{}".format(src_file),mode="rb") as f1,\ open(r"{}".format(new_file),mode="wb") as f2: while True: ret = f1.read(1024) #一次读取1024字节,防止内存溢出 if not ret原创 2020-05-24 14:33:12 · 267 阅读 · 0 评论 -
20.文件操作(4)----文件指针相关
文件指针的移动基本上都是以bytes为单位,但是t模式下的read()是以字符为单位一.模式名称作用0以文件开头为参照,t和b模式均适用1以当前文件指针位置为参照,b模式适用2以文件末尾为参照,b模式适用,移动单位应为负数二.常用方法方法作用f.seek(距离,模式)操纵文件指针移动f.tell()获取文件指针的位置三.示例代码现有一个a.txt文件,内容如下:1.以t模式打开文件,将指针移动到5后边with op原创 2020-05-24 14:33:33 · 200 阅读 · 0 评论 -
19.文件操作(3)----操作文件
一.模式模式作用r只读模式,文件不存在则报错,文件存在时打开文件指针位于开始位置w只写模式,文件不存在创建空的新文件,文件存在清空文件指针位于开始位置a只追加写模式,文件不存在创建空的新文件,文件存在时指纹跳到末尾r+可读可写,性质与r类型,但可以写w+可读可写,性质与w类似,但可以读a+可读可写,性质与a类型,但可以读x只读模式,文件存在会报错,文件不存在会创建1.r模式r模式:只读模式,文件不存在则报错,文件存在时指针跳到开原创 2020-05-24 14:32:56 · 652 阅读 · 0 评论 -
18.文件操作(2)----打开文件和关闭文件
1.打开文件1.open()open()常用参数:参数名称意义file位置参数,要打开文件的路径mode关键字参数,打开文件的模式encoding关键字参数,编码格式参数详解:1.filefile代表我们要打开的文件,可以使用绝对路径或相对路径(1)当我们要打开的文件与程序不在同一个级文件夹下,则使用绝对路径:在test.py文件中打开a\a.txt,代码如下(伪代码):open(r"D:\a\a.txt")或open("D:/a/a.txt原创 2020-05-24 14:32:39 · 931 阅读 · 0 评论 -
17.文件操作(1)----初识文件操作
1.啥是文件操作?像字面意思说的,就是对文件的操作。比如说我们打开一个文件,瞅一眼,然后关闭,这就是对文件进行了读操作;或者我们打开一个文件,向文件中写了点东西,然后再关闭,这就是对文件的写操作。为啥要有文件操作?我们写的程序有时候要用到文件中的数据,或者有时候要向文件中写数据,总不能每次都自己手动的去写吧,我们可以写程序让计算机帮助我们去完成。2.文件操作的三个步骤1.打开文件2.操作文件3.关闭文件3.初识文件操作先看一段代码,来感受一下:file = r"D:\a\a.txt"f原创 2020-05-24 14:32:09 · 334 阅读 · 0 评论 -
16.深浅拷贝
1.浅拷贝现在有一个列表[1,2,[111,222]],我们需要将它拷贝一份,很简单,只需copy()lst1 = [1,2,[111,222]]lst2 = lst1.copy()print(lst1,lst2)我们发现,这两个列表的值一模一样:但他内部的原理是什么呢,我们要从内存地址分析print(id(lst1))print(id(lst2))运行结果如下:我们发现两个lst的内存地址不同,但值却相同,是不是值也是新开辟了一份呢?用代码来检验一下:print(id(lst原创 2020-05-13 22:13:23 · 245 阅读 · 0 评论 -
15.常用运算
1.算术运算算术运算的结果是数值1.运算符运算符作用+加-减*乘/除//整除%取余**幂2.代码示例print(1 + 2) 结果为:3print(4 - 3) 结果为:1print(5 * 6) 结果为:30print(8 / 4) 结果为:2print(17 // 5) 结果为:3print(19 % 6)原创 2020-05-12 20:24:56 · 475 阅读 · 0 评论 -
14.流程控制(3)----for循环
1.初识for循环理论上for循环能做的事,while循环也能做,但是for循环在取值上更加简洁基本语法:for 变量 in 可迭代对象: ...每次循环时,将可迭代对象的元素赋值给变量ps:for循环的循环次数取决于可迭代对象元素的个数,也叫取值循环2.for循环基本使用1.简单for循环需求:将列表[1,2,3]中的每一个元素打印出来使用for循环: lst = [1,2,3] for i in lst: print(i)使用while循环: lst = [1,2,原创 2020-05-12 19:12:23 · 227 阅读 · 0 评论 -
13.流程控制(2)----while循环
1.介绍循环循环:重复做一件事。我们在程序中要想重复做一件事时,总不能将相同的代码复制多份,利用循环可以巧妙的解决这个问题。2.while循环的基本使用基本语法:代码块1while 条件: 代码块2代码块3拿上述伪伪代码来说,代码块1执行完后到了while循环,判断条件是否成立,如果成立执行代码块2,然后继续判断条件是否成立,如果成立的话,再执行代码块2,然后判断条件是否成立,以此类推。当条件不成立时就会退出循环,执行代码块3。流程图:3.死循环死循环:顾名思义,循环陷入死原创 2020-05-12 19:12:14 · 414 阅读 · 0 评论 -
12.流程控制(1)----if条件判断
1.初识if判断判断是一种能力,比如生活中天冷了就多穿衣服,下雨了就带雨伞等等让程序拥有我们的判断能力,如果程序…就执行…,这就用到了if判断。基本语法:if 条件: 代码块1如果条件成立,就执行代码块1,否则不执行2.if判断基本使用注意事项:1.出现了if和else,必然走一个2.if可以嵌套,但最好不要超过3层1.if else需求:用户输入一个数,如果大于5打印’太大了’,否则打印’太小了’user_input = int(input("请输入(必须为数字):"))i原创 2020-05-12 19:11:42 · 380 阅读 · 0 评论 -
11.详解可变类型与不可变类型
1.可变类型当一个可变类型的变量修改值时,不会生成新的值,而是会将原来的变量值进行修改常见的可变类型:list,dict,set我们通过代码来验证a = [1,2,3]a[2] = 4print(id(a))print(id(b))运行结果是这样的:2.不可变类型当一个不可变类型的变量修改值是,会生成一个新的值,而不是修改原来的变量值常见的不可见类型:str,int,tuple,frozenset我们通过结果来验证一下:a = "5"print(id(a))a.repl原创 2020-05-12 19:11:30 · 545 阅读 · 0 评论 -
10.格式化输出
什么是格式化输出?我们写程序时,可能会用到一段字符串多次,比如:我的名字是xxx,年龄xxx,每次写的时候’我的名字’和’年龄’需要重复写。我们可以写一个特定的字符串,使用时只需填入姓名和年龄即可。通俗来说就是:改变固定字符串的某些字符。下面介绍三种方法:1.占位符ps:占位符分好多种,我们只需记%s足够使用1.根据位置words = "my name is %s,age is %...原创 2020-05-07 21:43:31 · 677 阅读 · 0 评论 -
9.基本数据类型(6)----元组
1.初识元组元组(tuple):用()表示,用,隔开,元组是不可变的列表,也叫只读列表,元组中的元素无限制注意事项:1.因为()还表示运算的优先级,所以元组中即使只有一个元素也要加 ,tup = (1,)2.元组的不可变是指第一层不可变tup = ([1,2,3],1,2)tup[0] = 4 报错,因为第一层不可变tup[0][0] =...原创 2020-05-06 20:19:54 · 296 阅读 · 0 评论 -
8.基本数据类型(5)----集合
1.初识集合集合(set):由{}表示,创建空集合时要用set()特点:元素无序、不重复、不可变类型我们可以将集合看成一个没有value只有key的字典,因为集合的元素是不重复和我们可以用来去重2.集合常用操作切记:集合是一个可变的对象,对集合进行修改操作会使原集合改变名称作用s.add()添加一个元素s.update()迭代添加s.pop()随机...原创 2020-05-06 09:15:47 · 390 阅读 · 0 评论 -
7.基本数据类型(4)----字典
1.初识字典字典(dict):用{}表示,由一组组键值对(key:value)构成,特点:无序、查询效率高,key必须是不可变类型且唯一我们可以将字典看成一个大的仓库,一个个键值对就是仓库中的一个个房间,key是房间的门牌号,value是房间中数据。想要拿房间中的数据(value),通过门牌号(key)就行了。2.字典常用方法切记:字典是一个可变对象,对字典进行修改操作会使原来的字典发生...原创 2020-04-30 21:17:26 · 320 阅读 · 0 评论 -
6.基本数据类型(3)----列表
1.初识列表定义:用[]来装元素就是一个列表,通俗来说就是一个装对象的对象特点:有序(顺序),元素无限制2.列表的常用方法切记:列表是一个可变的对象,对列表进行的操作会使原列表发生变化名称作用lst.append()追加,添加到最后lst.insert(索引,值)在指定索引插入值lst.extend()迭代添加,将一个可迭代对象中的元素全部添加到列表...原创 2020-04-30 21:15:09 · 364 阅读 · 0 评论 -
5.基本数据类型(2)----字符串
1.定义字符串可以用" …“或’…‘来表示,但是切记不要混用,不能左边"右边’。ps:三引号”""…"’’"或’’’…’’'来表示字符串可以换行以及包含特定字符a = "a"b = 'b'c = "c' 这是错误写法 poetry = """朝辞白帝彩云间,千里江陵一日还。两岸猿声啼不住,轻舟已过万重山。"""2.常用方法名称作用s.upper...原创 2020-04-30 21:15:00 · 289 阅读 · 0 评论 -
4.基本数据类型(1)----数字类型和布尔
1.数字类型数字类型就介绍2个:int和float,int是整数,float是小数数字常用的运算符号:+ - * / %(取余) //*(整除)2.布尔布尔值就两个True和False,即真或假,一般条件判断的结果都是布尔值。我们可以使用bool()来判断一个值到底是True还是False。数值中除了0为False,其他都为Trueprint(bool(0)) #Falsep...原创 2020-04-30 21:14:46 · 713 阅读 · 0 评论 -
3.变量
一.什么是变量?变量:用来储存信息,以便程序进行调用和操作。我们程序执行时要用到很多很多的数据,我们用变量来存储这些数据,程序使用这些数据时直接通过变量来调用,更加方便。二.变量的定义和使用1.定义a = 5变量名 = 变量值=是赋值的意思,将右边的值赋给左边的变量,一定是左边为变量名,右边为值。2.使用a = 5print(a) #直接通过使用变量名就可以使用相应的值三...原创 2020-04-30 21:14:37 · 244 阅读 · 0 评论 -
2.运行python程序
一.运行python程序的两种方式1.交互式交互式很简单,就是我们直接在终端进入python解释器,输入python代码并执行这种方式的特点是:可以即时得到程序的运行结果,便于调试,但是不能保存python代码。平时我们如果一个语法记不大清了,可以用这种方式去测试一下。2.脚本我们将python代码写在一个文件中,然后用python解释器解释器中内容。1.在文件中写python代码...原创 2020-04-26 12:50:46 · 231 阅读 · 0 评论 -
1.python解释器的安装
以下针对于windows平台1.进入官网,寻找安装包https://www.python.org/downloads/2.选择合适的版本,下载安装包我们跟上时代下载最新版本,2.多版本马上就不会更新了3.安装我们选择自定义安装:安装成功4.写我们第一行代码进入终端,win+r,输入cmd因为我们安装时添加了环境变量,直接输入python就进入解释器了.输入我们的第...原创 2020-04-26 12:50:21 · 350 阅读 · 0 评论