mysql数据相乘_数据分析--Part 2: Python进阶

本文是Python进阶部分,涵盖了函数的定义、参数、返回值和匿名函数,深入介绍了面向对象编程的类、实例、属性与方法,以及模块和包的管理。通过实例展示了如何定义和使用函数、类以及模块,特别是如何处理函数参数、返回值,以及类的初始化方法`__init__`。此外,还提及了常用内置模块如`time`、`random`和`os`的功能和使用。
摘要由CSDN通过智能技术生成

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

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 类和实例

面向

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值