Python入门3——编程的基本概念(1)字符串

一、字符串的拼接

(1)可以使用多个字符串拼接起来(eg:’aa‘+’bb‘结果是’aabb‘), 如果+两边都是字符串,则拼接; +两边为数字则加法运算; +两边类型不同则抛出异常

(2)可以将多个字面字符串直接放到一起实现拼接(eg:‘aa’‘bb’的结果是‘aabb’)

a='sxt'+'gugo'
b='sxt''gugo'
c='gugu'
d=1314
e=c+str(d)
print(a)#sxtgugo
print(b)#sxtgugo
print(e)#gugu1314

二、字符串的复制

使用*可以实现字符串复制(eg:a='sxt'*3结果为'sxtsxtsxt')

a='kukuliqi'*3
print(a)#kukuliqikukuliqikukuliqi

三、不换行打印

在前面,我们调用print时,会自动打印一个换行符。

而有时我们并不想换行,不想自动添加换行符。

那么 我们可以自己通过参数end=”任意字符串“以此来实现末尾添加任何内容

print("Greedy",end='')
print("Greedy",end='##')
print("Greedy")#GreedyGreedy##Greedy为不换行输出

四、从控制台读取字符串

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

五、replace实现字符串的替换

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

a="abcdefghijklmnopqrstuvwxyz"
a[3]="第"
print(a)#报错:TypeError: 'str' object does not support item assignment

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

 str()可以帮助我们将其他数据类型转换为字符串, 当我们调用print()函数时,解释器自动调用了str()将非字符串的对象转成了字符串

a=str(5.22)
b=str(3.14e2)
c=str(True)
print(a)#5.20
print(b)#314.0

七、使用[]提取字符

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

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

a="abcdefghijklmnopqrstuvwxyz"
print(a[0],a[1],a[len(a)-1])#从左至右,第一个为0,最后一个为25也即是len(a)-1,故输出为:a b z
print(a[26])#报错为:IndexError: string index out of range
print(a[-1],a[-2],a[-26])#z y a

八、字符串切片slice操作 切片slice操作可以让我们快速的提取子字符串。标准格式为:[起始偏移量start:终止偏移量:步长step] 以下是几个典型操作(三个量为正数的情况下):

(1)[:]提取整个字符串("abcdef"[:]结果为abcdef)

(2)[start:]从start开始到结尾("abcdef"[2:]结果为cdef)

(3)[:end]从头开始知道end-1("abcdef"[:2]结果为ab)

(4)[start:end]从start到end-1("abcdef"[2:4]结果为cd)

(5)[start:end:step]从start提取到end-1,步长是step("abcdef"[1:5:2]结果为bd)

以下为其他操作示例(三个量为负数)

(1)'abcdefghijklmnopqrstuvwxyz'[-3:]取倒数三个,该结果为xyz

(2)'abcdefghijklmnopqrstuvwxyz'[-8:-3]取倒数第八个到倒数第三个(包头不包围,)

(3)'abcdefghijklmnopqrstuvwxyz'[::-1]该步长为负,从右到左反向提取,结果为zyxwvutsrqponmlkjihgfedcba

切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。 起始偏移量小于0则会当作0,终止偏移量大于“长度-1”会被当成-1,即默认终止偏移量是最大的。

a="abcdefg"
print(a[3:50])#defg
print(a[1:10])#bcdefg
print(a[3:300])#defg
print(a[-10:-1])#abcdef

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

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

(2)join()的作用和split()作用刚好相反,用于将一系列子字符串连接起来。

#split()分割
a="I Love You"
b=a.split("v")
print(b)#['I Lo', 'e You']
#join()合并
c=['aa','bb','cc']
d='xxxx'.join(c)
print(d)#aaxxxxbbxxxxcc

特别地: 使用字符串拼接符+,会生成新的字符串对象,因此不推荐使用+来拼接字符串。

推荐使用join函数,因为join函数在拼接字符串之前计算所有字符串的长度,然后逐一拷贝,仅新建一次对象

#测试+拼接符和join()不同的效率
import time
time1=time.time()
a=''
for i in range(10000):
    a+="sxt"#split()分割
a="I Love You"
b=a.split("v")
print(b)#['I Lo', 'e You']
#join()合并
c=['aa','bb','cc']
d='xxxx'.join(c)
print(d)#aaxxxxbbxxxxcc

time2 = time.time()
print("+连接的运算时间:"+str(time2-time1))#+连接的运算时间:0.001999378204345703
time3=time.time()
li=[]
for i in range(1000000):
    li.append("sxt")
b="".join(li)
time4=time.time()
print("+连接的运算时间:"+str(time4-time3))#+连接的运算时间:0.08272361755371094

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值