1、数字 int
python中数字默认用十进制表示,但是也可以用二进制、八进制和十六进制表示。
>>> 10 10 --------->默认十进制
>>> bin(10)
'0b1010' --------->二进制表示整数时,数值前面要加上一个前缀“0b”
>>> oct(10)
'012' --------->八进制表示整数时,数值前面要加上一个前缀“0”
>>> hex(10)
'0xa' --------->十六进制表示整数时,数字前面要加上前缀0X或0x
2、布尔值 bool
两种值:
真 1 True
假 0 False
3、字符串 str
3.1、字符串是一个有序的集合,使用引号(‘python’,“python”,'''python''',"""python""")括起来,其实注释也是一个字符串。
3.2、字符串的索引(下标)是从左边到右,第一个是0。
3.3、如果字符串中还有特殊字符,比如回车、换行、tab。要想显示原始的字符串,必须在字符串的引号前加上 r,否则这些特殊字符会被转义。
1 s = 'l hf' 2 print(s) # 输出结果:l hf 3 4 s = r'l hf' 5 print(s) # 输出结果:l hf
另外值得注意的是在某些文件路径赋值给某个字符串变量,也需要加 r 转义,否则会抛出异常。
1 s = 'C:UsersWHK00101Desktoplog.txt' #抛出异常 2 print(s) 3 4 s = r'C:UsersWHK00101Desktoplog.txt' #正常 5 print(s) 6 7 s = 'C:/Users/WHK00101/Desktop/log.txt' #正常 8 print(s) 9 10 s = 'C:\Users\WHK00101\Desktop\log.txt' #正常 11 print(s)
3.4、unicode字符串与r连用必需在r前面,如name=ur'l hf'
3.5、字符串函数汇总:
索引:从左到右,下表从0开始
1 a = 'ABCDEFGHIJK' 2 print(a[0]) # 输出 A 3 print(a[3]) # 输出 D 4 print(a[5]) # 输出 F 5 print(a[7]) # 输出 H
切片:切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾尾)。
1 a = 'ABCDEFGHIJK' 2 print(a[0:3]) # 取出ABC,注意从开头开始取0可以默认不写:print(a[:3]) 效果一样 3 print(a[2:5]) # 取出CDE 4 print(a[:]) # 取出全部字符串,可以取到最后一个元素K,也可以写成:print(a[0:]) 5 print(a[:-1]) # 取出ABCDEFGHIJ,注意:最后一位的下标是-1,倒数第二位是-2,以此类推。但是要满足顾头不顾尾的原则,所以取不到K元素 6 print(a[:5:2]) # 取出ACE,2是步长,即从位置0开始,每隔2个字符取一个 7 print(a[-1]) # 取出K 8 print(a[-2]) # 取出J 9 print(a[-1:2:-1]) # 取出KJIHGFED 10 print(a[::-1]) # 取出KJIHGFEDCBA 11 print(a[-1:-5:-2]) # 取出KI
移除空白strip、lstrip、rstrip:
1 str = ' feihongtao ' 2 print(str.lstrip()) #去掉左边的空白 3 print(str.rstrip()) #去掉右边的空白 4 print(str.strip()) #去掉两边的空白
大小写转换upper、lower、casefold、swapcase、capitalize:
1 str = 'FeiHongtao' 2 print(str.upper()) #所有字母大写 3 print(str.lower()) #所有字母小写 4 print(str.casefold()) #所有大写转成小写 5 print(str.swapcase()) #大小写互换 6 print(str.capitalize()) #首字母大写
字符填充center、rjust、ljust、zfill
1 str = 'FeiHongtao' 2 print(str.center(20,'*')) #将字符串用指定的字符补充为指定的长度 3 print(str.rjust(20,'*')) #在字符串的左边补充字符 4 print(str.ljust(20,'*')) #在字符串的右边补充字符 5 print(str.zfill(20)) #在字符串前面补0
替换replace
1 str = 'FeiHongtaoHongtaoHongtao' 2 print(str.replace('Hong','hong')) #将Hong全部替换成hong 3 print(str.replace('Hong','hong',2)) #将前面2个Hong全部替换成hong
分割 split
1 str = 'FeiHongtaoHongtaoHongtao' 2 print(str.split('Hong')) #将字符串以指定的字符分割,得到一个列表 3 print(str.split('Hong',2)) #将字符串以指定的字符分割,得到一个列表, 2标识分割几次 4 l = ['Fei','hong','tao'] 5 print(' '.join(l)) #将一个列表按指定的字符拼接成一个字符串 6 print('_'.join(l)) #将一个列表按指定的字符拼接成一个字符串
包含 startswith、endswith、index、find
1 str = 'Feihongtao' 2 print(str.startswith('Fei')) #是否以指定的字符串开始 3 print(str.endswith('Fei')) #是否以指定的字符串结束 4 5 print(str.index('hong')) #查找指定字符串在原字符串中的位置,如果找到就返回具体位置,如果没找到则报错 6 print(str.index('hong', 0, 5)) 7 print(str.rindex('hong')) 8 9 print(str.find('hong')) #查找指定字符串在原字符串中的位置,如果找到就返回具体位置,如果没找到则返回-1 10 print(str.find('hong',0,5)) 11 print(str.rfind('hong')) 12 13 # index和find的区别在于: 14 # index如果找到就返回具体位置,如果没找到则报错 15 # find如果找到就返回具体位置,如果没找到则返回-1
判断 isdigit、isalpha
1 str = 'Feihongtao123' 2 print(str.isdigit()) #False 是否是数字组成 3 print(str.isalpha()) #False 是否是字母组成 4 print(str.isalnum()) #True 是否是字母和数字组成
计算len、count
1 str = 'Feihongtao123' 2 print(len(str)) # 13 计算字符串的长度 3 print(str.count('o')) # 2 计算字符或字符串在原字符串中出现的次数 4 print(str.count('o', 0, 5)) # 1 计算字符或字符串在原字符串中出现的次数(可在指定范围内查找)
4、int、str、bool三者之间的类型转换
# int ---> bool i = 100 print(bool(i)) # True # 非零即True i1 = 0 print(bool(i1)) # False 零即False # bool ---> int t = True print(int(t)) # 1 True --> 1 t = False print(int(t)) # 0 False --> 0 # int ---> str i1 = 100 print(str(i1)) # '100' # str ---> int # 全部由数字组成的字符串才可以转化成数字 s1 = '90' print(int(s1)) # 90 # str ---> bool s1 = '我是空的' s2 = '' print(bool(s1)) # True 非空即True print(bool(s2)) # False # bool ---> str t1 = True print(str(True)) # 'True'