函数(学生(何)总结)

                                               函数

一 函数的定义

语法形式如下:

def <函数名>(<参数列表>):

   <函数体>

   return <返回值列表>

二 函数的返回值

  1. return语句同时可以将0个、1个或多个函数运算完的结果返回给函数被调用处的变量
  2. 函数可以没有return,此时函数并不返回值

三 函数的参数

一般格式为:

        函数名( <实际参数表> )

  1. 形参:在定义函数时函数名后面圆括号中的变量名

   实参:在调用函数时,函数名后面圆括号中的变量名

  1. 为形参指定默认值

def fun(arg1=1,arg2=2,arg3=3):

   print( 'arg1 = ', arg1)

   print( 'arg2 = ', arg2)

   print( 'arg3 = ', arg3)

注意:如果调用方没有为该参数传递数值的话,则使用默认值,如果调用该函数的时候为该参数传递了数值的话,则使用传递的值。如果函数的某个参数指定了默认值,则这个参数后的所有参数都必须指定默认值。

  1. 函数参数传递方式
  1. 关键字绑定:调用时在括号内写成“参数名=数值

  info(age=25, name="王五",sex='男')

  1. 位置绑定:调用函数时,实际参数的数量、顺序都和形式参数一致,实参和形参从左到右一一对应

  def info(name,age,sex): 

print('name :',name,'age:',age,'sex:',sex)

info('张三', 30, '男')

注意:位置绑定参数和关键字绑定参数可以在满足特定条件时混和使用,该条件是:所有关键字绑定参数必须出现在位置绑定参数之后

四 函数的变量

  1. 全局变量(global):在函数之外定义的变量,在程序执行全过程有效。
  2. 局部变量(localInt):在函数内部使用的变量,仅在函数内部有效。

g = 0             #定义全局变量

def bindVar():

    global g                #在函数中声明g是全局变量

    g = g+1    

    return g

print(bindVar())            #输出 1

print('g =',g)               #输出 g = 1

注意:如果定义了一个全局变量,然后又在函数中用同样的名字定义了一个局部变量,那么,在局部变量的作用范围内(也就是该函数内),全局变量不起作用,只有局部变量起作用。

五 函数的闭包和递归

  1. 函数闭包:三大要点: 
    1.)闭包函数必须有内嵌函数 
    2.)内嵌函数需要引用该嵌套函数上一级namespace中的变量 
    3.)闭包函数必须返回内嵌函数 

def f1():

x = y = 2

def f2():

      y = 3

      print('f2 函数内 x =', x)

      print('f2 函数内 y =', y)

f2()

print('f1 函数内 x =', x)

print('f1 函数内 y =', y)

f1()

  1. 递归函数:函数定义中调用函数自身的方式称为递归
  1. )阶层

2)字符串反转

def rvs(s):

   If s == “”:

     return s

   else:

     Return rvs(s[1:])+s[0]

  1. 斐波拉契数列

def f(n):

   If n == 1 or n ==2:

     return 1

   else:

     return f(n-1)+f(n-2)

  1. 汉诺塔

 def hanoi(n,A,B,C):

    if n==1:

        print("move",A,"->",C)

        return

    else:

        hanoi(n-1,A,C,B)

        hanoi(1,A,B,C)

        hanoi(n-1,B,A,C)

n = int(input("请输入盘子数"))

print("移动",n,"个盘子的步骤是:")

hanoi(n,"A","B","C")

六 内置函数

皓悦编程记技术交流群:830200766

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值