zoukankan      html  css  js  c++  java
  • 函数初识

    • 函数的定义与调用
    def func():  # 使用关键字def定义一个函数
        print('成功调用')
    func()  #使用函数名加括号调用一个函数
    • 函数的返回值

    函数的返回值分为三种情况

    1.无返回值

    2.有一个返回值

    3.有多个返回值

    函数返回值可以起到结束函数的作用

    def func(m):
        if m==1:
            print('成功调用,一个返回值')
            return 1  # 使用关键字return设置返回值
        else:
            print('成功调用多个返回值')
            return 1,2,3,4
    
    
    ret = func(1)  # 接受返回值
    print(ret)
    ret = func(2)  # 使用一个变量接受多个返回值时,将多个返回值组成元祖
    print(ret)
    ret1,ret2,ret3,ret4 = func(2)  # 使用规定个数个变量接受返回值
    print(ret1,ret2,ret3,ret4)
    • 函数的形式参数、位置参数和函数的传参

    函数的形式参数即在函数定义时设置的接受实际参数的参数

    形式参数有四种

    位置参数

    动态位置参数  *args  可以接受任意多个位置参数并将他们组合为元祖

    关键字参数

    动态关键字参数  **kwargs  可以接受任意多个关键字参数,并将他们组合为字典、

    形式参数的定义要按照位置参数,动态位置参数,关键字参数,动态关键字参数的顺序来

    函数的实际参数是指在函数调用时实际传给函数的参数

    实际参数分为位置参数和关键字参数

    函数实际参数的传递要参照,函数形式参数的定义顺序

    函数传参是指将实际参数传给位置参数

    def func(a, b, *args, c='c', **kwargs):
        print(a, b, args, c, kwargs)
    
    
    func('a','b',1,2,3,4,5,c='6',dd='d',ee='e')
    #输出结果为a b (1, 2, 3, 4, 5) 6 {'ee': 'e', 'dd': 'd'}
    •  在传参的时候可以使用*将原来的序列按顺序打散,并将序列的各个值传递给函数,或者使用**将字典打散按关键字传参
      def func(a,b,c,d):
          print(a,b,c,d)
      
      
      dic = {'a':'aa','b':'bb','c':'cc','d':'dd'}
      func(**dic)  # 使用**将字典打散,并向函数传递关键字参数
      lis = ['aa', 'bb', 'cc', 'dd']
      func(*lis)  # 使用*将序列按顺序打散,并将序列的各个值传递给函数

     如果函数参数的默认值是可变数据类型那么如果不传参数,那么就公用这个数据类型的资源

    def func(l=[]):
        l.append(1)
        print(l)
    
    
    func()  # 输出结果为[1]
    func()  # 输出结果为[1, 1]
    func([])  # 输出结果为[1]
    func()  # 输出结果为[1, 1, 1]
    func([])  # 输出结果为[1]
    func()  # 输出结果为[1, 1, 1, 1]
  • 相关阅读:
    弄懂JDK、JRE和JVM到底是什么
    精选Java面试题(二)
    精选Java面试题
    HttpPost请求将json作为请求体传入的简单处理方法
    Python在for循环中更改list值的方法
    vue 图片加载失败时,加载默认图片
    移动端,进入页面前空白,添加加载状态
    img 失效时 显示默认图片
    vue 全局组件的引用
    页面到达底部,加载更多
  • 原文地址:https://www.cnblogs.com/baisexiaoxuanfeng/p/10598110.html
Copyright © 2011-2022 走看看