python函数
Posted wangzihong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python函数相关的知识,希望对你有一定的参考价值。
函数
数学中函数的定义:
一般的,在一个变化过程中,假设有两个变量x、y,如果对于任意一个x都有唯一确定的一个y和它对应,那么就称x是自变量,y是x的函数。x的取值范围叫做这个函数的定义域,相应y的取值范围叫做函数的值域
编程语言中函数的定义:
函数是逻辑机构化和过程化的一种编程方法。
python中函数
函数初始
s = ‘中国人民‘ # # 写一段代码替换len计算字符长度 # count = 0 # for i in s: # count += 1 # print(count) # 写成一个函数 def my_len(): # 定义函数,声明函数 count = 0 for i in s: count += 1 print(count) return count # 返回值 my_len() # 调用函数 length = my_len() # 赋值,返回长度 print(length) ‘‘‘ 返回值: 1 没有返回值 不写return 只写return,结束一个函数,return后面的代码不再执行,结束该函数 return None 2 返回一个值 返回任何数据类型 只要返回就可以接受 如果在一个程序中有多个return,之执行第一个 3 返回多个值 多个返回值用多个变量接受,对应接受 多个返回值用一个变量接受,得到的是一个元祖 ‘‘‘ def func(): list = [1,2,3,‘python‘] for i in list: print(i) print(func()) # 没有返回值 def func(): list = [1,2,3,‘python‘] for i in list: print(i) return print(‘return后面的语句不执行‘) print(func()) # 没有返回值 def func(): list = [‘1‘,‘2‘,‘3‘,‘4‘] for i in list: if ‘3‘ in i: return # 找到需要的数字就结束函数 print(func()) # 返回多个变量,多个参数接受 def func(): return 1,2,3 r1,r2,r3 = func() print(r1,r2,r3) # 返回多个变量,用一个变量接受 def func(): return 1,2,3 r = func() print(r) # 解包 a,b,c = (1,2,3) # 元祖解包 print(a,b,c) a,b,c = [‘c‘,‘d‘,‘e‘] print(a,b,c) # 列表解包 a,b = {‘name‘:‘python‘,‘job‘:‘It‘} # 字典解包 print(a,b) ‘‘‘ 参数:传递一个值,函数接收一个值 形参:函数接收参数 实参:调用时传递的参数 ‘‘‘ def my_len(s): # 接受参数,形式参数,形参 count = 0 for i in s: count += 1 return count # 返回值 print(my_len(‘python‘)) # 调用传入的参数为实际参数,实参 ‘‘‘ 参数分类: 1 没有参数 定义函数和调用函数时括号里不写内容 2 有一个参数 定义传递一个参数 3 有多个参数 位置参数 必须传递,有几个参数就传递几个值 关键字参数 关键字 = 值 组合传参 必须先按照位置传参,再按照关键字传递参数 不能给同一个变量传递多个参数 ‘‘‘ # 传递两个参数 def my_sum(a,b): res = a + b return res print(my_sum(1,2)) # 位置传递参数 print(my_sum(b=2,a=1)) # 关键字传递参数 print(my_sum(3,b=5)) # 组合传参 ‘‘‘ 默认参数 1 调用函数的时候,默认参数可以不传递,不传递使用默认参数,传递使用该参数 2 应用场景:如安装软件时默认安装 定义函数的时候: 1 必须先定义位置参数,后定义默认参数 ‘‘‘ def classmate(name,sex=‘M‘): print(‘%s : %s‘%(name,sex)) classmate(‘python‘,‘M‘) classmate(‘java‘,‘F‘) classmate(‘php‘) ‘‘‘ 动态参数: *args *为定义方式关键字,可以接受任意多个参数 *args 后面定义的变量可以改变,约定为args 顺序:动态参数在位置参数和关键字参数之间 *args 只接受按照位置传递的参数 **kwargs 接受关键字传参的值,组成一个字典 *args必须在**kwargs之前 ‘‘‘ def sum(*args): print(args) # 出来的是一个元祖 n = 0 for i in args: n += i return n print(sum(1,2)) print(sum(1,2,3,4,5)) def func(**kwargs): print(kwargs) # 以字典形式 func(a=1,b=2,c=3) func(a=1,b=2) def func(*args,**kwargs): print(args,kwargs) func(1,2,3,a=5,b=‘a‘,list = [‘A‘,‘B‘]) ‘‘‘ 各个参数之间顺序: 位置参数 *args 默认参数 **kwargs ‘‘‘ def func(a,*args,sex=‘M‘,**kwargs): print(a,args,sex,kwargs) func(1,2,3,4,sex=‘F‘,b=‘5‘) # 动态参数的另外一种传递参数 def func(*args): print(args) list = [1,2,3,4,5] ‘‘‘ 实参传递序列时,给一个序列前面加上*,就是将这个序列顺序打散 ‘‘‘ func(*list) def func(**kwargs): print(kwargs) dict = {‘a‘:1,‘b‘:2,‘c‘:3} func(**dict) # 函数的注释 def func(a,*args,sex=‘M‘,**kwargs): ‘‘‘ 功能描述 :param a: :param args: :param sex: :param kwargs: :return: ‘‘‘ pass ‘‘‘ 函数: 1.函数的定义 def 2.函数的调用 func() 3.函数的返回值 return 4.函数的参数 4.1.形参 位置参数:必须传递 *args:可以接受多个位置参数 默认参数:可以不传 **kwargs:可以接受多个关键字参数 4.2.实参 按照位置传参数,按照关键字传递参数 ‘‘‘
以上是关于python函数的主要内容,如果未能解决你的问题,请参考以下文章