python中的函数基础

函数

函数的定义及作用:
函数是为了提高效率和代码的重用率,函数是对特定功能进行封装
代码格式

格式:   def  函数名():
	代码逻辑

函数的调用 函数不调用不执行
格式: 函数名()

def  info():
    print("你好!")
    print("世界!")
info()

注意:
重名函数 后面的函数会覆盖前面的函数

def info():
    print("hello!")
    print("world!")
info()

函数的参数

函数的参数包含:实参(实际参数)和形参(形式参数),形参的作用是等待接收实参

def info(a,b):
    sum=a+b
    print(sum)

函数的返回值

函数的返回值:可以将调用函数的结果进行再次调用

def info(a,b):
    ret=a+b
    print(ret)
    return    # 返回
sum=info(10,20)    # 将调用函数的结果可以交给一个变量进行接收   没有返回值则不能再次调用
print(sum)

return的作用:
1.如果一个函数中存在多个return,只要执行了一个return就代表这个函数已经执行完成
2.return可以提前结束程序

函数的文档说明

函数的文档说明—对函数进行说明解释

def num(a, b, c):
    """
    该函数是用来计算3个数相加的结果
    :param a: 数字类型
    :param b: 数字类型
    :param c: 数字类型
    :return: 3个数求和结果的返回值
    """
    return a + b + c

sum = num(10, 20, 30)
print(sum)

单击函数名 ctrl+q 可以查看该函数的解释说明
help(函数名) 可以查看该函数的解释说明

函数的全局变量和局部变量

局部变量:定义在函数内部的变量,局部变量只能在函数内部进行调用
全局变量:定义在函数外部的变量全局变量作用在整个模块内部
在函数中,局部变量即使同名,也因为作用域不同没有影响
定义一个和全局变量同名的内部变量,在函数内部优先使用内部变量
局部变量只能在内部调用 在全局调用会报错NameError全局
global 函数: 用内部的变量修改同名的全局变量

函数的缺省参数

缺省参数:如果一个函数有参数, 而且这个参数设置了默认值, 称为缺省参数
如果一个形参没有对应的实参,就会使用默认值
作用:
1.简化了函数的调用
2.一个函数如果有缺省参数,那么缺省参数之后必须都是缺省参数

不定长参数的元组

不定长参数也是缺省参数

# 不定长参数的元组是通过下标索引来获取参数的
def args(*args):  # * 代表的是不定长参数   args 参数名
    print(args[0])  # 输出参数中的第一个数
    print(args)  # 输出参数
    print(type(args))  # 输出数据类型   tuple类型
    print(len(args))  # 输出参数的个数


args(1, 2, 3, 4, 5, 6, 7, 8, 9)  # 调用函数

不定长参数的字典

调用函数的时候不知道会传入多少个实参
不定长函数的字典是通过关键字(key)来获取参数的

def kwargs(**kwargs):
    print(kwargs)
    print(type(kwargs))   # 字典类型(dict)
    print(len(kwargs))
    print(kwargs["name"])
    print(kwargs["age"])
kwargs(name="小明",age=16)

函数的拆包和组包

拆包:将元组中的元素进行拆分
拆包的作用:适用于容器类型
拆包格式:

my_tuple = ("张三", 20, "男")
name, age, sex = my_tuple
print(name)
print(age)
print(sex)

组包格式:

new_name = "张三"
new_age = 13
new_sex = "男"
new_tuple = ()
new_tuple = new_name, new_age, new_sex
print(new_tuple)

两个变量之间的交换:

# 方法一
a = 20
b = 15
print("-----交换前:a=%d,b=%d----" % (a, b))
c = a
a = b
b = c
print("-----交换后:a=%d,b=%d----" % (a, b))
# 方法二
a = 20
b = 15
print("-----交换前:a=%d,b=%d----" % (a, b))
a = a + b
b = a - b
a = a - b
print("-----交换后:a=%d,b=%d----" % (a, b))
# 方法三
a = 20
b = 15
print("-----交换前:a=%d,b=%d----" % (a, b))
a, b = b, a
print("-----交换后:a=%d,b=%d----" % (a, b))

函数的引用

引用指在计算机中变量记录数据的一种方式 (数据通常装在硬盘或者内存空间中)
在Python中所有的数据都是引用类型
id( ) 查看一个变量在内存中的地址的标识(独立序号)

a = 20
b = a
print(id(a))
print(id(b))
# a和b的地址是一样的
a = a + b
print(id(a))
# a的值发生改变所以地址也发生改变   但b没发生改变

一个变量发生改变 变量的地址一定会发生改变
如果一个变量拥有了一个内存地址,那它就可以为所欲为

# 改变赋值  如果地址未改变,则这个数据类型是可变的数据类型   反之则这个数据类型是不可变的数据类型
# 可变的数据类型(以数列为例)
a = [1, 2, 3, 4, 5, 6]
print(id(a))
a.append(7)
print(id(a))
# 不可变的数据类型(以元组为例)
b = (1, 2, 3, 4, 5, 6)
print(id(b))
b = b + b
print(id(b))
# 元组是不可变的数据类型   无论它的值是否发生改变   都会使用不同的地址

可变的数据类型: list(列表),dict(字典),集合(ret)
b=b+b是重新赋值
b+=b 是对原来的数据进行修改
不可变的数据类型: str(字符串),元组(tuple)
b=b+b b+=b 都是重新赋值

猜你喜欢

转载自blog.csdn.net/Layfolk_XK/article/details/107480497
今日推荐