1. 字符串
1.1一些基本的性质
字符串是一个不可变对象。
上次说元组是不可变对象,是因为元组没有增删改这种功能,字符串也是一样的。
a = 'a'
a += 'b'
a
'ab'
这样的行为,是创造了一个新的字符串 ‘ab’ ,储存在内存中,并赋值给了a 。
原来的字符串’a’ ,还是按原来的样子放在内存里。
python3 的字符串用的是Unicode码 类型
Unicode 码包括中、日、韩三种文字,它是一种字符集,把每个字用一定的编码代表。
字符串是一个可迭代对象,支持索引访问
当字符串被当做可迭代对象时,是从左往右,依次把字符带入,注意,一些空格 ’ ’ 也是字符,也会被迭代。
a = 'suck my dick'
for chr in a:
print(chr,end=':')
s:u:c:k: :m:y: :d:i:c:k: # 注意,空格也是字符,前后也有: 标记
要索引时,从左往右看,第一个字符索引号为0,第二个为1,依次类推。同时字符串支持负索引,最后一个字符的索引号为-1 , 倒数第二个字符是-2 ,以此类推。
a[0]
's'
a[4]
' '
a[-5]
' '
1.2 和字符串有关的一些函数
1.2.1 ‘sep’.join(sql)
用分隔符 ‘sep’ ,把 sql 这个字符串的每个字符分隔开来。
注意,这个分隔符必须是字符串类型 (str) 。
a = 'suck my dick'
'@'.join(a)
's@u@c@k@ @m@y@ @d@i@c@k'
# 就是把分隔符sep,join到,字符串语句sql中
1.2.2 ‘sql’.split(sep = None[,maxsplit = -1])
这个不是创造分隔符sep,是从已有的字符串语句’sql’ 中,找到指定的分隔符,拿走分隔符,然后从这里分开字符串。分隔符必须是字符串类型。
返回一个,包含分开之后的字符串的列表,列表顺序不变
a = 'suck my dick'
a.split('')
['suck ', 'y dick']
maxsplit 可以指定分隔多少次,缺省为-1 ,也就是,只要找到都分隔。指定为1的话,就在sql ,从左往右的顺序找,找到第一个,分隔。
a = 'suck my dick'
a.split('k')
['suc', ' my dic', '']
# 注意,就算第二个k,后面没有字符了,split()也会分隔,后面切出一个空字符串''
a.split('k',maxsplit = 1)
['suc', ' my dick']
# 只切从左往右数的第一个'k',第二个不切
也可以不指定分隔符sep,因为sep 缺省值为 None,不指定的话,就以空格符分隔 ’ ’ 。
a.split()
['suck', 'my', 'dick']
1.2.3 ‘sql’.rsplit()
用法和split() 是一模一样的,这个r 代表的是right,意思就是从右开始切。
a = 'suck my dick'
a.rsplit(maxsplit=1)
['suck my', 'dick']
1.2.4 ‘sql’.splitlines(keepends = False)
\n ,\r 属于换行符.
\r 很牛逼,在一串字符串中