Str(字符串)

7

Str介绍

  Python中的Str是可迭代对象,类似于C/C++中的字符串,但是更加灵活,具有很多内置的API。

Str操作

Python创建字符串

1
2
3
4
5
6
7
8
# str(obj) 将obj转换为字符串,一般用来将数字转换为字符串
a = str(123)

# 'abc...'或者"abc..." 创建值为abc...的字符串,如果字符串本身具有单引号则创建时要用双引号,如果字符串本身具有双引号,则创建时要用单引号
b = 'Hello Python'
c = "Hello World"
d = 'I love "Python"'
e = "I love 'coding'"

30

Python索引字符串元素

1
2
3
4
# 和C/C++相同,通过中括号[]索引字符串元素,可以通过:运算符获取连续的索引,负数索引为从后向前索引,-1代表最后一个元素,-2代表倒数第二个元素
a = 'Hello Python'
b = a[:2]
c = a[4]

31

Python向字符串中增加,删除,修改元素

1
2
3
# Python中字符串没有append,pop等API,如果想修改元素必须采用算术运算修改元素
a = 'Hello pythan'
a = a[:-2] + 'o' + a[-1]

32

Python字符串大小写转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
a = 'heLLo pythOn'

# obj.capitalize() 第一个字符改为大写,其他字符改为小写并返回
b = a.capitalize()

# obj.title() 将每个单词的第一个字符改为大写,其他字符改为小写并返回
c = a.title()

# obj.lower() 将大写转换为小写
d =a.lower()

# obj.upper() 将小写转换为大写
e = a.upper()

# obj.swapcase() 将大小写字符翻转,大写变小写,小写变大写
f = a.swapcase()

33

Python字符串大小比较

1
2
3
4
# obj1 op obj2 将两个字符串进行大小比较,从第一个元素开始比较,如果相同继续比较
a = 'hello world'
b = 'hello python'
a > b

34

Python字符串乘法

1
2
3
# obj * n,n为正整数,将obj复制n次
a = 'hello world '
b = a * 3

35

Python判断元素是否在字符串中

1
2
3
4
# data in obj,判断data是否在obj中,data not in obj,判断data是否不在obj中
a = 'hello world'
b = 'he' in a
c = 'she' not in a

36

Python求某个元素出现的次数

1
2
3
# obj.count(data) 求data在字符串中出现的次数
a = 'hello world'
a.count('l')

37

Python求某个元素的索引

1
2
3
4
# obj.index(data, begin, end) 从begin到end-1中索引第一次出现data的位置,默认从第一个元素到最后一个元素
a = 'hello world'
a.index('l')
a.index('l', 4)

38

Python字符串与列表或元组的转换

1
2
3
4
5
6
7
8
9
10
11
a = 'string'
b = ['L', 'i', 's', 't']
c = ('T', 'u', 'p', 'l', 'e')

# list(obj)或者tuple(obj) 字符串转换成列表或者元组,转换后列表或者元组的每一个元素为一个字符
d = list(a)
e = tuple(a)

# ''.join(obj) 将obj转换为字符串
f = ''.join(b)
g = ''.join(c)

39

Python将字符串翻转

1
2
3
4
5
6
7
8
9
a = 'hello python'

# 通过索引翻转[::-1]
a[::-1]

# Python不允许字符串进行翻转,但是可以借助列表进行翻转,然后再转换为字符串即可
a = list(a)
a.reverse()
a = ''.join(a)

40

Python将字符串排序

1
2
3
4
5
6
a = 'abcabbc'

# Python不允许字符串进行排序,但是可以借助列表进行排序,然后再转换为字符串即可
a = list(a)
a.sort()
a = ''.join(a)

41

Python判断字符串类型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
a = '1a2b3c'
b = 'abcdef'
c = '123456'

# obj.isalnum() 判断字符串是否全是字母或数字
a.isalnum()

# obj.isalpha() 判断字符串是否全是字符
b.isalpha()

# obj.isdigit() 判断字符串是否全是数字
c.isdigit()

# obj.islower() 判断字符串是否全是小写字母
b.islower()

