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

本文介绍了Python中的字符串基本操作,包括单引号、双引号、三引号的使用,子串获取,字符串格式化以及多种字符串方法的详细说明,如切片、格式化、拼接、替换等。此外,还涵盖了字符串的长度、转义、填充、判断等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,则保留行界符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值