标签:end   流程   文件写入   操作方法   readlines   move   python   方式   命名   
小数据池
	#int
		==比较数值
		is 比较内存地址
		id 测试内存地址
		
	#str
		不能含有特俗字符
		单个元素*数字,不能超过21
			i1 = ‘a’*20
			i = ‘a’*20
				id一样
				
			i1 = ‘a’*21
			i = ‘a’*21
				id不一样
		
		
		
		
编码
	ascii   英文的数字,字母,特殊字符
		
		字节	8位表示一个字节
		字符	内容的最小组成单位
					abc  a一个字符
					中国	中  一个字符
			
	unicode	:万国码
		
		期初	两个字节,表示一个字符2**16不够用
		升级	四个字节,表示一个字符2**32够了
		
	utf-8	最少用8位,表示一个字符
		a  用8位表示	
		欧洲	用16位表示	
		亚洲	用24位表示	3字节
	
	gbk	国标
		
		包含英文和中文
		中文用个字节表示
	
	1.不同编码之间的二进制不能互相识别
	2.对于文件的存储,及传输不能是unicode编码
	
	
	python3x		
		int
		
		bool
		
		bytes:内部编码方式(非unicode,可能是utf-8,国标,根本2312.。。。)
		
		str:内部编码方式为unicode。不能用户发送及存储
		
		list
		
		dict
		
		tuple
	
str和bytes的区别
	
	字母 
		str:表现形式:alex
			内部编码:unicode
			
		bytes:表现形式:s2 = b‘alex‘
			内部编码:非unicode
	
	中文	
		str:表现形式:’中国‘
			内部编码:unicode
			
		bytes:表现形式:s2 = b‘\xe4\xb8\xad\xe5‘
			内部编码:非unicode
	
编码
	
	所有编码到uniconde都是decode
		反之都是encode
		
