python之函数
Posted amrice
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python之函数相关的知识,希望对你有一定的参考价值。
函数是一个组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。
你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
一、定义一个函数
你可以定义一个有自己想要的功能的函数,以下是简单的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
def ChangeInt(a): a = 10 b = 2 ChangeInt(b) print(b)
def changeme(mylist): "修改传入的列表" mylist.append([1, 2, 3, 4]) print("函数内取值: ", mylist) return # 调用changeme函数 mylist = [10, 20, 30] changeme(mylist) print("函数外取值: ", mylist)
def printme(str): "打印任何传入的字符串" print(str) return # 调用printme函数 printme(str="My string")
# 可写函数说明 def printinfo(name, age): "打印任何传入的字符串" print("Name: ", name) print("Age ", age) return # 调用printinfo函数 printinfo(age=50, name="miki");
def printinfo(args,*vartuple): "打印任何传入的参数" print(args) for var in vartuple: print(var) return # 调用printinfo 函数 printinfo(10) printinfo(70, 60, 50)
二、实参和形参
#定义函数括号里的一般叫形参 #调用时括号里传递的参数一般叫实参 #比如: def students(age): print(‘my age is %s‘ % age) students(18) age就是形参,18就是实参
三、参数的具体应用
‘‘‘ 1、位置参数:按照从左到右的顺序定义的参数 位置形参:必选参数 位置实参:按照位置给形参传值 ‘‘‘ def foo(x,y): print(x,y) foo(1,2) #结果:1,2 ‘‘‘ 2、关键字参数:按照key=value的形式定义的实参 无需按照位置为形参传值 注意的问题: 1. 关键字实参必须在位置实参右面 2. 对同一个形参不能重复传值 ‘‘‘ def foo(x,y): print(x,y) foo(y=2,x=1) 结果:1,2 ‘‘‘ 3、默认参数:形参在定义时就已经为其赋值 可以传值也可以不传值,经常需要变得参数定义成位置形参,变化较小的参数定义成默认参数(形参) 注意的问题: 1. 只在定义时赋值一次 2. 默认参数的定义应该在位置形参右面 3. 默认参数通常应该定义成不可变类型 ‘‘‘ def foo(x,y=2): print(x,y) foo(1) #结果:1,2 foo(1,3) #结果:1,3 ‘‘‘ 4、可变长参数: 可变长指的是实参值的个数不固定 而实参有按位置和按关键字两种形式定义,针对这两种形式的可变长,形参对应有两种解决方案来完整地存放它们,分别是*argsh和**kwargs ‘‘‘ #*args:传递的参数会变成元组 def foo(x,y,*args): print(x,y,args) foo(1,2,3) #结果:1 2 (3,) #**kwargs:传递的参数会变成字典 def foo(x,y,**kwargs): print(x,y,kwargs) foo(1,2,a=3,b=4) #结果:1 2 ‘a‘: 3, ‘b‘: 4 函数参数的传递
四、return语句
return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。之前的例子都没有示范如何返回数值,下列变告诉你怎么做:
# 可写函数说明 def add_sum(arg1, arg2): # 返回2个参数的和." total = arg1 + arg2 print("函数内 : ", total) return total # 调用sum函数 total = add_sum(10, 20)
return它是函数的执行结果的返回值,return往下的代码将不会执行(只能用在函数体内) return就是函数调用本身的结果 return可以返回任意的数据类型 Def func(a): print(‘this is test func‘) return0 print(‘123‘) func(1) Def func(a): print(‘this is test func‘) If a==0: print(‘aaa‘) return0 Elif a==1: print(‘bbb‘) return1 Elif a==2: print(‘cccc‘) return2 else: print(‘sb‘) return3 func(0) func(1) func(2) func(3)
五、函数的特性
#函数可以被引用 def f1(): print(‘this is f1‘) return ‘ok‘ res = f1() print(res) #函数可以当参数传递 def foo(a): print(a) def bar(b): print(b) bar(foo(‘你好‘)) #嵌套函数 def f1(): def f2(): def f3(): print(‘this is f3‘) f3() f2() f1() 函数的特性
六、匿名函数
info = ‘li‘:2000, ‘zhao‘:35000, ‘wu‘: 25000, ‘du‘: 30000 #max print(max(info,key=lambda k: info[k])) #sorted print(sorted(info,key=lambda k: info[k],reverse=True)) #map name = [‘zhao‘, ‘du‘, ‘wu‘] res = map(lambda name: ‘%s_NB‘ % name,name) print(list(res)) #filter name = [‘zhao_NB‘, ‘du_NB‘, ‘wu‘] res = filter(lambda name: name.endswith(‘NB‘),name) print(list(res)) max,sorted,map,filter
以上是关于python之函数的主要内容,如果未能解决你的问题,请参考以下文章