Python基础知识介绍——变量进阶和函数进阶

本次学习目录

一、函数的文档注释

二、形参和实参

三、引用 

四、可变和不可变数据类型

五、局部变量和全局变量

六、range()语法

七、eval()函数

八、缺省函数

九、多值函数

十、匿名函数


一、函数的文档注释

格式:

def 函数名(参数):
    """
    函数的文档注释
    """
    封装的代码
    ......
  • 在开发中,如果希望给函数添加注释,应该在定义函数的下方,使用连续的三对引号
  • 在 连续的三对引号 之间编写对函数的说明文字
  • 在 函数调用位置,使用快捷键 CTRL + Q 可以查看函数的说明信息

注意:因为函数体比较独立,函数定义上方,应该和其他代码(包括注释)保留两个空行


二、形参和实参

  • 形参:定义函数时,小括号中的参数,是用来接收参数用的,在函数内部作为变量使用
  • 实参:调用函数时,小括号中的参数,是用来把数据传递到函数内部用的

三、引用 

1、变量和数据是分开存储的

2、数据保存在内存中的一个位置

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

4、变量中记录数据的地址,就叫做引用

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


四、可变和不可变数据类型

1、不可变数据类型,内存中的数据不允许被修改:

  • 数字类型 int、bool、float、complex、long(2.x)
  • 字符串 str
  • 元组 tuple

2、可变数据类型,内存中的数据可以被修改:

  • 列表 list
  • 字典 dict

3、注意:

(1)字典的 key 只能使用不可变类型的数据

(2)可变类型的数据变化,是通过方法来实现的

(3)如果一个可变数据类型的变量,赋值了一个新的数据,引用会修改

  • 变量不再对之前的数据引用
  • 变量改为对新赋值的数据引用

五、局部变量和全局变量

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

2、全局变量是在函数外部定义的变量(没有定义在某一函数内),所有函数内部都可以使用这个变量

注意:

  • 不推荐使用全局变量,可变范围太大,容易导致程序不好维护
  • 函数不能直接修改全局变量的引用,要修改需要使用 global 进行声明

六、range()语法

作用:产生序列数的对象,可以使用for循环遍历

语法:range(起始位置,结束位置,步长)

说明:起始位置默认为0可以省略,结束位置不能省略,步长默认值为正1可以省略

注意:range生成的范围是[起始位置,结束位置)(左闭右开),指定步长时起始位置不可省略


七、eval()函数

作用:将字符串当成有效的表达式来求值并返回计算结果(去掉引号)

注意:eval函数不能转换空字符串,会报错


八、缺省函数

  • 定义函数时,可以给 某个参数 指定一个默认值,具有默认值的参数就叫做 缺省参数
  • 调用函数时,如果没有传入 缺省参数 的值,则在函数内部使用定义函数时指定的 参数默认值
  • 函数的缺省参数,将常见的值设置为参数的缺省值,从而 简化函数的调用
  • 例子:
def func(name,age="20",postion="学生"):
    pass

func(张三,30,老师)
func(李四)

注意:

必须保证 带有默认值的缺省参数 在参数列表末尾

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

九、多值函数

  • 有时可能需要一个函数能够处理的参数个数是不确定的,这个时候就可以使用多值函数
  • python中有两种多值参数:
    • 参数名前增加一个 * 可以接收元组,将多余的值接收为元组
    • 参数名前增加一个 ** 可以接收字典,将键值对接收为字典
  • 元组和字典的拆包:
    • 元组变量前,增加一个
    • 字典变量前,增加一个 ** 
  • 例子:
def func(num,*arg,**kwargs):
    print(num)    # 输出10
    print(arg)    # 输出(20,30,40)
    print(kwargs)    # 输出{name="张三",gender="男"}
    # 拆包效果
    print(*arg)    # 输出20 30 40
    print(**kwargs)    # 输出name gender,默认输出字典key

func(10,20,30,40,name="张三",gender="男")

十、匿名函数

1、函数的引用:函数名是一个变量名,保存当前函数体的引用地址

def func():
    print("测试")

func()    # 输出测试

ret=func
ret()    # 与func()一样,输出测试

2、定义:用lambda关键词能创建小型匿名函数,这种函数将表达式作为整个返回值进行返回

3、格式:

lambda [arg1 [,arg2,.....argn]]:expression

# 定义没有参数的匿名函数
lambda : 100
print((lambda : 100)())    # 输出100

# 定义一个参数的匿名函数
ret = lambda x : x + 100
print(ret(50))    # 输出150

# 定义两个参数的匿名函数
ret = lambda x, y : x + y
print(ret(50,100))    # 输出150

# 匿名函数作为函数的参数
def sum(a,b,opt):
    print("%d + %d = %d" % (a,b,opt(a,b)))

sum(10,20,lambda x,y:x+y)    # 输出10+20=30
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值