python复习笔记(第五章知识缩略)

字符串编码 

  • encode()和decode()方法
  • bytes()和str() 函数
#默认为str类型
s='我'
#转为bytes类型
s1=s.encode('gbk')
s2=bytes(s,encoding='gbk')
#转为str类型
s3=s1.decode('gbk')
s4=str(s1,encoding='gbk')
#'gbk'可以换为'utf-8'

采用UTF-8解析源程序,
无论是数字字符、英文字母、汉字都按一个字符来对待和处理,长度都为1

字符串构建

  •  str()函数
  • 引号
  • 保留原字符串 
  1. 转义字符 ‘\’    :  \'' ,\\  
  2. 字符串前加上r/R  :   print(r"c:\test\net")    ?????
  3. 三重引号   :  ' ' '

字符串格式化

(1)

' % ... 格式字符' %x

...的内容可以为:

-+#0m.n
左对齐,如果前面有空格或0,则丢弃空格与0正数前加+号以某进制输出结果中加上0b,0x,0o如果宽度不够,且指定0,则以0填充,如果时左对齐,则以空格放后面填充最小宽度,不够前面补空格指定精度,四舍五入

多对象


'%.2f,%4d,%s'%(3.456727,89,'Lily')    #常量-->元组
name='Lily'
age=18
'我叫%s,今年%d岁'%(name,age)       #变量-->元组

格式字符

%d/ %i , %c , %s,  %F/%f   ,%u(无符号整数),%o(8进制),  %x(16进制),%e/%E(科学计数,以e或者E为基底)

%g/%G

(2)

format()方法

' {  ...  } '.format(x)

...的内容可以为:

alignsign#0(也可以用其他符号)m,     _.n格式字符
要进行的操作

<   左对齐

>   右对齐

^    居中对齐

=    仅对数字有效,将0填充

在数字与符号之间

+  所有数字都带符号

-   负数带

空格  正数带空格,负数带符号

   每三位添加逗号或者下划线分隔 默认为s,不用%

{ }与format里面的值一一对应,可用{1},{2}来特指

'我叫{0},今年{1}岁'.format('张清',18)

列表用*解包,或者索引调用

my=['张清',18]
'我叫{},今年{}岁'.format(*my)         #列表用*,自动解包
'我叫{0[0]},今年{0[1]}岁'.format(my)  #列表不用*,则需要用列表的索引元素

在format里定义变量,调用时可直接使用变量名

'我叫{name},今年{age}岁'.format(name='张清',age=18)

字典用**解包

my={'name':'张清','age':18}
'我叫{name},今年{age}岁'.format(**my) #字典用**,自动解包

以*填充,注意位置(???????)

'{0:*>10}'.format(18)  		#右对齐

(3)

带f的格式化

name='张清'
age=18
f'我叫{name},今年{age}岁'

 

字符串截取 

使用索引或者切片,也可使用负数索引,从-1开始,不支持更改,是不可变对象

内置函数

  • len()
  • ord():   转为unicode(从字符转为数字)
  • chr()  :转回来
  • max()
  • min()

字符串常用方法

