Python字符串及用法详解
声明字符串可以使用单引号
'
或双引号"
,Python 中典型的字符串赋值语句如下:
str='你好,Python'
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用的。要获取字符串中的一部分,可以使用中括号
[ ]
来截取字符串,例如:
string='Hello world'
print(string[0:5])
>>> string='Hello world'
>>> print(string[0:5])
Hello
字符串支持截取、连接、重复输出等操作,Python 中字符串支持的操作运算符如表 1 所示。
运算符 | 描述 |
---|---|
+ | 字符串连接,例如 Hello+world 输出 Helloworld |
* | 重复输出字符串,例如 Hello*2 输出HelloHello |
[] | 通过下标获取字符串中的单个字符 |
[ : ] | 获取字符串的一部分,遵循左闭右开原则,例如 str[0:2] 不包含第 3 个字符 |
In | 成员运算符,如果字符串中包含给定的字符则返回 True |
not in | 成员运算符,如果字符串中不包含给定的字符则返回 True |
r/R | 原始字符串,所有的字符串都直接按照字面的意思来使用 |
% | 格式化字符串 |
在字符串中使用特殊字符需要用到转义字符,Python 使用反斜杠“\”对字符进行转义。Python 中用于转义的字符如表 2 所示。
转义字符 | 描述 |
---|---|
\ | 在行尾用作续行符 |
\\ | 反斜杠符号 |
\' | 单引号 |
\" | 双引号 |
\a | 响铃 |
\b | 退格(删除) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy代表的字符,例如:\o12代表换行 |
\xyy | 十六进制数,yy代表的字符,例如:\x0a代表换行 |
\other | 其他的字符以普通格式输出 |
Python支持格式化输出字符串,目的是将需要输出的字符串按照预先设定的格式显示。例如:
print("%s今年%d岁了!" %('小明', 10))
上述代码的运行结果如下所示:
>>> print("%s今年%d岁了!" %('小明', 10))
小明今年10岁了
Python 中用于格式化输出字符串的符号共有 13 个,如表 3 所示。
符号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整数 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f 和 %e 的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
与 PHP 语言类似,Python 也提供了很多字符串相关操作的函数,常用的字符串函数如表 4 所示。
函数 | 描述 |
---|---|
title() | 返回将原字符串中单词首字母大写的新字符串 |
istitle | 判断字符串中的单词首字母是否大写 |
capitalize() | 返回将整个字符串的首字母大写的新字符串 |
lower()、upper() | 返回字符串的小写、大写后的新字符串 |
函数 | 描述 |
---|---|
swapcase() | 返回字符串的大小写互换后的新字符串 |
islower()、isupper() | 判断字符串是否全部为小写、大写 |
strip()、lstrip()、rstrip() | 删除字符串首尾、左部或右部的空白,空白包括空格、制表符、换行符等 |
ljust()、rjust()、center() | 打印指定数目的字符,若字符串本身长度不足,则在其左部、右部或者两端用指定的字符补齐 |
startswith()、endswith() | 判断原字符串是否以指定的字符串开始或结束 |
isnumeric()、isdigit()、isdecimal() | 判断字符串是否为数字、整数、十进制数字 |
find()、rfind() | 在字符串中查找指定字符串第一次出现的位置,方向分别为从左和从右 |
split() | 按照指定的字符将字符串分割成词,并返回列表 |
splitlines() | 按照换行符将文本分割成行 |
count() | 统计指定字符串在整个字符串中出现的次数 |
format() | 用指定的参数格式化原字符串中的占位符 |
上述字符串函数的示例代码如下:
msg="this is a test STRING.\n"
msg.title()
msg.capitalize()
msg.istitle()
msg.title().istitle()
msg.lower()
msg.upper()
msg.swapcase()
msg.islower()
msg.isupper()
msg.strip()
msg.lstrip()
msg.rstrip()
msg.ljust(20, '=')
msg.rjust(20, '=')
msg.center(20, '=')
msg.startswith('th')
msg.endswith('ING.')
'111'.isnumeric()
'111'.isdigit()
'111'.isdecimal()
msg.find('is')
msg.rfind('is')
msg.split(' ')
msg.count('t')
'This is a test string.\n'
>>> msg.title()
'This Is A Test String.\n'
>>> msg.capitalize()
'This is a test string.\n'
>>> msg.istitle()
False
>>> msg.title().istitle()
True
>>> msg.lower()
'this is a test string.\n'
>>> msg.upper()
'THIS IS A TEST STRING.\n'
>>> msg.swapcase()
'THIS IS A TEST string.\n'
>>> msg.islower()
False
>>> msg.isupper()
False
>>> msg.strip()
'this is a test STRING.'
>>> msg.lstrip()
'this is a test STRING.\n'
>>> msg.rstrip()
'this is a test STRING.'
>>> msg.ljust(20, '=')
'this is a test STRING.\n'
>>> msg.rjust(20, '=')
'this is a test STRING.\n'
>>> msg.center(20, '=')
'this is a test STRING.\n'
>>> msg.startswith('th')
True
>>> msg.endswith('ING.')
False
>>> '111'.isnumeric()
True
>>> '111'.isdigit()
True
>>> '111'.isdecimal()
True
>>> msg.find('is')
2
>>> msg.rfind('is')
5
>>> msg.split(' ')
['this', 'is', 'a', 'test', 'STRING.\n']
>>> msg.count('t')
3
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算