python字符串学习笔记

一、字符串(用单双三引号定义的一串字符)

1.在交互式界面认识Python代码在内存中的存储格式,globals()可在交互界面查看所有定义的变量

一般的字符串使用单引号标记

>>> a = 'cat'         //定义一个变量a,赋值a为字符串cat,这里的cat就是字符串
>>> a
'cat'         //在内存中储存是带引号的,类似于网络中使用tag标记二层VLAN报文
>>> print(a)
cat

>>> b = "cat"
>>> b
'cat'          //不管你定义时输入的是单双三引号,在内存中储存都是单引号的形式
>>> a == b        //a 与 b 在Python是完全相等的
True

字符串中带引号的用双引号标记

>>> c = "it's a cat"      //此时字符串中带引号,我们需要用双引号或者三引号避免冲突
>>> c
"it's a cat"              //内存中储存的也是双引号,不管你用的是三还是双引号

>>> c = 'it's a cat'           //单引号报错
  File "<stdin>", line 1
    c = 'it's a cat'

转义字符,在Python中可以使用\进行转义,转义的意思就是转变格式

>>> d = 'it\'s a cat'     //在字符串中的引号前面加\进行转义,告诉Python他不具有普通引号的意义,也就是标识普通字符串的意义,使其只具有字符的意义
>>> d
"it's a cat"           //在内存中储存格式

当我们需要在文本中输入\的时候,我们需要加双\\,意思是对转义字符进行转义,使后面一个\不具有转义的作用,变为文本

>>> e = 'd:tengxun\down'     //在定义文件目录变量时候会经常使用,
>>> e
'd:tengxun\\down'      //Python作为高级编程语言会自动帮你进行转义,在较早的Python版本需要手动输入\\

2、\转义字符的多种运用场景

在末尾添加\可以续行

a = 'dasdsdas\

dasdadsafsaf'

 print(a)

打印结果:dasdsdasdasdadsafsaf   

转义的作用,与上面演示一致

\b有退格的作用

a='he \bllo'    #不仅仅消除空格,如果没有空格就消除前一个字母

print(a)

打印结果:hello

解决字符串中带有\b的场景,就在\前加一个\也就是\\,对转义字符进行转义

a='D:tengxun\\bin'   #例如D盘tengxun目录下的bin文件

print(a)

打印结果:D:tengxun\bin

\n有换行的作用

a ='hello \nmy friend'

print(a)

打印结果:hellow 

                  my friend

\t是横向制表符,就是横向平移数据用的

a= 'jack /t75kg /t185cm'

print(a)

打印结果:jack      75kg     185cm

\0是空的意思,感觉没啥用

>>> a = '\0'
>>> a
'\x00'              #空在内存中储存格式
>>> print(a)

              #输出空

3、三引号的运用

a = '''

         姓名                        身高                        年龄

         jack                         185                          25

     '''

print(a)

打印结果:

         姓名                        身高                        年龄

         jack                         185                          25

三引号会将你输入的字符完整的打印出来不会报错,如果我们用单引号就必须自己手动加横向位移以及退格实现,三引号的作用就是你输入什么数据,给你打印什么数据,不改变格式,在处理表格数据时非常实用。

4、字符串的运算

a = 'girl' ; b = 'boy'

print(a+' and '+b)

输出结果:girl and boy

print('!' * 30)

输出结果:!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

5、字符串整形

a = 12345

print(type(a))

输出:<class 'int'>        #a为一个整数格式

b = str (a)

print(type(b))

输出:<class 'str'>        #b为一个字符串格式

将其他变量更改为字符串格式,使用代码:定义一个新变量=str(需要整形的变量)

6、字符串长度测量及索引

a='dsagdgaijewdsada'

print(len(a))       #输出字符串的长度

结果:16      

print(a[0])        #输出字符串a的第0位

print(a[-16])    #也可以在从负方向取-1对于最右边第一个

结果:d

注意:取数就相当于在X轴上取某一个横坐标,可以以正坐标为准,也可以以负坐标为准。

7、字符串的切片(切片规则为左闭右开,也可以取负坐标)

a='dsagdgaijewdsada'

print(a[3:7])            #取第3-7位不包含第七位

结果:gdga

