一、字符串
创建
s1 = 'lenovo'
s2 = "Hi"
s3 = """hello"""
s4 = '''hello'''
s5 = """hello
hi
"""
s6 = '''hello
world'''
转义符 \
In [21]: testimony = 'This shirt doesn\'t fit me'
In [22]: testimony
Out[22]: "This shirt doesn't fit me"
拼接+
不可以用 字符串和 一个非字符串类型的对象相加
In [31]: print('hello' + 'lenovo')
hellolenovo
复制*
In [32]: print('*' * 20)
********************
In [33]: print('lenovo 666' * 20)
lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666lenovo 666
字符串 和 0 或者 负数相乘,会得到一个空字符串
>>> "hey" * 0
''
>>> "hey" * -100
''
字符串 是 Python 中的一个 序列类型 的数据结构
- 存放的数据,在其内是有序的,内部的数据是可以通过在其内部所处的位置进行访问等操作。
序列类型的特点
- 序列里的每个数据被称为序列的一个元素
- 元素在序列里都是有个自己的位置的,这个位置被称为索引或者叫偏移量,也有叫下标的
- 下标索号好从 0 开始的
- 序列中的每一个元素可以通过这个元素的索引号来获取到
- 获取序列类型数据中的多个元素需要用切片的操作来获取到
偏移量(索引) 0 1 2 3 N-1
"h e l l o"
偏移量(索引) 0 1 2 3 N-1
获取元素
In [37]: a='hello'
In [38]: a[0]
Out[38]: 'h'
In [39]: a[3]
Out[39]: 'l'
In [40]: a[-1]
Out[40]: 'o'
二、切片
[start :end :step] 分片
start永远是起始索引号
end永远是终止索引号
step是可选步长
分片操作只包含位于起始索引号位置的元素,不包含终止索引号位置的元素;
同时,起始和终止的意义都是针对于从左向右的顺序来定义的
In [42]: a='split'
In [43]: a[0:2]
Out[43]: 'sp'
In [44]: a[-1:-3] 因为从左向右开始操作, 索引号 -1 的右边没有任何索引号了-3 在 -1 的左边
Out[44]: ''
In [45]: a[-3:-1] -3是l ,右边包含了lit,-1是t,所以:
Out[45]: 'li'
len() 获取字符串的长度,包含空格和换行符
基本上所有带小括号的都是内置函数
n = len(s1)
print(n)
利用字符串对象的方法分割
split 分割
分割成了列表形式,不会改变分割对象本身,所以可以将结果进行赋值
默认使用 空格或者 Tab 间做为分隔符
In [47]: a='www.baidu.com hello'
In [48]: a.split()
Out[48]: ['www.baidu.com', 'hello']
指定分割符
In [47]: a='www.baidu.com hello'
In [53]: a.split('.')
Out[53]: ['www', 'baidu', 'com hello']
In [82]: a = "symbol=BCHBTC;baseCoin=BCH;quoteCoin=BTC;"
In [83]: b=a.split(';')
In [84]: b
Out[84]: ['symbol=BCHBTC', 'baseCoin=BCH', 'quoteCoin=BTC', '']
In [85]: b[:-1] //起始位为0,终止位-1(不包含-1)
Out[85]: ['symbol=BCHBTC', 'baseCoin=BCH', 'quoteCoin=BTC']
rsplit 从右向左分割
找到第一个分隔符,就结束
In [54]: a='www.baidu.com hello'
In [54]: a.rsplit('.',1)
Out[54]: ['www.baidu', 'com hello']
replace 替换
In [54]: a='www.baidu.com hello'
In [56]: a.replace('.','_')
Out[56]: 'www_baidu_com hello'
In [57]: a.replace(' ','_')
Out[57]: 'www.baidu.com__hello'
strip 移除字符串两端的空白字符
In [58]: a=' hello '
In [59]: a
Out[59]: ' hello '
In [60]: a.strip()
Out[60]: 'hello'
startswith 判断字符串以什么为开头
s = 'hello world'
if s.startswith('h'):
print(s)
else:
print(error)
endswith 判断字符串以什么为结尾
s = 'hello world'
if s.endswith('d'):
print(s)
else:
print(error)
index 获取一个元素在字符串中的索引号
In [95]: a='hello'
In [98]: a.index('o')
Out[98]: 4
In [99]: a.index('l')
Out[99]: 2
In [103]: a
Out[103]: 'hello'
In [104]: a.capitalize() //capitalize()字符串的首字母变大写,其他的字母便小写
Out[104]: 'Hello'
In [105]: a.title() //title()单词首字母大写
Out[105]: 'Hello'
In [106]: a.upper() //upper()全部大写
Out[106]: 'HELLO'
In [107]: a.lower() //lower()全部小写
Out[107]: 'hello'
对于字符串和字节串类型来说,当且仅当 x 是 y 的子串时 x in y 为 True。
空字符串总是被视为任何其他字符串的子串,因此 "" in "abc" 将返回 True。