声明字符串可以使用单引号'
或双引号"
,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
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/21387.html