Python字符串

字符串

Python3支持两种类型的字符串:str(支持Unicode编码)、bytes,两者之间可以相互转换(str转bytes用encode(),bytes转str用decode())
Python3.x完全支持中文字符,解析器默认采用 UTF-8解析源程序,无论是数字字符、英文字母、汉字都按一个字符来对待和处理。
Python3.x中可用中文作为标识符

字符串的构造

在Python中字符串的构造,主要通过两种方法来实现:一是使用str函数,二是用单引号、双引号或三引号。在Python中,使用引号是一种非常便捷的构造字符串方式。
如果代码中的字符串包含了单(双)引号,且不用转义字符,则整个字符串就要用双(单)引号来构造。

转义字符

  1. \(行尾):续行符
  2. \:一个\
  3. ‘:’
  4. “:”
  5. \n:换行符
  6. \r:回车
  7. \t:横向制表符
  8. \v:纵向制表符
  9. \f:换页符
  10. \ooo:3位八进制数ooo对应的字符
  11. \xhh:2位十六进制数hh对应的字符
  12. \uhhhh:4位十六进制数对应的Unicode编码

原始字符串

在 r" "中写字符串,所有的字符不会被转义

三重引号字符串

可保留所有字符串的格式信息(三重引号中的引号是双引号)

字符串格式化

  1. 字符串格式化的一般形式
    在这里插入图片描述
    注:
  2. [ ]中的内容可以省略
  3. 简单的格式是%加格式字符,如%f、%d、%c等
  4. 当最小宽度及精度都出现时,它们之间不能有空格,格式字符和其他选项之间也不能有空格,如%3.1f

Python中常用的格式字符与c类似,不再赘述。

  1. format()方法格式化字符串
    格式:在这里插入图片描述
    示例:
print('{0},{1}'.format(1, 2))
print('{1},{0}'.format(1, 2))
#花括号中的0,1代表了位置,即format()可以根据位置传递参数
list1 = ['zsj','1905']
list2 = ['hh','1918']
print('{},{}'.format(*list1))
#可以用“*序列名称”的形式作为format方法的参数
print('{0[0]},{1[1]}'.format(list1,list2))
print('{1[0]},{0[1]}'.format(list1,list2))
#format方法可以有多个序列作为参数,{0[1]}的含义是第0个序列的第2个元素(起始下标为0)
print('{name},{classnum}'.format(name = 'zsj' , classnum = '1905'))
#通过关键参数的形式实现传参
dict1 = {'name':'zsj','class':'1905'}
print('{name},{class}'.format(**dict1))
#用字典传参

运行结果:
在这里插入图片描述
补充:
在这里插入图片描述
在这里插入图片描述
3. "f"前缀,类似于format()方法

name = 'zsj'
classnum = '1905'
print(f'{name},{classnum}')

运行结果:
在这里插入图片描述

字符串的截取

  1. stringName[index]:取出单个字符
  2. stringName[[start]:[end]:[step]]:取出一段字符
    注: 字符串的索引也可以为负数

字符串的内置函数

len():长度
max():最大字符
min():最小字符
ord():获取Unicode编码
chr():把Unicode编码转换为相应字符

字符串常用方法

注意:所有涉及到返回字符串的都是新字符串

1.

center(width,fillchar):居中

ljust(width,fillchar):左对齐

rjust(width,fillchar):右对齐

注: width表示宽度,fillchar表示填充字符,默认为空格

str = 'sxau'
print(str.center(10, '*'))
print(str.ljust(10, '*'))
print(str.rjust(10, '*'))

运行结果:
在这里插入图片描述

2.

lower():大写转小写

upper():小写转大写

3.

capitalize():字符串首字母大写

title():每个字母的首字母大写

swapcase():大小写互换

4.

islower():是否全为小写

isupper():是否全为大写

isdigit():是否全为数字

5.

find(str[ ,start [,end] ] ):从左至右查找str在字符串中首次出现的索引。若未找到则返回-1

rfind(str[ ,start [,end] ] ):从右至左的find()

index(str[ ,start [,end] ])和rindex(str[ ,start [,end] ]):与find()和rfind()类似,若找不到会抛出异常

6.

count(str[start[,end]]):统计出现次数,若不存在则返回0

7.

split():以指定字符为分隔符,从左至右分割字符串,返回一个列表,默认通过空白符分割

8.

join():连接序列中的元素,并在两个元素之间插入指定字符,返回一个字符串
join()是split()的逆方法

str = 'sxau'
print('+'.join(str))
tuple1 = 'a','b','c','d'
print('+'.join(tuple1))

运行结果:
在这里插入图片描述

9.

replace(old,new,count):查找字符串中的old子串,并用new子串将其替换,count默认为-1,表示替换使用匹配项,若规定count的值,则最多替换count次,最终返回新的字符串

10.

maketrans():生成字符映射表
translate():根据字符映射表替换字符

str = ''.maketrans('sxau','rjxy')
str1 = 'sxau'
print(str1)
print(str1.translate(str))

运行结果:
在这里插入图片描述

11.

strip():去除字符串两侧的空白字符或指定字符,返回新的String

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值