• 函数


    函数说白了,就是把一组代码合到一起,可以实现某种功能,需要再用到这个功能的话,直接调用这个函数就行了
    1.函数的定义如下
    定义函数使用def关键字,后面是函数名,函数名不能重复
    def my_open(fw):
    fw = open('a.txt','a+')
    fw.seek(0)
    my_open()

    2.位置参数:按照参数的位置来进行传参,比如说下面的reg函数,name和age就是位置参数,位置参数是必传的
    eg:
    def reg(name,age,sex='男'):
    #age、name必填参数,位置参数
    #sex是默认值参数,不是必传
    print('hello %s,age is %s,sex is %s'%(name,age,sex))
    reg(age='吴冰',name=38,sex='未知')
    3.默认参数:默认参数就是在定义形参的时候,给函数默认赋一个值,默认参数不是必填的,如果给默认参数传值的话,它就会使用你传入的值。如果使用默认值参数的话,必须放在位置参数后面定义
    eg:
    def reg(name,age,sex='男'):
    #age、name必填参数,位置参数
    #sex是默认值参数,不是必传
    print('hello %s,age is %s,sex is %s'%(name,age,sex))
    reg(age='吴冰',name=38,sex='未知')
    4.可变参数:可变参数用*来接收,后面想传多少个参数就传多少个,如果位置参数、默认值参数、可变参数一起使用的的话,可变参数必须在位置参数和默认值参数后面。可变参数也是非必传的
      #可变参数,也叫参数组,也不是必填的,它接收到的是一个元组
    #它把调用函数时穿进去的每一个参数都放到一个元组里
       def more_arg(name,age,sex='nan',*agrs):#位置参数、默认值参数、可变参数,可变参数会把后面多传的参数都放到args这个元组中
            #当然args名字是随便写的,不过一般我们都写args
                 print(name,age,agrs)
            more_arg('Marry',18,'nv','python','China')#调用
    5.关键字参数:关键字参数使用**来接收,后面的参数也是不固定的,想写多少个写多少个,当然也可以和上面的几种一起来使用,如果要一起使用的话,关键字参数必须在最后面。

    注意:使用关键字参数的话,调用的时候必须使用关键字传参。关键字参数也是非必传的。

      #关键字参数,接收的是一个字典,调用得用xx=11,也不是必填的

      #传入字典调用的时候就得写**{'age': 18, 'name': '吴冰'}

    eg:

                    def kw_arg(name,**kwargs):#位置参数、关键字参数,调用的时候会把传入的关键字参数放到kwargs这个字典中

                        print(name,kwargs)
                    kw_arg('sriba',sex='男',age=18)#调用,sex和age就是关键字调用
    6.必填参数、默认值参数、可变参数和关键字参数一起用
    def other2(name,country='china',*args,**kwargs):
    #如果必填参数、默认值参数、可变参数和关键字参数你要一起用的话
    #必须参照必填参数、默认值参数、可变参数和关键字参数的顺序接收,否则就会报错
    print(name)
    print(country)
    print(args)
    print(kwargs)
    other2('wubing','xxx')
    other2('wubing','beijing','python','changping',user='niuhanyang')
    7.关键字参数调用

    def write(filename,model,ending,user,os,money,other):
    print(filename)
    print(model)
    print(ending)
    print(user)
    print(os)
    print(money)
    print(other)
    write(os='Windows',user='wubing',model='w',filename='a.txt',ending='utf-8',money=9999,other='xxxxx') #可以不按顺序,不过要指定
    write('a.txt','w',money=99,os='windos')
    write(os='windos','a.txt')

    8.函数的返回值:为什么要有返回值呢,是因为在这个函数操作完之后,它的结果在后面的程序里面需要用到

      每个函数都有返回值,如果没有在函数里面指定返回值的话,在python里面函数执行完之后,默认会返回一个None,函数也可以有多个返回值,如果有多个返回值的话,会把返回值都放到一个元组中,返回的是一个元组。函数中的返回值使用return,函数在遇到return就立即结束。 

        #1、函数碰到return,立即结束这个函数
    #2、调用完函数之后,返回计算的结果
    #3、函数可以没有返回值,如果没有返回值的话,默认给你返回None
    #如果这个函数的处理结果咱们需要在别的地方用到,那你就得给函数返回值
    #如果函数return多个值的话,那么它会把多个值放到一个元组里面去
    eg1:
    def plus(a,b):
    c = a+b
    return c
    eg2:
    score1 = 50
    score2 = 90
    def echo():
    return score1,score2
    eg3:
    def calc(x,y):#这个就是定义了一个有返回值的函数
                    x*y
                    return c,x,y
                res calc(5,6)#把函数的返回结果赋值给res
                print(res)
    9.全局变量和局部变量
      #在函数里面定义变量叫局部变量,它只能在函数里面用,出了该函数外,就不能使用了
    #在函数外面定义的变量,是全局变量,在函数内也可以使用
    #如果想在函数里面修改全局变量的值,那么要先用global关键字声明
    #要修改全局变量是int、string的话,必须得写global
    #如果是字典和list的话,要修改的话,不能加global
    eg:
    name 'marry'#字符串全局变量
            names []#list全局变量
            print(name)
            print(names)
            def test():
                global name #修改name的值就需要用global关键字
                name 'Sriba'
                names.append(name)#修改全局变量names的值
                return names
           test()调用函数
           print('修改后',name)
           print('修改后names',names)




  • 相关阅读:
    动态生成 Excel 文件供浏览器下载的注意事项
    JavaEE 中无用技术之 JNDI
    CSDN 泄露用户密码给我们什么启示
    刚发布新的 web 单点登录系统,欢迎下载试用,欢迎提建议
    jQuery jqgrid 对含特殊字符 json 数据的 Java 处理方法
    一个 SQL 同时验证帐号是否存在、密码是否正确
    PostgreSQL 数据库在 Windows Server 2008 上安装注意事项
    快速点评 Spring Struts Hibernate
    Apache NIO 框架 Mina 使用中出现 too many open files 问题的解决办法
    解决 jQuery 版本升级过程中出现 toLowerCase 错误 更改 doctype
  • 原文地址:https://www.cnblogs.com/MLing/p/6980083.html
Copyright © 2020-2023  润新知