Python 简明教程 --- 7,Python 字符串
source link: https://codeshellme.github.io/2020/05/python-learn7/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
微信公众号:码农充电站pro
过早的优化代码是罪恶之源。
—— Donald Knuth
目录
无论哪种编程语言,字符串
处理都是最重要的内容之一。当然,Python 也不例外。
1,Python 字符串
在这节内容中,我们已经知道了Python 字符串是用以下引号
引住的一串字符:
- 单引号
''
- 双引号
""
- 三单引号
'''
- 三双引号
"""
Python3
中的字符串
类型统一采用Unicode
编码,因此支持多种语言。
我们这里介绍的字符串
类型,指的是<class 'str'>
:
>>> type('中国') <class 'str'> >>> type('abc') <class 'str'> |
2,常用转义字符
在用到某些特殊字符时,需要用到转义字符—-反斜杠\
。
下表是Python 中的一些常用转义字符:
转义字符 | 含义 |
---|---|
\\ |
反斜杠 |
\' |
单引号 |
\" |
双引号 |
\n |
换行 |
\r |
回车 |
\t |
横向制表符 |
3,字符串长度
使用len()
函数可以获取字符串的长度
:
>>> len('Hello') # 一个英文字符的长度是 1 >>> len('Hi') >>> len('Python') >>> len('中国') # 一个中文字符的长度是 1 |
4,截取字符串
在Python 中可以用中括号[]
来截取字符串内容。
获取单个字符
通过下标
获取字符串中的单个字符,语法格式如下:
其中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 个字符 >>> s[-1] # 取倒数第1 个字符 >>> s[0] # 取第1 个字符 >>> s[4] # 取最后一个字符 >>> 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] >>> s[-7:2] >>> s[-3:2] >>> s[0:3] 'Hel' >>> s[3:1] >>> s[3:-1] |
m 和 n 都可不写
- 如果不写
m
,代表从最左
边开始 - 如果不写
n
,代表到最右
边结束
>>> s = 'Hello' >>> s[:] # m 和 n 都不写代表整个字符串 'Hello' >>> s[:3] # 不写 m,代表从最左边开始,直到下标 n 'Hel' >>> s[2:] # 不写 n,代表从下标 m开始,直到最右边 'llo' |
5,字符串连接
加号+
运算符可以连接两个字符串
:
>>> 'abc' + '123' 'abc123' >>> 'Hi' + '你好' 'Hi你好' |
6,重复字符串
一个字符串
乘一个整数n
,相当于n
个字符串相连:
>>> 'a' * 5 'aaaaa' >>> 'abc' * 3 'abcabcabc' >>> '你好' * 2 '你好你好' |
7,字符串包含
运算符in
in
在Python 中是一个运算符
,可用于判断一个子串
是否包含
在一个字符串
中:
>>> 'a' in 'abc' >>> 'ab' in 'abc' >>> 'ad' in 'abc' False |
运算符not in
not in
是in
的反义,用于判断一个子串
是否不包含
在一个字符串
中:
>>> 'a' not in 'abc' False >>> 'ab' not in 'abc' False >>> 'ad' not in 'abc' |
8,字符串格式化
Python 字符串支持多种数据类型的格式化,字符串格式化符号
见下表:
符号 | 含义 |
---|---|
%c |
格式化字符 |
%s |
格式化字符串 |
%d |
格式化整数 |
%o |
格式化八进制数 |
%x/%X |
格式化十六进制数,后者为大写 |
%f |
格式化浮点数 |
%e |
用科学计数法格式化浮点数 |
>>> '%c' % 'a' # 格式化字符 >>> '%c' % 'B' # 格式化字符 >>> '%s' % '中国' # 格式化字符串 >>> '%s' % 'abc' # 格式化字符串 'abc' >>> '%s' % 123 # 数字类型也可格式化为字符串 '123' >>> '%d' % 12345 # 格式化数字 '12345' >>> '%o' % 8 # 格式化八进制数字 >>> '%o' % 9 # 格式化八进制数字 >>> '%x' % 10 # 格式化十六进制数字,小写 >>> '%x' % 11 # 格式化十六进制数字,小写 >>> '%X' % 10 # 格式化十六进制数字,大写 >>> '%X' % 11 # 格式化十六进制数字,大写 >>> '%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 简明教程 — 4,Python 变量与基本数据类型
Python 简明教程 — 5,Python 表达式与运算符
欢迎关注作者公众号,获取更多技术干货。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK