学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
五、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
### 2. 函数的调用
调用函数也就是执行函数。如果把创建的函数理解为一个具有某种用途的工具,那么调用函数就相当于使用该工具。
函数调用的基本语法格式: 函数名([形参值])
2.如何调用函数?
max_num = get_max(30,80)
print(max_num)
代码运行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021022020015148.png)
## 三、 变量作用域
### 1.全局变量:全局生效的变量
如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量。
在函数外边定义的变量叫做全局变量
全局变量能够在所有的函数中进行访问
如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错
如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的
小技巧: 强龙不压地头蛇(就近原则)
name = ‘admin’
def login():
print(name)
login()
代码执行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220233654428.png)
### 2. 局部变量:局部生效的变量,函数内部的变量
局部变量,就是在函数内部定义的变量
不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响
局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用
2. 局部变量:局部生效的变量,函数内部的变量
def logout():
age = 18
print(age)
logout()
代码执行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220233646214.png)
### 3. 函数内部修改全局变量
#1).money是全局变量
#2).如果要在函数中修改全局的变量,需要声明,不能直接修改
#3).不可变数据类型一定需要声明,可变数据类型不需要声明
def hello():
global money
money +=1
users.append(‘user1’)
print(money,users)
money = 100 # 不可变数据类型
users = [] # 可变数据类型
hello()
代码执行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220233633405.png)
总结:
global的本质是声明可以修改全局变量的指向, 即变量可以指向新的数据。
1). 不可变类型的全局变量: 指向的数据不能修改, 不使用global时无法修改全局变量。
2). 可变类型的全局变量: 指向的数据可以修改, 不使用global时可以修改全局变量。
## 四、函数参数传递
调用函数时,如果参数个数不对,Python 解释器会自动检查出来,并抛出 TypeError;
* 如果参数类型不对,Python 解释器就无法帮我们检查。
* 数据类型检查可以用内置函数 isinstance 实现
“”"
- 形参和实参
- 参数检查:isinstance(var, int)判断变量var是否为int
“”"
2. 参数检查:
def get_max(num1:int, num2:int)->int:
“”"
求两数的最大值
:param num1: 整型数1
:param num2: 整型数2
:return: 最大值
“”"
if isinstance(num1, int) and isinstance(num2, int):
return num1 if num1 > num2 else num2
else:
return 0
result = get_max(20, 30)
print(result)
print(help(get_max))
代码运行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220234653693.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N1bl9fcw==,size_16,color_FFFFFF,t_70)
## 五、常见的四类形参
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210221000327204.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N1bl9fcw==,size_16,color_FFFFFF,t_70)
### 1. 必选参数
必须要传递的参数
def get_max(num1: int, num2: int) -> int:
return num1 if num1 > num2 else num2
result = get_max(20, 30)
print(result)
代码运行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220235713393.png)
### 2. 默认参数
默认参数可以降低调用函数的难度。
默认函数容易出错点: 可变参数不能作为默认参数。
试一试:先定义一个函数,传入一个 list,添加一个 END 再返回.
可传可不传的参数
def pow(x, y=2):
return x ** y
result = pow(3) # x=3, y=2, result=9
print(result)
result = pow(2, 4) # x=2,y=4, result=2**4=16
print(result)
代码运行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220235810741.png)
### 3. 可变参数
可变参数就是传入的参数个数是可变的,可以是 1 个、2 个到任意个,还可以是 0 个。\*args
以数学题为例子,给定一组数字 a,b,c…,
请计算 a 2 + b 2 + c 2 + …
参数的个数会变化,可以传0,1,2,3,…n
3. 可变参数: 参数的个数会变化,可以传0,1,2,3,…n
args是元组
args=arguments
def my_sum(*args):
return sum(args)
result = my_sum(4, 5, 6) # 15
print(result)
代码运行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220235825688.png)
### 4. 关键字参数
关键字参数允许传入 0 个或任意个含参数名的参数;
* 这些关键字参数在函数内部自动组装为一个 dict;
* 关键字参数用\*\*kwargs;
可以传递key和value
4. 关键字参数:可以传递key和value
kwargs存储在字典中
def enroll(name, age=18, **kwargs):
print(f"“”
入学信息
- 姓名:{name}
- 年龄:{age}
- 其他:{kwargs}
“”")
enroll(‘张三’, country=‘china’, english=‘GRE’, sports=[‘篮球’, ‘羽毛球’])
from collections import namedtuple
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220235841230.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N1bl9fcw==,size_16,color_FFFFFF,t_70)
## 六、匿名函数
匿名函数指一类无须定义标识符的函数或子程序。Python用lambda语法定义匿名函数,只需用表达式而无需申明。(省略了用def声明函数的标准步骤)
get_max = lambda num1,num2: num1 if num1>num2 else num2
print(get_max(10,20))
pow = lambda x,y=2: x**y
print(pow(4))
print(pow(2,3))
代码运行结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/202102210016003.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N1bl9fcw==,size_16,color_FFFFFF,t_70)
匿名函数练习题:
问题描述2:(2018-携程-春招题)
给定一个整形数组, 将数组中所有的0移动到末尾, 非0项保持不变;
在原始数组上进行移动操作, 勿创建新的数组;
输入: 数组的记录;0 7 0 2
输出: 调整后数组的内容; 7 2 0 0
“”"
自定义规则:
0 7 0 2 - rule:(1 if num== 0 else 0)
1 0 1 0
0 0 1 1
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!