三章、序列与字符串(下)
Flat is better than nested.——The Zen of Python
三、字符串(下)
3.1字母的大小写转换
在Python中,字符串对象提供了lower()方法和upper()方法进行字母的大小写转换,即可以用大写字母转换为小写字母,小写字母转换为大写字母。
lower()方法用于将字符串中的大写字母转换为小写字母。如果字符串中没有需要被转换的字符,则将原字符串返回,否则将返回一个新的字符串,将原字符串中每个需要进行小写转换的字符串都转换为等价的小写字符,字符串的长度与原字符串相同。其语法格式如下:
str.lower() 其中,str:要进行转换的字符串
upper()方法用于将字符串的小写字母转换为大写字母。如果字符串中没有需要被转换的字符,则将原字符串返回,否则返回一个新字符串,将原字符串中每个需要进行大写转换的字符都转换成等价的大写字符,新字符串的长度与原字符串的长苏相同。其语法格式如下:
str.upper() 其中,str: 要进行转换的字符串
1 str1='Https://www.cnblogs.com/1210x1184/p/10994813.html' 2 print('我的博客网址:',str1) 3 print('我的博客网址:',str1.lower()) #全部转换为小写字母输出 4 print('我的博客网址:',str1.upper()) #全部转换为大写字母输出 5 输出: 6 我的博客网址: Https://www.cnblogs.com/1210x1184/p/10994813.html 7 我的博客网址: https://www.cnblogs.com/1210x1184/p/10994813.html 8 我的博客网址: HTTPS://WWW.CNBLOGS.COM/1210X1184/P/10994813.HTML
3.2 去除字符串中的空格和特殊字符
用户在输入数据时,可能会无意中输入多余的空格,或者在一些情况下,字符串前后不允许出现空格和特殊字符,这时候就需要去除字符串中的空格和特殊字符,在Python中,strip()方法可以去除字符串左右两边的空格和特殊字符,lstrip()可以去除字符串左边的空格和特殊字符,rstrip()去除字符串右边的空格和特殊字符。通常这里的特殊字符是指制表符“ ”、回车符“ ”、换行符“ ”等。
三种方法的语法格式如下:
str.strip([ chars ])、str.lstrip([ chars ]) 、str.rstrip([ chars ])
str :为要去除空格的字符串
chars: 可选参数用于指定要去除的字符,可以指定多个,如果设置chars为“@*”,则去除规定位置包括的“@”或“*”。如果不指定参数,默认去除空格,指制表符“ ”、回车符“ ”、换行符“ ”等。
1 str1='@*@*https://www.cnblogs.com/1210x1184/p/10994813.html**@@ ' 2 str2=str1.strip() #去除字符串两边的制表符 3 print('我的博客网址:',str1) 4 print('我的博客网址:',str2) 5 print('我的博客网址:',str2.strip("@*")) #去除字符两边的"@*"符号 6 str3=str1.rstrip() #去除字符串右边的制表符 7 print('我的博客网址:',str3) 8 print('我的博客网址:',str3.rstrip('@*')) #去除字符串右边的制表符 9 print('我的博客网址:',str3.lstrip('@*')) #去除字符串右边的制表符 10 输出: 11 我的博客网址: @*@*https://www.cnblogs.com/1210x1184/p/10994813.html**@@ 12 我的博客网址: @*@*https://www.cnblogs.com/1210x1184/p/10994813.html**@@ 13 我的博客网址: https://www.cnblogs.com/1210x1184/p/10994813.html 14 我的博客网址: @*@*https://www.cnblogs.com/1210x1184/p/10994813.html**@@ 15 我的博客网址: @*@*https://www.cnblogs.com/1210x1184/p/10994813.html 16 我的博客网址: https://www.cnblogs.com/1210x1184/p/10994813.html**@@
3.3 格式化字符串
格式化字符串是指事先定好一个模板,在这个模板中预留几个空位,然后在根据需要填上相应的内容,这些空位需要通过指定的符号标记(也称为占位符),而这些符号还不会显示出来,在Python中,格式化字符串有以下两种方法。
1.使用“%”操作符
在Python中,可以使用“%”操作符,来实现格式化字符串。语法格式如下:
‘%[ - ][ + ][ 0 ][ m ][ .n ]格式化字符串’%exp
- : 可选参数,用于指定左对齐,证书前方无符号,负数前面加负号。
+ : 可选参数,用于指定右对齐,整数前方加正号,负数前方加负号。
0 :可选参数,表示右对齐,正数前方无符号,负数前方加负号,用0填充空白(一般与m参数一起使用)
m : 可选参数,表示占有宽度
.n : 可选参数用于指定类型,具体参数如表所示:
exp: 要转换的项。如果要指定的项有多少,需要通过元组的形式进行指定,不能使用列表.
格式字符 | 说 明 | 格式字符 | 说 明 |
%s | 字符串(str()显示) | %r | 字符串(repr()显示) |
%c | 单个字符 | %o | 八进制整数 |
%d或%i | 十进制数 | %e | 指数(e为基底) |
%x | 十六进制整数 | %E | 指数(E为基底) |
%f或%F | 浮点数 | %% | 字符% |
示例如下:
1 text='编号:%06d 昵称: %s 博客地址 %s' 2 info=(7,'雨霓同学','https://www.cnblogs.com/1210x1184/') 3 print(text%info) 4 输出: 5 编号:000007 昵称: 雨霓同学 博客地址 https://www.cnblogs.com/1210x1184/
%操作符是早期Python中提供的方法,自从Python2.6版本后,字符串对象提供了format()方法对字符串进行格式化.
3.4 使用字符串对象的format()方法
字符串对象提供了format()方法用于进行字符串格式化,语法格式如下:
str.format(args)
str: 用于指定字符串的显示样式
args: 用于指定要转换的项,如果有多项,则用逗号进行分隔。
在设置显示样式时。需要使用“{ }”和“ :”指定占位符,基本语法格式如下:
{ [ inde x] [: [ [fill ] align] [sign ] [# ] [width ] [.precision] [ type] ] }
index: 可选参数,用于指定要设置格式的对象在参数列表中的索引位置,索引值从0开始。如果省略,则根据值的先后顺序自动分配。
fill: 可选参数,用于指定空白处填充的字符
align:可选参数,用于指定对其方式(值为“<”表示内容左对齐;值为“>”表示内容右对齐;值为“=”表示内容右对齐,将符号放入填充内容的最左侧,且只对数字类型有效;值为“^”表示内容居中),需要配合width一起使用
sign: 可选参数,用于指定有无符号数(值为“+”表示整数加正号,负数加负号;值为“-”表示正数不变;负数加负号,值为空格表示正数加空格,负数加负号).
#: 可选参数,对于二进制、八进制、十六进制数,如果加上#,表示会显示“0b/0o/0x”前缀,否则不显示前缀
width: 可选参数,用于指定所占宽度。
.precision: 可选参数,用于指定保留的小数位数。
type: 可选参数,用于指定类型:
格式字符 | 说 明 | 格式字符 | 说 明 |
s | 对字符串类型格式化 | b | 将十进制整数转换为二进制再格式化 |
d | 十进制整数 | o | 将十进制整数转换为八进制再格式化 |
c | 将十进制整数转换为对应的Unicode字符 | x或X | 将十进制整数转换为十六进制再格式化 |
e或E | 转换为科学计数法表示再格式化 | f或F | 转换为浮点数(默认6位)然后再格式化 |
g或G | 自动在e和f和或者E和F中切换 | % | 显示百分百(默认后六位) |
注意:在一个自定义显示样式中,指定索引位置的规范需要统一,即全部采用手动指定或全部采用自动,关于formcat()方法示例如下:
1 text2='编号:{:0>7s} 昵称:{:s} 博客网址:{:s}' 2 info1=text2.format('7','雨霓同学','https://www.cnblogs.com/1210x1184/') 3 print(info1) 4 输出: 5 编号:0000007 昵称:雨霓同学 博客网址:https://www.cnblogs.com/1210x1184/
在实际开发中,数值类型有很多显示方式,比如货币形式、百分百形式,使用format()方法可以将数值格式转化为不同的形式。