自学内容网 自学内容网

python学习记录14

1.字符串的编码和解码

不同的计算机之间在信道中传输的信息本质上是二进制数据,因此当你有一串文本需要传输给另外一台电脑时,则需要将这串文本编译为二进制类型的数据。python中的二进制数据类型称为byte类型。将字符串的str类型转变为byte类型称为字符串的编码,将byte类型转变为str类型称为字符串的解码。

字符串的编码用到的是encode的方法,语法格式为:

string.encode(encoding='编码格式',errors='strict/ignore/replace')

其中编码格式默认‘UTF-8’,error为无法转换编码时的处理方式,strict:严格,无法转换直接报错,ignore:忽略,replace:替换,遇到无法转换的字符用‘?’替代;

同时字符串的解码用到的是decode的方法,要注意的是同一个字符串的编码与解码格式应一致。语法格式为:

bytes.decode(encoding ='编码格式',errors='strict/ignore/replace')

语义与编码时一致

str1 = '你好,我是秦始皇'
byte1 =str1.encode(errors='replace')
print(byte1)
byte2 = str1.encode('utf-16',errors='replace')
print(byte2)
str2 =byte1.decode(errors='replace')
print(str2)
str2 = byte2.decode('utf-16',errors='replace')
print(str2)

2.字符串的验证

字符串的验证是指对用户输入的字符串按照特定规则判断其是否符合规则的验证,输出的数据类型为布尔,具体验证方法如下:

string.isdigit()#判断字符串是否全为阿拉伯数字

string.isnumeric()#判断字符串是否全为数字(包括罗马数字、中文的一二三四)

string.isalpha()#判断字符串是否全为字母或汉字

string.isalnum()#判断字符串是否全为数字或字母(包括中文字符)

string.islower()#判断字符串中的字母是否全为小写

string.isupper()#判断字符串中的字母是否全为大写

string.istitle()#判断字符串中的单词是否全为首字母大写

string.isspace()#判断字符串是否都为空白、转义字符\t\n等

print('12345678'.isdigit())
print('四三二一'.isnumeric())
print('我是梁志超'.isalpha())
print("十四是十四四十是四十".isalnum())
print('apple+banana'.islower())
print('APPLE+BANANA'.isupper())
print('Apple+Apple'.istitle())
print('\t\n'.isspace())

3.字符串的拼接

字符串有三种拼接方式:string.join()#将、直接用加号拼接、格式化字符串进行拼接。

str1 = '我是'
str2 = '梁志超'
print(str1+str2)#直接拼接
print(''.join([str1,str2]))#string.join()
print('%s%s'%(str1,str2))
print(f'{str1}{str2}')
print('{0}{1}'.format(str1,str2))

4.字符串的去重

字符串的去重使用遍历+拼接的操作。拼接有三种方法:一、先创建一个新的空字符串,之后从老字符串的第一个字符开始,往后遍历,使用for-not in的语法,不在新字符串里的字符拼接到新字符串当中;二、使用索引+遍历的操作,与一类似;三、使用列表+排序的操作,因为列表是不可重复序列,因此将字符串转换为列表后重复元素会被删除,之后按照原来的字符顺序排列回来即可。

teststr ='itsbelongwayidoyoufriendseeyouagain'
newstr1 =''
#使用遍历
for item in teststr:
    if item not in newstr1:
        newstr1+=item
print(newstr1)
#使用索引+遍历
newstr2 =''
for i in range(0,len(teststr)):
    if teststr[i] not in newstr2:
        newstr2 +=teststr[i]
print(newstr2)
#使用集合+列表
s = set(teststr)
l = list(s)
l.sort(key=teststr.index)
print("".join(l))

5.正则表达式

正则表达式是一种特殊的字符序列,用于帮助用户检查输入数据是否符合某种模式。

(1)元字符

具有特殊意义的专用字符,例如^和$,用于表达匹配的开始与结束,此外还有:

. :用于匹配任一字符(除\n外)

\w:用于匹配数字、字母、下划线

\W:用于匹配数字、字母、下划线以外的其他字符

\s:用于匹配空白字符

\S:用于匹配空白字符以外的字符

\d:用于匹配任意十进制数

(2)限定符

限定符是限定匹配的次数,限定符包括:

? :匹配前面的字符一次或0次

+ :匹配前面的字符一次或多次

* :匹配前面的字符0次或多次

{n}:匹配前面的字符n次

{n,}:匹配前面的字符至少n次

{n,m}:匹配前面的字符至少n次,至多m次

(3)区间字符

可以使用[]匹配[]中的字符,例如[\u4e00-\u9fa5]是匹配任意一个汉字

(4)排除字符

使用[^]匹配不在[]中指定的字符

(5)选择字符

用于匹配|左右的任意字符

(6)转义字符

\,同转义字符

(7)分组

改变限定符的作用


原文地址:https://blog.csdn.net/lewisCK/article/details/143462787

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!