字符串是不可变数据类型,不可以进行更改,更改后就是一个新的对象了,因为物理地址发生了变化
一、字符串的创建
字符串是python总常用的数据类型。可以用引号来创建字符串,引号可以是单引号、双引号、三引号,三引号可以写多行字符串
# 单引号创建字符串
str = 'hello world'
# 双引号创建字符串
str1 = "hello world"
# 三引号创建字符串
str2 = """hello world
hello world
hello world
hello world
"""
空字符以及空白字符的表示
# 空字符
a1 = ''
# 空白字符
a2 = ' '
print(bool(a1)) # 打印结果为:False
print(bool(a2)) # 打印结果为:True
二、字符串的运算符
1、+:字符串拼接
# +,字符串可以用 + 号,表示字符串拼接起来
family_name = 'zhang'
last_name = 'xiaomei'
print(family_name + ' ' + last_name) # 打印结果为:zhang xiaomei
print('666' + '888') # 打印结果为:666888
2、* :字符串 * 数字,表示重复多少遍,不支持字符串 * 字符串,会报错:TypeError
print('hello' * 5) # 打印结果为:hellohellohellohellohello
3、in 和 not in:字符串的成员运算,返回的结果为bool类型
# 成员运算符:in not in
str = 'hello world'
print('h' in str) # 打印结果为:True
print('b' in str) # 打印结果为:False
print('h' not in str) # 打印结果为:False
print('h' not in str) # 打印结果为:True
4、字符串索引:表示获取字符串当中的某一个元素。在python中,字符串的索引正向从0开始,逆向从-1开始,当超出索引范围时会报错
str = 'hello world'
# 索引的表示方法:str[索引号]
print(str[1]) # 打印结果为: e
print(str[-1]) # 打印结果为: d
print(str[11]) # 打印结果为: IndexError: string index out of range
5、len():获取字符串的长度
str = 'hello world'
# len():获取字符串的长度
print(len(str)) # 打印结果为: 11
三、字符串切片
切片可以获取字符串的多个元素,切片是顾头不顾尾,取左不取右,所以切片的表示方法为:[start:end+1:step]。
1、step可以省略,省略时step默认为1
str = 'hello world'
# 省略步长,省略的时候默认为1
print(str[1:5]) # 打印结果为: ello
2、start可以省略,省略时表示从起始位置开始取值
str = 'hello world'
# start 省略,从起始位置开始取值
print(str[:3]) # 打印结果为: hel
3、end可以省略,省略时表示取到最后一个值
str = 'hello world'
# end 省略,可以取到最后
print(str[1:]) # 打印结果为: ello world
4、都不省略时,step表示获取第一次以后,加多少个索引去获取第二次
# 步长 step:获取第一次以后,加多少个索引去获取第二次
num = "0101010101010101"
print(num[0:-1:2]) # 打印结果为: 00000000
5、在切片当中,超出范围是不报错的,表示取完的意思
str = 'hello world'
# 在切片当中,超出范围,是不报错的。是表示取完的意思
print(str[1:100]) # 打印结果为: ello world
6、在字符串切片中,step可以为负数,当step为负数时,start + step的结果的方向需要与终止位置一致才可以取到值,否则不能取到值
str = 'hello world'
print(str[3:0:-1]) # 打印结果为: lle
print(str[2:-3:-1]) # 取不到值,2+(-1) = 1,终止位置是-3,两个结果的方向是相反的,所以取不到值
7、字符串逆序排序:str ='hello world' print(str[::-1]) ==> dlrow olleh
str ='hello world'
print(str[::-1]) # 打印结果为:dlrow olleh
四、字符串方法
1、upper():将字符串中的小写字符转换为大写
a ="hello wOrlD"
print(a.upper()) # 打印结果为: HELLO WORLD
2、lower():将字符串中的大写字符转换为小写
a ="hello wOrlD"
print(a.lower()) # 打印结果为: hello world
3、title():将字符串中的首字母转换为大写,其余的为小写
a="hellowOrlD"
print(a.title()) # 打印结果为:Hello World
4、capitalize():将字符串的第一个字符大写
a="hellowOrlD"
print(a.capitalize()) # 打印结果为: Hello world
5、swapcase():翻转字符串中的大小写
a="hellowOrlD"
print(a.swapcase()) # 打印结果为: HELLO WoRLd
6、replace(old,new,num):替换字符串中的内容,num表示替换的次数,若不填表示全部替换,若填写则表示替换不超过num次
a = "hello world world"
b = a.replace("world", 'python')
print(b) # 打印结果为:hello python python 全部替换
c = a.replace('world', 'python', 1)
print(c) # 打印结果为: hello python world 只替换一次
7、find():查找指定字符,返回的是找到该字符串索引的开始位置,找不到返回-1
a = "hello world world"
index = a.find("w")
print(index) # 打印结果为: 6
index1 = a.find('q')
print(index1) # 打印结果为:-1
8、index(): 查找指定字符,返回的是找到该字符串索引的开始位置,找不到报错 ValueError
a = "hello world world"
result = a.index('r')
print(result) # 打印结果为: 8
result1 = a.index('66')
print(result1) # 打印报错 ValueError: substring not found
9、count():查找字符的次数,统计次数
a = "hello world world"
res = a.count("o")
print(res) # 打印结果为: 3
10、join():字符串拼接的高级用法,传入的参数为列表或者是元组;需将列表转化为字符串时要想到 join()
a = "hello world world"
a = "#".join(['hello', 'world', 'python'])
print(a) # 打印结果为: hello#world#python
11、split():拆开 ,返回的是一个列表,需将字符串转换为列表时要想到 split()
a = 'hello#world#python'
b = a.split('#')
print(b) # 打印结果为: ['hello', 'world', 'python']
12、strip():去除字符串两边的空格(主要用来去除空格)
world = ' sfoefsf '
c = world.strip()
print(c) # 打印结果为:sfoefsf
13、isdigit():判断字符串是否只包含数字,返回bool值
world ='sfoefs'
print(world.isdigit()) # 打印结果为: False
14、isloewr():判断字符串中需要区分大小写的字符是否是小写的,返回bool值
world ='sfoefs'
print(world.islower()) # 打印结果为:True
字符串中还有很多的方法,以上列出的是相对比较常见的一些方法的使用,在工作中如果还需用到别的方法,可以在搜索引擎中查找
【python学习】
学Python的伙伴,欢迎加入新的交流【君羊】:572077127
一起探讨编程知识,成为大神,群里还有软件安装包,实战案例、学习资料