美文网首页
Python Basic day07

Python Basic day07

作者: AIturbo | 来源:发表于2019-02-20 23:10 被阅读0次

    1,理解文件的作用 (文件是连续的字节序列)

    保存数据

    2,掌握文件的打开和关闭

    F = Open(“文件路径、名”, “r”, encoding=”utf-8”)
    F.close()

    3,掌握向文件中写入数据的方式

    F.write(“[20, 30]”)

    4,掌握从文件中读取数据的方式

    F.read(3)
    F.readline()
    F.readlines()

    5,文件的操作

    文件是连续的字节序列
    文件的作用:保存数据
    
    文件操作流程:
        1、打开文件
        2、操作文件
        3、关闭文件
    
    文件操作权限:
        r   读权限   以r权限打开文件,如果没有这个文件,会报错,如果有这个文件则打开,不会清空数据
        r+   以可读可写的方式打开文件
        rb   以二进制方式打开文件,只读
        rb+  以二进制方式打开文件,可读可写
    
        w   写权限   以w权限打开文件,如果没有这个文件,会自动创建文件,如果有这个文件会清空文件的原有的数据
        w+   以可读可写的方式打开文件
        wb   以二进制方式打开文件,只写
        wb+  以二进制方式打开文件,可读可写
    
        a   追加权限  以a权限打开文件,如果没有这个文件,会自动创建文件,如果有这个文件则打开,不会清空数据
        a+   以可读可追加的方式打开文件
        ab  以二进制方式打开文件,只追加
        ab+  以二进制方式打开文件,可读可追加
    
    关于read的几个函数
        f.read()   # 可以传入一个数字,指定读取多少位
        f.readline()   # 读取一行数据
        f.readlines()  # 返回一个列表,每一行的数据就是列表中的每一个元素
    

    6,掌握使用os模块完成对文件的重命名

    Import os
    Os.rename(旧文件名,新文件名)

    7,掌握使用os模块删除一个文件

    Os.remove(文件名)

    8,掌握使用os模块完成创建文件夹

    Os.mkdir(“文件夹名”)

    9,文件和文件夹的操作

    import os
    
    os.path.exists("hello02.txt")  # 判断目录下是否存在 hello02.txt这个文件
    os.rename("hello.txt", "hello2.txt")   # 重命名
    os.remove("sound_backup.mp3")   # 删除某个文件
    
    print(os.getcwd())   # 获取当前 的操作目录
    os.chdir("../")   # 改变 当前的操作目录,为上一级
    
    os.mkdir("test")   # 创建文件夹
    os.rmdir("test")    # 删除空的文件夹
    
    print(os.listdir())  # 返回一个列表,列表里面每一个元素是目录下所有的文件名和文件夹名
    

    10,lambda表达式(匿名函数)

    lambda 本质是一个函数
    定义:  lambda 形参: 返回值
    
    调用的格式1:
    fn = lambda a: a+2
    fn(实参)
    
    调用的格式2:
    (lambda a: a+2)(实参)
    
    # 用lambda表达式求两个数的和
    # fn = lambda a, b: a+b
    # print(fn(10, 20))
    # print((lambda a, b: a+b)(20, 30))
    
    # 求a和b中的最大值(了解)
    # print((lambda a, b: a if a > b else b)(50, 30))
    
    # 不定长参数的写法(了解)
    # print((lambda *args: args)(10, 20, 30, "abc"))
      # (10, 20, 30, '123')  以元组的形式输出。
    #print((lambda *args, **kwargs: (args, kwargs))(10, 20, 30, "abc", name="python", age=27))
      # ((10, 20, 30), {'name': 'python', 'age': 27})
    

    11,(重点)列表推导式

    列表推导式(列表生成式)
    [返回值 for i in range(1, 6)]
    
    [返回值 for i in range(1, 6) if 条件]
    返回值的类型和格式,决定了,将来列表中每一个元素的类型格式
    
    # lst = [i for i in range(1, 11)]   # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 整形—>整形
    # lst = [i+2 for i in range(1, 11)]   # [3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
    # lst = [str(i) for i in range(1, 11)]   # ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
    # print(lst)
    # lst = [i for i in range(1, 21) if i % 2 == 0]  # [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
    

    12,集合

    特点:
        1、元素没有顺序之分(无序性) 不能通过下标来获取(字典也无序)
        2、没有重复出现的数据
    
    作用:
        lst = [10, 20, 30, 50, 10]
        tup = (10, 20, 30, 50, 10)
    
        # print(list(set(lst)))   # 集合的应用: 去重
        # print(tuple(set(tup)))   # 集合的应用: 去重
    

    13,其他

     a +=1与a = a+1 区别
     a +=1与a = a+1等效但不等价
    结果相等,但两个a所指向的地址空间已经发生了变化。
    a = [10, 20]
    # print(id(a))
    # a += [30]   # 等效于 a = a + 10
    # print(id(a))  # 两个id一致,a的指向没有发生变化
    
    a = [10, 20]
    print(id(a))
    a = a + [30]
    print(id(a))  # 两个id不一致,a的指向发生变化了
    补充知识点:求两个数的最大值
    def fn(a, b):
        # if a > b:
        #     return a
        # else:
        #     return b
        return a if a > b else b  可以用此代替上面4行
    print(fn(10, 20))
    相对路径:
    ../   上一级的符号
    /  下一级  (windows)
    ./  当前
    

    相关文章

      网友评论

          本文标题:Python Basic day07

          本文链接:https://www.haomeiwen.com/subject/ndzkyqtx.html