【Python学习】学习笔记 14-15 字符串

这篇博客主要介绍了Python中字符串的内置方法,包括切片、拼接、比较操作、逻辑操作和成员操作。同时深入探讨了字符串的格式化,解释了格式化符号的含义和操作符辅助命令,以及Python的转义字符使用。
摘要由CSDN通过智能技术生成

014 字符串:各种奇葩的内置方法

切片

>>> str1 = 'I love you'
>>> str1[:6]
'I love'
>>> str1
'I love you'
>>> str1[5]
'e'

拼接得到新字符串,旧字符串没改变

>>> str1[:6] + '哈利' + str1[6:]
'I love哈利 you'
>>> str1
'I love you'
>>> str1 = str1[:6] + '哈利' + str1[6:]  #只有覆盖了旧的字符串,没有指向就字符串的了,python回收机制会把旧字符串回收
>>> str1
'I love哈利 you'

比较操作符 < > ==
逻辑操作符 and or
成员操作符 in not in

字符串的方法及注释

capitalize()返回一个首字母大写版本的新字符串(新字符串的首字母变为大写,其它字母变为小写)
casefold()返回一个小写版本的新字符串(新字符串的所有字母变为小写)
center(width, fillchar=’ ')返回一个字符居中的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符居中,左右使用 fillchar 参数指定的字符填充)
count(sub[, start[, end]])返回 sub 在字符串中不重叠的出现次数,可选参数 start 和 end 用于指定起始和结束位置
encode(encoding=‘utf-8’, errors=‘strict’)以 encoding 参数指定的编码格式对字符串进行编码。errors 参数指定编码出现错误时的解决方案:默认的 ‘strict’ 表示如果出错,将抛出一个 UnicodeEncodeError 的异常。其它可用的参数值是 ‘ignore’,‘replace’ 和 ‘xmlcharrefreplace’
endswith(suffix[, start[, end]])如果字符串是以 suffix 指定的子字符串为结尾,那么返回 True,否则返回 False;可选参数 start 和 end 用于指定起始和结束位置
expandtabs([tabsize=8])返回一个使用空格替换制表符的新字符串,如果没有指定 tabsize 参数,那么默认 1 个制表符 = 8 个空格
find(sub[, start[, end]])在字符串中查找 sub 子字符串,返回匹配的最低索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,返回 -1
format(*args, **kwargs)返回一个格式化的新字符串;使用位置参数(args)和关键字参数(kwargs)进行替换
format_map(mapping)返回一个格式化的新字符串;使用映射参数(mapping)进行替换
index(sub[, start[, end]])在字符串中查找 sub 子字符串,返回匹配的最低索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,抛出 ValueError 异常
isalnum()如果字符串中至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
isalpha()如果字符串中至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
isascii()如果字符串中所有字符都是 ASCII 则返回 True,否则返回 False;ASCII 字符编码范围是 U+0000 ~ U+007F,空字符串也是 ASCII
isdecimal()如果字符串中至少有一个字符并且所有字符都是十进制数字则返回 True,否则返回 False
isdigit()如果字符串中至少有一个字符并且所有字符都是数字则返回 True,否则返回 False
isidentifier()如果字符串是一个合法的 Python 标识符则返回 True,否则返回 False;调用 keyword.iskeyword(s) 可以检测字符串是否一个保留标识符(比如 “if” 或 “for”)
islower()如果字符串中至少包含一个区分大小写的英文字母,并且这些字母都是小写,则返回 True,否则返回 False
isnumeric()如果字符串中至少有一个字符并且所有字符都是数字则返回 True,否则返回 False
isprintable()如果字符串是可以打印的内容则返回 True,否则返回 False
isspace()如果字符串中至少有一个字符并且所有字符都是空格,则返回 True,否则返回 False
istitle()如果字符串是标题化字符串(所有的单词都是以大写开始,其余字母均小写)则返回 True,否则返回 False
isupper()如果字符串中至少包含一个区分大小写的英文字母,并且这些字母都是大写,则返回 True,否则返回 False
join(iterable)连接多个字符串并返回一个新字符串;以调用该方法的字符串作为分隔符,插入到 iterable 参数指定的每个字符串的中间;例如:’^’.join([“F”, “i”, “sh”, “C”]) -> ‘Fish^C’
ljust(width)返回一个字符左对齐的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符左对齐,右侧使用fillchar参数指定的字符填充)
lower()返回一个所有英文字母都转换成小写后的新字符串
lstrip(chars=None)返回一个去除左侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串
partition(sep)在字符串中搜索 sep 参数指定的分隔符,如果找到,返回一个 3 元组 (‘在sep前面的部分’, ‘sep’, ‘在sep后面的部分’);如果未找到,则返回 (‘原字符串’, ‘’, ‘’)
removeprefix(prefix)如果存在 prefix 参数指定的前缀子字符串,则返回一个将该前缀去除后的新字符串;如果不存在,则返回一个原字符串的拷贝
removesuffix(suffix)如果存在 suffix 参数指定的后缀子字符串,则返回一个将该后缀去除后的新字符串;如果不存在,则返回一个原字符串的拷贝
replace(old, new, count=-1)返回一个将所有 old 参数指定的子字符串替换为 new 的新字符串;count 参数指定替换的次数,默认是 -1,表示替换全部
rfind(sub[, start[, end]])在字符串中自右向左查找 sub 子字符串,返回匹配的最高索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,返回 -1
rindex(sub[, start[, end]])在字符串中自右向左查找 sub 子字符串,返回匹配的最高索引值;可选参数 start 和 end 用于指定起始和结束位置;如果未能匹配子字符串,抛出 ValueError 异常
rjust(width, fillchar=’ ')返回一个字符右对齐的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符右对齐,左侧使用 fillchar 参数指定的字符填充)
rpartition(sep)在字符串中自右向左搜索sep参数指定的分隔符,如果找到,返回一个 3 元组 (‘在sep前面的部分’, ‘sep’, ‘在sep后面的部分’);如果未找到,则返回 (’’, ‘’, ‘原字符串’)
rsplit(sep=None, maxsplit=-1)将字符串自右向左进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit 参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制
rstrip(chars=None)返回一个去除右侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串
split(sep=None, maxsplit=-1)将字符串进行分割,并将结果以列表的形式返回;sep 参数指定一个字符串作为分隔的依据,默认是任意空白字符;maxsplit参数用于指定分割的次数(注意:分割 2 次的结果是 3 份),默认是不限制
splitlines(keepends=False)将字符串按行分割,并将结果以列表的形式返回;keepends 参数指定是否包含换行符,True 是包含,False 是不包含
startswith(prefix[, start[, end]])如果存在 prefix 参数指定的前缀子字符串,则返回 True,否则返回 False;可选参数 start 和 end 用于指定起始和结束位置;prefix 参数允许以元组的形式提供多个子字符串
strip(chars=None)返回一个去除左右两侧空白字符的新字符串;通过 chars 参数可以指定将要去除的字符串
swapcase()返回一个大小写字母翻转的新字符串
title()返回标题化(所有的单词都是以大写开始,其余字母均小写)的字符串。
translate(table)返回一个根据 table 参数转换后的新字符串;table 参数应该提供一个转换规则(可以由 str.maketrans(‘a’, ‘b’) 进行定制,例如 “FishC”.translate(str.maketrans(“FC”, “15”)) -> ‘1ish5’)
upper()返回一个所有英文字母都转换成大写后的新字符串
zfill(width)返回一个左侧用 0 填充的新字符串(width <= 字符串长度,新字符串 = 原字符串;width > 字符串宽度,所有字符右对齐,左侧使用 0 进行填充)
>>> str2 = 'xiaoxie'
>>> str2.capitalize()
'Xiaoxie'
>>> str2 = 'DAXIExiaoxie'
>>> str2.casefold()          #返回一个新的字符串
'daxiexiaoxie'
>>> str2
'DAXIExiaoxie'
>>> str2.center(40)
'              DAXIExiaoxie              '
>>> str2.count('xi')
2
>>> str2.endswith('xi')
False
>>> str2.endswith('xie')
True
>>> str3 = 'I\tlove\tyou'
>>> str3
'I\tlove\tyou'
>>> str3.expandtabs()
'I       love    you'
>>> str3.find('efc')
-1
>>> str3.find('you')
7
>>> str4 = '哈利'
>>> str4.islower()
False

>>> str5 = 'LoveU'
>>> str5.istitle()
False
>>> str5 = 'Loveu'
>>> str5.istitle()
True

>>> str5.join('12345')
'1Loveu2Loveu3Loveu4Loveu5'
>>> str6 = '   i love you'
>>> str6.lstrip()
'i love you'
>>> str6 = 'i love you'
>>> str6.partition('ov')
('i l', 'ov', 'e you')
>>> str6
'i love you'
>>> str6.replace('you', 'YOU')
'i love YOU'
>>> str6
'i love you'
>>> str6.split()
['i', 'love', 'you']
>>> str6.split('i')
['', ' love you']
>>>
>>> str7 = '     ssssssssssaaasssss    '
>>> str7.strip()
'ssssssssssaaasssss'
>>> str7 = str7.strip()
>>> str7
'ssssssssssaaasssss'
>>> str7.strip('s')
'aaa'
>>> str5
'Loveu'
>>> str5.swapcase()
'lOVEU'
>>> str7
'ssssssssssaaasssss'
>>> str7.translate(str.maketrans('s', 'b'))
'bbbbbbbbbbaaabbbbb'
>>> str.maketrans('s', 'b')
{115: 98}

015 字符串:格式化

位置参赛{0}

>>> "{0} love {1}.{2}".format("I", "you", "com")
'I love you.com'
>>> "{a} love {b}.{c}".format("I", "you", "com")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'a'
>>> "{a} love {b}.{c}".format(a="I", b="you", c="com")
'I love you.com'
>>> "{0} love {b}.{c}".format("I", b="you", c="com")
'I love you.com'
>>> '\ta'
'\ta'
>>> print('\ta')
	a
>>> print('\\')
\
>>> "{{0}}".format("不打印")
'{0}'

冒号: 表示格式化符号的开始

>>> '{0:.1f}{1}'.format(27.658, 'GB')
'27.7GB'

字符串格式化符号含义

符号说明
%c格式化字符及其 ASCII 码
%s格式化字符串
%d格式化整数
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同 %e,用科学计数法格式化浮点数
%g根据值的大小决定使用 %f 或 %e
%G作用同 %g,根据值的大小决定使用 %f 或者 %E

格式化操作符辅助命令

符号说明
m.nm 是显示的最小总宽度,n 是小数点后的位数
-用于左对齐
+在正数前面显示加号(+)
#在八进制数前面显示 ‘0o’,在十六进制数前面显示 ‘0x’ 或 ‘0X’
0显示的数字前面填充 ‘0’ 取代空格

Python 的转义字符及其含义

符号说明
单引号
"双引号
\a发出系统响铃声
\b退格符
\n换行符
\t横向制表符(TAB)
\v纵向制表符
\r回车符
\f换页符
\o八进制数代表的字符
\x十六进制数代表的字符
\0表示一个空字符
\反斜杠
>>> '%c' % 97
'a'
>>> '%c %c %c' % (97, 98, 99)
'a b c'
>>> '%s' % 'I love you'
'I love you'
>>> '%d + %d = %d' % (4, 5, 4+5)
'4 + 5 = 9'
>>> '%o' % 10
'12'
>>> '%x' % 10
'a'
>>> '%X' % 10
'A'
>>> '%x' % 160
'a0'
>>> '%X' % 160
'A0'
>>> '%f' % 27.658
'27.658000'
>>> '%e' % 27.658
'2.765800e+01'
>>> '%g' % 27.658
'27.658'

格式化操作符辅助命令

>>> '%5.1f' % 27.658
' 27.7'
>>> '%.2e' % 27.658
'2.77e+01'
>>> '%10d' % 5
'         5'
>>> '%-10d' % 5
'5         '
>>> '%+d' % 5
'+5'
>>> '%+d' % -5
'-5'
>>> '%#o' % 10       #八进制
'0o12'
>>> '%#x' % 108       #十六进制
'0x6c'
>>> '%#d' % 10       #十进制
'10'
>>> '%010d' % 5
'0000000005'
>>> '%010d' % -5
'-000000005'
>>> '%-010d' % 5
'5         '

Python 的转义字符及其含义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值