Python基础入门之[字符串 str]学习笔记(三)

tech2022-09-11  98

2020.9.3 目录 1.单引号、双引号、三引号 2.获取子串 3.字符串的格式化 4.字符串的常用方法

一、Python的字符串 str 1.单引号、双引号、三引号

单引号和双引号单独使用功能一样。 “hello” 和 ‘hello’,功能一样。单引号中可以直接放双引号,反之双引号中也可以直接放单引号,都是可以的。 “aaa’bb’ccc” 和 ‘aaa"bb"ccc’,都是可以的。双引号中放双引号,或是,单引号中放单引号。里面的需要用 \ 转义。 “aaa"bb"ccc” 和 ‘aaa’bb’ccc’ 进行转义才可以正常使用。三引号:三个单引号或是三个双引号,可以包含多行数据,并且里面可以随便使用双、单引号。 sql=""" select * form table where name = "张三" """

2.获取子串(*所有使用到的下标地方,都是从0开始计算)

使用数字下标,直接访问字符串的某个字符。 a="abcde" print(a[1]) 输出结果:b 数字下标可以从-1开始,代表从字符串最后开始数。 a="abcde" print(a[-2]) 输出结果:d 使用切片,可获取子字符串 str[a:b:c],a为起始下标;b为目标下标;c为步长。三个参数皆可为负数,若a>b则步长设为负数,可以从后往前取出元素。 str[2:4],获取下标为2~4的子字符串,包括下标为2的元素,不包括下标4个元素。 str[:4],获取下标为0~4的子字符串,包括下标为0的元素,不包括下标4个元素。 str[4:],获取下标为4~结尾的子字符串,包括下标为4的元素,到最后一个元素。 a="abcdefghi" print(a[1:5:2]) 输出结果:bdf

3.字符串的格式化 方法1:用加号拼接,“hello”+‘word’ 方法2:用%号来格式化符号,其中,%s字符串;%d整数型;%f小数型。最后拼接出来的为字符串。

str="%s %d %f"%("apple",10,99.9)

方法3:使用format函数

str="{a}{b}{c}".format(a=11,b=22,c=33)

方法4:py3.6后新的format方法

str=f"{a} {b} {c}" #a,b,c为已被赋值的变量,f为关键字,两个{}之间可以加其他字符。

方法5:使用join函数

a="hello word haha ni hao a." bb=" ".join(a) print(bb) #将字符串a中的每个字符连接起来,中间并加上空格。a可以为字符串、列表等,列表元素须为字符串型。

4.字符串的常用方法 len(“abc”) 取字符串长度 str(12),str(1.2),str([1,2,3,4]) 把对象变成字符串 str.split(","),分割字符串,得到一个list列表 str.replace(“a”,“b”),字符替换,将字符串str中的a都替换为b。

str.strip(),用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 str.endswith(".txt"),判断是否已某个字符串结尾 str.startswith(“aa”),判断是否已某个字符串开头 str.isnumeric(),判断字符串是否都为数字。可用在将字符串转为数字的时候先行判断。

序号 方法及描述【补充完整】 1 capitalize(),将字符串的第一个字符转换为大写 2 center(width, fillchar),返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。 3 count(str, beg= 0,end=len(string)),返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 4 bytes.decode(encoding=“utf-8”, errors=“strict”),Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。 5 encode(encoding=‘UTF-8’,errors=‘strict’),以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’ 6 endswith(suffix, beg=0, end=len(string)),检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. 7 expandtabs(tabsize=8),把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。 8 find(str, beg=0, end=len(string)),检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1 9 index(str, beg=0, end=len(string)),跟find()方法一样,只不过如果str不在字符串中会报一个异常。 10 isalnum(),如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False 11 isalpha(),如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False 12 isdigit(),如果字符串只包含数字则返回 True 否则返回 False… 13 islower(),如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False 14 isnumeric(),如果字符串中只包含数字字符,则返回 True,否则返回 False 15 isspace(),如果字符串中只包含空白,则返回 True,否则返回 False. 16 istitle(),如果字符串是标题化的(见 title())则返回 True,否则返回 False 17 isupper(),如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False 18 join(seq),以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 19 len(string),返回字符串长度 20 ljust(width[, fillchar]),返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。 21 lower(),转换字符串中所有大写字符为小写. 22 lstrip(),截掉字符串左边的空格或指定字符。 23 maketrans(),创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 24 max(str),返回字符串 str 中最大的字母。 25 min(str),返回字符串 str 中最小的字母。 26 replace(old, new [, max]),把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。 27 rfind(str, beg=0,end=len(string)),类似于 find()函数,不过是从右边开始查找. 28 rindex( str, beg=0, end=len(string)),类似于 index(),不过是从右边开始. 29 rjust(width,[, fillchar]),返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串 30 rstrip(),删除字符串字符串末尾的空格. 31 split(str="", num=string.count(str)),以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串 32 splitlines([keepends]),按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 33 startswith(substr, beg=0,end=len(string)),检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。 34 strip([chars]),在字符串上执行 lstrip()和 rstrip() 35 swapcase(),将字符串中大写转换为小写,小写转换为大写 36 title(),返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) 37 translate(table, deletechars=""),根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中 38 upper() ,转换字符串中的小写字母为大写 39 zfill (width),返回长度为 width 的字符串,原字符串右对齐,前面填充0 40 isdecimal(),检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

