博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1.12 Python基础知识 - 序列:字符串
阅读量:4316 次
发布时间:2019-06-06

本文共 3134 字,大约阅读时间需要 10 分钟。

  字符串是一个有序的字符集合,即字符序列。Pythpn内置数据类型str,用于字符串处理,使用单引号或双引号括起来的字符,就是字符常量,Python解释器会自动创建str型对象实例。

  字符串的定义:

  1、单引号:包含在单引号中的字符串,其中可以包含双引号

  2、双引号:包含在双引号中的字符串,其中可以包含单引号

  3、三单引号:包含在三单引号中的字符串,可以跨行

  4、三双引号:包含在三双引号中的字符串,可以跨行

  字符串的基本操作,包括索引访问、切片操作、成员关系操作、比较运算操作等。

一、字符串类型判断 

str.isalnum()   # 是否全为字母或数字str.isalpha()   # 是否全为字母str.isdecimal()     #是否只包含十进制数字字符str.isdigit()   #是否全数字(0-9)str.isidentifier()      #是否是合法标识str.islower()   #是否全小写str.isupper()   #是否全大写str.isnumeric()     #是否只包含数字字符str.isprintable()   #是否只包含可打印字str.isspace()   #是否只包含空白字str.istitle()   #是否为标题,即个单词首字母大写

 

二、大小写转换

str.capitalize()    #转换为首字母大写,其余小写str.lower()     #转换为小写str.upper()     #转换为大写str.swapcase()      #大小写互换str.title()     #转换为个单词首字母大写str.casefold()      #转换为大小写无关字符串比较的格式字符串

 

三、填充、空白和对齐

str.strip([chars])     #去掉两边空格,也可以指定要去除的字符列表str.lstrip([chars])     #去掉左边空格,也可以指定要去除的字符列表str.rstrip([chars])     #去掉右边空格,也可以指定要去除的字符列表str.zfill(width)     #左填充,使用0填充到width长度str.center(width[,fillchar])        #两边填充,使用填充字符fillchar(默认空格)填充到width长度str.ljust(width[,fillchar])     #左填充,使用填充字符fillchar(默认空格)填充到width长度str.rjust(width[,fillchar])     #右填充,使用填充字符fillchar(默认空格)填充到width长度str.expandtabs([tabsize])       #将字符串中的制表符(tab)扩展为若干个空格,tabsize默认为8

 

四、测试、查找和替换

str.startswith(prefix[,start[,end]])    #是否以prefix开头str.endswith(suffix[,start[,end]])    #是否以suffix开头str.count(sub[,start[,end]])        #返回指定字符串出现的次数str.index(sub[,start[,end]])       #搜索指定字符串,返回下标,无则导致ValueErrorstr.rindex(sub[,start[,end]])       #从右边开始搜索指定字符串,返回下标,无则导致ValueErrorstr.find(sub[,start[,end]])     #搜索指定的字符串,返回下标。没有则返回-1str.rfind(sub[,start[,end]])        #从右边开始搜索指定字符串,返回下标,没有则返回-1str.replace(old,new[,count])    #替换old为new,可选count为替换次数

 

五、拆分和组合

str.split(sep=None,maxsplit=-1)     #按指定字符(默认为空格)分隔字符串,返回列表。maxsplit为最大分隔次数,默认-1,无限制str.rsplit(sep=None,maxsplit=-1)     #从右侧按指定字符分隔字符串,返回列表str.partition(sep)      #根据分隔符sep分隔字符串为两部分,返回元组(left,sep,right)str.rpartition(sep)      #根据分隔符sep从右侧分隔字符串为两部分,返回元组(left,sep,right)str.splitlines([keepends])      #按行分隔字符串,返回列表str.join(iterable)      #组合iterable中的各元素成字符串,若包含非字符串元素,则导致TypeError

 

六、翻译和转换

str.maketrans(x[,y[,z]])    #创建用于translate的转换表str.translate(map)      #根据map转换table1 = str.maketrans('1234567','一二三四五六日')s1 = '1,3,4,9'print(s1.translate(table1)) # 输出结果 一,三,四,9

 

七、字符串编码

  默认情况下,Python字符串采用utf-8编码。创建字符串时,也可以指定其编码方式:

  b.decode(encoding,errors)  #把字节码对象b解码为对应编码的字符串

  s.encode(encodeing = 'utf-8',errors="strict")  #把字符串对象s编码为字节码对象

  代码示例:

# Author:Zhanghks = 'Hello!中国!' # 字符串默认编码格式为utf-8e = s.encode(encoding='gbk')    # 我们将字符串s以“gbk”格式编码成“字节码”,并赋值给eprint(s)print(e)d = e.decode(encoding='gbk')    # 我们将字节码e进行解码,并告知系统我们是以“gbk”格式编码的字节码print(d)# 输出结果Hello!中国!b'Hello!\xd6\xd0\xb9\xfa\xa3\xa1'Hello!中国!

  如果我们在解码时不进行指定原编码格式,会出现如下错误:

Hello!中国!Traceback (most recent call last):  File "E:/python/s14/字符串编码.py", line 10, in 
b'Hello!\xd6\xd0\xb9\xfa\xa3\xa1' d1 = e.decode() # 我们将字节码b进行解码,并告知系统我们是以“gbk”格式编码的UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd6 in position 6: invalid continuation byte

  错误内容如下:

  编码格式错误:‘utf-8’ 格式不能解码字节类型为 0xd6 开头的6个位置的字节码:无效的连续的字节

 

转载于:https://www.cnblogs.com/topspeedking/p/6419511.html

你可能感兴趣的文章
玩转CSS3,嗨翻WEB前端,CSS3伪类元素详解/深入浅出[原创][5+3时代]
查看>>
iOS 9音频应用播放音频之播放控制暂停停止前进后退的设置
查看>>
Delphi消息小记
查看>>
HNOI2016
查看>>
JVM介绍
查看>>
将PHP数组输出为HTML表格
查看>>
Java中的线程Thread方法之---suspend()和resume() 分类: ...
查看>>
经典排序算法回顾:选择排序,快速排序
查看>>
BZOJ2213 [Poi2011]Difference 【乱搞】
查看>>
c# 对加密的MP4文件进行解密
查看>>
AOP面向切面编程C#实例
查看>>
AngularJs学习笔记-慕课网AngularJS实战
查看>>
数据库三大范式
查看>>
工作总结之二:bug级别、优先级别、bug状态
查看>>
访问修饰符、封装、继承
查看>>
更换pip源到国内镜像,提升pip下载速度.
查看>>
POJ 2265 Bee Maja (找规律)
查看>>
Kendo MVVM 数据绑定(七) Invisible/Visible
查看>>
[zz]kvm环境使用libvirt创建虚拟机
查看>>
bzoj1059 [ZJOI2007]矩阵游戏
查看>>