当前位置: 首页 > 科技 > 人工智能 > Python3中函数基础_腾讯新闻

Python3中函数基础_腾讯新闻

天乐
2020-08-04 16:12:57 第一视角

函数是对功能或者动作的封装,它的主要目的是:最大化代码重用和最小化代码冗余,以及对复杂过程的分解。

1:函数的定义与调用

在Python中使用如下的语法进行定义一个函数:

def name(arg1,arg2,... argN): statements return value

def语句是一条可执行的语句,当它运行的时候,会创建一个新的函数对象。并将它赋值给一个变量名(也就是函数名)。

def add(a,b): # 代码执行到这里时,创建了一个函数对象,并把它赋值给add print('a=',a,' b=',b) return a+b # 函数调用:print(add(1,3))print(add('1','3'))print(add([1,2,3,4],['abc','ert']))

2:函数的返回值

在Python中每个函数都有一个返回值,如果自己没有显式返回,函数默认返回None,其中函数返回值可以是任意类型的单个值,可以是任意类型的多个值。

# 1:返回默认值 Nonedef print_msg(s): print(f'hello {s}') ret = print_msg(111)print(ret) # None # 2:返回单个值def add(a,b): # 代码执行到这里时,创建了一个函数对象,并把它赋值给add print('a=',a,' b=',b) return a+bret = add(1,3)print(ret) # 返回4 ret = add('hello','ixusy88')print(ret) # 返回 helloixusy88 # 3:返回多个值def add(a,b): # 代码执行到这里时,创建了一个函数对象,并把它赋值给add print('a=',a,' b=',b) return a,b,a+b # 返回元组;也可以返回列表等其他类型数据ret = add(1,3)print(ret) # 返回4 ret = add('hello','ixusy88')print(ret) # 返回 ('hello', 'ixusy88', 'helloixusy88') # 也可以 使用序列赋值:a,b,ret = add('hello','ixusy88')print(a,b,ret ) # 输出:hello ixusy88 helloixusy88

3:形参和实参

形参:在函数声明的位置。给出来的参数叫形参。形式上的一个参数. 用一个变量来表示;

形参的分类

1. 位置参数 按照位置来声明形参

2. 默认值参数, 当给参数传递值的时候,默认值不起作用;不给值,默认值起作用.;保证你至少有个值能用

顺序: 位置参数必须放在前面。默认值参数必须放在后面

实参:在函数调用的时候,把实参的值赋值给形参的过程叫传参;在函数调用的地方给出的具体的值叫实参. 实际参数;

实参的分类:

1. 位置参数.:按照位置, 给形参赋值;

2. 关键字参数:按照形参的名字给参数赋值;

3. 混合参数,:位置参数必须放在前面, 关键字参数放后面;

# 形参,定义函数的时候的参数:位置参数必须放在前面,默认值参数必须放在后面def show_msg(name,age,sex='男'): msg = f'name is {name}, age is {age},sex is {sex}. ' print(msg) # 实参:调用函数的时候,实际给函数传递的值。# 位置参数:按照定义的位置传递show_msg('ixusy88',18) # 关键字参数:使用默认值show_msg(name='hahha',age=38)# 关键字参数:不使用默认值show_msg(name='hahha',age=38,sex='女') # 混合参数:位置参数必须放在前面, 关键字参数放后面;show_msg('混合参数hahha',age=38,sex='女')

4:参数传递

在Python中参数的传递其实就是赋值操作,是变量名给变量名赋值(即通过对象引用),其结果就是两个变量指向了相同的对象:

# 不可变对象:def func(a): a = 200 # 这个的修改不会影响到外部 print('0-----:',id(a),a)s = 100 func(s)print('1-----:',id(s),s) """输出结果:0-----: 1775928288 2001-----: 1775925088 100"""print('*'*60) # 可变对象:def func_2(a): a[0] = 100 # 这里的修改会影响到外部的变量,因为两者都指向一个可变数据类型。 print('0-----:',id(a),a) lst = [1,2,3]print('1-----:',id(lst),lst)func_2(lst)print('2-----:',id(lst),lst) """1-----: 2036762659272 [1, 2, 3]0-----: 2036762659272 [100, 2, 3]2-----: 2036762659272 [100, 2, 3]"""

提示:支持键盘“← →”键翻页
为你推荐
加载更多
意见反馈
返回顶部