• Day 9 初识函数


    一、认识函数
    函数:对代码块和功能额封装和定义
    语法:
    def 函数名(形参):
    函数体

    函数名(实参) #调用函数
    这里的函数名的命名规则和使用变量基本一样
    函数体:就是函数被执行之后要执行的代码
    下面来定义一个约x功能:
    def yue():
        print("拿出手机")
        print("打开陌陌")
        print("找个漂亮的妹子")
        print("问她,约不约啊?")
        print("OK,走你")
      定义完了,但是这个时候去执行,会发现什么都没有发生,因为我只定义了一个函数,但是还没有执行过这个函数。
      函数的调用:使用函数名可以调用函数,写法:函数名(),这个时候函数的函数体就会被执行了
    # 调用yue()函数
    yue()
    结果:
    拿出手机
    打开陌陌
    找个漂亮的妹子
    问她, 约不约啊?
    oK. 走你!
      如果我还想约呢?多次调用就可以了,很方便。
    # 调用yue()函数
    yue()
    yue()
    yue()
    yue()
    yue()
      继续分析,约完了之后你需要得到一个结果吧,比如:约完得到了一个萝莉,少妇,大妈。总得有个结果,那么这个结果怎么来描述和获得呢?这个就涉及到函数的返回值的问题。



    二、函数的返回

    执行完函数之后,我们可以使用return来返回结果。
    1.函数中遇到return,此函数结束,不再继续执行。
    def yue():
        print("约你")
        print("约我")
        print("约他")
        return
        print("约谁呀") # 这句话不会被执行
    yue()



    结果:

    约你
    约我
    约他

     
      

    2.给函数的调用者一个访问结果
    def yue():
        print("约你")
        print("约我")
        print("约他")
        return "美女一枚"
    girl = yue()
    print(girl) # 美女一枚

    结果:

    约你
    约我
    约他
    美女一枚

     
      


    函数的返回值可以有多个结果
    def yue():
        print("约你")
        print("约我")
        print("约他")
        return "美女一枚", "萝莉一枚"
    girl = yue()
    print(type(girl)) # tuple
      总结:
      1.遇到return,此函数结束,函数后面的东西将不再执行
      2.return 返回值
      关于返回值:
      如果return什么都不写 或者 干脆不写return,那么返回的就是None
      如果return后面写了一个值,则调用者可以接收一个结果
      如果return后面写了多个结果,则调用者可以接收一个元组(tuple)==不可变==,调用者可以直接解构成多个变量


    三、函数的参数

    参数:函数在调用的时候指定具体的一个变量的值,就是参数
    语法:
    def 函数名(参数列表):
    函数体
    代码改一下:
    def yue(chat):
        print("拿出手机")
        print("打开"+chat)
        print("找个漂亮的妹子")
        print("约不约")
    yue("陌陌")
    yue("微信")
    yue("探探")
    
    结果: 拿出手机 打开陌陌 找个漂亮的妹子 约不约 拿出手机 打开微信 找个漂亮的妹子 约不约 拿出手机 打开探探 找个漂亮的妹子 约不约
      

    def yue(chat): # chat 形参
        print("拿出手机")
        print("打开"+chat)
        print("找个漂亮的妹子")
        print("约不约")
    yue("陌陌") # 实参
    len("字符串") # "字符串"在这里就是实参
    print("麻花藤") # "麻花藤"就是实参




    关于参数:
      1.形参
      写在函数声明的位置的变量叫形参,形式上的一个完整,表示这个函数需要xxx
      1.1位置参数
      1.2默认值参数
      1.3混合 位置 默认值
      注意, 必须先声明位置参数, 才能声明默认值参数
       1.4动态传参,*args, **kwargs
       2.实参
       在函数调用的时候给函数传递的值,叫实参,实际执行的时候给你函数传递的信息,表示给函数xxx
       2.1位置参数
       2.2关键字参数
       2.3混合参数
       注意: 在使用混合参数的时候, 关键字参数必须在位置参数后面
       顺序:位置, 关键字
       3.传参
       给函数传递信息的时候将实际参数交给形式参数的过程被称为传参。


    实参的分类:
    1. 位置参数. 按照位置。 给形参赋值
    2. 关键字参数. 按照形参的名字给参数赋值
    3. 混合参数, 位置参数必须放在前面。 关键字参数放后面

    def chi(good_food, no_good_food, drink):
        print("我要吃",good_food, no_good_food, drink)
    
    # chi("大米饭", "冰峰", "炸鸡")
    # chi(drink="哇哈哈", no_good_food="薯条", good_food="盖浇饭")
    chi("小米饭", "辣条", drink="可乐")

    形参的分类(3大类)
    1. 位置参数 按照位置来声明形参
    2. 默认值参数, 当给参数传递值的时候。 默认值不起作用, 不给值。 默认值起作用. 保证你至少有个值能用
    顺序: 位置参数必须放在前面。 默认值参数必须放在后面

    def regist(name,sex="", age=18): # 语法上不允许
        print(name, age, sex)
    
    regist("刘伟", 22)
    regist("李铁帅", 27)
    regist("高晓燕", 18, "")
    regist("李铁帅", 27)
    regist("李铁帅", 27)
    regist("李铁帅", 27)
    regist("李铁帅", 27)
    regist("李铁帅", 27)
    函数:对功能或者动作的封装
    登陆验证
    def login(username, password):
        if username == 'alex' and password == "123":
            return True
        else:
            return False
    
    # 使用场景
    name = input("请输入你的账号:")
    pws = input("请输入你的密码:")
    if login(name, pws):
        print("进入刘伟的空间")
    else:
        print("用户名或密码错误, 请重新登陆!")
    f(x) = x + 1
    f(3) = 3 + 1 = 4
    def f(x):
        return x + 1
    print(f(2))
    
    s = "你好啊我叫塞利亚"
    print(len(s))
    
    def my_len(s):
        count = 0
        for el in s:
            count+=1
        return count
    print(my_len(s))
     
  • 相关阅读:
    [Docker]How to run CentOS in Docker container
    【go】 golang 的文件写入和读取(Write()、WriteString(),bufio包:WriteString()、flush(), ioutil 包:WriteFile()、ReadFile())
    【go】golang网络通信超时设置
    Hbuilderx 安装App云打包失败解决
    新版ios开发证书的配置及在Xcode上的应用
    Rocket core ex_reg_xcpt_interrupt
    Rocket core IntCtrlSigs
    Rocket core ibuf vs. imem
    Linux中快速回到N级上层目录
    Rocket core decodeReg
  • 原文地址:https://www.cnblogs.com/xiaomai-rhce/p/10368859.html
Copyright © 2020-2023  润新知