介绍
Python 当中字符串类型的数据是用引号括起来的数据,例如:‘Eason’
Python 当中的字符串可以用单引号、双引号和三引号表示,例如:'Eason'、"Eason"、"""Eason"""三者的结果是一样的
用处
通常Python用字符串可以表示一些不能够使用数字表示的值,例如:某某的名字、身份证号等
字符串方法
转义字符
在需要使用特殊字符时,Python 可以用反斜杠 \ 转义字符。语法如下:
转义字符 | 描述 |
---|---|
\(在行尾时) | 续行符 |
\ | 反斜杠符号 |
' | 单引号 |
" | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\e | 转义 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,y 代表 0~7 的字符,例如:\012 代表换行。 |
\xyy | 十六进制数,以 \x 开头,yy代表的字符,例如:\x0a代表换行 |
\other | 其它的字符以普通格式输出 |
访问字符串中的值
通过索引访问
- Python中字符串索引从前往后数是从0开始直到最后一位
- Python中索引如果从后往前数则最后一位是-1,倒数第二位是-2,......
- 可以采用 字符串名称[索引值] 的方式来对字符串取值
- 可以采用切片的方式对字符串取值
- 可以采用遍历的方式对字符串取值(涉及到循环到后面再讲遍历的方式)
# 通过索引取出字符 s
str1 = "Eason"
print(str1[2])
# 通过索引取出字符n
print(str1[-1])
在讲切片之前,有必要先了解一下切片的语法规则:字符串[起始位置索引:结束位置索引:步长]
- 字符串切片指定从起始位置索引开始取值到结束位置索引的前一位结束
- 起始位置索引可以不写则默认从头开始取值
- 结束位置索引可以省略不写,表示取值到最后一位
- 步长可以省略则默认为1,表示取值时连续取值,若步长为2则表示取一个值,然后隔一个再取下一个
- 步长为正数表示按字符串顺序从前往后取值,相反步长为负数表示从后往前取值
- 正数索引和负数索引可以混用
- 切片时如果取不到值则返回空列表
下面可以看一下切片的用法
# 假如取出字符:as
str1 = "Eason"
print(str1[1:3]) # 使用正数索引取值
print(str1[-4:-2]) # 使用负数索引取值
print(str1[1:-2]) # 正负索引混用
# 取出 ao
print(str1[1::2]) # 指定步长为2
字符串拼接
Python中字符串你拼接使用 +
# 将字符串 str1 str2拼接到一起
str1 = "Eason"
str2 = "Wendy"
print(str1 + str2)
字符串运算
Python字符串运算符
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | str1+str2 |
* | 重复输出字符串 | str1 * 2 |
[] | 通过索引获取字符串中字符 | str1[2] |
[ : ] | 截取字符串中的一部分 | str1[1:3] |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True | 'a' in str1 |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | 'a' not in str1 |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 | r"\n" |
% | 格式字符串(下面会讲到) | "%s"%str1 |
字符串格式化
Python中有时候为了输出方便可以使用格式化语法的形式,语法如下:
符 号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %F 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
符号 | 功能 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
0 | 显示的数字前面填充'0'而不是默认的空格 |
% | '%%'输出一个单一的'%' |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
示例:
str1 = "Eason"
str2 = "Wendy"
print("我的名字叫%s"%str1)
format格式化方法
语法:str.format()
示例:
str3 = "{} {}".format("WENDY", "EASON") # 按顺序填充
print(str3)
str3 = "{0} {1} {0}".format("WENDY", "EASON") # 设置指定位置
print(str3)
# 通过关键字传递
print("姓名:{name}, 地址 {url}".format(name="eason", url="https://www.jianshu.com/nb/49592282"))
# 通过字典设置参数
site = {"name": "eason", "url": "https://www.jianshu.com/nb/49592282"}
print("姓名:{name}, 地址 {url}".format(**site))
# 通过列表索引设置参数
my_list = ['eason', 'https://www.jianshu.com/nb/49592282']
print("姓名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的