1,定义函数(定义任何函数其前面要加def)
s = ‘定义函数‘ def my_len(): #定义函数 i = 0 for k in s: i += 1 print(i) my_len() #函数调用 #>>>4
2,关于函数中的return
- 函数没有返回时,有两种情况:
1,函数中没有return 2,函数中有return但是没有加返回值
- return的作用: return是结束此函数,并返回其要返回的值;
当程序运行到return时就会结束,不在继续运行这个函数
def func(): l = [3,5] for i in l: print(i) if i == 3: return #函数到这后结束,不会执行下面的,如果换成break, print(‘****‘) #只是结束了for的循环,还会执行函数,因此会执行下面的语句 ret = func() #>>>3 print(ret) #>>>None
3,返回值的3种情况 1,没有返回值——>返回None 1.1,不写return 1.2,只写return——>结束一个函数的继续 1.3,return None——>不常用 2,返回一个值 2.1,可以返回任何数据类型 2.2,只要返回就可以接收 2.3,如果在一个程序中有多个return,那么只执行第一个 3,返回多个值 3.1,用多个变量接收:有多少返回值就用多少变量接收 3.2,用一个变量接收:得到的是一个元组
4,参数 4.1,参数分类 4.1.1,没有参数 1,定义函数和调用函数时括号里都不写内容 4.1.2,有一个参数 2,传什么就是什么 4.1.3,有多个参数 3,位置参数 4.2,站在实参的角度上: 4.2.1,按位置传参 4.2.2,按关键字传参 4.2.3,混着用可以:但是,必须先按照位置传参,在按关键字传参,不能给同一变量传多个值
4.3,站在形参的角度上 4.3.1,位置参数:必须传,且有几个参数就传几个值 4.3.2,默认参数:可以不传,如果不传就是用默认的参数,如果传了就用穿的
4.4,调用函数的时候 4.4.1,按位置传: 直接写参数的值 4.4.2,按关键字: 关键字 = 值
4.5,定义函数的时候: 4.5.1,位置参数:直接定义参数 4.5.2,默认参数(关键字参数):参数名 = ‘默认的值’ 4.5.3,动态参数:可以接受任意多个参数,参数名前加* 4.5.4,定义的顺序:必须先定义位置参数,后定义默认参数
5,动态参数
5.1,只接收位置参数的动态参数,
加*的为位置参数的动态参数,动态参数可接收多个元素,并将接收的元素以元组的形式存放
def sum(*args): n = 0 for i in args: # 因为*args为动态参数,args元组方式处理 n +=i return n print(sum(1,2)) print(sum(1,2,3))
5.2,只接收关键字参数的动态参数 加**的参数为关键字参数的动态参数,动态参数可以接收多个元素,并将接收的元素以字典的形存放
def func(**kwargs): print(kwargs) func(a = 1,b = 2,c = 3) func(a = 1,b = 2)
5.3,动态参数的另一种传参方式
def func(*args): #站在形参的角度上,给变量加上*,就是组合所有传来的值 print(args) func(1,2,3) #>>>(1, 2, 3) l = [1,2,3] func(*l) #>>>(1, 2, 3) #站在形参的角度上,给一个序列加上*,就是将这个序列按顺序分解
6,函数的注释
def func(): ‘‘‘ 这个函数实现了什么功能 参数1: 参数2: :return: 返回的什么 ‘‘‘ pass
原文地址:https://www.cnblogs.com/eternity-twinkle/p/10500197.html
时间: 2024-10-21 02:50:38