• python开发学习day08 (集合; 文件操作)


    2020-06-10                                     目录:
                                                                                           一 、集合

    1.1  关系运算

      1.1.1  取交集

    1.1.2  取并集

    1.1.3  取差集

    1.1.4  取交叉补集

    1.1.5  父子集

    1.2、常用操作+内置方法

    1.2.1  循环

    1.2.2  update

    1.2.3  clear

    1.2.4  pop

    1.2.5  remove

    1.2.6  discard

    1.2.7  add

    1.2.8  isdisjoint

    1.3  类型总结

    二、文件操作

    2.1   什么是文件

    2.2  为何要用文件

    2.3  如何用文件

    2.3.1  文件的基本操作

    2.3.2  文件的模式  

    一 、集合

    1.1  关系运算

    以两个集合来举例:

    s1 = {'aaa', 'bbb', 'ccc', 'ddd'}
    s2 = {'ccc', 'ddd', 'eee', 'fff'}

    1.1.1  取交集

    res = s1 & s2
    print(res)

    1.1.2  取并集

    res = s1 | s2
    print(res)

    1.1.3  取差集(s1中独有的部分)

    res = s1 - s2
    print(res)

    1.1.4  取交叉补集(两个集合独有的部分)

    res = s1 ^ s2
    print(res)

    1.1.5  父子集

    一个集合包含另一个集合,这两个集合才有父子集的关系

    s1 = {1, 2, 3}
    s2 = {1, 2}
    print(s1 > s2) # 结果True,代表s1是s2的父集
    print(s2 < s1) # 结果True,代表s2是s1的子集

    1.2、常用操作+内置方法

    1.2.1  循环

    s1 = {"a", "b", "c"}
    for item in s1:
        print(item)

    1.2.2  update  

    s1 = {333, 222, 111}
    s1.update({'aaa', 'bbb'})
    print(s1)  # >>>{'aaa', 'bbb', 333, 222, 111}

    update()可以往s1里面添加多个值,且s1的id不会变化

    1.2.3  clear  清空

    s1 = {333, 222, 111}
    s1.clear()
    print(s1)  # >>>set()

    1.2.4  pop 随机删除

    s1 = {333, 222, 111}
    s1.pop()   # 有返回值,为随机删除的那个值
    print(s1)  # >>>{222, 111}   

    1.2.5  remove  删除指定元素

    s1 = {333, 222, 111}
    res = s1.remove(222)
    print(s1)   # >>>{333, 111}
    print(res)  # >>>None 没有返回值,如果删除的元素不存在,运行会报错

    1.2.6  discard  指定元素删除

    s1 = {333, 222, 111}
    res = s1.discard("aa")
    print(s1)  # >>>{333, 222, 111}   与remove不同的是,如果删除的值不存在,运行不会报错
    print(res)  # >>>None

    1.2.7  add  添加一个值

    s1 = {333, 222, 111}
    s1.add("aaa")
    print(s1)  # >>>{'aaa', 333, 222, 111} 只能添加一个值,添加多个值会报错

    1.2.8  isdisjoint

    两个集合,没有交集就会返回True

    s1 = {333, 222, 111}
    s2 = {"aaa", "bbb"}
    print(s1.isdisjoint(s2))  # >>>True

    1.3  类型总结

    集合能存多个值,是无序的,set集合是可变类型

    二、文件操作

    2.1   什么是文件?

    文件是操作系统提供给用户/应用程序操作硬盘的一个虚拟单位/功能
    用户/应用程序对硬盘的读写操作都是在对操作系统发起调用
    操作系统在收到调用请求后,会将该请求转换成具体的硬盘操作

    2.2  为何要用文件?

    应用程序操作文件都是为了将内存中的数据永久保存到硬盘中去

    2.3  如何用文件?

    2.3.1  文件的基本操作

    ①  文件的路径

    文件的路径:找到文件的地址
    绝对路径:如 r'D:py6.10a.txt'
    相对路径:从程序所在的文件夹往后找,如 r'a.txt'

    ②  句柄

    f = open(r'a.txt', mode='rt', encoding='utf-8')
    data = f.read()
    print(data)
    f.close() # 调用完以后要关柄操作,释放操作系统资源

    2.3.2  文件的模式  

    (1)控制文件读写内容的模式(不能单独使用,必须与r、w、a结合使用)

    ①  t:默认模式

    读写内容都是以字符串为单位
    只适用于文本文件操作
    必须指定encoding参数(通常使用 encoding = 'utf-8')

    ②  b:

    读写内容都是以bytes(字节)为单位
    适用于一切文件
    一定不能指定encoding参数

    (2)控制文件读写操作的模式

    ①  r 模式:(默认模式)

      特点:1.  只读模式

         2.  当文件不存在时则报错

         3.  当文件存在时文件指针跳到文件内容的开头

    f = open('b.txt', mode='rt', encoding='utf-8') 
    data = f.read() 
    print(data) 
    f.close()

    ②  w 模式:

      特点:1、只写模式

         2、当文件不存在会创建一个空文件,然后文件指针跳到文件开头

         3、当文件存在时文件内容会被清空,然后文件指针跳到文件开头

    f = open('c.txt', mode='wt', encoding='utf-8') 
    name = input('>>: ') 
    f.write(name) 
    f.write("Jason
    ") 
    f.write("May
    ") 
    f.write("Mini
    ")        # 在f.close()之前可以连续写入,但是下一次操作仍会清空c.txt 
    f.close()

    ③  a 模式:

      特点:1、只追加模式

         2、当文件不存在会创建一个空文件,然后文件指针跳到文件末尾

            3、当文件存在时文件内容不会被清空,文件指针跳到文件末尾

    f = open('d.txt',mode='at',encoding='utf-8') 
    f.write('aaa
    ') 
    f.write('bbb
    ') 
    f.write('ccc
    ') 
    f.close()

    2.4  总结w与a模式的异同:

    相同点:在文件打开了没有被关闭的情况下,连续的写入,新写入的内容总是跟在老内容之后

    不同点:在文件关闭了重新打开的情况下,a模式永远把文件指针放到文件末尾;而w模式会将文件清空再写入

     

  • 相关阅读:
    NET Office 组件Spire
    Tasks.Parallel
    vue 2.0-1
    ESLint 检查代码质量
    找到 OSChina 早上 8 点钟容易宕机的原因 ?
    MySQL索引 专题
    SqlMapConfig.xml全局配置文件解析
    mybatis mapper namespace
    resultMap之collection聚集
    Uploadify 控件上传图片 + 预览
  • 原文地址:https://www.cnblogs.com/cui-cheng/p/13087190.html
Copyright © 2020-2023  润新知