pyhton_女孩入门第五天_函数 变量 参数

函数用法和底层分析

在这里插入图片描述

函数简介(function)

函数的基本概念

1.一个程序由一个个任务组成;函数就是代表一个任务或者一个功能
2.函数是代码复用的通用机制

python函数的分类

在这里插入图片描述

函数的定义与调用

核心要点
文档字符串相当于注释

在这里插入图片描述

形参和实参

在这里插入图片描述

文档字符串(函数的注释)

在这里插入图片描述

返回值

在这里插入图片描述

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

pyhton中,”一切皆是对象“。定义了一个函数之后,相当于定义了一个对象。可以调用好几次。

变量

变量的作用域(全局变量和局部变量)

全局变量

1.在函数和类定义之外生命的变量。作用域为定义的模块,在定义位置开始直到模块结束。
2.全局变量降低了函数的通用性和可读性。应避免全局变量的使用。
3.全局变脸一般作为常用变量使用。
4.函数内要改变全局变量的值,使用global声明一下

局部变量

1.在函数体中(包含形式参数)声明的变量
2.在局部变量的引用比全局变量快,优先考虑使用。
3.如果局部变量和全局变量同名,则在函数内隐藏全局变量,只使用同名的局部变量。
【操作】全局变量的使用
在这里插入图片描述
在这里插入图片描述

局部变量和全局变量的效率测试

局部变量的查询和访问比全局变量快,尤其是在循环的时候
在特别强调效率的地方或者循环次数特别多的地方,可以将全局变量变成局部变量提高效率
“”"
#测试局部变量,全局变量的效率
import math
import time

def test01():
start = time.time()
for i in range(1000000):
math.sqrt(30)
end = time.time()
print(“耗时{0}”.format(end-start))

def test02():
b = math.sqrt
start = time.time()
for i in range(1000000):
b(30)
end = time.time()
print(“耗时{0}”.format(end-start))

test01()
test02()
在这里插入图片描述

参数

参数的传递

本质就是:从实参到形参的赋值操作。
1.对可变对象进行写操作,直接作用于原对象本身。可变对象有:字典列表集合 自定义的对象等
2.对不可变对象进行写操作,会产生一个新的对象空间 并用心的值填充这块空间 起到其他语言的值传递,但不是值传递
不可变对象有 数字、字符串、元祖、func。

传递可变对象的引用

在这里插入图片描述

传递不可变对象的引用

不可变对象:int 、字符串、元组,布尔值等
在赋值操作的时候,由于不可变对象无法修改,系统会创建一个新的对象。

深拷贝与浅拷贝

在这里插入图片描述

浅拷贝

在这里插入图片描述

深拷贝

在这里插入图片描述
传递不可变对象用浅拷贝

参数的类型

位置参数

默认值参数

命名参数

可变参数

可变参数指的值是可变数量的参数,分为两种情况:
1.*param(一个星号),将多个参数收集到一个元组对象中
2.**param(两个星号),将多个参数收集到一个字典对象中

强制命名参数

在带星号的可变参数后面增加新的参数,必须是强制命名参数

在这里插入图片描述

lambda表达式和匿名函数

在这里插入图片描述
在这里插入图片描述

eval()函数

功能:将字符串str当成有效的表达式来求值并返回计算结果
语法:eval(sourcel[,global[,locals]]) - >value
参数:
source:一个python表达式或函数compile()返回的代码对象
globals:可选。必须是dictionary
locals:可选。任意映制对象

递归函数

在这里插入图片描述

【操作】使用递归函数,计算阶乘

在这里插入图片描述

嵌套函数(内部函数)

在这里插入图片描述
外部无法调用内部的函数

nonlocal关键字

nonlocal 用来声明外部的局部变量
global 用来生命全局变量
在这里插入图片描述

LEGB规则

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值