亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python 字符串完全指南:创建、访问、格式化与内置方法大全

字符串创建

字符串是 Python 中最流行的类型。用引号括起字符即可创建。Python 对单双引号一视同仁。创建字符串即给变量赋值:

var1 = 'Hello World!'
var2 = "Python Programming"

访问字符串值

Python 无字符类型;长度为 1 的字符串也视为子串。

使用方括号切片及索引获取子串。例如:

在线演示
#!/usr/bin/python
var1 = 'Hello World!'
var2 = "Python Programming"
print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

执行结果:

var1[0]: H
var2[1:5]: ytho

更新字符串

可通过(重新)赋值变量来"更新"字符串。新值可关联前值,也可完全不同:

在线演示
#!/usr/bin/python
var1 = 'Hello World!'
print "Updated String :- ", var1[:6] + 'Python'

执行结果:

Updated String :- Hello Python

转义字符

以下表列出可用反斜杠表示的转义/非打印字符:

反斜杠表示十六进制字符说明
\a0x07响铃或警报
\b0x08退格
\cx Control-x
\C-x Control-x
\e0x1bEscape
\f0x0c换页
\M-\C-x Meta-Control-x
\n0x0a换行
\nnn 八进制表示,n 范围 0-7
\r0x0d回车
\s0x20空格
\t0x09制表符
\v0x0b垂直制表
\x 字符 x
\xnn 十六进制表示,n 范围 0-9、a-f、A-F

字符串特殊运算符

假设字符串变量 a 为 'Hello',b 为 'Python':

运算符描述示例
+连接 - 将运算符两侧值相加a + b 得到 HelloPython
*重复 - 创建新字符串,连接多个相同字符串副本a*2 得到 HelloHello
[]切片 - 获取给定索引字符a[1] 得到 e
[ : ]范围切片 - 获取给定范围字符a[1:4] 得到 ell
in成员 - 字符存在于指定字符串返回真H in a 返回 1
not in成员 - 字符不存在于指定字符串返回真M not in a 返回 1
r/R原始字符串 - 抑制转义字符实际含义。语法同普通字符串,除在引号前加字母 "r"。r 可大小写,必须紧邻首个引号print r'\n' 打印 \n,print R'\n' 打印 \n
%格式化 - 执行字符串格式化见下节

字符串格式化运算符

Python 最酷特性之一是字符串格式化运算符 %。此运算符专用于字符串,弥补了 C 的 printf() 族函数缺失。简单示例:

在线演示
#!/usr/bin/python
print "My name is %s and weight is %d kg!" % ('Zara', 21)

执行结果:

My name is Zara and weight is 21 kg!

可用于 % 的完整符号集:

格式符号转换
%c字符
%s格式化前通过 str() 转字符串
%i有符号十进制整数
%d有符号十进制整数
%u无符号十进制整数
%o八进制整数
%x十六进制整数(小写字母)
%X十六进制整数(大写字母)
%e指数符号(小写 e)
%E指数符号(大写 E)
%f浮点实数
%g%f 和 %e 中较短者
%G%f 和 %E 中较短者

其他支持符号和功能:

符号功能
*参数指定宽度或精度
-左对齐
+显示符号
<sp>正数前留空格
#添加八进制前导零('0')或十六进制前导'0x'/'0X'(视'x'/'X'而定)
0左侧用零填充(而非空格)
%'%%' 保留单个 '%'
(var)映射变量(字典参数)
m.n.m 为最小总宽度,n 为小数点后显示位数(如适用)

三引号

Python 三引号允许字符串跨多行,包含逐字 NEWLINEs、TABs 和其他特殊字符。

三引号语法为三个连续单引号或双引号。

在线演示
#!/usr/bin/python
para_str = """this is a long string that is made up of several lines and non-printable characters such as TAB ( \t ) and they will show up that way when displayed. NEWLINEs within the string, whether explicitly given like this within the brackets [ \n ], or just a NEWLINE within the variable assignment will also show up. """
print para_str

执行结果。注意每个特殊字符都转为打印形式,包括结尾处的 NEWLINE。NEWLINE 由显式回车或转义码 (\n) 产生:

this is a long string that is made up of several lines and non-printable characters such as TAB ( ) and they will show up that way when displayed. NEWLINEs within the string, whether explicitly given like this within the brackets [ ], or just a NEWLINE within the variable assignment will also show up.

原始字符串完全不将反斜杠视为特殊字符。原始字符串中每字符保持原样:

在线演示
#!/usr/bin/python
print 'C:\\nowhere'

执行结果:

C:\nowhere

使用原始字符串,表达式置于 r'expression':

在线演示
#!/usr/bin/python
print r'C:\\nowhere'

执行结果:

C:\\nowhere

