首页 > 代码库 > 【Python】Java程序员学习Python(七)— 文本类详解(字符串、str)

【Python】Java程序员学习Python(七)— 文本类详解(字符串、str)

  如果一个女孩子喜欢看龙猫,那么请珍惜她,呵护她

 

  任何一门语言,字符串总是最基本也是最需要掌握的一个变量,想想入门的Hello World,输出的就是字符串。

  官方文档:https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str。

  字符串也成为字符序列,

一、表现形式

1.1 基本表现形式

  字符串可以用单引号、双引号、三引号引起来,特点如下:

  • 单引号和双引号相似,内部如果还要使用则需要用斜杠进行转义
  • 三引号是三个单引号或双引号,可以进行换行,也就是说包含所有字面的符号
yiwangzhibujian
"yiwangzhibujian"
‘‘‘yiwangzhibujian‘‘‘
"""yiwangzhibujian"""

  上面的形式都是一样的,同样可以使用字符串类来创建字符串,字符串类为str

name=str(yiwangzhibujian)
print(name)

  这种方法了解即可。 

1.2 其他表现形式

  待续

二、常用方法

  字符串的所有方法,详见官方文档:https://docs.python.org/3/library/stdtypes.html#string-methods。只说使用频率最高的几个。

2.1 常用方法

str.center(width[, fillchar])

  主要用来格式化字符串,如果width小于字符串长度,返回原始字符串,大于字符串长度,则字符串居中,两侧用fillchar填充,fillchar默认为空格

str.count(sub[, start[, end]])

  :返回指定字符串出现的次数

str.encode(encoding="utf-8", errors="strict")

  转换成字节数组

str.endswith(suffix[, start[, end]])

  判读字符串是否以指定字符串结尾

str.find(sub[, start[, end]])

  返回指定字符串所在的索引,没有返回-1

str.join(iterable):

  使用该字符串来连接可迭代对象

str.lower():

  转换小写

str.replace(old, new[, count]):

  字符串替换,count为替换出现的前几个,默认为所以

str.rfind(sub[, start[, end]]):

  返回字符串最后一次出现的位置

str.split(sep=None, maxsplit=-1):

  使用指定字符进行分割,若指定次数则从左侧开始计算

str.splitlines([keepends]):

  按照换行符进行分割,换行符不包含其中,换行符包括车

技术分享

str.startswith(prefix[, start[, end]]):

  判断字符是否以指定字符开始

str.strip([chars]):

  去除前后指定字符,默认为空格

str.upper():

  将所有字符转换成大写

2.2 全局方法

  也有一些全局方法可以作用在字符串上:

len():

  获得字符串的长度

  这个方法还是比较常用的。

2.3 不常用方法

  不常用方法也有很多,大致了解即可,以后有个需求再来看,如下:

  • str.capitalize():返回字符串首字母大写形式
  • str.casefold():返回字符串的casefolded形式(???)
  • str.expandtabs(tabsize=8):将制表符用空格进行替换
  • str.format(*args, **kwargs):格式化字符串
  • str.format_map(mapping):类似于str.format
  • str.index(sub[, start[, end]]):类似于find但是未找到会报错
  • str.isalnum():是否全部为数字或者字母
  • str.isalpha():是否都是字母
  • str.isdecimal():是否都是数字
  • str.isdigit():是否都是数字
  • str.isidentifier():???
  • str.islower():是否都是小写
  • str.isnumeric():是否都是数字
  • str.isprintable():是否都是可打印字符
  • str.isspace():是否是空格
  • str.istitle():是否是标题
  • str.isupper():是否都是大写
  • str.ljust(width[, fillchar]):类似于str.center(width[, fillchar]),左填充
  • str.lstrip([chars]):删除左侧指定字符,默认为空格
  • static str.maketrans(x[, y[, z]]):???
  • str.partition(sep):分割指定字符串首次出现的位置
  • str.rindex(sub[, start[, end]]):类似于str.rfind(sub[, start[, end]]),但是找不到会报错
  • str.rjust(width[, fillchar]):和str.ljust(width[, fillchar])一个性质,右侧填充
  • str.rpartition(sep):和str.partition(sep)一个性质,分割字符串最后一次出现的地方
  • str.rsplit(sep=None, maxsplit=-1):按指定字符进行分割,若指定数量则从最右边开始
  • str.rstrip([chars]):同str.lstrip([chars])一个性质,删除右侧
  • str.swapcase():将大小写进行互转
  • str.title():将每个单词大首字母进行大写
  • str.translate(table):字符映射使用???
  • str.zfill(width):???

 

三、字符串格式化

  字符串格式化其实用的地方也不是很多,知道用法即可,现在没有这个需求,以后会补充。

四、字符串其他知识

4.1 字符串的本质

  简单来说是有序的字符的集合。因此所有可应用于集合的方法都可应用于字符串:

技术分享
name=yiwangzhibujian
print(k in name)
print(w in name)
for i in name:
    print(i)
========控制台输出========
False
True
y
i
w
a
n
g
z
h
i
b
u
j
i
a
n
View Code

  字符串和Java一样不可变。

4.2 字符串下标

   字符串也可以支持下标访问,从0开始,还有一个特性就是可以使用负数,-1代表最后一个,以此类推:

name=yiwangzhibujian
print(name[0])
print(name[-1])
========控制台输出========
y
n

  注意使用的时候防止下标越界。

4.3 字符串切片

  切片不只应用于字符串,也应用list、tuple等集合,功能强大,使用简单,要掌握用法,基本语法如下:

str[i:j]
  • 包含下边界,不包含上边界
  • 下边界默认为0
  • 上边界默认为字符串长度

  另外分片还引入第三个值,步进,因此默认不用的时候步进为1,若步进为负数,表示倒叙进行分片。

4.4 字符串拼接

  字符串使用+号拼接算是一种常见的用法,但是字符串和数字拼接是会报错的,必需将数字提前进行转换,str()来完成转换

【Python】Java程序员学习Python(七)— 文本类详解(字符串、str)