1、索引
例1:
>>> s = "apple"
>>> s[0]
'a'
>>> s[1]
'p'
>>> s[2]
'p'
>>> s[3]
'l'
>>> s[4]
'e'
说明:
Python中,字符串的索引总是从0开始,最大索引是字符串长度减1,即当索引超出了字符串末尾,将导致“超出范围”的错误,如下:
>>> s[5]
Traceback (most recent call last):
File "<pyshell#61>", line 1, in <module>
s[5]
IndexError: string index out of range
负数索引
假设要访问字符串的最后一个字符,通常可以:
>>> s[len(s) - 1]
'e'
在python中支持负数索引,则我们可以:
>>> s[-1]
'e'
>>> s[-2]
'l'
2、使用for循环访问字符
如果需要依次访问字符串的每个字符,则可以:
>>> for i in range(len(s)):
print(s[i])
a
p
p
l
e
3、字符串切片
在python中,可使用切片从字符串中提取子串。
要对字符串执行切片操作,可指定两个索引:要提取的第一个字符的索引和要提取的最后一个字符的索引加1。例如:
>>> loc = "shanghai pudong"
>>> loc[0:7]
'shangha'
>>> loc[0:8]
'shanghai'
>>> loc[9:14]
'pudon'
>>> loc[9:15]
'pudong'
- 说明1: 一般s[start:end]返回索引从start到end-1的子串。
- 说明2: 如果s是一个字符串,则要访问索引为i的字符,则可以使用s[i]或者s[i:i+1]
- 说明3: 在获取切片时,如果省略起始索引,python将假定起始索引为0;如果省略终止索引,python将假定终止索引为字符串的末尾。
例如:
>>> food = "apple tea"
>>> food[:5]
'apple'
>>> food[6:]
'tea'
>>> food[:]
'apple tea'
下面来看一个实例:返回文件名的扩展名
>>> def get_ext(fname):
dot = fname.rfind('.')
if dot == -1: #fname中没有
return ''
else:
return fname[dot + 1 :]
>>> get_ext("hello.txt")
'txt'
>>> get_ext('pizza.py')
'py'
>>> get_ext("pizza.old.py")
'py'
>>> get_ext('pizza')
''
>>>
说明: 函数get_ext()首先确定最右边的‘.’的索引(使用rfind()函数从右往左查找);如果fname中不包含’.’,测返回一个空字符串,否则返回’.’后面的所有字符串。
4、去除空格
strip():删除字符串两边的指定字符,括号的写入指定字符,默认为空格
# encoding=utf-8
str1 = "Hello "
str2 = " World ! "
str3 = str2.strip()
str4 = str2.lstrip()
str5 = str2.rstrip()
print("str2去除空格前是:", str2)
print("str2去除前后空格:", str3)
print("str2去除左侧空格:", str4)
print("str2去除右侧空格:", str5)
打印结果如下:
5、连接两个字符串
5.1 ‘+’号连接
# encoding=utf-8
str1 = "Hello"
str2 = "World !"
print(str1 + str2)
打印结果如下:
说明: 使用+号连接两个字符串,连接后字符串之间没有空格,是直连的。
5.2 逗号(,)连接
说明: 如果两个字符串用逗号(,)隔开,那么这两个字符串将被连接,但是字符串之间会多出一个空格。这是区别于加号(+)连接的地方。
# encoding=utf-8
str1 = "Hello"
str2 = "World !"
print(str1, str2)
打印结果如下:
5.3 join()连接
join(): 用于将序列中的元素以指定的字符连接生成一个新的字符串
# encoding=utf-8
strList = ['Python', 'Java', 'Swift']
a = ''
b = '+'
c = '&'
d = '----'
print(a.join(strList))
print(b.join(strList))
print(c.join(strList))
print(d.join(strList))
打印结果如下:
5.4 格式化
说明: 使用符号“%”连接一个字符串和一组变量
# encoding=utf-8
str1 = "Hello"
str2 = "World !"
print("%s%s"%(str1, str2))
print("%s %s"%(str1, str2))
print("%s,%s"%(str1, str2))
print("%s, %s"%(str1, str2))
打印结果如下:
5.5 多行拼接
# encoding=utf-8
s = ('select *'
' from tab'
' where id = 00001')
print(s)
print(type(s))
打印结果如下:
说明: python遇到未闭合的小括号,自动将多行拼接为一行,相比三个引号和换行符,这种方式不会把换行符、前导空格当作字符。