1.修改文件的两种方式
1 #第一种
2 with open('users','a+') as fw: #用a+模式打开文件,使用with这种语法可以防止忘记close文件
3 fw.seek(0) #移动文件指针到最前面,然后才能读到内容
4 result=fw.read() #将文件内容一次性读取出来
5 new_result =result.replace('BAC','python') #字符串替代
6 fw.seek(0) #移动文件指针到最前面
7 fw.truncate() #清空文件内容
8 fw.write(new_result) #字符串替代后的所有内容一次性写入文件
1 #第二种
2 import os #导入os模块
3 with open('users') as fr,open('.users','w',encoding='utf-8')as fw: #r模式打开待修改文件,w模式打开一个新文件
4 for line in fr: #直接循环文件对象,每次取的就是文件里的每一行
5 new_line=line.replace('java','修改文件') #一行一行替换字符串
6 fw.write(new_line) #一行一行写入新文件
7 os.remove('users') #删除原文件
8 os.rename('.users','users') #将新文件修改为原文件的名字
2.Python数据类型(集合set,元组tuple)
2.1元组
可以将元组看作是只能读取数据不能修改数据的list
2.1.1定义一个空的元组
- a=()
- a=tuple()
2.1.2定义只有一个元素的元组
- a=(1,) #定义元组的时候,只有一个元素,后面必须加逗号
2.2集合
#集合天生去重复,无序
2.2.1定义一个空的集合
- a=set() #不能使用{}来定义,{}是定义一个空字典
2.2.2集合常用方法
1 stus1 = {'胡绍燕','王义','王新','马春波','高文平'}
2
3 stus2 = {'乔美玲','胡绍燕','王义','王新','马春波',"王一铭"}
4
5 #交集,两个集合中都有的
6 res1=stus1.intersection(stus2)
7 res2=stus1&stus2
8
9
10 #并集,合并两个集合,并去重
11 res1=stus1.union(stus2)
12 res2=stus1|stus2
13
14
15 #差集,前一个有,后面一个没有的
16 res1=stus1.difference(stus2)
17 res2=stus1-stus2
18
19
20 #对称差集,只在一个集合中出现的元素组成的集合
21 res1=stus1.symmetric_difference(stus2)
22 res2=stus1^stus2
23
24
25 stus1.add('abc') #增加元素
26 stus1.pop() #随机删除元素,返回删除的元素
27 stus1.remove('abc') #删除指定元素
28 for s in stus1: #遍历
29 print(s)
1 l=[1,2,3,4,2,3]
2 lset=set(l) #将list转为set,自动去重
3 print(lset)
3.函数
函数就是实现某个功能的一些代码,对于函数的调用者来说,知道如何传递正确的参数,以及函数的返回值,函数内部的复杂逻辑被封装起来
使用def
语句定义一个函数,依次写出函数名、(参数)和冒号,在缩进块中编写函数体,返回值用return
语句返回。
- 提高代码的复用性。
- 函数必须被调用才会执行。
- 函数里面定义的变量:局部变量,只要一出了函数都不能用了
1 def hello(): #定义函数
2 print('hello')
3 hello() #调用函数
4
5 #有传参无返回的函数
6 def write_file(file_name,content): #形参
7 print(file_name,content)
8 with open(file_name,'a+',encoding='utf-8') as fw:
9 fw.writelines(content)
10 write_file('a.txt','123\n') #实参
11
12 #有传参有返回的函数
13 def read_file(file_name): #形参
14 print(file_name)
15 with open(file_name,'a+',encoding='utf-8') as fw:
16 fw.seek(0)
17 content=fw.read()
18 return content #返回一个变量
19 res=read_file('users')
20 print(res)
函数的参数:位置参数、默认参数、可变参数、关键字参数
- 默认参数调用的时候,既可以按顺序提供默认参数,也可以不按顺序提供部分默认参数。当不按顺序提供部分默认参数时,需要把参数名写上
- 可变参数允许传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。形参使用*args形式
- 关键字参数允许传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。形参使用**args形式
4.random常用方法
- random.randint(1,20) #随机获取并返回一个指定范围的整数
- random.choice(s) #随机选择一个元素返回,s='xfdfdfdfd'
- random.sample(s,3) #随机选择几个元素返回
- random.shuffle(l) #只能传入一个list,打乱顺序,返回是None,l=[1,2,3,4]
- random.uniform(1,2) #随机获取并返回一个指定范围内的小数,round(f,3) #小数点后保留几位
5.几个常用的常量
1 import string
2 print(string.ascii_lowercase) #小写字母
3 print(string.ascii_uppercase) #大写字母
4 print(string.digits) #0-9
5 print(string.ascii_letters) #字母
6 print(string.punctuation) #特殊符号