zoukankan      html  css  js  c++  java
  • python_day3(文件处理)

    1、文件处理

    #Author:Elson Zeng
    #data = open("test").read()
    # f = open("test",'a',encoding='utf-8')  #文件句柄

    #f = open("test","a",encoding="utf-8") #文件句柄 追加(源文件)

    #f = open("test","r+",encoding="utf-8") #文件句柄 读写(源文件)
    #f = open("test","w+",encoding="utf-8")  #文件句柄 写读(新文件)
    #f = open("test","wb") #文件句柄 二进制文件
     # #a = appen追加 # data = f.read() # # print(data) # # print('data') # f.write("
    我爱你") # f.close() f = open("test",'r',encoding="utf-8") #print(enumerate(f.readlines())) #high bige count = 0 for line in f: #f为一个迭代器 if count == 2 : print("___") print(line.strip()) count += 1 #low loop """ for index,line in enumerate(f.readlines()): print(line.strip()) if index == 1: print("_____") """
    #光标位置(按字符计算位置)
    print(f.tell())
    #光标返回
    f.seek(0)
    print(f.readline())
    #打印文件名
    print(f.name)
    #实时写入硬盘
    f.flush()

    #截断(字符串)
    f.truncate(20)
    import sys,time
    for i in range(20):
        sys.stdout.write("#")
        sys.stdout.flush()
        time.sleep(0.2)

     2、文件增删改

    #Author:Elson Zeng
    
    f = open("test",'r',encoding="utf-8")
    f2 =  open("test_modify.txt",'w',encoding="utf-8")
    
    for line in f:
        if "取离别时的你" in line:
            line = line.replace("取离别时的你","取离别时的航健")
        f2.write(line)
    f.close()
    f2.close()

     3、字符编码与转发

    #Author:Elson Zeng
    #python3默认字符编码是unicode
    #decode解码(只针对unicode,写现在的类型)
    #encode编码(写转换的类型)
    s = "你好"
    s_to_gbk = s.encode("gbk")
    print(s_to_gbk)
    print(s_to_gbk.decode("gbk").encode("utf-8"))

     4、函数

    1.面向对象 ==> 类 ==> class

    2.面向过程 ==> 过程 ==> def 

    3.面向函数编程 ==> 函数==> def 

    #函数def
    def fun1():
        #文档介绍
        print ("a")
        return 0
    
    #过程def
    def fun2():
        #文档介绍
        print("b")
    
    x = fun1()
    y = fun2()
    print("from funt1: %s"%x)
    print("from funt2: %s"%y)

     函数非固定参数

    #*args :接受N个位置参数,装换成元组的方式
    def test(*args):
        print(args)
    
    test(*[12,3])
    
    #**kwargs: 接受N个关键字参数,装换成字典的方式
    def test2(**kwargs):
        print(kwargs)
        print(kwargs['name'])
    
    test2(**{'name':"elson",'age':18})
    
    def test3(name,**kwargs):
        print(name)
        print(kwargs)
    
    test3('elson',age=18)

     全局变量

    school = "1111"
    #声明全局变量(字典、列表、类都能在局部改变量)
    def test():
    global school
    school = "Old the boy"

    test()
    print(school)

    5、递归

    def calc(n):
        print(n)
        if int(n/2) ==0:
            return n
        return calc(int(n/2))
     
    calc(10)

    递归特性:

    1. 必须有一个明确的结束条件

    2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少

    3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

  • 相关阅读:
    python 矩阵转置
    go
    Go-GRPC 初体验
    SpringMVC笔记——Spring+MyBatis组合开发简单实例
    MyBatis笔记——EhCache二级缓存
    MyBatis笔记——Mapper动态代理
    MyBatis笔记——初次环境配置
    Spring笔记——配置Hibernate框架事务
    Hibernate笔记——关联关系配置(一对多、一对一和多对多)
    Mysql笔记——触发器简单实例
  • 原文地址:https://www.cnblogs.com/elson-zeng/p/10897689.html
Copyright © 2011-2022 走看看