a = "abc 123CC kk 中国 a1kkBB2 !@#$" print(len(a))#取字符串长度 print(a.split("kk",2))#以kk分割字符串a,分割2次。 print(a.replace("k","*",3))#将字符串a中的k替换为*,不超过3次 print("-".join(a))#用“-”将字符串拼接起来 print(max(a))#返回最大的字符串 print(min(a))#返回最小的字符串 print(a[1:10:2])#字符串切片,从位置1-10,每次位置加2打印。 print(a[-1:-len(a):-1])#字符串切片,从位置最后到最前,每次位置减1打印。 print(a.find("kk",6,10))#从字符段6-15中寻找字符串,成功返回下标数,失败返回-1 print(a.rfind("kk",10,20))#倒找文本,在10-20之间倒找文本kk print(a.index("kk",6,15))#与find功能相同,只是寻找失败会报错。 print(a.rindex("kk",10,20))#倒找文本,在10-20之间倒找文本kk,未找到会报错。 print(a.count("k",10,20))#字k出现的次数,从10-20的位置内寻找。 print(a.title())#字符串中所有的单词首字母转为大写,其他转为小写 print(a.upper())#字符串中所有字母转为大写。 print(a.capitalize())#首字母大写 print(a.lower())#所有字母大写转小写 print(a.lstrip("a"))#去掉字符串两边的指定字母,默认为空格。 print(a.rstrip("$"))#删除字符串a末尾的字符,默认为空。 print(a.center(50,"-"))#字符串a居中,共50字符,两边补“-”。 print(a.rjust(50,"-"))#字符串a居右,共50字符,其余补“-”。 print(a.ljust(50,"-"))#字符串a居左,共50字符,其余补“-”。 print(a.zfill(50))#字符串a居右,共50字符,其余补0。 print(a.startswith("bc",1,20))#字符串1-20之间以bc开头返回真 print("aaa111".isalnum())#字符串中都是字母和数字返回真 print("中国人a".isalpha())#字符串中都是字母和汉字返回真 print("1231211".isdigit())#字符串中都是数字返回真 print("1201".isdecimal())#字符串都是十制数字返回真。 print(" ".isspace())#字符串中都是空格返回真 print("Ab Cd Ef".istitle())#字符串中所有的单词首字母为大写,且其他字母为小写返回真 print("ABCD".isupper())#字符串中所有字母都为大写返回真 print(a.encode("UTF-8"))#对字符串进行编码 b = a.encode("UTF-8") print(b.decode("UTF-8"))#对字符串进行解码decode必须来自encode。 print(a.endswith("kk",1,10))#在字符串1-10这段,是否以"kk"结尾。 b="abcdef"#需要转换的字符 c="789123"#对应替换的字符 d="kk"#需要删除的字符 e=str.maketrans(b,c,d)#制作翻译表d,并删除kk,返回一个字符映射转换表供 translate() 方法调用。 print(a.translate(e))#将字符串a按照翻译表d进行处理。 b="ab\tcdef\tdddddd\t123123\t1\t2" print(b.expandtabs(8))#将\t(tab键)替换为空格,空格的数量为8-字母长度 b="""abcdf 12314 123123 """ print(b.splitlines(True)) #按照行界符('\r', '\r\n', \n'等)分隔,返回一个包含各行作为元素的列表 #默认为 False,不包含行界符,如果为 True,则保留行界符。
最新回复(0)