:字符串为不可变,所以方法最终返回新字符串,不改变原有

  • center(width, fillchar) 居中对齐   //  fillchar为填充字符,默认为空格,返回新字符串
  • ljust(width, fillchar)    左对齐
  • rjust(width, fillchar)    右对齐
  • lower()          大写转小写,其他字符不变,返回新字符串
  • upper()
  • capitalize(): 将整个字符串 首字母转换为大写形式,其他字母转换为小写形式,返回新字符串
  • title():          将每个单词首字母转换为大写形式,其他部分的字母转换为小写形式。
  • swapcase():将大小写互换
  • islower()       字符串是否为全小写 (只检查字母,其他字符不检查)  ,返回true或false
  • isupper()      字符串是否为全大写
  • isdigit()         字符串是否为全数字(只允许包含数字,其他字符也要检查
  • find(sub,start, end)       [start,end)范围内查找子串sub,返回首次出现的位置索引,没有找到则返回-1
  • rfind(sub, start ,end)     从右往左
  • index() , rindex():            用法于find一样,但找不到会报错,而非返回-1、
  • count(sub, start, end)     在字符串S中,查找并返回[start,end)范围内子串sub出现的次数不存在,则返回0。
  • split(分隔符,maxsplit=...)   以指定字符从左往右将字符串分割开来,分割后的结果以列表返回,默认为空白符,可指定分隔次数
  • rsplit()
  • '连接符'. join(对象)       连接序列元素,返回字符串,如果是元素本身是字符串,则舍去引号
  • replace(old,new,count=-1)    查找字符串中old子串并用new子串来替换。参数count默认值为-1,表示替换所有匹配项,最多替换count次,返回替换后的新字符串(原字符串不变)。
  • ' '.maketrans( 'a' , 'b' ):生成字符映射表, a与b映射
  • translate(映射表):根据字符映射表替换字符。这两种方法联合起来使用可以一次替换多个字符
  • strip( 指定字符):去除字符串两侧的空白字符(默认)指定字符,并返回新字符串。
s1='HHwHeart is liwving iHn tomorrowHww'
s1.strip('Hw')	#从两端逐一去除“H”或“w”字符,直到不是这两个字符为止(中间的字符Hw不能去除)
  •  

 

字符串模块

import string

  • string.capwords(s)    与title函数作用一样
  • string.ascii_lowercase   字符串常量小写('a'~'z')

  • string.ascii_uppercase   字符串常量大写

  • random.choice (string.ascii_lowercase):从小写字母中随机选择,choice()方法的功能是在一个非空的序列中随机选择一个元素。

正则表达式 

1)python中的re模块

  • import re
  • re.findall(模式串w,主串s):以列表的形式返回所有能匹配的模式串w,如果没有找到匹配的,则返回空列表

2)元字符

      字符串前加r,避免转义字符

  • . ’   表任意单个字符(除换行符以外)

  • [ ]      
1. 指定字符集,从字符集中选出一个字符
   [abc]  [a-z]  [0-9]
2. ^在[]内表示补集,[^3]表除3以外的元素
3. 有些元字符在[]内不起作用,例如$和.
  • ^:匹配行首,匹配每行中以^后面的字符开头的字符串(必须放在模式串的开头),是则只返回模式串
  • $:匹配行尾,匹配每行中以$之前的字符结束的字符串
  • \b: 放前面,匹配单词头,放后面,匹配单词尾(注意匹配的是分隔后的每个单词,返回模式串)
  • \B:和\b相反(不查开头/结尾的,只查其他部分的)

  • \d:匹配数字

  • \D:匹配非数字

  • \s:匹配空白字符

  • \w: 匹配任何字母、数字或下画线字符,相当于[a-z A-Z 0-9_]

  • \W:相反

  • \: 取消元字符

(3)量词(重复次数)

  • *:匹配位于*之前的一个字符0次多次出现
  • +:匹配位于+之前的一个字符1次多次出现
  • ?:匹配位于?之前的一个字符的0次1次出现
  • {m,n}:表示至少有m个重复,至多有n个重复,n不写默认为无穷多次,{n}确定重复n次
  • 默认的“贪心的”模式:匹配搜索到的、尽可能长的字符串
  • 设置为“非贪心的”模式:匹配搜索到尽可能短的字符串
  • 当“?”紧随其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,将匹配模式设置为“非贪心的”。
  • 如:"*?" 重复任意次,但尽可能少重复
  • | 或      例如:'z|food' 能匹配 "z" 或 "food"
  • (w):匹配 w 并获取返回这一匹配,通常与|连用
  • (? : w)匹配w,但不返回  
    'industr(?:y|ies)'
    匹配到yes或ies但不立刻返回,而是与前面的字符统一匹配返回
    如果没有?:,则直接返回yes或者ies

     

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值