# obj.isupper() 判断字符串是否全是大写字母
b.isupper()

42

Python字符串居中

1
2
3
4
a = '----------'

# obj.center(width, fillchar) 字符串居中,总长度为width,两边填充的字符为fillchar,默认为空格
a.center(20)

43

Python查找子串出现的次数

1
2
3
4
5
a = 'abcabbc'

# obj.count(str, begin, end) 查找子串str从begin到end-1出现的次数,默认从第一个到最后一个
a.count('ab')
a.count('ab', 1)

44

Python查询字符串开头或者结尾是否为某一子串

1
2
3
4
5
6
7
a = 'abcabbc'

# obj.startswith(str, begin, end) 判断obj从begin到end-1是否以str开头
a.startswith('abc')

# obj.endswith(str, begin, end) 判断obj从begin到end-1是否以str结尾
a.endswith('bc')

45

Python求字符串中子串的索引

1
2
3
4
5
6
7
8
9
a = 'abcabbc'

# obj.find(str, begin, end) 从左边查找子串str从begin到end-1出现的索引,默认从第一个到最后一个
a.find('abb')
a.find('abbds')

# obj.rfind(str, begin, end) 从右边查找子串str从begin到end-1出现的索引,默认从第一个到最后一个
a.rfind('abb')
a.rfind('abbds')

46

Python将字符串左边或右边的字符删去

1
2
3
4
5
6
7
8
9
10
a = 'abcabba'

# obj.lstrip(str) 将左边的str字符删去,如果str为字符串则代表字符串中的所有字符都删去
a.lstrip('a')

# obj.rstrip(str) 将右边的str字符删去,如果str为字符串则代表字符串中的所有字符都删去
a.rstrip('a')

# obj.strip(str) 将左边和右边的str字符删去,如果str为字符串则代表字符串中的所有字符都删去
a.strip('a')

47

Python替换字符串

1
2
3
4
a = 'abcabbc'

# obj.replace(old, new) 将old子串用new替代
a.replace('abb', 'cdd')

48

Python拆分字符串

1
2
3
4
5
a = 'abcabbc'

# obj.partition(str) 将字符串拆分为3部分,str之前的部分,str,str之后的部分

# obj.split(str) 将obj按照str拆分,默认为空格拆分

49

Python字符串格式化

$$ \begin{array}{|c|c|} 格式 & 描述 \ %c & 以ASCII码格式化字符 \ %s & 格式化字符串 \ %d & 格式化整数 \ %m.nf & 格式化浮点数,m指总长度,n指小数点后面的精度,不够在左侧补空格 \ %-m.nf & 格式化浮点数,m指总长度,n指小数点后面的精度,不够在右侧补空格 \ \end{array} $$

1
2
3
4
5
6
7
8
9
10
# '{}...{}...'.format('xxx', 'yyy', ...) 将xxx,yyy填入字符串的花括号中
s1 = '{}的网址是"{}"'.format('阿里巴巴', 'www.alibabagroup.com')
s2 = '{0}的网址是"{1}"'.format('腾讯', 'www.tencent.com')
s3 = '{name}的网址是"{site}"'.format(name='百度', site='www.baidu.com')

# '{0:x}...{1:y}...'.format('xxx', 'yyy', ...) 将xxx,yyy填入字符串的花括号中,x和y指输入的格式,可以达到美化效果
s4 = '{name:10s}==>{id:10d}'.format(name='张三', id=1)

# '格式1, 格式2, 格式3' %(数据1, 数据2, 数据3) 将数据1以格式1的方式,数据2以格式2的方式,数据3以格式3的方式放入字符串中,注意格式与数据直接没有逗号连接
s5 = '%s:%d/%d/%d' %('今天的日期为', 2019, 9, 18)

86

Str小结

  Str字符串是Python中一种常见的结构,在实际的应用中,经常有许多数据无法用数字表示,如姓名,地址等信息,因此使用的频率也是非常高的,所以要灵活掌握Str的应用。

-------------本文结束感谢您的阅读-------------
0%