正文:
python2中,字符串在内存中是str类型。展现形式是unicode编码。unicode字符串需要加上u标记。
字符串表示方法分为单引号、双引号、三引号。一般三引号的字符串,没有引用的话就会作为注释。常见的就是双引号和单引号,这两种的使用效果是相同的。
需要注意的是,如果字符串中有其他字符串,就需要使用不同的引号,例如最外层是双引号,那么内部字符串需要使用单引号,例如一个拼接html代码: "<div style='height:10px'></div>>"。如果内部还有一层字符串,就用跟它外层不同的引号,然后用转义字符转义。形如 " 。
字符串索引编号:在python中,可以把字符串理解为一个不可变的数组,利用索引读取它的值(不能利用索引修改它的值)。而且可以双向索引。索引编号正向从0开始,反向从-1开始。例如:
str1 = "asdfg"
print str1[0] # a 正向从0开始索引
print str1[-5] # a 反向从-1开始,第一位就是-5
print str1[-1] # g 反向索引
print str1[4] # g 正向索引
字符串不可变:上边说到可以把字符串看成一个不可变的数组,为什么是不可变呢?顾名思义,就是说字符串本身是不可以改变的,换句话说,我们所见到的改变,实际上都是干掉了旧字符串,生成了一个新的字符串。贴一段代码就可以理解了:
str1 = "asdfg"
print id(str1) # 打印str1的内存地址
str1 += "w" # 在str1后边拼接上一个字符w
print id(str1) # 再次打印内存地址
str1 = "asdf" # 看似去掉一个w字符。实际上是一个新字符串
print id(str1) # 打印内存地址
###下方是输出,自己测试地址会有区别,但是三个结果一定是不同的
# 44690720
# 44690784
# 44690752
每次对字符串做出修改时,实际上都是在一个新的内存地址里生成了一个新的字符串,现在的这个字符串已经不是原本的字符串了。也就是说它是不可修改的。
其他部分链接
python字符串常见操作:https://blog.csdn.net/gongxiaoyi9511/article/details/105666565
python字符串格式化:补充链接
python字符串常用方法:https://blog.csdn.net/gongxiaoyi9511/article/details/105691659