美文网首页
python基础篇08-函数

python基础篇08-函数

作者: 只知坚持_d778 | 来源:发表于2018-05-21 16:48 被阅读0次

函数:
就是功能的封装体

1.函数名就是标识符 遵循标识符的命名规则 (小驼峰)
2.参数:可以写 也可以不写

参数:
1.参数的个数 可以是任意个
2.参数类型可以是任意类型,由于python是弱类型语言 所以不用指定参数类型
3.括号后边有冒号
4.函数体注意缩进
5.return 写不写都可以
如果不写return语句 默认的return None
6.调用函数
函数名([参数])

函数的分类:
    1.没有参数 没有返回值
    2.有参数 没有返回值
    3.没有参数 有返回值 
    4.有参数 有返回值

在声明方法括号中的参数称为形式参数 简称形参
在调用方法时 传进的参数称为实际参数 简称实参
在参数传递的过程中 形参个数要和实参个数保持一致(可变参数除外)

流程控制语句:

1.break 用在循环中 条件成立 跳出循环体(一重循环) 没有结束当前函数

2.continue 用在循环中 条件成立 结束当次循环 继续下一次循环 也没有结束当前方法

3.return 用在循环 条件成立 跳出循环体(一重或者多重) 并且结束当前方法

参数类型:

  1. 可变和不可变参数

     可变类型:列表 字典 set
     不可变类型: int float str bool None 元组
    

参数是不可变类型:
如果值发生变化 互不影响

参数是可变类型:

1.如果是修改 指向没有发生变化 互相影响
2.如果是修改 指向发生变化 互不影响

例子:

#可变参数 指向没有发生变化
def f2(ls):
    ls.append(30)
    print(ls)

ls=[10,20,3]
f2(ls)
print(ls)
#可变参数 指向发生变化
def f3(ls2):
    ls2=[4,5,7]
    print(ls2)

ls2=[11,22]
f3(ls2)
print(ls2)
  1. 必选参数

     必须参数一定要在默认参数之前
    
  2. 默认参数
    如果调用函数传递参数就使用传递的参数
    如果不传递参数就是用默认参数

  3. 可变参数
    参数个数可变和不可变

  4. 关键字参数

#既有可变元组 又有可变字典
def fu8(*tup3,**kv):
    print(tup3)
    print(kv)
fu8(1,2,4,5,x="张三",age="30")

例子:

#必选参数 默认值参数 可变参数
def show(name,age,adres="中国",*tup4,**kw):
    print("name=%s"%name)
    print("age=%s"%age)
    print("adres=%s"%adres)
    print(tup4)
    print(kw)
show("老王",30,1,2,3,id="3",sex="男")

递归函数

递归能完成的循环也能完成
递归的特点 代码比较少
递归的缺点 占用内存比较大 速度比较慢
一般情况下如果数据比较大的话 不建议使用递归
数据比较大的话 建议使用循环

递归函数:
函数内部再调用自己

例子:3.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问到第24个月时,每个月的兔子总数为多少?

def ff(mon):
    if mon<=0:
        return 0
    if mon==1 or mon==2:
        return 1
    #声明变量表示上上个月的
    m1=1
    #上个月的
    m2=1
    #当月的
    m3=1
    while (mon-2)>0:
        #当月的=上个月的+上上个月的
        m3=m2+m1
        #把上个月的转换为上上个月的
        m1=m2
        #把当月的转换为上个月的
        m2=m3
        mon-=1  
    return m3
mm=int(input("请输入月份:"))
cout=ff(mm)
print("第%s个月兔子总数:%s对"%(mm,cout))
求第n个月=ff(n-1)+ff(n-2)
def ff2(mon):
    if mon<=0:
        return 0    
    if mon==1 or mon==2:
        return 1    
    return ff2(mon-1)+ff2(mon-2)
mm=int(input("请输入月份:"))
cout=ff2(mm)
print("递归求兔子问题 第%s个月兔子总数:%s对"%(mm,cout))

匿名函数

匿名函数的语法:
lambda [arg,arg2...,argn]:表达式

例子:

def haha(a,b):
    return a+b
c=haha(10,2)
print(c)
f1=lambda x,y:x+y
z=f1(10,2)
print(z)
f2=lambda ls:ls.append(12)
ls2=[1,2,3]
f2(ls2)
print(ls2)
print("**************")

def haha2(a,b):
    return a+b
print(haha2)
xixi=haha2
print(xixi)
xx=xixi(3,4)
print(xx)
def outter(fun):
    ret=fun(3,6)
    print(ret)
outter(haha2)
outter(lambda x1,y1:x1+y1)

局部变量和全局变量

全局变量:

  1. 在函数外部声明的变量,是全局变量

  2. 在函数内部,可以使用global关键字声明全局变量

     在函数中不能改变全局变量值
     如果在函数中修改全局变量的值
     可以使用global关键字
    

局部变量:
在函数内部声明的变量是局部变量
形式参数也属于局部变量

全局变量和局部变量作用域:
1.全局变量作用域:
全局变量整个py文件中都是有效的

  1. 局部变量作用域:
    局部智能声明在它的函数中使用
    局部变量超出声明它的范围 会被自动释放掉

注:在函数中,局部变量和全局变量重名时,在全局变量会被覆盖掉

x=40
def f3():
    x=30
    print(x)

f3()
print(x)

相关文章

  • python基础篇08-函数

    函数:就是功能的封装体 1.函数名就是标识符 遵循标识符的命名规则 (小驼峰)2.参数:可以写 也可以不写 参数:...

  • python基础笔记

    Python基础 函数:

  • 【小白福利、快速入门Python】之内置函数

    欢迎大家关注公众号【哈希大数据】python的内置函数――基础介绍总结篇68个内置函数python3内置了68个常...

  • Python基础篇之函数

    函数是具有特定功能可重复利用的代码块,有名字、参数(可选)、返回值(可选),又叫做方法。本篇介绍函数的定义、函数的...

  • Python入门

    Python3教程 安装Python 第一个Python程序 Python基础 函数 高级特性 函数式编程 模块 ...

  • 编程入门03:Python模块与库

    上一篇:编程入门02:Python基础语法 现在我们已经用过id()、input()、print()等多个函数,这...

  • python入门套路

    Python基础 基础数据类型 bool string list tuple dictionary 基础函数 he...

  • 一、基础

    基础篇为python基础内容

  • python基础-07-函数

    python基础-函数 1.函数的定义 例子: 2.python中函数的参数详解 必备参数demo: 默认参数de...

  • Python基础-函数

    Python基础-函数 1.函数定义 2.参数传值 3.内置函数

网友评论

      本文标题:python基础篇08-函数

      本文链接:https://www.haomeiwen.com/subject/cvafjftx.html