zoukankan      html  css  js  c++  java
  • 13、文件修改及函数的基本使用

    一、文件修改

    1.1文件修改的两种方式

    1.1.1、方法一

      实现思路:将文件内容一次性全部读入内存中,在内存中修改完毕后在覆盖写回原文件

      优点:文件修改中,不会生成新的文件占用储存

      缺点:会过多的占用内存

    with open(r'a.txt', mode='rt', encoding='utf-8') as f:
        res = f.read()
        msg = res.replace('a', 'b')
    with open(r'a.txt', 'w', encoding='utf-8')as f1:
        f1.write(msg)

    1.1.2、方法二

      实现思路:以读的方式发开第一个文件,以写的方式打开第二个临时文件,一行行的读取文件,修改后写入临时文件。删除原文件,将临时文件命名原文件。

      优点:不会过多的占用内存

      缺点:在文件修改的过程中同一份数据存入了两份

    f = open('a.txt')
    res = f.read()
    print(res)
    with open(r'a.txt', 'r', encoding='utf-8')as f1, 
            open(r'b.txt', 'w', encoding='utf-8')as f2:
        for x in f1:
            f2.write(x.replace('a', 'b'))
    os.remove('a.txt')
    os.rename('b.txt', 'a.txt')

    二、函数的基本使用

    2.1、什么是函数

      函数相当于具备某一种功能的工具

      函数的使用必须遵循一个原则:

        先定义 

        后调用

    2.2、为什么要用函数

      1.组织结构不清晰,可读性差

      2.代码冗余

      3.可维护性差、扩张性差

    2.3、怎么使用函数

      1、先定义:三种定义方式

      2.、后调用:三种调用方式

      3、返回值:三种返回方式

    2.4、定义函数会发生的事

      1、申请内存空间保存保存函数体代码

      2、将上述内存地址绑定函数名

      3.定义函数不会检测函数体代码,但会检测函数体语法

    2.5、调用函数会发生的事

      1、通过函数名找到函数的内存地址

      2、然后加口号就是在触发函数体代码的执行

    2.6、先定义

    def 函数名(参数1,参数2,...):
        """文档描述"""
        函数体
        return

    2.6.1、形式一:无参数函数

    def bar(): # bar=函数的内存地址
        print('from bar')
    
    def foo():
        # print(bar)
        bar()    #  执行def bar的函数,即print('from bar')
        print('from foo')
    foo()      #  先执行def foo():的函数,即bar(),再执行print('from foo')

    2.6.2、形式二、有参函数

    def func(x,y): # x=1  y=2
        print(x,y)
    func(1,2)

    2.6.3、空函数,函数体代码为pass

    def func(x, y):
        pass

    2.7、三种定义用在什么地方

    2.7.1、无参函数的应用场景

    def interactive():
        name=input('username>>: ')
        age=input('age>>: ')
        gender=input('gender>>: ')
        msg='名字:{} 年龄:{} 性别'.format(name,age,gender)
        print(msg)
    
    interactive()

    2.7.2、有参函数的应用场景

    def add(x,y): # 参数-》原材料
        # x=20
        # y=30
        res=x + y
        # print(res)
        return res # 返回值-》产品
    
    # add(10,2)
    res=add(20,30)
    print(res)

    2.7.3、空参函数的应用场景

    def auth_user():
        """user authentication function"""
        pass
    
    def download_file():
        """download file function"""
        pass

    三、调用函数

    3.1、语句的形式:只加括号调用函数

    interactive()
    add(1,2)

    3.2、表达式形式:通过函数赋值给变量,在输出变量

    def add(x,y): # 参数-》原材料
        res=x + y
        return res # 返回值-》产品
    # 赋值表达式
    res=add(1,2)
    print(res)
    # 数学表达式
    res=add(1,2)*10
    print(res)

    3.3、函数调用可以当做参数

    res=add(add(1,2),10)
    print(res)

    四、函数返回值

      return是函数结束的标志,即函数体代码一旦运行return就会终止函数的运行,并且将return后的值当做本次运行的结果返回。

    4.1、返回空,函数内没有return,或者return none

                return None

    4.2、返回一个值:return值

    def func():
        return 10
    
    res=func()
    print(res)

    4.3、返回多个值:用逗号分隔成多个值,被return返回成元组

    def func():
        return 10, 'aa', [1, 2]
    
    res = func()
    print(res, type(res))
  • 相关阅读:
    团队项目 第一次作业
    20165215 实验三 敏捷开发与XP实践
    20165215 2017-2018-2 《Java程序设计》第九周学习总结
    20165204 20165216 20165220 实验一开发化境的熟悉
    20165220 缓冲区溢出漏洞实验
    20165220 《信息安全系统设计基础》第二周学习总结
    2018-2019 信息安全系统设计基础 第一周总结
    20165220 2017-2018-2《Java程序设计》课程总结
    20165220 实验五 网络编程与安全
    20165220Java实验四 Android程序设计
  • 原文地址:https://www.cnblogs.com/jingpeng/p/12513178.html
Copyright © 2011-2022 走看看