微信公众号:码农充电站pro
我的主页:https://codeshellme.github.iohtml
过早的优化代码是罪恶之源。
—— Donald Knuthpython
目录git
不管哪一种编程语言,字符串
处理都是最重要的内容之一。固然,Python 也不例外。github
在这节内容中,咱们已经知道了Python 字符串是用如下引号
引住的一串字符:shell
''
""
'''
"""
Python3
中的字符串
类型统一采用Unicode
编码,所以支持多种语言。编程
咱们这里介绍的字符串
类型,指的是<class 'str'>
:微信
>>> type('中国') <class 'str'> >>> type('abc') <class 'str'>
在用到某些特殊字符时,须要用到转义字符----反斜杠\
。编程语言
下表是Python 中的一些经常使用转义字符:函数
转义字符 | 含义 |
---|---|
\\ |
反斜杠 |
\' |
单引号 |
\" |
双引号 |
\n |
换行 |
\r |
回车 |
\t |
横向制表符 |
使用len()
函数能够获取字符串的长度
:优化
>>> len('Hello') # 一个英文字符的长度是 1 5 >>> len('Hi') 2 >>> len('Python') 6 >>> len('中国') # 一个中文字符的长度是 1 2
在Python 中能够用中括号[]
来截取字符串内容。
获取单个字符
经过下标
获取字符串中的单个字符,语法格式以下:
s[n]
其中s
是一个字符串变量,n
为下标,是一个整数,其取值范围为:
-len(s)<=n<=len(s)-1
-len(s)<=n<0
:从右往左数,取第n
个字符0<=n<=len(s)-1
:从左往右数,取第n+1
个字符图解:
示例:
>>> s = 'Hello' # 字符换变量 s >>> len(s) # s 的长度 5 # 下标n 的范围为 -5<=n<=4 >>> s[-6] # 超出取值范围,报错 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range >>> s[-5] # 取倒数第5 个字符 'H' >>> s[-1] # 取倒数第1 个字符 'o' >>> s[0] # 取第1 个字符 'H' >>> s[4] # 取最后一个字符 'o' >>> s[5] # 超出取值范围,报错 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range
获取部分字符
获取部分字符串的语法格式以下:
s[m:n]
其中s
是一个字符串变量,m
和 n
能够是任意的整数。
s[m:n]
表明的含义是:获取字符串s
下标m
到 n
之间的子串,子串的值包含s[m]
,而不包含s[n]
,即遵循左闭右开
原则。
图解:
示例:
>>> s = 'Hello' >>> s[-5:1] 'H' >>> s[-7:2] 'He' >>> s[-3:2] '' >>> s[0:3] 'Hel' >>> s[3:1] '' >>> s[3:-1] 'l'
m 和 n 均可不写
m
,表明从最左
边开始n
,表明到最右
边结束示例:
>>> s = 'Hello' >>> s[:] # m 和 n 都不写表明整个字符串 'Hello' >>> s[:3] # 不写 m,表明从最左边开始,直到下标 n 'Hel' >>> s[2:] # 不写 n,表明从下标 m开始,直到最右边 'llo'
加号+
运算符能够链接两个字符串
:
>>> 'abc' + '123' 'abc123' >>> 'Hi' + '你好' 'Hi你好'
一个字符串
乘一个整数n
,至关于n
个字符串相连:
>>> 'a' * 5 'aaaaa' >>> 'abc' * 3 'abcabcabc' >>> '你好' * 2 '你好你好'
运算符in
in
在Python 中是一个运算符
,可用于判断一个子串
是否包含
在一个字符串
中:
>>> 'a' in 'abc' True >>> 'ab' in 'abc' True >>> 'ad' in 'abc' False
运算符not in
not in
是in
的反义,用于判断一个子串
是否不包含
在一个字符串
中:
>>> 'a' not in 'abc' False >>> 'ab' not in 'abc' False >>> 'ad' not in 'abc' True
Python 字符串支持多种数据类型的格式化,字符串格式化符号
见下表:
符号 | 含义 |
---|---|
%c |
格式化字符 |
%s |
格式化字符串 |
%d |
格式化整数 |
%o |
格式化八进制数 |
%x/%X |
格式化十六进制数,后者为大写 |
%f |
格式化浮点数 |
%e |
用科学计数法格式化浮点数 |
示例:
>>> '%c' % 'a' # 格式化字符 'a' >>> '%c' % 'B' # 格式化字符 'B' >>> '%s' % '中国' # 格式化字符串 '中国' >>> '%s' % 'abc' # 格式化字符串 'abc' >>> '%s' % 123 # 数字类型也可格式化为字符串 '123' >>> '%d' % 12345 # 格式化数字 '12345' >>> '%o' % 8 # 格式化八进制数字 '10' >>> '%o' % 9 # 格式化八进制数字 '11' >>> '%x' % 10 # 格式化十六进制数字,小写 'a' >>> '%x' % 11 # 格式化十六进制数字,小写 'b' >>> '%X' % 10 # 格式化十六进制数字,大写 'A' >>> '%X' % 11 # 格式化十六进制数字,大写 'B' >>> '%f' % 123.123 # 格式化浮点数 '123.123000' >>> '%e' % 123.123 # 科学计数法格式化浮点数 '1.231230e+02'
宽度与小数点位数
每种格式化符号以前均可以添加m.n
:
m
与 n
都是正整数m
表示格式化的宽度,对于浮点数无效n
表示小数点后的位数,只对浮点数有效示例:
>>> '%4s' % 'abc' # 总宽度为 4 ' abc' # 'abc' 以前有 1 个空格 >>> '%5s' % 'abc' # 总宽度为 5 ' abc' # 'abc' 以前有 2 个空格 >>> '%5d' % 100 # 总宽度为 5 ' 100' # 100 以前有 2 个空格 >>> '%.5d' % 100 # 总宽度为 5,注意 5 以前有个点 '00100' # 宽度不够用 0 补齐,因此 100 以前有 2 个 0 >>> '%.2f' % 100.123 # 小数点后保留 2 位,多余位数舍弃 '100.12' >>> '%.5f' % 100.123 # 小数点后保留 5 位,位数不够,用 0 补齐 '100.12300'
左对齐与右对齐
默认状况下,宽度
不够时,会在左边加空格,这是右对齐
:
>>> '%5s' % 'abc' # 宽度为 5,不够用空格补齐,右对齐 ' abc'
可在数字5
以前添加一个负号-
,宽度
不够时,会在右边加空格,这是左对齐
:
>>> '%-5s' % 'abc' # 宽度为 5,不够用空格补齐,左对齐 'abc '
(完。)
推荐阅读:
Python 简明教程 --- 2,第一个Python 程序
Python 简明教程 --- 4,Python 变量与基本数据类型
Python 简明教程 --- 5,Python 表达式与运算符
欢迎关注做者公众号,获取更多技术干货。