1、集合定义

集合天生能去重,且与字典一样,无序。集合用大括号括起来,里面的元素之间用逗号分隔,要跟字典区分开。

集合定义方法:s=set() #定义一个空集合

s={'1','a','b','c','d','e','f'}#直接定义一个集合

s=set('123dfdreerewrewr')#将一个字符串转化为集合

s=set(['a','b','c','d'])#将一个list转化为集合

2、交集、并集、差集

取交集:& 或者intersection

print(s1 & s2) #取交集
print(s1.intersection(s2)) #取交集

取并集:| 或者union

print(s1|s2)

print(s1.union(s2))

取差集

print(s1-s2)#取差集,s1中去掉s2重复的部分

print(s1.difference(s2))#

对称差集

print(s1^s2)#去掉两个集合的交集,剩下的

print(a.symmetric_difference(b))

3、集合操作:增删改查

s.add('ss') #加元素
s.pop()#随机删一个
s.remove('ss')#指定删除哪个
s.update({1,2,3}) #把另外一个集合加进去
s.isdisjoint(s5)#如果没有交集的话返回true

4、文件操作

1、文件打开open

f=open(‘文件名’,''打开方式,'字符编码')

例:f = open('names','a+',encoding='utf-8'),python默认是gbk编码,open打开文件,如果不写打开方式,默认是r只读方式

文件打开有三种模式:读模式r,写模式w,追加模式a,另还有三种附加模式,加上"+" 表示可以同时读写某个文件

r,只读模式(默认)。

w,只写模式。不可读;不存在则创建;存在则删除内容;

 a,追加模式。不可读; 不存在则创建;存在则只追加内容;
 r+,可读、可写;可追加,如果打开的文件不存在的话,会报错

 w+,写读模式,不存在则创建。,已经存在的文件内容会被清空,可以读到已经写的文件内容
 a+,追加读写模式,不存在则创建;存在则只追加内容;

#只要沾上了r,文件不存在的就会报错
#只要沾上了w,都会清空原来的内容

2、读取文件

f.read()#读文件,会将文件内容一次性全部读取出来

f.readline()#逐行读取,每次读一行,读取后文件句柄自动移到下一行,每次读取的内容都是一个字符串,如果有换行符,可以用字符串的strip方法;strip('\n')

f.readlines()#将文件所有内容按行放到list中,每个元素后都会自动加上\n.例:['1212sf\n', 'sdfdsffdfdfd\n', '33434312121212121223']

f.seek(0)#句柄移动到文件最开始0位置,括号里填几,句柄就移动到第几个字符

f.tell()#记录指针的位置,可以和seek联合使用

比如:操作一会文件后用point=f.tell  保存文件当前位置,然后下次再次才做,可以用f.seek(point)将指针定位到上一次的位置,接着上一次的位置继续

注意:seek()可以移动指针,但是只限于读管用,如果文件是以a+的模式打开的,即便seek(0)指针移动到最开始位置,在写文件内容时,还是会在最后面写
例子:
# 文件指针:
# 用来记录文件到底读到哪里了
f = open('name','a+',encoding='utf-8')# a模式的文件指针是在末尾的
f.write('呵呵呵')#如果写的内容要换行显示,可以加上'\n' :f.write('dfdf'+'\n'),读取文件时去掉\n可以用字符串的strip('\n')
f.seek(0) #移动文件指针到最前面
f.write('seek操作后,写的内容') #移动完文件指针之后,是只能读,写的时候还是在文件末尾写,此时也就是指针自动又到了末尾
print(f.read())#这时是读不出来内容的,因为指针在最后。如果没有上一行的f.write().则会读取文件的完整内容


循环读取文件,也可用for line in file,此时返回的是file的每一行,格式是字符串。可对line用字符串的相关函数继续操作。读完一行会释放一行的内存。

文件读写判断:

f.readable()#判断文件是否可读

  fr.writable()#判断文件是否可写

3、关闭文件

f.close() 每次用open打开文件后,文件是不会自动关闭的,需要手动close下。这样有时候会忘记关闭,占内存。

with open('geci','a+') as f:#打开文件,文件不用时自动关闭

4、写文件

f.write();#往文件写内容

f.writelines(['111','222'])#往文件写多个内容,比如list,元祖,集合等

5、random模块

使用random模块必须先引入import random

print(random.randint(1,9999))#获取随机的1-9999之间的数字

random.shuffle(list)#打乱list的顺序,只能用于list

最新文章

  1. MCU的四个功能
  2. memcache内存分配机制
  3. nrf51822-广播模式
  4. js 下载文件 window.location.href
  5. php使用swoole实现一个简单的多人在线聊天群发
  6. linux系统灵活运用灯[android课程3]
  7. 一个java文件编译之后会产生多个class文件
  8. Unity3D 解决c#脚本乱码
  9. Android 快速选择联系人
  10. poj3694(tarjan缩点+lca)
  11. pgadmin3 新建服务器出现错误 Peer authentication failed for user "postgres" 的解决办法
  12. 将meteor部署到自己的服务器(deploy meteor to your own server)
  13. font-family
  14. java爬虫框架webmagic学习(一)
  15. input标签之外是否一定添加form标签
  16. 51nod 1277 字符串中的最大值
  17. 八 原型prototype和__proto__
  18. UIKit 框架之UIView一
  19. java 方法重写和属性重写
  20. Cocoapods更改安装版本及卸载、ruby版本检测和安装

热门文章

  1. ALGEBRA-3 线性映射
  2. css如何让子元素在父元素中水平垂直居中
  3. mysql-5.7.xx在lcentos7下的安装以及mysql在windows以及linux上的性能差异
  4. 【算法•日更•第三十期】区间动态规划:洛谷P4170 [CQOI2007]涂色题解
  5. css3 属性 text-overflow 实现截取多余文字内容 以省略号来代替多余内容
  6. cinder migrate基础内容-1
  7. Linux时间同步服务chrony
  8. Logistic回归分析之二元Logistic回归
  9. 从零开始的SpringBoot项目 ( 四 ) 整合mybatis
  10. os.path获取当前路径及父路径