python基础语法之字符串

Source

字符串是不可变数据类型,不可以进行更改,更改后就是一个新的对象了,因为物理地址发生了变化

一、字符串的创建

字符串是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
一起探讨编程知识,成为大神,群里还有软件安装包,实战案例、学习资料