Python学习笔记(三)


一、交换变量

1 a =a+b #不引入第三方变量,交换变量的值
2 b= a-b
3 a= a-b
4 
5 b,a=a,b #交换变量的值(python内置引入了第三方变量交换)
6 b,a,d = a,d,b
7 print(a,b,d)

二、非空即真

1 #非空即真,非0即真
2 #不为空的话就是True,是空的话就是false
3 #只要不是0就是true,是0就是false
4 #布尔类型
5 #True False

三、字符串方法

 1 print(a.isdigit()) #判断是否全都是数字
 2 print(a.islower()) #判断是否全都是小写
 3 print(a.isupper()) #判断是否全都是大写
 4 print(a.isalpha()) #判断是否全都是汉字或字母
 5 print(a.isalnum()) #判断是否全都是汉字或字母或数字
 6 print(a.upper()) #变成大写
 7 print(a.lower()) #变成小写
 8 print(a.startswith('text')) #以xxx开头
 9 print(a.endswith('.xls')) #以xxx结尾
10 
11 #''.join('') #连接字符串
12 #1、把一个list变成字符串
13 #2、通过某个字符串把list里面的每个元素连接起来
14 #3、只要是可以循环的,join都可以帮你连接起来
15 
16 import string
17 print(string.ascii_lowercase) #所有的小写字母
18 print(string.ascii_uppercase) #所有的大写字母
19 print(string.digits) #所有的数字
20 print(string.ascii_letters) #所有的大写和小写字母
21 print(string.punctuation) #所有的特殊字符
22 res = ','.join(string.ascii_lowercase)
23 print(res)
24 
25 ''.split() #分割字符串,返回list
26 names = 'niuhanyang,zch,caoran,yangyanfu'
27 lis_names = names.split(',') #根据某个字符串,分割字符串
28 print(lis_names)

四、文件操作、文件指针

文件操作步骤:

  1.打开文件获取文件句柄

  2.通过文件句柄操作文件

  3.关闭文件

文件基本操作:

1 f = open('phone.txt') #打开一个文件,获取文件句柄,方式默认为只读
2 first_line = f.readline() #获取文件第一行内容,返回一个list
3 res = f.read() #获取除了第一行剩下的所有文件内容
4 f.close() #关闭文件

打开文件是需要指定文件路径和打开文件的模式:

  1. r,只读模式(默认)【文件不存在会报错】

  2. w,只写模式【文件不存在会新建一个文件】【文件存在会清空以前的内容】【不可读】

  3. a,追加模式【文件不存在会新建一个文件】【文件存在会在末尾追加内容】【不可读】

  4. r+、w+、a+,读写模式/写读模式/追加写读模式

文件操作方法:

1 f = open('文件sss','a+',encoding='utf-8') #encoding参数可以指定文件的编码
2 f.read() #读取全部文件,文件过大时不要用,因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆
3 f.readline() #读一行
4 f.readlines() #按行读取文件,返回一个list,每行为一个元素,文件过大时不要用
5 f.write() #写入文件
6 f.seek(0) #把当前文件指针指向
7 f.tell() #获取当前文件指针位置
8 f.close() #关闭文件

大文件时,读取文件的高效方法:

1 f = open('phone.txt')
2 for line in f:
3     print(line)
4 #逐行读取,读完一行,释放一行的内存

自动关闭文件的方法:

1 with open('phone.txt') as f:
2     for line in f:
3         print(line)
4 #使用with,在使用完这个文件句柄后,会自动关闭文件

修改文件的方法:

 1 with open('phone.txt') as f:
 2     res = f.read()
 3     n_res = res.replace('a','b')
 4     f.write(n_res)
 5 #第一种:把文件全部读到内存中,然后清空原有文件内容,重新写入新的内容
 6 
 7 # 第二种:把修改后的文件内容写到一个新的文件中
 8 with open('phone.txt') as f , open('phone_new.txt','w+') as d:
 9 # 打开多个文件,f是读phone.txt,d是新建一个phone_new.txt文件
10     for line in f: #循环phone.txt中的每一行
11         n_line = line.replace('a','b')
12         d.write(n_line) #写入phone_new.txt文件中

五、集合

1.天生去重复;集合是无序的

2.可以做关系测试

定义集合

1 lis = [2,1,4,2,3,3,5]
2 s_lis = set(lis) # 定义一个集合
3 s = set() #定义空集合
4 set1 = ([2,1,4,2,3,3,5]) #把list转换成集合
5 set2 = {'a','a1','a2'} #直接定义一个集合

集合操作

 1 # 交集:俩个集合相同的地方
 2 s2 = set('2','3','7','9','2','1')
 3 s3 = {'1','2','3','2','1','5','7','9','3'}
 4 print(s3 & s2)
 5 print(s3.intersection(s2))
 6 #并集:把两个集合合并到一起,去重
 7 print(s3 | s2)
 8 print(s2.union(s3))
 9 #差集:去掉s4中s4s5同时出现的
10 s4 = {1,2,3}
11 s5 = {1,4,6}
12 print(s4 -s5)
13 print(s4.difference(s5))
14 #对称差集:去掉两个集合都有的
15 print(s4 ^ s5)
16 print(s4.symmetric_difference(s5))
17 
18 s4.add('ss') #在集合中增加元素
19 s4.pop() #随机删除一个元素
20 s4.remove('3') #删除指定元素
21 s4.update({5,6,7}) #把另外一个集合加进去
22 s4.isdisjoint(s5) #如果没有交集的话返回True

六、深拷贝、浅拷贝

1 import copy
2 # 浅拷贝
3 # 深拷贝
4 # 浅拷贝和深拷贝的区别就是深拷贝会重新开辟一个内存空间
5 l = [1,2,1,3,4,5,6,8]
6 l2 = copy.deepcopy(l) #深拷贝
7 l2 = l #浅拷贝
posted @ 2018-04-11 17:39  lxn_2018  阅读(155)  评论(0)    收藏  举报