• 函数相关内容


    定义一个函数:

    1 def sayhi():                          #定义函数
    2     print('hello I am nobody')
    3 sayhi()          #调用函数

    函数参数的定义:

    1 def sayhi(name):        #定义函数时,括号里写的叫形参
    2     print('hello,',name, '.my name is black girl,','约吗?-_-')
    3 sayhi('Alex')           #调用函数时,括号里写的叫实参。
    4 
    5 def cal(x,y):
    6     res=x*y
    7     print(res)           #调用时,实参传递给形参,一一对应
    8 cal(3,5)                 #3传给x,5传给y

    默认参数:

    1 def stu_info(name,age,course,country='china'):    #把china作为country的默认参数,默认参数必须写在最后
    2 print('*******学生信息*******') 3 print('姓名:',name) 4 print('年龄:',age) 5 print('国籍:',country) 6 print('课程:',course) 7 stu_info('王铁锤',23,'python') #不传国籍,则默认为china 8 stu_info('杨叫春',27, '高数') 9 stu_info('山本一狼',35, '量化金融','日本')

     关键参数:

    1 def stu_info(name,age,course,country='china'):
    2     print('*******学生信息*******')
    3     print('姓名:',name)
    4     print('年龄:',age)
    5     print('国籍:',country)
    6     print('课程:',course)
    7 stu_info('王铁锤',course='python',age=23)     #使用关键参数

     非固定参数:把报警信息传送给运维人员

     1.形参前面加星号

     方式一:

    def send_alert(msg,*args):
         print(msg,args)
    send_alert('有黑客侵入','Alex','岳云鹏','铁锤')

      方式二:调用时自己打包传给形参

    1 def send_alert(msg,*args):
    2     print(msg,args)
    3 send_alert('有黑客侵入',*['Alex','岳云鹏','铁锤'])    #以列表或元组的形式自己打包,前面要加*

     2.形参加**,以字典形式接收

     方式一:

    1 def send_alert(msg,**kwargs):
    2     print(msg,kwargs)
    3 send_alert('有黑客侵入',name='ji',age=23)    #以列表或元组的形式自己打包,前面要加*

     方式二:

    1 def send_alert(msg,**kwargs):
    2     print(msg,kwargs)
    3 d={'name': 'ji', 'age': 23}
    4 send_alert('有黑客侵入',**d)

     返回值:

     1 def f():
     2     print('OK')
     3     return 5        #一个返回值
     4 a=f()
     5 print(a)
     6 
     7 def f():
     8     print('OK')
     9     return 5,'ko',[1,5,'p']     #对个返回值会被打包成一个元组
    10 a=f()
    11 print(a)

     作用域

    count=10          #全局变量
    def outer():
        count = 5    #E层局部变量
        print(count)
        def us():
            count=7    #local层局部变量
            print(count)
        us()
    outer()
    print(count)

     高阶函数:

    def sq(n):
        return n**2
    print(sq(7))
    def foo(a,b,f):
        return f(a)+f(b)
    print(foo(2,3,sq))       #把函数名sq作为实参传给形参f,则foo()就是一个高阶函数

     函数名作返回值:

    def outer():
        x=10
        def inner():
            print(x)
        return inner    #inner变量装的是inner()函数的地址,把它返回给了outer()
    outer()()           #调用inner()函数
    print(outer())     #outer()指向inner()函数
    print(outer)       #outer变量装的是outer()函数的地址

     递归函数

     实现求n的阶乘:

    def fac(n):
        ret=1
        for i in range(1,n+1):
            ret=ret*i
        return ret
    print(fac(5))

     用递归实现求n的阶乘:

    def fac(n):
        if n==1:        #递归结束的条件
            return 1
        return n*fac(n-1)
    print(fac(5))

     用递归输出Fibonacci数列:

    def fibo(n):
        if n<=1:        #递归结束的条件
            return n
        return fibo(n-1)+fibo(n-2)
    for i in range(8):
        print(fibo(i))
    print(fibo(8))

     用内置函数reduce和lambda实现求阶乘:

    from functools import reduce
    print(reduce(lambda x,y : x*y, range(1,6)))

     




  • 相关阅读:
    服务器上传大小限制 --- 来自 FastAdmin 项目开发的引发的问题 (TODO)
    英语中的各种“破坏”
    PADS Layout CAM 的中高级焊盘选项
    FastAdmin 推荐 Git 在线学习教程
    Vue 将样式绑定到一个对象让模板更清晰
    jQuery动态的给页面中添加一条样式表的链接
    页面根据不同的情况添加不同的样式表
    jQuery屏蔽浏览器的滚动事件,定义自己的滚轮事件
    如何判断自己的浏览器支持的是javascript的那个版本
    ie下 iframe在页面中显示白色背景 如何去掉的问题
  • 原文地址:https://www.cnblogs.com/Finance-IT-gao/p/10367245.html
Copyright © 2020-2023  润新知