![050c5a4b606aef0ea21ec2641643550d.png](https://img-blog.csdnimg.cn/img_convert/050c5a4b606aef0ea21ec2641643550d.png)
笔记内容来源:拉勾教育数据分析实战训练营
本篇是Part 2,python的进阶部分开始啦~~~~~~~
说明:理论部分是提炼的老师所讲,加上我自己看书添加的一些解释,代码部分有些会融合老师和我自己练习的写法,一起分享给大家
再啰嗦两句,关于拉勾教育数据分析实战训练营:
目前为止已经学习了近4个月的课程,已经学完Excel、数据分析思维、MySQL、Tableau、quickBI、神策、hive、统计学,每一阶段每一模块的知识都是在线自主学习,完成作业后解锁新课程,直播课会根据全体学员进度,收集疑问然后进行在线直播内容回顾和答疑以及作业讲解。每位讲师都很优秀,都有自己的授课特色所在,内容都是很干货的录好的内容,有些内容导师还会重新录制,不断迭代让学员达到更好的学习体验。作业批改、答疑导师西蒙(我接触最多的,经常麻烦他帮我解决问题)和班主任团子比较nice,认真负责,他们分别负责技术答疑和服务类的问题,平时有问题可以在微信群里问,可以单独聊也可以群里问,他们全天非工作日也会答疑。
在这里真心推荐下拉勾教育数据分析实战训练营:
1、课程体系最全面:课程内容有分析方法论、分析方法、Excel、Mysql、Tableau、Quick BI、神策平台、Hive、统计学、Python、挖掘算法、Spss等,是目前我看到的最全面的。
2、课程体系把握行业人才需求痛点:拉勾主营业务是招聘,最明白企业的人才需求,基于此设计的课程体系是比较贴近实际需求的。通过5个月10个阶段,从现状统计到预测分析、从业务数据到编程工具处理复杂业务逻辑数据,实现用数据驱动业务辅助决策,提升公司业绩。
3、课程学习模式灵活:大部分授课采用录播方式,学习完成后还有直播答疑。比直播打卡更容易安排自己的时间。
4、课程学习过程和结果有保障:学习成果作业检测+实时答疑+班主任督导,每个阶段每个模块的知识学完的作业可以锻炼实操。
5、项目实战内容丰富:也是我最看好的一点,涵盖了在线教育、电商等多个领域项目实战。
6、就业辅导+优秀内推:拉勾平台是互联网行业招聘大本营,这是天然优势。
~~~~~~~~~~~~~~~~~以下是笔记~~~~~~~~~~~~~~~~
四、Python进阶
1 函数
1.1 函数定义及调用
在Python在, 使用def关键字来定义函数
def hello(name):
print('hello',name)
hello('python')
# hello python
上面的代码定义了一个最简单的函数,它的作用就是打印出"Hello"加一个名字。看看它的结构:
![26fbb8b0132c1f773f7a5eb40111e74c.png](https://img-blog.csdnimg.cn/img_convert/26fbb8b0132c1f773f7a5eb40111e74c.png)
1.2 函数的参数
函数的参数可以有一个,也可以有多个,也可以没有参数。这取决于在定义函数的时候如何定义参数部分。刚才我们定义的函数只有一个参数,现在我们定义两个参数的函数。
def hello2(name, sex):
if sex == '男':
print("Hello, Mr", name)
elif sex == '女':
print("Hello, Mrs", name)
这个函数有两个参数,name和sex(变量是形参),分别表示用户的名字和性别,传递的值是实参。
在调用的时候,要注意参数的顺序,不能前后颠倒。可以调用函数多次
hello("Zhang", "男")
hello("Wang", "女")
如果参数较多,记不清它们的顺序,可以写上参数名--关键字实参
hello(sex='男', name='Zhang')
默认值
使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的形参。
def hello2(name, sex='女'):
if sex == '男':
print("Hello, Mr", name)
elif sex == '女':
print("Hello, Mrs", name)
hello2(name='Zhong')
hello2('zhong')
如果每一个参数都有默认值,在调用的时候甚至可以不传参数。
def hello2(name='Anonym', sex='女'):
if sex == '男':
print("Hello, Mr", name)
elif sex == '女':
print("Hello, Mrs", name)
hello2()
现在这个函数对于信息不完整的数据也有处理能力了。
如果在调用函数时,给形参提供了实参,将使用制定的实参值,否则将使用形参的默认值。
def hello2(name='Anonym', sex='女'):
if sex == '男':
print("Hello, Mr", name)
elif sex == '女':
print("Hello, Mrs", name)
hello2('li','男') #Hello, Mr li
1.3 函数的返回值
函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值,函数返回的值被称为返回值。在函数中,可使用return语句将值返回到调用函数的代码行。
def multiply(num1, num2):
return num1 * num2
print(multiply(2, 4))
multiply函数的功能是计算两个数相乘,我们传入两数字作为参数,希望能得到一个这两个数相乘的结果。multiply的最后一行使return 关键字将结果返回。通常在函数的最后一行返回结果,但有时候也有多种可能。
def permit(age):
if age >= 18:
print("准许进入")
return True
else:
print("禁止进入")
return False
print("end")
permit(18)
上面定义了一个只允许成年人进入的函数,如果年龄大于等于18岁,返回True,表示允许通过;如果小于18岁则不允许。虽然有两个return语句,但只返回一个结果,要么返回True要么返回False。注意在return语句执行完后,函数就会结束执行,在它之后的任何语句都不会再执行,所以上例中的“end”无论怎么样都不会被打印。
如果一个函数内没有任何return语句,那它的返回值就是None。
def do_nothing():
pass
print(do_nothing())
返回列表中的最大最小值
def find_min_max(nums):
nums.sort()
return nums[0], nums[-1]
min_max = find_min_max([2, 3, 5, 6, 1, 4])
print(min_max) #(1,6)
min, max = find_min_max([2, 3, 5, 6, 1, 4])
print(min, max) #1,6
1.4 匿名函数
定义了一个匿名函数
square1 = lambda n: n * n
相当于
def square2(n):
return n * n
print(square1(2))
print(square2(2))
lambda是Python中的关键字,它的作用就是用来定义匿名函数,匿名函数的函数体一般只有一行代码,省略了函数名和返回值语句。
key = lambda x: x[1]
key([1, 2]) # 2
key("abcd") # 'b'
key函数的作用就是返回序列中的第二个元素,在sort排序的时候就会以每个元素的第二个元素作为比对的依据。
再看两个例子:
plus = lambda x, y, z: x + y + z
print(plus(1, 2, 3))
#6
key参数使用每个原始的第二个索引的和作为排序依据
revenue = [('1季度', (5610000, 5710000, 5810000)),
('2季度', (4850000, 4850000, 4850000)),
('3季度', (6220000, 6320000, 6420000))]
revenue.sort(reverse=True, key=lambda x: sum(x[1]))
print(revenue)
#[('3季度', (6220000, 6320000, 6420000)), ('1季度', (5610000, 5710000, 5810000)), ('2季度', (4850000, 4850000, 4850000))]
2 面向对象
2.1 类和实例
面向