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 ') #实参 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) #特殊符号