1.5 字符串操作

4/12/2018 Python

# 创建

s1 = 'www.liuwq.com'
s2 = "QF"
s3 = """hello lenovo"""
s4 = '''hello sdfasfsa'''
s5 = """hello
shark
"""
s6 = '''hello
world'''
1
2
3
4
5
6
7
8
9

# 简单操作

\ 转义符

testimony = 'This shirt doesn\'t fit me'
1
words = 'hello \nkame'
1

+拼接

>>> s1 = "ssssss"
>>> s2 = 'good'
>>> s = s1 + " " +  s2 + "\n"
>>> s
'lenovo good\n'
>>> print(s)
liuwenqi good

>>>
1
2
3
4
5
6
7
8
9

不可以用 字符串和 一个非字符串类型的对象相加

'lenovo' + 1   # 这会报错的
1

* 复制

>>> print('*' * 10)
**********
>>> print('lenovo 666 -->\n' * 6)
lenovo 666 -->
lenovo 666 -->
lenovo 666 -->
lenovo 666 -->
lenovo 666 -->
lenovo 666 -->
>>>
1
2
3
4
5
6
7
8
9
10

# 进阶操作

# 字符串 是 Python 中的一个 序列类型 的数据结构

  • 存放的数据,在其内是有序的,内部的数据是可以通过在其

    内部所处的位置进行访问等操作。

序列类型的特点

  • 序列里的每个数据被称为序列的一个元素

  • 元素在序列里都是有个自己的位置的,这个位置被称为索引或

    者叫偏移量,也有叫下标的

  • 下标索号好从 0 开始的

  • 序列中的每一个元素可以通过这个元素的索引号来获取到

  • 获取序列类型数据中的多个元素需要用切片的操作来获取到

s1 = "shark"
1

# 获取元素
# 获取单个元素
s1[0]
s1[3]
s1[-1]
1
2
3
4

# 切片


>>> s1 = "liuwenqi"
# 使用切片获取多个元素
>>> s1[0:2]
'li'
# 起始和结尾的索引号可以不写
>>> s1[:]
'liu'wen'qi'
>>> s1[4:]
'enqi'
>>> s1[:-1]
'liuwenq'
>>>
1
2
3
4
5
6
7
8
9
10
11
12
13

下面这样的操作,臣妾做不到

>>> s1[-1:-3]
''
>>>
1
2
3

因为从左向右开始操作, 索引号 -1 的右边没有任何索引号了 -3-1 的左边

# 获取字符串的长度,包含空格和换行符
>>> n = len(s1)
>>> n
6
>>>
1
2
3
4
5
# 利用字符串对象的方法
  • split 分割

默认使用 空格或者 Tab 间做为分隔符

>>> url = 'blog     www.liuwq.com'
>>> url.split()
['blog', 'www.liuwq.com']

1
2
3
4

可以指定分隔符

>>> ip = '192.168.1.100'
>>> ip.split('.')
['192', '168', '1', '100']
1
2
3

rsplit 从右向左分割

>>> ip.rsplit('.', 1)
['192.168.1', '100']
>>>
1
2
3

上面 split('.', 1) 中的第二参数 1 ,表示 找到第一个分隔符 .,就结束。

replace 替换

>>> url = 'www.liuwq.com'
>>> url2 = url.replace('.', '_')
>>> url
'www.liuwq.com'
>>> url2
'www_liuwq_com'
1
2
3
4
5
6

strip 移除字符串两端的空白字符

>>> s = ' kame '
>>> s
' kame '
>>> s.strip()
'shark'
>>>
1
2
3
4
5
6

startswith 判断字符串以什么为开头

>>> s = 'liuwq'
>>> s.startswith('l')
True
>>> s.startswith('le')
False
1
2
3
4
5

endswith 判断字符串以什么为结尾

>>> s.endswith('q')
True
>>> s.endswith('w')
False
>>>
1
2
3
4
5

# 交互输入

python2.x 中使用 raw_input(">>:")

# 特殊的情况

# 注意: 空字符串总是被视为任何其他字符串的子串,因此 "" in "abc" 将返回 True