创建
#创建字符串的各种形式
In [1]: s1 = 'lenovo'
In [2]: s2 = "HENAN"
In [3]: s3 = """hello henan"""
In [4]: s4 = '''hello lenovo'''
In [5]: s5 = """hello
...: world
...: """
In [6]: s6 = '''hello
...: zhengzhou
...: '''
简单操作
\ 转义符
In [7]: testimony = 'This shirt doesn\'t fit me'
In [8]: print(testimony)
This shirt doesn't fit me
In [9]: words = 'hello \nshark'
In [10]: print(words)
hello
shark
+ 拼接
In [11]: s1 = "hello"
In [12]: s2 = "henan"
In [13]: s = s1 + " " +s2
In [14]: print(s)
hello henan
不可以用 字符串和 一个非字符串类型的对象相加
In [15]: 'lenovo' + 1 #这样写就会报错
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-15-20a1bb21d68f> in <module>
----> 1 'lenovo' + 1
TypeError: can only concatenate str (not "int") to str
* 复制
In [17]: print('*' * 10) #打印10个星号
**********
In [18]: print("hello-->\n" *6) #打印6行 \n是换行符
hello-->
hello-->
hello-->
hello-->
hello-->
hello-->
进阶操作
字符串 是 Python 中的一个 序列类型 的数据结构
- 存放的数据,在其内是有序的,内部的数据是可以通过在其内部所处的位置进行访问等操作。
序列类型的特点
- 序列里的每个数据被称为序列的一个元素
- 元素在序列里都是有个自己的位置的,这个位置被称为索引或者叫偏移量,也有叫下标的
- 下标索号好从 0 开始的
- 序列中的每一个元素可以通过这个元素的索引号来获取到
- 获取序列类型数据中的多个元素需要用切片的操作来获取到
s1 = "shark"
获取元素
#获取单个元素
In [20]: s1[0]
Out[20]: 's'
In [21]: s1[3]
Out[21]: 'r'
In [22]: s1[-1]
Out[22]: 'k'
切片
# 使用切片获取多个元素
In [23]: s1[0:2]
Out[23]: 'sh'
# 起始和结尾的索引号可以不写
In [24]: s1[:]
Out[24]: 'shark'
In [26]: s1[3:]
Out[26]: 'rk'
In [27]: s1[:-1]
Out[27]: 'shar'
下面这样的操作,臣妾做不到
In [28]: s1[-1:-3]
Out[28]: ''
因为从左向右开始操作, 索引号 -1 的右边没有任何索引号了
-3 在 -1 的左边
# 获取字符串的长度,包含空格和换行符
In [29]: n = len(s1) #s1还是shark
In [30]: n
Out[30]: 5
利用字符串对象的方法
- split 分割
默认使用 空格或者 Tab 间做为分隔符
In [31]: url = '千峰官网 www.qianfeng.com'
In [32]: url.split()
Out[32]: ['千峰官网', 'www.qianfeng.com']
可以指定分隔符
In [33]: ip = '192.168.1.100'
In [35]: ip.split('.')
Out[35]: ['192', '168', '1', '100']
- rsplit 从右向左分割
In [36]: ip.rsplit('.', 1)
Out[36]: ['192.168.1', '100']
上面 split(’.’, 1) 中的第二参数 1 ,表示 找到第一个分隔符 .,就结束。
- replace 替换
In [37]: url = 'www.qianfeng.com'
In [38]: url2 = url.replace('.','_')
In [39]: url
Out[39]: 'www.qianfeng.com'
In [40]: url2
Out[40]: 'www_qianfeng_com'
- strip 移除字符串两端的空白字符
In [41]: s = ' adley'
In [42]: s
Out[42]: ' adley'
In [43]: s.strip()
Out[43]: 'adley'
- startswith 判断字符串以什么为开头
In [44]: s = 'adley'
In [45]: s.startswith('a')
Out[45]: True
In [46]: s.startswith('ad')
Out[46]: True
In [47]: s.startswith('l')
Out[47]: False
- endswith 判断字符串以什么为结尾
In [44]: s = 'adley'
In [48]: s.endswith('y')
Out[48]: True
In [49]: s.endswith('ey')
Out[49]: True
In [50]: s.endswith('e')
Out[50]: False
交互输入
python2.x 中使用 raw_input(">>:")
特殊的情况
> 注意: 空字符串总是被视为任何其他字符串的子串,因此 “” in “abc” 将返回 True。