集合
	1.集合	要求它里面的数据元素,可哈希的,元素不重复,无序
		本身是不可哈希的
	set1 = {}
		1.关系测试
		2.去重
			l1 = [1,1,2,2,3,4,5]
				print(list(set(s1)
				)
	
	set1 = {‘alex‘,‘wusir‘,‘egon‘,}
	
	增
		set1.add(‘文州‘)
		
		set.update(‘abc‘)	PS:迭代增加
	
	
	删:
		set1.pop()	随机删除
		
		set.remove(‘alex‘)	按照元素删除
		
		set1.clear		清空集合
	
		del set1		删除整个集合
	
	
	查:
		for i in set1:
			print(1)
			
	
	关系测试:
		set1 = {1234}
		set2 = {2345}
	
		交集
		print(set & set2 )
	
		print(set.intersection(set2))
		
		
		并集
		
		print(set1 | set2)
		
		print(set1.union(set2))
		
		差集	(求set里独有的元素)
		print(set1 - set2)
		
		print(set1 difference set2)
		
		
		
		反交集	(不是交集,为反交集)
		print(set1 ^ set2)
		
		print(set1.symmetric_difference(set2))
		
		
		父子集	(包含为超级,小为子集)
		set1 = {1,2,3}
		set2 = {1,2,3,4,5,6}
		
		print(set1 > set2)
			True
			
		print(set1.isubset(set2))
		
		
		冻集
		set1 = {1,2,3}
		
		print(frozenset(set1))
		
	
深浅拷贝
	浅copy	第一层,各自独立。从第二层开始,公用一个内存地址
		s1 = [1,2,3]
		s2 = s1.copy[]
		s1.append(666)
		print(s1,s2)
		
		s1 = [1,2,3[11,22]]
		s2 = s1.copy[]
		s1[-1].append(666)
		print(s1,s2)
		
		
	
	深copy		深copy无论多少次,都是互相独立的。互不影响
		import copy	
		s1 = [1,2,3[11,22]]
		s2 = s1.deepcopy[s1]
		s1.append(666)
		print(s1,s2)	
	
	
	
文件操作
	
	f1 = open(‘d:\xx.txt‘,encoding=‘utf-8‘,mode=‘r‘)
		print(f1.read())
	
		f1 文件句柄
	
		open()调用的内置函数,内置函数调用的系统内部的open
		
		一切对文件进行的操作都是基于文件句柄f1
		
		执行流程:打开文件-->产生文件句柄-->对文件句柄进行操作-->关闭文件句柄
		
			报错原因:
			
			编码问题
				  File "D:/pycharm/day3/a.py", line 5, in <module>
					print(f1.read())
				  File "D:\python\lib\codecs.py", line 322, in decode
					(result, consumed) = self._buffer_decode(data, self.errors, final)
				UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xc4 in position 39: invalid continuation byte
				编码不一致
				
			路径错误
				SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 2-3: truncated \UXXXXXXXX escape
				解决方法
					在 路径最前面加个r
					
			
			
	读:
	r  
		1、read()全读出来		
		
		2、read(n)读一部分。n为读取指定多少字符			
		
		3、readline()按行读取
	
		4、readlines()读取多行,放在列表里
		
		5、for循环读取
				for x in f1:
					print(x)
				f1.close()
				
	rb  
		f1 = open(‘1.jpg‘,mode=‘rb‘)
		print(f1.read)
		f1.close
		
		rb的raad(n)n为字节
		
		
	r+ 
		r+读写模式
	
	r+b 
	(涉及到b的,是bytes类型。都是非文字类型的文件,如电影,音乐)
	
	写:
		f1 = open(‘log2‘,encoding=‘utf-8‘,mode=‘w‘)
		
	w   
		没有文件,创建文件也要写入。
		
		有源文件,先清空内容,后写入内容
		
	wb
		
	
	w+ 	写读模式,替换的是字节 
		
		f1.seek(0) 	#调整光标到最前面
		(0,2)			#调整到末尾
	
	w+b
	
	
	追加:
	a   没有文件,创建文件写入
		有源文件,后面追加
		
		f1 = open(‘账号密码‘,encoding=‘utf-8‘,‘mode=‘a‘)
			f1.write(‘太白‘)
			f1.close
		
	ab   
	
	a+  
	
	a+b 
	
	
	其他操作方法
		readable	是否可读
		
		writable	是否可写
		
		tell		告诉光标具体在哪
		
		seek		调整光标的位置
			(0,2)调整到末尾
			
		truncate
			只能在a或者在a+模式下使用的truncate
			按照字节对源文件截取
		
		
		with open(‘d:\xx.txt‘,encodint=‘utf-8‘,mode=‘r‘)as f1,:
			print(f1.read)
				在一定的时间内,自动关闭
				能用一条语句,操作多个open
	
		
	
	文件的改
		1.以读模式打开源文件
		2.以写的模式打开一个新文件
		3.将源文件内容读出,按照要求修改,将修改后的内容,写入新文件
		4.删除源文件
		5.将新文件重命名源文件
	
	
	
	
函数
		
	初识函数
		def	函数名():
			函数体
			
			函数执行:函数名()
	
			函数以功能为导向
			
		函数名()
		
		
		
	return
		
		1.终止函数
		
		2.给函数的执行者返回值
				return 或者 return none
				多个值,返回元组
		
		3.
	
	
	函数的传参
	
		1.形参角度
			1.位置参数	与实参的位置参数一一对应
			
			2.默认参数	默认参数要在位置参数后面,括号里面加入参数为默认参数
			
			3.动态参数	传入的参数不固定,用动态参数
				
				*args  	接受所有的位置参数,放在元组中
				
				**kwargs	接受所有的关键字参数,放在字典里
				
				
				#函数定义的时候,*代表聚合
				#函数执行的时候,*代表打散,放到一起
					字典用两颗星**
		
		形参先后顺序:位置参数-->*args-->默认参数-->**kwargs
		
		
		2。实参角度
			
			1.位置参数		按顺序一一对应
			
			2.关键字传参	参数一一对应
	
			3.混合传参(位置参数,关键字参数)
							
					关键字参数必须在位置参数后面
	
	
条件简单,切结果简单。可以用三元运算	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
集合、深浅拷贝、文件操作(读、写、追加)函数初识(参数)
标签:end   流程   文件写入   操作方法   readlines   move   python   方式   命名   
原文地址:https://www.cnblogs.com/dunkeng/p/9084999.html