zoukankan      html  css  js  c++  java
  • python之路——初识函数

    1、回顾

    文件操作(处理)
    打开文件

    open('文件路径''打开方式','编码方式')
    
    打开方式:r w a r+ w+ a+ ----- 默认r
    r+ :打开文件直接写和读完再写
    编码方式:utf-8....(如果不指定编码方式,会乱码)

    操作文件

    读
    read:一次性读
    readlines:一次想性读
    readline:一行一行读
    问题:不知道在哪结束
       视频、图片:rbm模式,bytes类型,按照字节读,
    
    写
    write

    光标--- 文件指针

    seek:指定光标移动位置
    tell:获取光标当前位置
    truncate:截取文件

    关闭文件
    close

    修改文件:
    文件是不能修改的,如果想修改,参照以下方式

    with open('小护士班主任',encoding='utf-8') as f,open('小护士班主任.bak','w',encoding='utf-8') as f2:
        for line in f:
            if '星儿' in line:  #班主任:星儿
                line = line.replace('星儿','啊娇')
            #写文件
            f2.write(line) #小护士:金老板
    
    import os
    os.remove('小护士班主任') #删除文件
    os.rename('小护士班主任.bak','小护士班主任')  #重命名文件
    文件修改

    2、今日内容讲解
    1.函数:定义了之后,可以在任何需要它的地方调用

    len():内置函数
    
    1.不能变,只能计算某字符串长度
    2.只是输出了结果

    自定义函数:

    自定义函数格式:(只需要0个参数)函数命名规则与变量命名规则相同。
    def 函数名():# 命名函数、定义函数.
      i = 0    #函数内容 # 整体缩进
      for k in s:
        i += 1
    
    函数名() # 调用函数
    自定义函数格式
    #没有返回长度,只是单纯的打印
    2.返回值:return(执行遇到return,后边的代码都不执行)
    def 函数名():# 命名函数、定义函数.函数命名规则与变量命名规则相同。
    i = 0    #函数内容 # 整体缩进
        for k in s:
            i += 1
            return
    
    函数名()    
    返回值格式
    返回值的3种情况:
    1.没有返回值----返回None
    (1)不写返回值return
    def func():
    l = ['jinlaoban','erge']
    
    ret = func()
    print(ret)
    (2)只写返回值return:结束一个函数的继续
    def func():
    l = ['jinlaoban','erge']
    return
    
    ret = func()
    print(ret)
    
    (3)return None --- 不常用
    没有返回值的3种情况
    2.返回一个值:
    可以返回任何数据类型
    只要返回就可以接收到
    如果在一个程序中有多个return,只执行第一个
    3.返回多个值
    多个返回值可以用多个变量接收,有多少返回值,用多少个变量接收,不能多也不能少。
    返回多个值可以用一个变量接收,返回值为不可变的数据类型元组。(元组可以解包)

    3.参数:

    def 函数名(s):# 接收参数、形式参数、形参
      i = 0    
      for k in s:
      i += 1
      return
    
    函数名('任意内容'#传递参数,实际参数、实参
    参数语法

    3.1参数的三种情况

    没有参数
        定义函数和调用函数时括号里都不写内容
    有一个参数
        传什么就是什么
    有多个参数
        位置参数
    # def my_sum(a,b):
    #     print(a,b)
    #     res = a+b  #result
    #     return res
    #
    # ret = my_sum(1,2)
    # print(ret)

    3.2实参与形参的传参

    站在实参的角度:
    按照位置传
    按照关键字传
    混着用也可以:但是必须先按照位置传参,再按照关键字传
    不能给同一个变量传多个值。
    站在形参的角度:
    按照位置传参:有几个参数传几个值。
    默认参数(关键字传):可以不传,如果不传就用默认,如果传,用传的参数
    只有调用函数的时候
    按照位置传 : 直接写参数的值按照关键字: 关键字 = 值
    定义函数的时候:
    位置参数 : 直接定义参数默认参数,关键字参数 :参数名 = '默认的值'动态参数 : 可以接受任意多个参数参数名之前加*,习惯参数名args,参数名之前加**,习惯参数名kwargs顺序:位置参数,*args,默认参数,**kwargs

    3.3动态参数

    动态参数有两种:可以接受任意个参数
      *args : 接收的是按照位置传参的值,组织成一个元组
      **kwargs: 接受的是按照关键字传参的值,组织成一个字典
      args必须在kwargs之前
    
    def func(*args,default = 1,**kwargs):
    print(args,kwargs)
    
    func(1,2,3,4,5,default=2,a = 'aaaa',b = 'bbbb',)

    3.4动态参数的另一种传参方式

    
    
    def func(*args):#站在形参的角度上,给变量加上*,就是组合所有传来的值。
    print(args)
    
    func(1,2,3,4,5)
    l = [1,2,3,4,5]func(*l) #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散
    View Code
    
    
    def func(**kwargs):
        print(kwargs)
    
    func(a=1,b=2)
    d = {'a':1,'b':2} #定义一个字典d
    func(**d)
    View Code

    4.函数的注释

    def func():
     '''
    这个函数实现了什么功能
    参数1:
     参数2:
    :return: 是字符串或者列表的长度
     '''
    pass
    注释方法
  • 相关阅读:
    OpenCV 写入视频流
    Flyweight 模式
    Builder 模式
    MySQL插入数据
    MySQL新建表
    2's Power
    DeepID人脸识别算法之三代(转)
    FaceNet--Google的人脸识别(转)
    DeepFace--Facebook的人脸识别(转)
    leetcode6 Reverse Words in a String 单词取反
  • 原文地址:https://www.cnblogs.com/TheLand/p/8118107.html
Copyright © 2011-2022 走看看