每日一python(7):基础数据结构----字符串

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013003827/article/details/84630495

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遇到未闭合的小括号,自动将多行拼接为一行,相比三个引号和换行符,这种方式不会把换行符、前导空格当作字符。

6、未完待续

猜你喜欢

转载自blog.csdn.net/u013003827/article/details/84630495