PYTHON学习-变量、参数

01.变量引用

变量数据都是保存在内存中的

在python中函数参数传递以及返回值都靠引用传递

1.1 引用概念

在python中

变量数据 是分开储存的

数据保存在内存的一个位置

变量中保存着数据在内存中的地址

变量记录数据的地址, 就叫引用

使用id()函数中可以查看变量中保存数据所在的内存地址

1.2 可变类型和不可变类型

列表和字典是可变类型:可变类型的数据变化是调用方法修改数据,并不会影响数据在内存地址

注:字典的key只能使用不可变类型的数据

哈希(hash)

hash函数接受一个不可变类型的数据作为参数

返回结果是一个整数

哈希是一种算法,作用是提取数据的特征码(指纹)相同的内容得到相同的结果。

 在python中,设置字典的键值对时,会对key进行hash用来决定如何在内存中保存字典的数据。

键值对的key必须是不可变数据类型,value可以是任意类型数据。

02.局部变量和全局变量

1.局部变量

局部变量是在函数内部定义的变量,只能在函数内部使用。

不同的函数,可以定义相同名字的局部变量,但是彼此之间不会产生影响。

2.全局变量

全局变量 是在函数外部定义的变量,所有函数内部都可以使用这个变量

在python中,不允许直接修改全局变量的值。

如果在函数中需要修改全局变量,需要使用 global 进行声明

注意:在开发时,应该把模块中的所有全局变量定义在所有函数上方,就可以保证所有的函数都能正常的访问到每一个全局变量了。

代码结构示意:
shebang

import模块

全局变量

函数定义

执行代码

全局变量命名:为了避免混淆,有一些公司会要求全局变量前应该增加g_或者gl_的前缀

03.函数参数和返回值

 函数根据 有没有参数、有没有返回值,可以相互组合,一共有4种组合方式

1.如果函数 内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部。

2.如果希望一个函数 执行完后,向外界汇报执行结果,就可以增加函数返回值。

04.不可变和可变的参数

只要针对函数使用赋值语句,会在函数内部修改局部变量的引用,不会影响到 外部变量的引用。

缺省参数:定义函数时,可以给某个参数指定一个默认值,具有默认值的参数叫做缺省参数。

将很常见的值设置为参数的缺省值,从而简化函数的调用,例如,对列表排序的方法,reverse的默认值为False,需要降序排序时,reverse = True

提示:(1)在指定缺省参数的默认值时,应该使用最常见的值
为默认值!
(2)必须保证带有默认值的缺省参数 在列表参数末尾,以下是错误的
def info(name, gender=True, title)

(3)调用函数时,如果有多个缺省参数,需要指定函数名,这样解释器才能知道参数的对应关系。

def info(name, ,title=“ ”,gender=True)

info("小明",gender=True)

05.多值参数

有时候可能需要一个函数 能够处理的参数个数不确定,这时候可以使用多值参数

第一种:在参数名前面增加一个* 可以接受元组

第二种:在参数名前面增加两个*可以接收字典

一般给多值参数命名时,习惯使用下面两个名字

       1.*args--存放 元组 参数,

       2.**kwargs--存放 字典 参数

args是arguments的缩写,有变量的含义,kw是keyword的缩写,kwargs可以记忆 键值对参数。

06.元素和字典的拆包:

元组变量/字典变量传到函数内部时,需要拆包
def demo(*args, **kwargs):
gl_nums = {1, 2, 3}
gl_dict = {"name": "小明", "age": 18}
demo(*gl_nums, **gl_dict)  # 使用拆包语法,简化元组变量/字典变量传递

07.函数递归

个函数内部调用自己

特点:1.函数内部的代码是相同的,知识针对参数不同,处理的结果不同

2.当参数满足一个条件时,函数不再执行!(否则陷入死循环)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值