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模式会将文件清空再写入

 

原文地址:https://www.cnblogs.com/cui-cheng/p/13087190.html