python基础:你真的了解函数吗?

hello,这里是GUIDM 这一篇是python基础函数篇,希望这张内容对您能有所帮助。

函数-代码段。
功能单一 复用性
创建一个函数三要素:
1、函数名
命名规范:顾名思义、驼峰法(大驼峰【定义类名时】ClassName、小驼峰getName)、下划线法。标识符-**除关键字之外,英文、数字、下划线、中日韩常用unicode字符。
2、参数-形参、实参
3、返回值

函数写好以后要调用

格式:
def 函数名(传入参数):

​ 函数功能体

​ return 返回值

先定义函数,后调用函数。

参数和返回值不需要可省略。

def getSum() :
    a = 1
    b = 5
    sum = a+b
    print('a+b=', sum)
getSum() #函数名可以理解为变量
def getSumb(a,b): #带固定参数无返回值
    sum1 = a+b
    print("a+b=",sum1)
getSumb(1,5)
def getSum(a,b):#带参有返回值
    sum = a+b
    return sum
s = getSum(1,5) #有返回值的函数一定要拿到返回值,保存到一个变量中。

return直接结束函数的调用

自动销毁、回收资源。

def loginIn(user_name,password):
    if user_name == 'admin' and password == '123456':
        #print('登陆成功!')
        return user_name, password#以元组的形式返回
    else:
        #print('登陆失败!')
        return 1
g = loginIn('admin','123456')
print(g)
def getMax(a, b):
    num_max = max(a, b)
    return num_max
max = getMax(2, 4)
print('最大数为:{}'.format(max))

变量作用

1、全局变量

在参数体内可不可以修改值?-地址、值

参数的类型有关:

  1. 值变地址也变:int float str tuple bool
  2. 值变地址不变:list(有序、可以重复) dict set(无序、不重复)

2、局部变量:定义在函数体内,global

局部变量会随着函数体的销毁而销毁。

3、同名问题-多态 函数体内优先访问局部变量。

参数传递:c中是可以指定传递方式(值传递、地址传递)

​ python中为地址传递。

id():返回对象的内存地址。

def getSum(a,b):
    a = 10
    print(id(a))
    print('函数体内局部变量a的内存地址:', id(a))
    sum = a+b
    return sum
a = 100
print('全局变量a的内存地址:',id(a))
b = 300
print('a+b=', getSum(a, b))

参数:

1、必须参数:个数、顺序

2、关键字参数:乱序

3、默认参数:放在所有参数列表的后面

4、可变长参数

​ 1)一个星号–元组类型

​ 2)两个型号–字典类型

def getSum(a,b,c,*d)#加一个*号的变量存放的是未命名的参数,元组的格式。

abs():python内置的函数,用于求绝对值。

函数多返回值
def test_return():
    return 1, 2
x,y = test_retrun()

变量之间用逗号隔开,支持不同类型的数据return,按顺序接收数据。

函数的多种传参方式
  1. 位置参数:调用函数时根据函数定义的参数位置来传递参数,传递的参数和定义的参数的顺序及个数必须一致。
  2. 关键字参数:函数调用的时候,通过”键=值“形式传递参数,可以让函数更加清晰、容易使用,同时也清除了参数的顺序要求。函数调用时如果有位置参数时,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序。
  3. 缺省参数:传递参数的时候可以设置一个默认值,调用函数时可不传该 参数的值,默认的参数必须写到最后面。
  4. 不定长参数:也叫可变参数,用于不确定调用的时候会传递多少个参数。当调用函数时不确定参数个数时,可以使用不定长参数。
匿名函数

def关键字,可以定义带有名称的函数,lambda关键字,可以定义匿名函数(不名称)。

无名称的匿名函数,只可临时使用一次。

lambda 传入参数 :函数体(一行代码)

猜你喜欢

转载自blog.csdn.net/m0_61901625/article/details/131261072