zoukankan      html  css  js  c++  java
  • day 08 函数

    函数初始:

      什么是函数?

        函数:是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段

        一个函数封装一个功能。

        1,减少重复代码。

        2,增加代码的可读性。
    函数的结构

    def my_len():      # def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。
        s = 'abcdefg'   # 函数体
        count = 0
        for i in s:
            count += 1
    
    
    my_len()    #  调用函数

     def 函数名():
      函数体
      函数的返回值

    函数人返回值:  return

    return 有两个作用

    1、结束整个函数

    2、给函数的执行者(调用者)返回值

      return  单个值 ------>  单个值(数据类型不变)

      return 多个值 ----> 返回一个元组(多个值)

    #函数定义
    def mylen():
        """计算s1的长度"""
        s1 = "hello world"
        length = 0
        for i in s1:
            length = length+1
        return length     # 将length返回给 mylen()
    
    #函数调用
    str_len = mylen()
    print('str_len : %s'%str_len)

    1、不写return返回None,return后面不加返回值,也返回None

       第一个函数没写return,返回一个None

    2、return可以返回一个值

      

    #函数定义
    def mylen():
        """计算s1的长度"""
        s1 = "hello world"
        length = 0
        for i in s1:
            length = length+1
        return length
    
    #函数调用
    str_len = mylen()
    print('str_len : %s'%str_len)

    3、return可以返回多个值,多个值以元组的形式返回,可以用多个值来接受

    def sb():
        return 1, 2, 3, 4
    
    
    reg = sb()
    print(reg)  # 以元组的形式返回一个值  (1, 2, 3, 4)
    a, b, c, d = reg  # 用 a,b,c,d 接收(1,2,3,4)
    print(a, b, c, d)

    函数的参数

    def date(a, b):  # 函数的定义:形参,形式参数
        print(a, b)
        print('打开探探')
        print('附近的人')
        print('左滑一下')
        print('右滑一下')
        print('锁定目标,联系')
        print('相约...')
    
    
    x = 2
    y = 3       # 把x,y的值传给a,b。然后打印a,b
    date(x, y)  # 函数的执行者:实参,实际的参数

    实参分三种:

      1、位置实参  :    从左至右一一对应

      2、关键字实参 :  一一对应,顺序随便

      3、混合传参:   位置参数一定要在关键字参数前面

    # 混合传参的例子
    def date(meetplace, sex, positon, soft):
        print('打开手机')
        print('打开%s软件,搜索%s附近的%s' % (soft, positon, sex))
        print('左滑一下')
        print('右滑一下')
        print('锁定目标,联系')
        print('相约%s' % (meetplace))
    
    
    date('酒吧', soft='微信', sex='girl', positon='深圳南山区')  
    # '酒吧'  是位置参数,需要放在所有关键字参数的前面

    形参也分三种:

      1、位置形参:    从左至右,一一对应

      2、默认形参:   放在位置参数后面

      3、万能形参:  接受实参角度所有的位置参数,关键字参数    (*args, **kwargs)

    默认形参

    def date(meetplace,positon,soft,sex='girl'):   # 默认形参要 sex=girl 在位置形参后面
        print('打开手机')
        print('打开%s软件,搜索%s附近的%s' % (soft, positon, sex))
        print('左滑一下')
        print('右滑一下')
        print('锁定目标,联系')
        print('相约%s' %(meetplace))
    date('酒吧',soft='微信',positon='深圳南山区',sex='laddyboy')

    默认形参的陷阱

    def func1(a, l1=[], l=[]):
        l.append(a)
        return l
    
    
    # print(func1(666))  # [666]
    # print(func1(22))   # [666,22]   # 陷阱 传22打印的却是 [666,22]
    print(func1(33, l=[], l1=[1]))  # [33]  实参传给默认形参时,实参可以是位置实参或者关键字实参

    万能参数 :两个形参参数,接受我所有的位置参数,关键字参数 (*args , **kwargs)

    def kw(*args, **kwargs):
         print(args)
         print(kwargs)
    
    
    kw(1,2,3,4,5,6,'你好',sex='man',place='白石洲')
    
    # 打印结果
    # (1, 2, 3, 4, 5, 6, '你好')
    # {'sex': 'man', 'place': '白石洲'}
    
    
    


    三元运算

    # 写一个函数,完成一个功能: 给函数传入两个数字对象,将较大的数字返回给函数的调用者。
    def max1(a, b):
        return a if a > b else b    # if a>b 输出 a  else  b
    
    
    ret = max1(100, 10)
    print(ret)
  • 相关阅读:
    DP问题之最长非降子序列
    CentOS 6.8 编译安装MySQL5.5.32
    [Linux] killall 、kill 、pkill 命令详解
    编写登陆接口
    python学习day01
    python购物车程序
    ERROR:Attempting to call cordova.exec() before 'deviceready'
    BSF脚本引擎‘改变’Bean
    Solr安装配置
    amchart配置备忘
  • 原文地址:https://www.cnblogs.com/echo2019/p/10190445.html
Copyright © 2011-2022 走看看