==================【关于字符串应该掌握的方法】=================
***************************************************************
1.capitalize()
***************************************************************
字符串首字母大写,例:
str2 = 'hushuiweilan'
str2 = str2.capitalize()
print(str2) #输出:Hushuiweilan
***************************************************************
2.casefold()
***************************************************************
将字符串中所有大写字母变为小写,例:
str3 = 'HUSHUIweilan'
str3 = str3.casefold()
print(str3) #输出:hushuiweilan
***************************************************************
3.center(width)
***************************************************************
将字符串居中,并使用空格填充至长度为width的新字符串中。例:
str3 = str3.center(30)
print(str3) #输出:" hushuiweilan "
***************************************************************
4.count(sub[,start,end])
***************************************************************
返回sub在字符串里出现的次数,start和end参数表示范围,可选。例:
a = str2.count('u')
print(a) #输出:2
b = str2.count('u', 0, 2)
print(b) #输出:1
***************************************************************
5.endswith(sub[,start,end])
***************************************************************
检查字符串是否以sub字符串结束,如果是,返回True,否则返回False。start和end参数表示范围,可选。例:
a = str2.endswith('lan')
print(a) #输出:True
b = str2.endswith('a')
print(b) #输出:False
***************************************************************
6.find(sub[,start,end])
***************************************************************
检查sub是否包含在字符串中,如果有,返回索引值;否则返回-1。start和end参数表示范围,可选。例:
a = str2.find('see')
b = str2.find('wei')
print(a)
print(b)
其余内置函数还有很多,不再赘述,需要自查。
=======================【字符串格式化】=======================
python中,字符串的格式化要使用fomat关键字,它接收两种参数:位置参数,关键字参数;这两个要传送到一个叫replacement的字段里,这个字段是由花括号表示的。
比如:
1.位置参数:
str1 = "{0} love {1}.{2}".format("I","FishC","com")
print(str1) #输出:I love FishC.com
2.关键字参数:
str1 = "{a} love {b}.{c}".format(a = "I",b = "FishC",c = "com")
print(str1) #输出:I love FishC.com
3.关键字参数和位置参数结合使用:
这种情况下要注意:位置参数必须在关键字参数前面,如下:
str1 = "{0} love {b}.{c}".format("I", b = "FishC", c = "com")
print(str1)
如果位置参数写在关键字参数后面,系统会认为位置参数(0、1、2)也是关键字参数,从而会报错,如下面的代码:
str1 = "{a} love {1}.{c}".format(a = "I", "FishC", c = "com")
print(str1)
#输出结果:SyntaxError:positional argument follows keyword argument
下面提出一个问题:以下代码会输出什么?
str2 = "{{0}}".format("会输出什么?")
print(str2)
结果是输出:{0},因为如果只加一个花括号,结果是不会输出花括号的。双花括号相当于一个转义字符,输出花括号。即前面的"{{0}}"被解释成了{0},后面的format没有字段可以匹配输出,故最终结果只输出一个"{0}"。如果把双花括号改成单花括号,就会依据正常的规则,输出:"会输出什么?",见下:
str2 = "{{0}}".format("会输出什么?")
print(str2) #输出:会输出什么?
再提一个问题:以下代码会输出什么?
str3 = "{0:.1f}{1}".format(27.658, 'GB')
print(str3)
结果是输出:27.7GB ,原因是替换域(即replacement字段,即花括号中)的0后面多了一个冒号(:)和格式化字符".1f"。在替换域中,冒号表示格式化符号的开始,它后面就是格式化符号。其中'.1f'表示保留浮点数后一位小数。
====================【字符串格式化符号含义】====================
***************************************************************
1. %c 格式化字符及其ASCII码
***************************************************************
具体作用是将字符转化为其对应的ASCII码。语法:
单个字符转换:'%c' % X
多个字符转换:'%c %c %c' %(X1, X2, X3)
示例:
print('%c' % 97) #输出:a
print('%c, %c, %c' % (97,98,99)) #输出:a, b, c
print('%c %c %c' % (97,98,99)) #输出:a b c
Q: “格式化” 到底体现在哪里?
A: 这里的 “格式化” 主要指输入的字符内容,会遵循前面单引号中的'%c'的格式。如上面第二行print中,单引号中的每个'%c'后都 有一个逗号,则输出的内容中,每个字符后面就会有一个逗号。作为对比,第三行的print单引号中的每个'%c'后没有逗号,输出的字符后也就没有逗号了。也就是说,前面单引号中的'%c'的格式,规定了输出字符的格式。这就是所谓的 “格式化” 。
***************************************************************
2. %s 格式化字符串
***************************************************************
作用是用格式化字符来格式化字符串。语法:'%s' %'xxxxxxxx'
可以理解为把百分号后面的字符串替代到前面的%s中去。示例:
print('我是%s' % '湖水微澜') #输出:我是湖水微澜
print( '%s, 我是%s' % ('大家好','湖水微澜')) #输出:大家好, 我是湖水微澜
ps:一定要注意符号的正确性。之前我不小心把英文逗号写成了中文逗号,找了好久bug......
***************************************************************
3. %d 格式化整数
***************************************************************
作用是格式化整数。语法: '%d' %'xxx'
可以理解为把百分号后面的整数替代到前面的%d中去。
示例:
print('%d + %d = %d' % (4, 5, 4+5)) #输出:4 + 5 = 9
***************************************************************
4. %o 格式化无符号八进制数
***************************************************************
作用是将10进制(或其他进制)数转换为8进制数。语法:'%o' %'xxx'
示例:
print('%o' % 8) #输出:10(十进制数8的八进制表示,下同)
print('%o' % 10) #输出:12
print('%o' % 80) #输出:120
***************************************************************
5. %x 格式化无符号十六进制数
***************************************************************
作用是将10进制(或其他进制)数转换为16进制数。语法:'%x' %'xxx'
示例:
print('%x' % 10) #输出:a PS:格式化字符用小写x,就输出小写a
print('%X' % 10) #输出:A PS:格式化字符用大写X,就输出大写A
print('%X' % 160) #输出:A0
***************************************************************
6. %f 格式化定点数,可指定小数点后的精度(默认精确到小数点后6位)
***************************************************************
语法:'%f' %'xxx'
示例:
print('%f' % 27.658) #输出:27.658000
print()
***************************************************************
7. %e 用科学计数法格式化定点数
***************************************************************
语法:'%e' %'xxx'
示例:
print('%e' % 27.658) #输出:2.765800e+01
print('%E' % 27.658) #输出:2.765800E+01
***************************************************************
8. %g 根据值的大小决定使用%f或%e。
***************************************************************
语法:'%g' %'xxx'
示例:
print('%g' % 27.658) #输出:27.658
print('%G' % 0.0000000000000027658) #输出:2.7658E-15
==================【格式化操作符的辅助指令】===================
1. - 用于左对齐
2. + 在正数前面显示加号(+)(一般没啥用)
3. # 在八进制数前面显示零('0'),在十六进制数前面显示'0x'
更多具体的操作符可以在python学习005中查看,这里只要了解即可
print('%#o' % 10) #输出:0o12 其中,o表示八进制数。
print('%#x' % 108) #输出:0x6c 其中,x表示十六进制数。
print('%#d' % 10) #输出:10 其中,d表示十进制数。
print(bin(10)) #输出:0b1010 其中,bin表示二进制数。