一、字符串的下标
在字符串中有索引,从头到尾从索引0
开始,从尾到头从-1
开始。
例如:
#!/usr/bin/env
#字符串
a = "xiaoxiaoru"
#输出第三个字符
print(a[2])
#输出倒数第三个字符
print(a[-3])
二、字符串切片
可以从字符串中截取部分字符串来使用。
字符串的截取的语法格式如下:
变量[头下标:尾下标]
例如:
#!/usr/bin/env
str = 'xiaoxiaoru'
print(str[0:-1]) # 输出第一个到倒数第二个的所有字符
print(str[0]) # 输出字符串第一个字符
print(str[2:5]) # 输出从第三个开始到第5个的字符
print(str[2:]) # 输出从第三个开始之后的所有字符
print(str * 2) # 输出字符串两次
三、in、not int运算符
in
:成员运算符 - 如果字符串中包含给定的字符返回 True
。
#!/usr/bin/env
str = 'xiaoxiaoru'
j = "i"
if j in str:
print('字符串里面包含字符i')
else:
print('字符串里面不包含字符i')
not in
:成员运算符 - 如果字符串中不包含给定的字符返回 True
。
#!/usr/bin/env
str = 'xiaoxiaoru'
j = "h"
if j in str:
print('字符串里面包含字符h')
else:
print('字符串里面不包含字符h')
四、u、b、r字符串前缀
首先注意:Python中的 字符串前缀修饰都是不区分大小写的,也就是说u
等同于 U
。
r
作用:声明后面的字符串是普通字符串,相对的,特殊字符串中含有:转义字符 \n
、\t
什么什么的。
#!/usr/bin/env
# 自动转义特殊字符串,r不区分大小写
print(r'\n我的天\t')
# 没有被转义的时候
print('\n我的天\t')
u
作用:声明字符串的存储编码。
在Python中字符串默认创建即以Unicode编码存储,可以存储中文。
使用u
前缀就是声明该字符串使用Unicode编码存储。
如下:string = 'a'
等效于 string = u'a'
注意:Unicode中通常每个字符由2
个字节表示。
b
作用:声明字符串的存储编码。
使用b
前缀就是声明该字符串使用Ascll编码存储,不可以存储中文。
如下代码将会报错:
#!/usr/bin/env
# 使用Ascll存储编码,无法存储中文
str = b'阿萨德'
print(str)
注意:Ascll中通常每个字符由1
个字节表示。
五、字符串格式化符号
符 号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %f 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
详细的使用教程可以参考菜鸟教程:http://www.runoob.com/python3/python3-string.html
六、字符串的逆序
在Python中截取字符串还可以使用步长。
语法:
变量[头下标:尾下标:步长]
例如:
#!/usr/bin/env
str = 'xiaoxiaoru'
# 读取0、8、3位字符串
print(str[0:8:3])
字符串逆序:
#!/usr/bin/env
str = 'xiaoxiaoru'
# 字符串翻转读取
print(str[-1::-1])
也可以简写为:
#!/usr/bin/env
str = 'xiaoxiaoru'
# 字符串翻转读取
print(str[::-1])