- Python 教程
- Python 教程
- Python - 概述
- Python - 历史
- Python - 特性
- Python 与 C++
- Python - Hello World 程序
- Python - 应用领域
- Python 解释器及其模式
- Python - 环境设置
- Python - 虚拟环境
- Python - 基本语法
- Python - 变量
- Python - 数据类型
- Python - 类型转换
- Python - Unicode 系统
- Python - 文字
- Python - 运算符
- Python - 算术运算符
- Python - 比较运算符
- Python - 赋值运算符
- Python - 逻辑运算符
- Python - 按位运算符
- Python - 成员资格运算符
- Python - 身份运算符
- Python - 运算符优先级
- Python - 注释
- Python - 用户输入
- Python - 数字
- Python - 布尔值
- Python 控制语句
- Python - 控制流
- Python - 决策
- Python - if 语句
- Python - if-else 语句
- Python - 嵌套 if 语句
- Python - Match-Case 语句
- Python - 循环
- Python - For 循环
- Python for-else 循环
- Python - While 循环
- Python - break 语句
- Python - Continue 语句
- Python - pass 语句
- Python - 嵌套循环
- Python 函数和模块
- Python - 函数
- Python - 默认参数
- Python - 关键字参数
- Python - 仅关键字参数
- Python - 位置参数
- Python - 仅位置参数
- Python - 任意或可变长度参数
- Python - 变量范围
- Python - 函数注释
- Python - 模块
- Python - 内置函数
- Python 字符串
- Python - 字符串
- Python - 切片字符串
- Python - 修改字符串
- Python - 字符串连接
- Python - 字符串格式化
- Python - 转义字符
- Python - 字符串方法
- Python - 字符串练习
- Python 列表
- Python - 列表
- Python - 访问列表项
- Python - 更改列表项
- Python - 添加列表项
- Python - 删除列表项
- Python - 循环列表
- Python - 列表推导式
- Python - 排序列表
- Python - 复制列表
- Python - 联接列表
- Python - 列表方法
- Python - 列表练习
- Python 元组
- Python - 元组(Tuple )
- Python - 访问元组项
- Python - 更新元组
- Python - 解压缩元组项
- Python - 循环元组
- Python - 联接元组
- Python - 元组方法
- Python - 元组练习
- Python 集
- Python - 集(sets)
- Python - 访问 Set Items
- Python - 添加 Set Items
- Python - 删除 Set Items
- Python - 循环 Set Items
- Python - 联接 Sets
- Python - 复制 Set
- Python - Set 运算符
- Python - Set 方法
- Python - Set 的练习
- Python 字典
- Python - 字典
- Python - 访问字典项
- Python - 更改字典项
- Python - 添加字典项
- Python - 删除字典项
- Python - 字典视图对象
- Python - 循环字典
- Python - 复制字典
- Python - 嵌套字典
- Python - 字典方法
- Python - 字典练习
- Python 数组
- Python - 数组
- Python - 访问数组项
- Python - 添加数组项
- Python - 删除数组项
- Python - 循环数组
- Python - 复制数组
- Python - 反向数组
- Python - 对数组进行排序
- Python - 连接数组
- Python - 数组方法
- Python - 数组练习
- Python 文件处理
- Python - 文件处理
- Python - 写入文件
- Python - 读取文件
- Python - 重命名和删除文件
- Python - 目录
- Python - 文件方法
- Python OS 文件/目录方法
- Python - os.path 方法
- 面向对象编程
- Python - OOP 概念
- Python - 类和对象
- Python - 类属性
- Python - 类方法
- Python - 静态方法
- Python - 构造函数
- Python - 访问修饰符
- Python - 继承
- Python - 多态性
- Python - 方法覆盖
- Python - 方法重载
- Python - 动态绑定
- Python - 动态类型
- Python - 抽象
- Python - 封装
- Python - 接口
- Python - 软件包
- Python - 内部类
- Python - 匿名类和对象
- Python - 单例类
- Python - 包装类
- Python - 枚举
- Python - 反射
- Python 错误和异常
- Python - 语法错误
- Python - 异常处理
- Python - try-except 块
- Python - try-finally 块
- Python - 引发异常
- Python - 异常链接
- Python - 嵌套 try 块
- Python - 用户定义的异常
- Python - 日志记录
- Python - 断言
- Python - 内置异常
- Python 多线程
- Python - 多线程
- Python - 线程生命周期
- Python - 创建线程
- Python - 启动线程
- Python - 联接线程
- Python - 命名线程
- Python - 线程调度
- Python - 线程池
- Python - 主线程
- Python - 线程优先级
- Python - 守护程序线程
- Python - 同步线程
- Python 同步
- Python - 线程间通信
- Python - 线程死锁
- Python - 中断线程
- Python 网络
- Python - 网络编程
- Python - 套接字编程
- Python - URL 处理
- Python - 泛型
- Python 杂项
- Python - 日期和时间
- Python - math 模块
- Python - 迭代器
- Python - 生成器
- Python - 闭包(closures)
- Python - 装饰器( Decorators)
- Python - 递归
- Python - 正则表达式
- Python - PIP
- Python - 数据库访问
- Python - 弱引用
- Python - 序列化
- Python - 模板
- Python - 输出格式
- Python - 性能测量
- Python - 数据压缩
- Python - CGI 编程
- Python - XML 处理
- Python - GUI 编程
- Python - 命令行参数
- Python - 文档字符串
- Python - JSON
- Python - 发送电子邮件
- Python - 更多扩展
- Python - 工具/实用程序
- Python - 图形用户界面
- Python 高级概念
- Python - 抽象基类
- Python - 自定义异常
- Python - 高阶函数
- Python - 对象内部
- Python - 内存管理
- Python - 元类
- Python - 使用 Metaclasses 进行元编程
- Python - 模拟和存根
- Python - 猴子修补
- Python - 信号处理
- Python - 类型提示
- Python - 自动化教程
- Python - 人性化软件包
- Python - 上下文管理器
- Python - 协程
- Python - 描述符
- Python - 诊断和修复内存泄漏
- Python - 不可变数据结构
Python - 字符串
在 Python 中,字符串是 Unicode 字符的不可变序列。根据 UNICODE 标准,每个字符都有一个唯一的数值。但是,即使所有字符都是数字,整个序列也没有任何数值。为了将字符串与数字和其他标识符区分开来,字符序列包含在其文字表示的单引号、双引号或三引号中。因此,1234 是一个数字(整数),而 '1234' 是一个字符串。
创建 Python 字符串
只要包含相同的字符序列,单引号、双引号或三引号就无关紧要。因此,以下字符串表示形式是等效的。
例
>>> 'Welcome To qikepu'
'Welcome To qikepu'
>>> "Welcome To qikepu"
'Welcome To qikepu'
>>> '''Welcome To qikepu'''
'Welcome To qikepu'
>>> """Welcome To qikepu"""
'Welcome To qikepu'
查看上面的语句,很明显,Python 内部将字符串存储在单引号中。
访问字符串中的值
Python 不支持字符类型;这些被视为长度为 1 的字符串,因此也被视为子字符串。
要访问子字符串,请使用方括号进行切片,并使用索引或索引来获取子字符串。例如 -
var1 = 'Hello World!'
var2 = "Python Programming"
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])
执行上述代码时,它会产生以下结果 -
var2[1:5]: ytho
更新字符串
您可以通过将变量(重新)分配给另一个字符串来“更新”现有字符串。新值可以与其以前的值相关,也可以与完全不同的字符串相关。例如 -
var1 = 'Hello World!'
print ("Updated String :- ", var1[:6] + 'Python')
执行上述代码时,它会产生以下结果 -
请访问 Python - 修改字符串教程,了解有关更新/修改字符串的更多信息。
转义字符
下表是可以用反斜杠表示法表示的转义字符或不可打印字符的列表。
转义字符被解释;在单引号和双引号字符串中。
反斜杠表示法 | 十六进制字符 | 描述 |
---|---|---|
\a | 0x07 | 铃声或警报 |
\b | 0x08 | 退格键 |
\cx | Control-x | |
\C-x | Control-x | |
\e | 0x1b | Esc键 |
\f | 0x0c | 换页 |
\M-\C-x | 元控制-x | |
\n | 0x0a | 换行符 |
\nnn | 八进制表示法,其中 n 在 0.7 范围内 | |
\r | 0x0d | 回车健 |
\s | 0x20 | 空格健 |
\t | 0x09 | Tab健 |
\v | 0x0b | “垂直 tab |
\x | 字符 x | |
\xnn | 十六进制表示法,其中 n 在 0.9、a.f 或 A.F 范围内 |
字符串特殊运算符
假设字符串变量 a 包含 'Hello',变量 b 包含 'Python',则 -
运算符 | 描述 | 示例 |
---|---|---|
+ | Concatenation - 在运算符的任一侧添加值 | a + b 将给出 HelloPython |
* | 重复 - 创建新字符串,连接同一字符串的多个副本 | a*2 将给出 -HelloHello |
[] | Slice - 给出给定索引中的字符 | a[1] 将得到 e |
[ : ] | Range Slice - 给出给定范围内的字符 | a[1:4] 将给出 ell |
in | Membership - 如果给定字符串中存在字符,则返回 true | H 在 a 中将得到 1 |
not in | Membership - 如果给定字符串中不存在字符,则返回 true | M 不在 a 中将得到 1 |
r/R | Raw String - 隐藏 Escape 字符的实际含义。原始字符串的语法与普通字符串的语法完全相同,但原始字符串运算符除外,即引号前面的字母“r”。“r” 可以是小写 (r) 或大写 (R),并且必须放在第一个引号之前。 | print r'\n' prints \n and print R'\n'prints \n |
% | 格式 - 执行字符串格式 | 请参阅下一节 |
字符串格式化运算符
Python 最酷的功能之一是字符串格式运算符 %。此运算符对于字符串是唯一的,并且构成了 C 的 printf() 系列中的函数包。下面是一个简单的示例 -
print ("My name is %s and weight is %d kg!" % ('Zara', 21))
执行上述代码时,它会产生以下结果 -
以下是可以与 % 一起使用的完整符号集的列表 -
格式符号 | 转换 |
---|---|
%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 是小数点后要显示的位数(如果 appl)。 |
请访问 Python - 字符串格式设置教程,了解设置字符串格式的各种方法。
Python 字符串双引号
你想在双引号中嵌入一些文本作为字符串的一部分,字符串本身应该放在单引号中。要嵌入单引号文本,字符串应写在双引号中。
例
var = 'Welcome to "Python Tutorial" from qikepu'
print ("var:", var)
var = "Welcome to 'Python Tutorial' from qikepu"
print ("var:", var)
它将产生以下输出 -
var: Welcome to 'Python Tutorial' from qikepu
三重双引号
要用三引号形成字符串,你可以使用三重单引号或三重双引号 - 这两个版本是相似的。
例
var = '''Welcome to qikepu'''
print ("var:", var)
var = """Welcome to qikepu"""
print ("var:", var)
它将产生以下输出 -
var: Welcome to qikepu
Python 多行字符串
三引号字符串可用于形成多行字符串。
例
var = '''
Welcome To
Python Tutorial
from qikepu
'''
print ("var:", var)
它将产生以下输出 -
Welcome To
Python Tutorial
from qikepu
带字符串的算术运算符
字符串是一种非数字数据类型。显然,我们不能将算术运算符与字符串操作数一起使用。在这种情况下,Python 会引发 TypeError 。
print ("Hello"-"World")
在执行上述程序时,它将生成以下错误 -
>>> "Hello"-"World"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -: 'str' and 'str'
获取 Python 字符串的类型
Python 中的字符串是 str 类的对象。可以用 type() 函数来验证。
例
var = "Welcome To qikepu"
print (type(var))
它将产生以下输出 -
内置字符串方法
Python 包括以下用于操作字符串的内置方法 -
方法 | 描述 |
---|---|
capitalize() | 将字符串的首字母大写。 |
casefold() | 将字符串中的所有大写字母转换为小写字母。类似于 lower(),但适用于 UNICODE 字符 alos。 |
center(width, fillchar) | 返回一个带空格的字符串,其中原始字符串以总宽度列为中心。 |
count(str, beg= 0,end=len(string)) | 如果给出了起始索引 beg 和结束索引 end,则计算 str 在 string 或 string 的子字符串中出现的次数。 |
decode(encoding='UTF-8',errors='strict') | 使用为编码注册的编解码器对字符串进行解码。encoding 默认为默认的字符串 encoding。 |
encode(encoding='UTF-8',errors='strict') | 返回编码的字符串版本;on error 时,默认会引发 ValueError,除非 'ignore' 或 'replace' 给出 errors。 |
endswith(suffix, beg=0, end=len(string)) | 确定 string 或 string 的子字符串(如果给出了起始索引 beg 和结束索引 end)是否以 suffix 结尾;如果是这样,则返回 true,否则返回 false。 |
expandtabs(tabsize=8) | 将字符串中的制表符扩展为多个空格;如果未提供 tabSize,则默认为每个制表符 8 个空格。 |
find(str, beg=0 end=len(string)) | 确定 str 是出现在字符串中还是字符串的子字符串中,如果给出起始索引 beg 和结束索引 end,则返回 index (如果找到),否则返回 -1。 |
format(*args, **kwargs) | 此方法用于设置当前字符串值的格式。 |
format_map(mapping) | 此方法还用于格式化当前字符串,唯一的区别是它使用 Map 对象。 |
index(str, beg=0, end=len(string)) | 与 find() 相同,但如果未找到 str 则引发异常。 |
isalnum() | 如果字符串至少有 1 个字符并且所有字符都是字母数字,则返回 true,否则返回 false。 |
isalpha() | 如果字符串至少有 1 个字符并且所有字符都是字母,则返回 true,否则返回 false。 |
isascii() | 返回 True 表示字符串中的所有字符都来自 ASCII 字符集。 |
isdecimal() | 如果 unicode 字符串仅包含十进制字符,则返回 true,否则返回 false。 |
isdigit() | 如果字符串仅包含数字,则返回 true,否则返回 false。 |
isidentifier() | 检查字符串是否为有效的 Python 标识符。 |
islower() | 如果字符串至少有 1 个大小写字符,并且所有大小写字符均为小写,则返回 true,否则返回 false。 |
isnumeric() | 如果 unicode 字符串仅包含数字字符,则返回 true,否则返回 false。 |
isprintable() | 检查字符串中的所有字符是否都可打印。 |
isspace() | 如果字符串仅包含空格字符,则返回 true,否则返回 false。 |
istitle() | 如果字符串正确地 “titlecased” 则返回 true,否则返回 false。 |
isupper() | 如果字符串至少有一个大小写字符并且所有大小写字符均为大写,则返回 true,否则返回 false。 |
join(seq) | 将序列 seq 中元素的字符串表示形式合并(连接)为一个字符串,并带有分隔符 string。 |
ljust(width[, fillchar]) | 返回一个带空格的字符串,其中原始字符串左对齐为总宽度列数。 |
lower() | 将字符串中的所有大写字母转换为小写字母。 |
lstrip() | 删除字符串中的所有前导空格。 |
maketrans() | 返回要在 translate 函数中使用的翻译表。 |
partition() | 在第一次出现 separator 时将字符串拆分为三个字符串元组。 |
removeprefix() | 删除前缀字符串后返回一个字符串。 |
removesuffix() | 删除后缀字符串后返回一个字符串。 |
replace(old, new [, max]) | 将字符串中 old 的所有匹配项替换为 new 或 at most max(如果给定 max)。 |
rfind(str, beg=0,end=len(string)) | 与 find() 相同,但在 string 中向后搜索。 |
rindex( str, beg=0, end=len(string)) | 与 index() 相同,但在 string 中向后搜索。 |
rjust(width,[, fillchar]) | 返回一个带空格填充的字符串,其中原始字符串右对齐为总宽度列数。 |
rpartition() | 在 separator 的 ladt 出现处将字符串拆分为三个字符串元组。 |
rsplit() | 从末尾拆分字符串并返回子字符串列表。 |
rstrip() | 删除 string 的所有尾随空格。 |
split(str="", num=string.count(str)) | 根据分隔符 str (如果未提供空格) 拆分字符串并返回子字符串列表;如果给定,则最多拆分为 num 个子字符串。 |
splitlines( num=string.count('\n')) | 在所有(或num)NEWLINE 处拆分字符串,并返回删除了 NEWLINE 的每一行的列表。 |
startswith(str, beg=0,end=len(string)) | 确定字符串还是字符串的子字符串(如果给出了起始索引 beg 和结束索引 end)是否以子字符串 str 开头;如果是这样,则返回 true,否则返回 false。 |
strip([chars]) | 对字符串执行 lstrip() 和 rstrip()。 |
swapcase() | 对字符串中的所有字母反转大小写。 |
title() | 返回字符串的“titlecased”版本,即所有单词都以大写开头,其余单词为小写。 |
translate(table, deletechars="") | 根据翻译表 str(256 chars) 翻译字符串,删除 del 字符串中的字符串。 |
upper() | 将字符串中的小写字母转换为大写字母。 |
zfill (width) | 将原始字符串 leftpadded 为零返回宽度字符总数;对于数字,zfill() 保留任何给定的符号(减去一个 0)。 |
带字符串的内置函数
以下是我们可以与字符串一起使用的内置函数 -
函数 | 描述 |
---|---|
len(list) | 返回字符串的长度。 |
max(list) | 返回字符串 str 中的最大字母字符数。 |
min(list) | 返回字符串 str 中的最小字母字符。 |