b=a[3:7]

print(b)

结果:gdga

print(a[-16:-5])

结果:dsagdgaijew

注意负坐标取右边所有的方法print(a[-16:]),右边不输就可以了

8、字符串的分割

当我们处理一大串字符串的时候,比如使用Python抓取一段路由器OSPF邻居状态信息,我们得到的是二进制(前面带b'则表示是二进制)的阿斯克机器码并不是友好界面。

这时我们需要首先通过代码进行解密:变量名称.decode()

再使用代码以行为依据将数据分割为一个列表:变量名称.decode().splitlines

syslog=b'dis ospf peer brief \r\n OSPF Process 1 with Router ID 12.0.0.1 \r\n Peer Statistic Information \r\nArea Id          Interface                        Neighbor id      State \r\n  0.0.0.0          GigabitEthernet0/0/0             12.0.0.2         Full' 

print(syslog.decode())             #解密

输出结果:

OSPF Process 1 with Router ID 12.0.0.1 
 Peer Statistic Information 
Area Id          Interface                        Neighbor id      State 
0.0.0.0          GigabitEthernet0/0/0             12.0.0.2         Full   

a=(syslog.decode().splitlines)                #定义变量a,将syslog解密并以行为依据分割为一个列表赋值给a

print(a)

输出结果:

['dis ospf peer brief ', ' OSPF Process 1 with Router ID 12.0.0.1 ', ' Peer Statistic Information ', 'Area Id          Interface                        Neighbor id      State ', '  0.0.0.0          GigabitEthernet0/0/0             12.0.0.2         Full   ']

此时我们就可以抓取想要的关键字了,比如我们想要抓取邻居状态

b=a[3]+a[4]          #赋值一个变量为a的第三位+a的第四位

print(b)

输出结果:注意此时重新抓数据后列表又变成字符串了

Area Id          Interface                        Neighbor id      State   0.0.0.0          GigabitEthernet0/0/0             12.0.0.2         Full   

c=b.split()       #自动对字符串进行分割,形成列表,字符串中空格较多Python会自动选择空格进行分割

print(c)

输出结果:

['Area', 'Id', 'Interface', 'Neighbor', 'id', 'State', '0.0.0.0', 'GigabitEthernet0/0/0', '12.0.0.2', 'Full']

d=c[5]+': 'c[9]    #中间增加一个冒号方便我们阅读

输出结果:

State: Full

注意:此时我们可以简写代码无需赋值这么多变量,从b开始的赋值都可以通过简写完成

b=a[3].split()[5]+': '+a[4].split()[3]   

print(b)

输出结果:

State: Full

注意此时我们在b上对位值时a[3]列表与a[4]列表是分开为两个列表的

即a[3].split()为:

['Area', 'Id', 'Interface', 'Neighbor', 'id', 'State']

a[4].split()为:

['0.0.0.0', 'GigabitEthernet0/0/0', '12.0.0.2', 'Full']

也就是分开取值后再合并,先取后合并

9、交互式字符串

workday=input('您本月工作了多少天:')

print('您本月的工作收入为:',int(workday)*500)  #使用int定义字符串workday格式为数值

输出结果:

您本月工作了多少天:  30                         #需要你输入天数,假如我输入30

您本月的工作收入为: 15000          #会返回运算结果

10、格式化字符串

workday=input('您本月工作了多少天:')

print('您本月的工作收入为:{}'.format(int(workday)*500) )别忘记{}后面的点“.”

print('您本月的工作收入为:%s' %(int(workday)*500) )  #别忘记%后面的括号

print(f'您本月的工作收入为:{int(workday)*500}' )   #别忘记f

输出结果:

您本月工作了多少天:  30                         #需要你输入天数,假如我输入30

您本月的工作收入为: 15000          #会返回运算结果

11、字符串的控制符

a="dasdawdasdwa"

print(a.replace('a','A'))      #替换字符串中指定的所有字符,红色部分不输入就是默认删除蓝色字符

输出:

dAsdAwdAsdwA

print(a.strip(d))    #删除字符串的指定位置,只能删除最外侧的字符,左侧或者右侧都可以,红色为空表示删除左右两边所有的空格

输出

asdawdasdwa


 

      

 

 

 
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值