2024年最新Python核心编程总结(三、引用与文件操作)(1),2024年最新知识点总结+面试题解析

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

    *   [3.7.2、删除文件](about:blank#372_604)
    *   [3.7.3、创建文件夹](about:blank#373_610)
    *   [3.7.4、删除文件夹](about:blank#374_616)
    *   [3.7.5、获取当前目录](about:blank#375_624)
    *   [3.7.6、改变默认目录](about:blank#376_632)
    *   [3.7.7、获取目录列表](about:blank#377_640)

1、引用

======================================================================

1.1、了解引用


在 python 中,值是靠引用来传递的。

我们可以用 id()来判断两个变量是否为同一个值的引用。我们可以将 id 值理解为那块内存的地址标识。

1. int类型

a = 1

b = a

print(b) # 1

print(id(a)) # 140708464157520

print(id(b)) # 140708464157520

a = 2

print(b) # 1,说明int类型为不可变类型

print(id(a)) # 140708464157552,此时得到是的数据2的内存地址

print(id(b)) # 140708464157520

2. 列表

aa = [10, 20]

bb = aa

print(id(aa)) # 2325297783432

print(id(bb)) # 2325297783432

aa.append(30)

print(bb) # [10, 20, 30], 列表为可变类型

print(id(aa)) # 2325297783432

print(id(bb)) # 2325297783432

1.2、引用当作实参


代码如下:

def test1(a):

print(a)

print(id(a))

a += a

print(a)

print(id(a))

int:计算前后id值不同

b = 100

test1(b)

列表:计算前后id值相同

c = [11, 22]

test1©

1.3、可变和不可变类型


所谓的可变类型与不可变类型是指:数据能够直接进行修改,如果能直接修改那么就是可变,否则是不可变

  • 可变类型

  • 列表

  • 字典

  • 集合

  • 不可变类型

  • 整型

  • 浮点型

  • 字符串

  • 元组

2、函数加强

========================================================================

2.1、递归


  • 递归内部自己调用自己

  • 必须要有出口

例如:我们计算3以内数字的累加和

3 + 2 + 1

def sum_numbers(num):

1.如果是1,直接返回1 --chu出口

if num == 1:

return 1

2.如果不是1,重复执行累加

result = num + sum_numbers(num-1)

3.返回累加结果

return result

sum_result = sum_numbers(3)

输出结果为6

print(sum_result)

2.2、lambda表达式


如果一个函数一个返回值,并且只有一句代码,那么可以使用 lambda 简化代码。

lambda 参数列表:表达式

注意:

  • lambda表达式的参数可有可无,函数的参数在 lambda 表达式中完全适用
  • lambda函数能接收任何数量的参数,但是只能返回一个表达式的值

例如我们来看一个简单例子:

函数

def fn1():

return 200

print(fn1)

print(fn1()) # 200

lambda表达式

fn2 = lambda: 100

print(fn2)

print(fn2()) # 100

直接打印lambda表达式,输出的是此lambda的内存地址

我们再来实现一个简单加和计算:

def add(a, b):

return a + b

result = add(1, 2)

print(result) # 3

lambda 表达式

lambda(参数列表:表达式)

print((lambda a,b : a+b)(1,2)) # 3

2.3、lambda的参数形式


2.3.1、无参数

print((lambda :100)())

100

2.3.2、一个参数

print((lambda a: a)(‘hello world’))

hello world

2.3.3、默认参数

print((lambda a, b, c=100: a + b + c)(10, 20))

130

2.3.4、可变参数:*args

print((lambda *args: args)(10, 20, 30))

(10, 20, 30)

注意:这里的可变参数传入到lambda之后,返回值为元组

2.3.5、可变参数: **kwargs

print((lambda **kwargs: kwargs)(name=‘python’, age=20))

2.4、lambda的应用


2.4.1、带判断的lambda

print((lambda a, b: a if a > b else b)(1000, 500))

1000

2.4.2、列表数据按字典key的值排序

students = [

{‘name’:‘Tom’,‘age’:20},

{‘name’:‘Rose’,‘age’:21},

{‘name’:‘Jack’,‘age’:22},

]

按name值升序排列

students.sort(key=lambda x:x[‘name’])

print(students)

[{‘name’: ‘Jack’, ‘age’: 22}, {‘name’: ‘Rose’, ‘age’: 21}, {‘name’: ‘Tom’, ‘age’: 20}]

按name值降序排列

students.sort(key=lambda x:x[‘name’],reverse=True)

print(students)

[{‘name’: ‘Tom’, ‘age’: 20}, {‘name’: ‘Rose’, ‘age’: 21}, {‘name’: ‘Jack’, ‘age’: 22}]

按age值升序排列

students.sort(key=lambda x:x[‘age’])

print(students)

[{‘name’: ‘Tom’, ‘age’: 20}, {‘name’: ‘Rose’, ‘age’: 21}, {‘name’: ‘Jack’, ‘age’: 22}]

2.5、高阶函数


把函数作为参数传入,这样的函数称为高阶函数,高阶函数是函数式编程的体现。

例如:我们使用一个函数完成计算任意两个数字的绝对值之和

方法一

def add_num(a, b):

return abs(a) + abs(b)

result = add_num(-1, 2)

print(result) # 3

方法二

def sum_num(a, b, f):

return f(a) + f(b)

result = sum_num(-1, 2, abs)

print(result) # 3

两种方法对比之后,发现方法2的代码会更简洁。函数式编程大量使用函数,减少了代码的重复,因此程序比较短,开发速度快。

2.5.1、内置高阶函数

1、map()

map(func,lst) :将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表(Python2)/迭代器(Python3)返回

例如:计算list1序列中各个数字的2次方

list1 = [1, 2, 3, 4, 5]

def func(x):

return x ** 2

result = map(func, list1)

print(result) # <map object at 0x000001BE8EA76630>

print(list(result)) # [1, 4, 9, 16, 25]

2、reduce()

reduce(func(x,y),lst) :其中func必须有两个参数。每次func计算的结果继续和序列的下一个元素做累积运算。[reduce()传入的参数func必须接受2个参数]

例如:计算list1序列中各个数字的累加和

import functools

list1 = [1, 2, 3, 4, 5]

def func(a, b):

return a + b

result = functools.reduce(func, list1)

print(result) # 15

3、filter()

filter(func,lst) 函数用于过滤序列,过滤掉不符合条件的元素,返回一个 filter 对象。如果要转换为列表,可以使用 list() 来转换。

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

def func(x):

return x % 2 == 0

result = filter(func, list1)

print(result) # <filter object at 0x00000232A64B6630>

print(list(result)) # [2, 4, 6, 8, 10]

3、文件操作

========================================================================

3.1、打开文件


在python,使用 open 函数,可以打开⼀个已经存在的⽂件,或者创建⼀个新文件,语法如下

open(name,mode)

  • name : 是要打开的目标文件名的字符串(可以包含文件所在的具体路径)

  • mode : 设置打开文件的模式(访问模式):只读 写入 追加 等

3.2、打开文件模式


| 模式 | 描述 |

| — | — |

| r | 以只读的方式打开文件,文件的指针将会放在文件的开头。这是默认模式 |

| rb | 以二进制格式打开一个文件用于只读,文件指针将会放在文件的开头。这是默认模式 |

| r+ | 打开一个文件用于读写,文件指针将会放在文件的开头 |

| rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |

| w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件 |

| wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件 |

| w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件 |

| wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该⽂文件不存在,创建新文件。 |

| a | 打开⼀个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |

| ab | 以二进制格式打开⼀个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |

| a+ | 打开⼀个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不不存在,创建新文件用于读写 |

| ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾,如果该文件不存在,创建新文件用于读写 |

f = open(‘test.txt’,‘w’)

注意:此时的 f 是 open 函数的文件对象

3.3、写


语法:对象.write('内容')

1. 打开⽂件

f = open(‘test.txt’, ‘w’)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值