Python 字符串
2018-06-28
Tags: Python
Python字符串可以看做是一个包含字符的容器,一个顺序序列。其实,Python并没有字符这种数据类型,只有字符串。一个单独的字符可以看成是只包含一个元素的字符串。
1.字符串基础
字符串本质上是一个字符组成的序列。和其他编程语言不同,Python字符串不可变,一旦创建,原字符串就不能被修改。如果要得到一个更改的字符串版本,可以通过赋值给另一个字符串,或者将原字符串覆盖。
1.1 创建字符串
- 单行字符串。把字符串用一对单引号或者双引号包裹,就可以创建一个单行字符串。用两种引号可以避免使用转义字符,这样就可以在单引号字符串中直接包含双引号。
>>> 'this is string' 'this is string' >>> "this is another string" 'this is another string' >>> "this is the 'third' string" "this is the 'third' string"
- 多行字符串。使用连续三个单引号,或者三个双引号。
>>> lines = '''first line ... second line''' >>> print lines first line second line
- 通过
str()函数
类型转换得到字符串。>>> str(3.14159265354) '3.14159265354'
1.2 转义字符
字符串中如果包含一些特殊符号,需要使用转义字符,比如\t
表示制表符。
>>> 'I\'d like to' "I'd like to" >>> a="has a slash \\" >>> print a has a slash \
2. 字符串运算符操作
比如,令 a='Hello'
,常见的字符串运算符操作如下表。
操作符 | 含义 | 备注 |
---|---|---|
+ |
字符串拼接 | ‘aa’+’bb’ 得到‘aabb’ |
* |
重复输出字符串 | a*2 输出结果:HelloHello |
[] |
通过索引获取字符串中的字符 | a[1] 输出结果 e |
[ : ] |
截取字符串中的一部分 | a[1:4] 输出结果 ell |
in |
成员运算符 – 如果字符串中包含给定的字符返回 True | H in a 输出结果 1 |
not in |
成员运算符 – 如果字符串中不包含给定的字符返回 True | M not in a 输出结果 1 |
r/R |
原始字符串 – 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。原始字符串除在字符串的第一个引号前加上字母”r”(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 | print r’\n’ 原样输出 \n |
3. 字符串的元素操作
对字符串元素最常用的操作包括提取,替换和查找。
3.1 提取字符串中的字符
- 通过索引号提取某一个字符元素。 比如,提取第一个字符
"sixiangguo.net"[0]
,最后一个字符"Hello sixiangguo.net"[-1]
- 切片。
"Hello"[1:3]
, 如果从索引号0开始,可以省略0"Hello"[:3]
,也可以设定截取的步长"Hello"[::2]
3.2 替换字符串中的字符
Python中的replace()
方法是把old字符串替换成new字符串,如果指定替换次数max,则按照替换次数进行替换。old
:字符串替换前的字符;new
:替换后的字符;count
:替换的次数,默认为0,不填表示全局替换。
>>> str.replace(old,new,count=0) #例子 >>> str = "hello world! I love python!" # 全局替换 >>> str.replace("l","@") 'he@@o wor@d! I @ove python!' # 替换指定次数 >>> str.replace("l","@",2) 'he@@o world! I love python!' # 多个字符替换,链式调用replace() >>> str.replace("l","@",2).replace("o","$") 'he@@$ w$rld! I l$ve pyth$n!'
3.2 查找字符串中的字符
python 字符串查找有4个方法, find
, index
是正序查找, rfind
和rindex
是反向查找,从末尾向前。
find()
方法:查找子字符串,若找到返回从0开始的下标值,若找不到返回-1
-
index()
方法:在字符串里查找子串第一次出现的位置,如果查找不到子串,会抛出异常
,而不是返回-1 - rfind和rindex方法用法和上面一样,只是从字符串的末尾开始查找。
info = 'sixiangguo.net' print info.find('a') print info.find('a',1)##从下标1开始 print info.find('333')##查找不到返回-1 print info.index('a') print info.index('33')
4. 字符串分割与合并
内置函数split()
可以根据分隔符
把字符串分割成一个列表,这个列表由若干子字符串构成。join()
函数正好相反。 例子。
>>> fruits = 'orange,apple,melon,lemon,peach,banana,grape' >>> alist = fruits.split(',') >>> alist ['orange', 'apple', 'melon', 'lemon', 'peach', 'banana', 'grape'] >>> fruits_new = ','.join(alist) >>> fruits_new 'orange,apple,melon,lemon,peach,banana,grape'
思想果(www.sixiangguo.net)原创,作者:无梨教主。转载注明作者 和 本文链接: http://www.sixiangguo.net/archives/476.html。