python:字符串常用方法及汇总

目录

1、字符串定义

1.1、创建字符串

​编辑

 1.2、空字符串和len()函数

1.3、转义字符

1.4、字符串拼接

 1.5、字符串复制

1.6、不换行打印

 1.7、从控制台读取字符串

 2、str()实现数字转型字符串

3、使用[]提取字符

 4、replace()实现字符替换

5、字符串切片slice操作

​编辑

6、split()分割和join()合并

 7、拼接字符串要点


1、字符串定义

        字符串是一个有序的字符的集合,用于在计算机中存储和表示文本信息。

1.1、创建字符串

我们可以通过单引号或双引号创建字符串。

适应两种引号的好处是可以创建本身就包含引号的字符串,而不使用转移字符,例如

a = "Hello,my name is cat,golden king"
print(a)
b = 'my name is "tom"'
print(b)

 连续三个单引号或三个引号,可以帮助我们创建多行字符串。例如

info = '''name="IT.cat"
company="cat" age=18
lover="Alex"'''
print(info)

 1.2、空字符串和len()函数

Python允许空字符串的存在,不包含任何字符且长度为0.例如

a = ''
print(len(a))

len用来计算字符串的长度或项目个数(含空格),返回值为结果。如

a = ''
print(len(a))
b = 'acc yyzz'
print(len(b))
c = ['1','2','3']
print(len(c))
d = {'a':1,'b':2}
print(len(d))

1.3、转义字符

我们可以使用"+特殊字符",实现某些难以用字符表示的效果,比如:换行等。常见的

转义字符描述
(在行尾时)续行符
\反斜杠符号
单引号
"双引号
\b退格(Backspace)
\n换行
\t横向制表符
\r回车

转义字符的使用

a = 'i\nlove\nyou'
print(a)
print('aaaaa\
vvvvv')

1.4、字符串拼接

1、可以使用+将多个字符串拼接起来。例如:'aa'+'bb'==>'aabb'

        (1)如果+两边都是字符串,则拼接

        (2)如果+两边都是数字,则假发运算

        (3)如果+两边类型不同,则抛出异常

2、可以将多个字面字符串直接放到一起实现拼接。例如:'aa''bb'==>'aabb'

字符串拼接操作

a='abc'+'123'
print(a)
b='aaa''bbb'
print(b)

 

 1.5、字符串复制

使用*可以实现字符串复制

a='abc '*3
print(a)

 

1.6、不换行打印

前面调用print时,会自动打印一个换行符。有时,我们不想换行,不想自动添加换行符。我们可以自己动过参数end="任意字符串"。实现末尾添加任何内容:

print("i",end=" ")
print("am",end=" ")
print("TOM",end="--")
print("good")

 1.7、从控制台读取字符串

我们可以使用input()从控制台读取键盘输入的内容

a=input("请输入姓名:")
print(a)

 2、str()实现数字转型字符串

str()可以帮助我们将其他数据类型转换为字符串。例如

a = int(123456)  #这里的a很明显是整型
print(a[0])   #按字符型截取第1个数字

 很明显报错

a = int(123456)  #这里的a很明显是整型
a = str(a)      #将a定义为字符串
print(a[0])

 当我们调用print()函数时,解释器自动调用str()将非字符串的对象转成了字符串。

3、使用[]提取字符

字符串的本之就是字符序列,我们可以通过在字符串后面添加[],在[]里面指定偏移量,可以提取该位置的单个字符。

最左侧第一个字符,偏移量为0,第二个偏移量是1,以此类推,直到len(str)-1为止

 

 反向搜索:

最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推直到-len(str)为止

a = 'abcdefghijklnmopqrstuvwxyz'
print(a)
print(a[0])
print(a[3])
print(a[26-1]) #-1逆向取数,26就表示逆向取第26个数
print(a[-1])   #反着取第一个数
print(a[-26])  #反着取第26个数,注意这里不能超过字符范围,会报超出rang

 4、replace()实现字符替换

字符串是"不可改变"的,我们通过[]可以获取字符串指定位置的字符,但是我们不能改变字符串。我们尝试改变某个字符,是会报错的。

a = 'abcdefghijklnmopqrstuvwxyz'
a[3] = "TOM"
print(a)

 字符串不可改变。但是,我们确实有时候需要替换某些字符。这时,只能通过创建的字符串来实现。

a = 'abcdefghijklnmopqrstuvwxyz'
a = a.replace('c','高')
print(a)

 整个过程中,实际上我们是创建了新的字符串对象,并指向了变量a,而不是修改了以前的字符串。

5、字符串切片slice操作

切片slice操作可以让我们快速的提取字符串。标准格式为:

[起始偏移量 start:中止偏移量 end:步长 step]

 典型操作三个整数如下

操作和说明示例结果
[:]提取整个字符串"abcdef"[:]"abcde"
[start:]从 start 索引开始到结尾“abcdef”[2:]“cdef”
[:end]从头开始知道 end-1“abcdef”[:2]“ab”
[start:end]从 start 到 end-1“abcdef”[2:4]“cd”
[start: end:step]从 start 提取到end-1,步长是 step“abcdef”[1:5:2]“bd”

其他操作(三个量为负数)的情况:

操作和说明示例结果
“abcdefghijklmnopqrstuvwxyz”[-3:]倒数三个“xyz”
“abcdefghijklmnopqrstuvwxyz”[-8:-3]倒数第八个到倒数第三个(包头不包尾)‘stuvw’
"abcdefghijklmnopqrstuvwxyz"[::-1]步长为负,从右到左反向提取‘zyxwvutsrqponmlkjihgfedcba’

切片操作时,起始偏移量和终止偏移量不再[0,字符串长度-1]这个范围,也不会报错。起使偏移量小于0则会当做0,终止偏移量大于"长度-1"会被当成-1.

#将"to be or not to be"字符串倒叙输出
a = 'to be or not to be'[::-1]
print(a)

#将"sxtsxtsxtsxtsxt"字符串中所有的s输出
a = 'sxtsxtsxtsxtsxtsxt'[0::3]
print(a)

6、split()分割和join()合并

split()可以基于指定分隔符将字符分割成多个字符串(存储到列表中)。如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)。示例代码如下

a = 'to be or not to be'
print(a.split())

a = 'to be or not to be'
print(a.split('be'))

 join()的作用和split()作用刚好相反,用于将一系列子字符串连接起来,示例代码如下:

a = ['a','b','c','d','e','f']
print(a)
print(''.join(a))
print('-'.join(a))

 7、拼接字符串要点

使用字符串拼接符+,会生成新的字符串对象,因此不推荐使用+来拼接字符串。推荐使用join函数,因为join函数再拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象。

[操作]测试+拼接符和join()。不同的效率

import time
time01 = time.time()  #起使时刻
a = ""
for i in range(1000000):
    a += "sxt"
time02 = time.time() #终止时刻
print("运算时间:"+str(time02-time01))
time03 = time.time()#起始时间
li = []
for i in range(1000000):
    li.append("sxt")
a = "".join(li)
time04 = time.time() #终止时刻
print("运算时间:"+str(time04-time03))

这里还引用了time的模块,分别创立time01,02两个标志位,当执行到time.time()表示开始计数,第二个表示终止。

a +=sxt排序会一次一次的加,而"".join是先加再整体一下子排序,会高效很多

 这里也会发现使用"".join会比+运算快5倍速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值