Unicode 字符串

普通字符串内部存储为 8 位 ASCII,Unicode 字符串存储为 16 位 Unicode,支持世界上大多数语言的特殊字符。仅作以下介绍:

在线演示
#!/usr/bin/python
print u'Hello, world!'

执行结果:

Hello, world!

Unicode 字符串用前缀 u,如原始字符串用前缀 r。

内置字符串方法

Python 提供以下内置方法操作字符串:

序号方法与说明
1capitalize() - 字符串首字母大写
2center(width, fillchar) - 返回原字符串居中、用填充字符填充至宽度 width 的字符串
3count(str, beg=0, end=len(string)) - 统计 str 在字符串或子串中出现次数
4decode(encoding='UTF-8', errors='strict') - 用注册编码解码字符串
5encode(encoding='UTF-8', errors='strict') - 返回字符串编码版本,错误时默认抛出 ValueError,除非 errors 为 'ignore' 或 'replace'
6endswith(suffix, beg=0, end=len(string)) - 判断字符串/子串是否以 suffix 结尾
7expandtabs(tabsize=8) - 将字符串制表符展开为多空格,默认每制表符 8 空格
8find(str, beg=0, end=len(string)) - 查找 str 在字符串/子串中位置,找到返回索引,否则 -1
9index(str, beg=0, end=len(string)) - 同 find(),但未找到时抛异常
10isalnum() - 至少 1 字符且全为字母数字返回真,否则假
11isalpha() - 至少 1 字符且全为字母返回真,否则假
12isdigit() - 仅含数字返回真,否则假
13islower() - 至少 1 字符且全为小写返回真,否则假
14isnumeric() - Unicode 字符串仅含数字字符返回真,否则假
15isspace() - 仅含空白字符返回真,否则假
16istitle() - 字符串正确"标题化"返回真,否则假
17isupper() - 至少 1 字符且全为大写返回真,否则假
18join(seq) - 将序列 seq 中元素的字符串表示合并为字符串,以分隔符连接
19len(string) - 返回字符串长度
20ljust(width[, fillchar]) - 返回原字符串左对齐、填充至宽度 width 的字符串
21lower() - 将字符串中大写字母转为小写
22lstrip() - 移除字符串前导空白字符
23maketrans() - 返回供 translate 函数使用的转换表
24max(str) - 返回字符串 str 中最大字母字符
25min(str) - 返回字符串 str 中最小字母字符
26replace(old, new [, max]) - 将字符串中所有 old 替换为 new,或最多 max 次
27rfind(str, beg=0, end=len(string)) - 同 find(),但从后向前搜索
28rindex(str, beg=0, end=len(string)) - 同 index(),但从后向前搜索
29rjust(width[, fillchar]) - 返回原字符串右对齐、填充至宽度 width 的字符串
30rstrip() - 移除字符串尾部空白字符
31split(str="", num=string.count(str)) - 按分隔符 str 分割字符串(默认空格),返回子串列表;最多分割 num 个子串
32splitlines(num=string.count('\n')) - 在所有(或 num 个) NEWLINE 处分割字符串,返回移除 NEWLINE 的各行列表
33startswith(str, beg=0, end=len(string)) - 判断字符串/子串是否以子串 str 开头
34strip([chars]) - 同时执行 lstrip() 和 rstrip()
35swapcase() - 反转字符串中所有字母大小写
36title() - 返回"标题化"版本,所有单词首字母大写、其余小写
37translate(table, deletechars="") - 按转换表 str(256 字符)转换字符串,移除 del 字符串中的字符
38upper() - 将字符串中小写字母转为大写
39zfill(width) - 返回原字符串左侧填充零至宽度 width,用于数字,zfill() 保留符号(少一零)
40isdecimal() - Unicode 字符串仅含十进制字符返回真,否则假

Python

  1. 掌握 C# 字符串:基础、操作与进阶技巧完全指南
  2. 精通Python运算符:全面指南
  3. 精通 Python 字典:创建、操作与进阶技巧
  4. Python 字符串操作完全指南:替换、连接、分割、反转、大小写转换
  5. Python strip() 方法完全指南:去除首尾空白与自定义字符实战
  6. Python str.count() 完全指南:统计字符与子串出现次数实战
  7. Python format() 字符串格式化完全指南:占位符、格式化规范、类与字典应用
  8. Python len() 函数实战指南:测量字符串、列表、元组、字典等对象长度
  9. Python 字符串 find() 方法完全指南:语法、参数、替代方案与计数技巧
  10. 精通 Python enumerate():为列表、元组、字符串、字典带索引循环
  11. 精通 Java 字符串:创建、方法与最佳实践
  12. 精通 Java 枚举字符串表示:默认行为、toString 重写与进阶模式