7.1 字符串的创建
方式1:
将字符放在成对的引号中
格式:
’hello,world‘
注意:使用三引号’‘’时可以保持原字符串不变
方式2:
使用str函数,将对象转化为字符串,同时可以切片操作
格式:
str(object)[ i : j ]
object即为转化对象,【】为切片操作
7.2 字符串常量
在执行前需要导入一个库,即
import string
字符串常量 | 字符集 |
string.ascii_letters | ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’ |
string.ascii_lowercase | ‘abcdefghijklmnopqrstuvwxyz’ |
string.ascii_upppercase | ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’ |
string.digits | ’0123456789‘ |
string.hexdigits | ’0123456789abcdefABCDEF‘ |
string.octdigits | ‘01234567’ |
string.punctuation | ’!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~‘ |
string.printable | ’0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~‘ |
7.3 文件遍历
概述:
使用上下文管理器with和open()函数可以打开一个文件并创建一个文件对象
格式:
with open('filename',mode='r',encoding='utf-8') as file:
filename是读取的文件名(文件名必须路径正确,且、复制的地址通常只有一个反斜杠,如“C:\”,但我们需要手动再加一个“\”,变为“C:\\”),读取模式参数mode的值为’r‘表示只读并不改变文件内容,mode可以省略
7.4 常用字符串处理方式
方法名 | 描述 |
str. upper( )/str. lower( ) | 转换字符串str中所有字母为大写/小写 |
str. strip( ) | 用于移除字符串开头、结尾指定的字符(参数省略时去掉空白字符,包括\t、In、(r、\x0b、\x0c 等) |
str. join ( iterable ) | 以字符串st 作为分隔符,将可迭代对象iterable中的字符串元素拼接为一个新的字符串。当iterable中存在非字符串元素时,返回一个TypeError异常 |
str. split ( sep = None , maxsplit=-1) | 根据分隔符sep将字符串st切分成列表,sep参数省略时根据空格切分,可指定逗号或制表符等为分隔符。maxsplit值存在且非-1时:最多切分 maxsplit 次 |
str. count( sub[ , start[ ,end ]]) | 返回sub在字符串st中出现的次数,如果start或者end 指定,则返回指定范围内sub出现的次数 |
str. find( sub[ , start[ ,end ]]) | 检测sub是否包含在字符串s 中,如果是,则返回开始的索引值,否则返回-1。如果 stant 和end 指定范围,则检查是否包含在指定范围内 |
str. replace( old , new[ ,count ]) | 把字符串s中的old替换成new,如果count指定,则替换不超过count次,否则有多个old子串时全部替换为new |
sr. index( sub[ , start[ ,end ] ]) | 与fnd()方法一样,返回子串存在的起始位置,如果sub在字符串st中不存在,则抛出一个异常 |
for <var> in <string> | 对字符串suing进行遍历,依次将字符串string中的字符赋值给前面的变量 var |
str.rstrip() | 将行末的空白字符去除 |
str.lstrip() | 将行开头的空白字符去除 |
字符串大小写转化
方法 | 描述 |
str.capitalize | 把字符串的第一个字符大写 |
str.casefold | 返回一个字符串的大小写的折叠的复制,类似lower() |
str.swapcase | 反转字符串的大小写 |
str.title | 返回’标题化’的字符串str,将所有单词都以大写开始,其余字母均为小写 |
字符串格式输出
方法 | 描述 |
str.center(width[,fillchar]) | 返回一个原字符串居中,并使用fillchar填充至长度width的新字符串,默认用空格 |
str.ljust(width) | 返回一个与原字符串左对齐,并使用空格填充至长度 width 的新字符串 |
str.zfill(width) | 返回长度为 width 的字符串,与原字符串 st 右对齐,前面填充0 |
str.expandtabs(tabsize=8) | 把字符串 str 中的 tab 符号转为空格,tab 符号默认的空格数是 8 |
str.format(*args,**kwargs) | 格式化字符串 |
str.foramt_map(mapping) | 与 str. format( **mapping)类似,只是 mapping是直接使用的,而不是复制到一个字典 |
字符串搜索定位与替换
方法 | 描述 |
str.lstrip([chars]) | 删除字符串 st 左边的指定字符,默认去除空白字符 |
str, rstrip([chars]) | 删除字符串 st 右边的指定字符,默认去除空白字符 |
str, maketrans( x[ ,y[ ,z]]) | maketrans()方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符第二个参数也是字符串,表示转换的目标 |
str.translate( table[,deletechars ]) | 根据 table 给出的映射表转换字符串 str 中的字符,要过滤掉的字符放到 deletechars 参数中 |
str. rfind( sub[,start[,end]]) | 类似于 find()函数,不过是从右边开始查找 |
str. rindex( sub[,start[,end]]) | 类似于 index(),不过是从右边开始 |
str.rjust( width[,fillchar]) | 返回一个与原字符串右对齐,并使用fllchar填充至长度 width 的新字符串,fillchar省略时用空格填充 |
str. rpartition(sep) | 类似于 partition()函数,不过是从右边开始查找 |
str. rsplit( sep = None , maxsplit = -1 ) | 通过sep指定分隔符对字符串进行分割并返回一个列表,默认分隔符为所有空白字符。类似于split()方法,只不过是从字符串右侧开始分割。如果指定 maxsplit 数量max,则最多切分 max 次 |
字符串联合和分割
方法 | 描述 |
str. partition( sep) | 从第一次出现 sep的位置起、把字符串 su 分成一个3元素的元组(string_pre_str,str,sting_post_st),如果字符串 str 中不包含 sep,则返回一个包含字符串本身的3元组,后面跟着两个空字符串。例如: (string_pre_str ,'','') |
str. splitlines( [ keepends ]) | 按照行(‘r',’r\n\','\n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为False,则不包含换行符,如果为 True,则保留换行符 |