zoukankan      html  css  js  c++  java
  • 函数

    引子

    函数初识

    函数的好处

    1.减少代码的重复性(冗余)

    2.代码可读性高了

    3.将功能进行封装(造工具)

    我们遇到同样的问题,老是书写程序太过于麻烦,所以我们用函数来调用.

    字符串 列表 集合   这道题输出的结果是相同的
    
    #s = "alexdsb"
    #s = [1,2,3,4,5,6,7]
    s = (1,2,3,4,5,6,7)
    count = 0
    for i in s:
        count += 1
        print(count)
    

    于是我们下面来定义函数

    def func():
        s = (1,2,3,4,5,6,7)
        count = 0
        for i in s:
            count += 1
        print(count)
    func()      #必须填这个才能调用
    

    定义规则

    def my_len( ) :

    函数体

    def 关键字 定义

    func 函数名 和变量定义规则一样

    ( ) 必须要写格式

    : 声明语句结束

    调用函数

    my_len( ) 函数名 + ( )

    函数的返回值

    def yue():
        print("打开手机")
        print("打开微信")
        print("找到女友")
        print("晚上约吗")
        print("今天很高兴")
        print("确实有点累")
    print(yue())
    
    
    #打开手机
    打开微信
    找到女友
    晚上约吗
    今天很高兴
    确实有点累
    None
    
    
    def yue():
        print("打开手机")
        print("打开微信")
        print("找到女友")
        print("晚上约吗")
        return"今天很高兴"             #return 返回   下面它就不执行了
        print("确实有点累")
    print(yue())
    打开手机
    打开微信
    找到女友
    晚上约吗
    今天很高兴
    
    1. renturn 的内容是返回给调用者
    2. return 下面的代码不执行,终止了这个函数
    3. return  返回多个内容的时候是元组形式
    4. return  没有写返回值,返回的是 None,不写 return 返回的也是 None
    

    img

    lst  = [1,2,3,4,5,6]
    def func():
        for i in lst:
            print(i)
            return
    print(func())
    结果:
    1
    None
    
    
    
    lst  = [1,2,3,4,5,6]
    def func():
        for i in lst:
            print(i)
    
    print(func())
    结果:
    1
    2
    3
    4
    5
    6
    None
    
    
    
    lst = [1,2,3,4,5]
    def func():
        for i in lst:
            print(i)
        lst.append(input(">>>"))
        return lst
    func()
    结果:
    1
    2
    3
    4
    5
    >>>123
    

    形参和实参

    形参 -- 函数的定义中括号里的是形参 位置参数 >默认参数 混合参数

    实参---函数调用中括号里是实参 位置参数 >关键字参数 混合参数

    传参: 将实参传递给形参的过程

    位置传参时 :形参和实参必须要一一对应

    def yue(app,app1,app2):  # 形参
        print("打开手机")
        print(f"打开{app}")
    yue("微信","陌陌","探探")  #实参  
    
    
    #
    打开手机
    打开微信
    
    
    
    def yue(a,b,c):
        print("打开手机")
        print("附近的人")
        print("聊一聊")
        print(f"打开{a},{c},{b}")
    yue({1:2},(1,2,3,4,5),[9,8,7,6,5])     #这里要说明的是实参的位置,放的东西可以是列表,元组,字典等...
    
    
    
    打开手机
    附近的人
    聊一聊
    打开{1: 2},[9, 8, 7, 6, 5],(1, 2, 3, 4, 5)
    
    

    关键字传参:

    默认参数放在位置参数后边

    位置参数>默认参数

    def func(a,b=1):  #b=1默认参数
        print(a,b)
    func(3,8) #3 8  形参是默认的参数时,实参传递可以不写,写了就会把形参默认的参数覆盖 
    func(3)  #3 1
    
    
    
    
    
    
    def userinfo(name,sex,age):
        print(name,sex,age)
    while True:
        name = input("name:")
        sex = input("sex:")
        age = input("age:")
        userinfo(name,sex,age)
        
    def userinfo(name,age,sex):
    print(name,sex,age)
    while True:
        name = input("name:")
        sex = input("sex:")
        age = input("age:")
        userinfo(name,age,sex="男")                        混合参数
        
        
        
        
        
        
    def func(a,c,b=1):             #a,c位置参数 b=1默认参数
        print(a,b,c)
    func(a=1,b=5,c=2)    关键词参数
    

    今日总结

    函数的好处 : 减少代码的重复性 代码可读性高 将功能进行封装(造工具)

    1. 定义一个函数
    def func():
        函数体                  #循环调用
    
    def    关键字
    func   函数名
    ()     传递参数
    :      语句结束
    
    1. 返回值

      return 返回值内容

      return 返回一个内容,可以返回任意类型 多个内容以元组的形式返回

      return 终止函数 切记不能终止循环

      return 不写返回值或者没有的时候就要返回 None

      return 将内容返回了函数调用

    2. 函数的参数

      形参: 函数定义的时候叫做形参 包括 位置参数 > 默认参数

      实参 : 函数调用的时候叫做实参 包括 位置参数,关键字参数,混合参数

      传参: 将实参传递给形参的过程叫做传参

      形参是默认的参数时,实参传递时可以不写,写了就会把形参的默认参数覆盖

    3. 位置传递的时候必须要一一对应

      def yue(app,app1,app2):
          print("打开手机")
          print(f"打开{app}")
      yue("微信","陌陌","探探")
      
      
      #
      打开手机
      打开微信
      
      
  • 相关阅读:
    归并排序
    CTE 递归
    Cordova 入门文档
    Javascript 原型链
    Windows11 正式版偷渡开启安卓子系统
    快速解决gerrit merge confict问题
    利用VPS来搭建个人主页
    检测串行序列10010
    Verilog语法总结
    深度学习中常见优化算法学习笔记
  • 原文地址:https://www.cnblogs.com/hualibokeyuan/p/11197700.html
Copyright © 2011-2022 走看看