Python函数

函数一直是一段代码的主要躯干,是以组织好的,可以重复使用的,可以实现单一或者关联功能的代码段;

函数可以提高应用的模块性和代码的重复利用率;

python提供两个类型的函数:内建函数和自定义函数;

函数的规则:

 1、函数代码块以def关键词开头,后接函数标识符和圆括号;

2、任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数

3、函数的第一行语句可以选择性地使用文档字符串用于存放函数说明

4、函数内容以冒号起始,并且缩进

5、return结束函数,选择性返回一个值给调用方,不用表达式的return相当于返回None

 

def  printme( str ):

     "打印传入的字符串“

     print(str)

     return 

 

python中有一点很重要,类型属于对象,变量是没有类型的;

参数有必备参数、关键字参数、默认参数、不定长参数;

必备参数以正常的顺序传入参数,调用时的数量必须与声明时是一样的;

关键字参数是与参数调用关系紧密相连,函数调用使用关键字参数来确定传入的参数值;

默认参数是如果没有传入,则被默认为默认值;

不定长参数是需要函数处理比声明时更多的参数;

def ChangeInt( a ):
      a = 10
      return

b = 2
ChangeInt(b)
print(b)

关键字参数

def printme( str ):
      print(str)
      return

printme(str = "nihao,wode ")

不定长参数

def exer(arg1, *unm):
      "打印任何传入的参数"
      print("输出")
      print(arg1)
      for e in unm:
            print(e)

            return

exer(10)
exer(70,60,50)

lambda创建匿名函数:其实lambda主体是一个表达式

sum = lambda arg1,arg2 :arg1+arg2

foo = [2,18,9,22,17,24,8,12,27]
newlist = filter((lambda x:x%3==0),foo)
print(list(newlist))

上面的例子输出的是 :

2
nihao,wode
输出
10
输出
70
60
50
[18, 9, 24, 12, 27]

   全局变量和局部变量

定义在函数内部就是局部变量,其生命期限就是在该函数运行期间;全局变量定义在该局部变量外

全局 变量想作用与函数内,需要添加global,来声明全局变量;

这个反转列表的函数其中range中的参数是需要int类型的,python3中,/是算出来是float类型的,而python2中是int类型;因此需要//

def reverse(li):
     for i in range(0,len(li)//2):
          tmp = li[i]
          li[i] = li[-i-1]
          li[-i-1] = tmp

l= [1,2,3,4,5]
reverse(l)
print(l)

反转列表第二个

def reverse1(Li):
     rev=[]
     for i in range(len(Li)):
          rev.append(Li.pop())

          return rev
l=[2,4,7,9]
print(reverse1(l))

其中函数的方法名也可以作为另一个函数的参数

def add(x,y):
    return x+y
def add_twice(func,x,y):
    return func(func(x,y),func(x,y))
a=5
b=6
print(add_twice(add,a,b))

 

posted @ 2021-09-23 20:55  吃蒸糕的狮子  阅读(96)  评论(0编辑  收藏  举报