一.编码
1.ACSII 0000 0001 8位 一个字节
2. uncoide 0000 0001 0000 0001 0000 0001 0000 0001 32位 四个字节
3.utf-8 英文 0000 0001 8位 一个字节
中文 0000 0001 0000 0001 0000 0001 24位 三个字节
4.gbk 英文 0000 0001 8位 一个字节
中文 0000 0001 0000 0001 16位 两个字节
**(文件存储,传输不能使用uncoide编码(太占空间))
(可以使用 ASCII,utf-8,gbk等等)
5.python3中
str类型:使用 uncoide编码
byte类型:使用其他类型编码
str类型与byte类型的区别:(当字符是英文时)
a='alex' b=b'alex' print(a,type(a)) print(b,type(b)) #alex <class 'str'> #b'alex' <class 'bytes'>
当字符时中文时将str类型转换为其他类型编码
b='中国' b2=b.encode('utf-8') print(b2) #b'xe4xb8xadxe5x9bxbd'
二. 小数据池
数字(-5--- 256)与字符串(不能有特殊字符)
其他像列表,元组,字典都不行
a='alex' b='alex' print(a is b) #True a=12 b=12 print(a is b) #True
a=[1,2] b=[1,2] print(a is b)
#False
#a 和 b 的内存地址不一样
但是任何类型利用“=”赋值时如下:
a=[1,2,3] b=a print(a is b) #True a={'a':1} b=a print(a is b) #True
三.运算符(面试题)
# x or y x为真时,返回x # x and y x为真时,返回y print( 5 > 4 or 1 ) #Ture print( 0 or 4 ) #4 print( 0 and 4 ) #0 print( 5>4 and 1 ) #1 print( 5<4 and 1 ) #False
四 .字符串常用方法。
#数字符串中的元素出现的个数。 # ret3 = a1.count("a",0,4) # 可切片 # print(ret3) a4 = "dkfjdkfasf54" #startswith 判断是否以...开头 #endswith 判断是否以...结尾 # ret4 = a4.endswith('jdk',3,6) # 顾头不顾腚 # print(ret4) # 返回的是布尔值 # ret5 = a4.startswith("kfj",1,4) # print(ret5) #split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。 # ret9 = 'title,Tilte,atre,'.split('t') # print(ret9) # ret91 = 'title,Tilte,atre,'.rsplit('t',1) # print(ret91) #format的三种玩法 格式化输出 res='{} {} {}'.format('egon',18,'male') res='{1} {0} {1}'.format('egon',18,'male') res='{name} {age} {sex}'.format(sex='male',name='egon',age=18) #strip name='*barry**' print(name.strip('*')) print(name.lstrip('*')) print(name.rstrip('*')) #replace name='alex say :i have one tesla,my name is alex' print(name.replace('alex','SB',1)) #####is系列 name='taibai123'
print(name.isspace()) #字符串由空客
print(name.isdigit()) #字符串只能有数字组成 print(name.isalnum()) #字符串由字母或数字组成 print(name.isalpha()) #字符串只由字母组成 print(name.isdecimal()) #字符串只由十进制组成 #############下面这些方法在数据类型补充时会讲到,现在不讲#################### #寻找字符串中的元素是否存在 # ret6 = a4.find("fjdk",1,6) # print(ret6) # 返回的找到的元素的索引,如果找不到返回-1 # ret61 = a4.index("fjdk",4,6) # print(ret61) # 返回的找到的元素的索引,找不到报错。 #captalize,swapcase,title print(name.capitalize()) #首字母大写 print(name.swapcase()) #大小写翻转 msg='taibai say hi' print(msg.title()) #每个单词的首字母大写 # 内同居中,总长度,空白处填充 ret2 = a1.center(20,"*") print(ret2)
四.文件操作
rb:能打开所有文件(非文字文件 。例如:图片,视频。。。)
w:只写
f=open('xiaomeng','r',encoding='utf-8') #相对地址 #f=open('D://xiaomeng','r',encoding='utf-8') #绝对地址 content=f.read() print(content) f.close()
r :只读(会覆盖原来文本中的文字)
f=open('xiaomeng','w',encoding='utf-8') f.write('大帅逼') f.close()
a:追加
f=open('xiaomeng','a',encoding='utf-8') f.write('大傻逼') f.close()
(r+ w+ a+ )都不常用
tell():告诉光标位置
seek():调光标(从哪里开始读)
f=open('xiaomeng','a+',encoding='utf-8') a=f.seek(9) #一个中文占3个字节,一个英文占1个字节 (9是字节数) content=f.read(a) print(content) f.close()
os.remove(文件名):删除文件
os.rename(新文件名,旧文件名)重命名