1043-李同学-算法方向-发数据分析和挖掘-就业:是 已关闭

1043-李同学-算法方向-发数据分析和挖掘-就业:是 扫二维码继续学习 二维码时效为半小时

(0评价)
价格: 免费

面向对象

面向对象编程将数据和操作数据的方法封装到对象中,组织代码和数据的方式更接近人的思维。

python支持面向过程、面向对象,函数式编程等

面向过程POP

面对过程更加关注流程,按照步骤实现。适合小规模程序。

面向对象OOP

关注对象之间的关系,适合编写大规模程序。

先找名词,再找动词

[展开全文]

LEGB规则

python查找名称时,按照LEGB规则查询

Local 函数或者类的方法内部

Enclosed 嵌套函数,闭包

Global 全局变量

Built in Python为自己保留的特殊名称

def outer():

    str="outer"

    def inner()

         str="inner"

         print(str)

         pass

    inner()

outer()

[展开全文]

global声明全部变量

nonlocal申明外部函数的局部变量

[展开全文]

嵌套函数(内部函数)

嵌套函数:

在函数内部定义的函数

1.封装-数据隐藏

2.避免函数内部重复代码

3.闭包

 

 

[展开全文]

递归函数阶乘计算

def factorial(n):

if n ==1:

    return 1

else:

    return n*factorial(n-1)

result = factorial(5)

print(5)

[展开全文]

递归函数

递归函数,类似于数学归纳法。

每个递归函数必须包含两个部分:

1.终止条件

2.递归步骤

栈先进后出

[展开全文]

eval()函数

执行一个字符串

eval(source[,globals[,locals]])

globals:可选,必须是字典

locals:可选,任意映射对象

[展开全文]

lambda表达式

lambda表达式可以用来声明匿名函数。只允许包含一个表达式,不能包括复杂语句。该表达式的计算结果就是函数的返回值。

lambda 形参1,形参2,形参3: <表达式>

运算结果是表达式的运算结果

f= lambda a,b,c:a+b+c

print(f(2,3,4))

 

[展开全文]

可变参数

可变数量的参数

1. *,将多个参数收集到一个'元组'对象中。

2. **,将多个参数收集到一个'字典'对象中。

强制命名参数

[展开全文]

参数的几种类型

位置参数

按照位置传递的参数

默认值参数

为某些参数设置默认值,这些参数传递时可选。

命名参数

按照形参的名称传递参数

 

[展开全文]

传递不可变对象是浅拷贝

[展开全文]

浅拷贝和深拷贝

浅拷贝:不拷贝子对象的内容,只拷贝引用

深拷贝:子对象的内存也全部拷贝,子对象修改不影响源对象

[展开全文]

参数的传递

从实参到形参的赋值,引用传递。

1.可变对象,直接作用于原对象本身

2.不可变对象,生出新的对象空间

可变对象有:字典、列表、集合、自定义对象等

不可变对象:数字、字符串、元组、function等

[展开全文]

函数也是对象,内存底层分析。

[展开全文]

文档字符串

help(函数名._doc_)打印函数的文档字符串

[展开全文]

函数用法和底层分析

函数的基本概念

1. 一个程序由一个个任务组成。函数就是代表一个任务或一个功能

2. 函数是代码复用的通用机制

python函数的分类

1. 内置函数

2. 标准库函数

3. 第三方库函数

4. 用户自定义函数

函数的定义和调用

核心要点

def 函数名([参数列表]):

    #文档说明

    函数体/若干语句

[展开全文]

绘制不同颜色的多个同心圆

import turtle
t = turtle.Pen()
my_colors=('red','green','pink','black')
t.speed(10)

for i in range(10):
    t.penup()
    t.goto(0,-i*10)
    t.pendown()
    t.color(my_colors[i%len(my_colors)])
    t.circle(15+i*10)

turtle.done()

 

[展开全文]

推导式创建序列

列表推导式

[表达式 for item in 可迭代对象 if 条件判断]

[x*2 for x in range(1,20) if x%5==0]

cells = [(row,col) for row in range(1,10) for col in range(1,10)] #可以使用两个循环

字典推导式

{key : value for 表达式 in 可迭代对象}

my_text ='i love you, i love he, i love 123'

char_count ={c:my_text.count(c) for c in my_text}

集合推导式

{key for 表达式 in 可迭代对象}

b={x for x in range(1,100) if x%9 ==0}

生成器推导式(生成元组)

一个生成器只能运行一次

 

[展开全文]

使用zip()并行迭代

zip()对多个序列进行并行迭代

[展开全文]