收藏专用,删除空白

by admin on 2019年4月10日

描述

Python
casefold()方法是Python3.三本子之后引进的,其功能和 lower() 方法11分相似,都得以转换字符串中保有大写字符为小写。

收藏专用,删除空白。两边的分别是:lower()
方法只对ASCII编码,也正是‘A-Z’有效,对于其他语言(非中文或英文)中把大写转换为小写的地方只可以用
casefold() 方法。


一.字符串 :正是1雨后苦笋字符。(在Python中,用引号括起的都以字符串,个中的引号能够是单引号,也可以是双引号)如下所示

字符串处理是不行常用的技术,但 Python
内置字符串方法太多,平常遗忘,为了方便快速参考,特地依照 Python 三.5.一给种种内置方法写了演示并拓展了归类,便于我们索引。

语法

casefold()方爱沙尼亚语法:

S.casefold()

 

1.描述

Python lower() 方法转换字符串中全体大写字符为小写。


bf88必发唯一官网 1

概览

返回值

再次来到将字符串中负有大写字符转换为小写后变更的字符串。

2.语法
str.lower()

函数

字符串大小写转换

  • str.capitalize()

  • str.lower()

  • str.casefold()

  • str.swapcase()

  • str.title()

  • str.upper()

实例

以下实例映现了casefold()方法的实例:

#!/usr/bin/python3

S1 = "Runoob EXAMPLE....WOW!!!" #英文
S2 = "ß"  #德语

print( S1.lower() )
print( S1.casefold() )
print( S2.lower() )
print( S2.casefold() ) #德语的"ß"正确的小写是"ss"

  

如上实例输出结果如下:

runoob example....wow!!!
runoob example....wow!!!
ß
ss

 

3.参数

无。


Ⅰ.title()
以首字母大写的方式体现各类单词,即将各类单词的首字母都改为大写。

字符串格式输出

  • str.center(width[, fillchar])

  • str.ljust(width[, fillchar]); str.rjust(width[, fillchar])

  • str.zfill(width)

  • str.expandtabs(tabsize=8)

  • str.format(^args, ^^kwargs)

  • str.format_map(mapping)

4.返回值

回来将字符串中持有大写字符转换为小写后变卦的字符串。


语法:name.title()

字符串搜索一定与替换

  • str.count(sub[, start[, end]])

  • str.find(sub[, start[, end]]收藏专用,删除空白。); str.rfind(sub[, start[,
    end]])

  • str.index(sub[, start[, end]]); str.rindex(sub[, start[,
    end]])

  • str.replace(old, new[, count])

  • str.lstrip([chars]); str.rstrip([chars]); str.strip([chars])

  • static str.maketrans(x[, y[, z]]); str.translate(table)

5.实例
str = "Runoob EXAMPLE....WOW!!!"

print( str.lower() )

结果

runoob example....wow!!!

Ⅱ.upper()将字符串改为全体大写

字符串的一块儿与区划

  • str.join(iterable)

  • str.partition(sep); str.rpartition(sep)

  • str.split(sep=None, maxsplit=-1); str.rsplit(sep=None, maxsplit=-1)

  • str.splitlines([keepends])

语法:name.upper()

字符串条件判断

  • str.endswith(suffix[, start[, end]]); str.startswith(prefix[,
    start[, end]])

  • str.isalnum()

  • str.isalpha()

  • str.isdecimal(); str.isdigit(); str.isnumeric()

  • str.isidentifier()

  • str.islower()

  • str.isprintable()

  • str.isspace()

  • str.istitle()

  • str.isupper()

Ⅲ.lower()将字符串改为全部大写

字符串编码

str.encode(encoding=”utf-8″, errors=”strict”)

 

语法:name.lower()

高低写转换

(#存款和储蓄数据时,方法lower()
很有用。很多时候,你不可能借助用户来提供正确的尺寸写,由此必要将字符串先转移为小写,再囤积它们。今后要求出示那个音信时,再将其更换为
最合适的高低写情势)

str.capitalize()

将首字母转换到大写,须要注意的是假如首字未有大写情势,则赶回原字符串。

 1 'adi dog'.capitalize()
 2 # 'Adi dog'
 3 
 4 'abcd 徐'.capitalize()
 5 # 'Abcd 徐'
 6 
 7 '徐 abcd'.capitalize()
 8 # '徐 abcd'
 9 
10 'ß'.capitalize()
11 # 'SS'

Ⅳ.合并(拼接)字符串

bf88必发唯一官网,str.lower()

将字符串转换来小写,其仅对 ASCII 编码的假名有效。

1 'DOBI'.lower()
2 # 'dobi'
3 
4 'ß'.lower()   # 'ß' 为德语小写字母,其有另一种小写 'ss', lower 方法无法转换
5 # 'ß'
6 
7 '徐 ABCD'.lower()
8 # '徐 abcd'

Python使用加号 “+” 来归并字符串。

str.casefold()

将字符串转换来小写,Unicode 编码中凡是有相应的小写情势的,都会更换。

1 'DOBI'.casefold()
2 # 'dobi'
3 
4 'ß'.casefold()   #德语中小写字母 ß 等同于小写字母 ss, 其大写为 SS 
5 # 'ss'

二.制表符+换行符

str.swapcase()

对字符串字母的轻重缓急写举行反转。

1 '徐Dobi a123 ß'.swapcase()
2 #: '徐dOBI A123 SS'    这里的 ß 被转成 SS 是一种大写

但要求注意的是 s.swapcase().swapcase() == s 不自然为真:

 1 u'\xb5'
 2 # 'µ'
 3 
 4 u'\xb5'.swapcase()
 5 # 'Μ'
 6 
 7 u'\xb5'.swapcase().swapcase()
 8 # 'μ'
 9 
10 hex(ord(u'\xb5'.swapcase().swapcase()))
11 Out[154]: '0x3bc'

这里 'Μ'(是 mu 不是 M) 的小写正好与 'μ' 的写法一致。

1 str.title()
2 将字符串中每个“单词”首字母大写。其判断“单词”的依据则是基于空格和标点,所以应对英文撇好所有格或一些英文大写的简写时,会出错。

1 'Hello world'.title()
2 # 'Hello World'
3 
4 '中文abc def 12gh'.title()
5 # '中文Abc Def 12Gh'
6 
7 # 但这个方法并不完美:
8 "they're bill's friends from the UK".title()
9 # "They'Re Bill'S Friends From The Uk"

作用:使用制表符或换行符来添加空白

str.upper()

将字符串全部字母变为大写,会活动忽略不可转成大写的字符。

1 '中文abc def 12gh'.upper()
2 # '中文ABC DEF 12GH'

亟待小心的是 s.upper().isupper() 不肯定为 True

 

(在编制程序中,空白 空白
泛指任何非打印字符,如空格、制表符和换行符。你可使用空白来协会输出,以使其更易读)

字符串格式输出

1.要在字符串中添加制表符,可使用字符组合  “\t”

str.center(width[, fillchar])

将字符串依据给定的大幅居中显得,能够给定特定的字符填充多余的长短,若是钦命的长度小于字符串长度,则赶回原字符串。

1 '12345'.center(10, '*')
2 # '**12345***'
3 
4 '12345'.center(10)
5 # '  12345   '

2.要在字符串中添加换行符,可选用字符组合  “\n”

str.ljust(width[, fillchar]); str.rjust(width[, fillchar])

回来钦定长度的字符串,字符串内容居左(右)假诺长度小于字符串长度,则赶回原始字符串,暗许填充为
ASCII 空格,可钦点填充的字符串。

 1 'dobi'.ljust(10)
 2 # 'dobi      '
 3 
 4 'dobi'.ljust(10, '~')
 5 # 'dobi~~~~~~'
 6 
 7 'dobi'.ljust(3, '~')
 8 # 'dobi'
 9 
10 'dobi'.ljust(3)
11 # 'dobi'

(还可在同一个字符串中并且含有制表符和换行符。字符串”\n\t”
让Python换成下一行,并在下1行开始添加3个制表符)

str.zfill(width)

用 ‘0’ 填充字符串,并赶回钦点宽度的字符串。

 1 "42".zfill(5)
 2 # '00042'
 3 "-42".zfill(5)
 4 # '-0042'
 5 
 6 'dd'.zfill(5)
 7 # '000dd'
 8 
 9 '--'.zfill(5)
10 # '-000-'
11 
12 ' '.zfill(5)
13 # '0000 '
14 
15 ''.zfill(5)
16 # '00000'
17 
18 'dddddddd'.zfill(5)
19 # 'dddddddd'

3.剔除空白

str.expandtabs(tabsize=8)

用钦点的空格替代横向制表符,使得相邻字符串之间的距离保持在钦赐的空格数以内。

1 tab = '1\t23\t456\t7890\t1112131415\t161718192021'
2 
3 tab.expandtabs()
4 # '1       23      456     7890    1112131415      161718192021'
5 # '123456781234567812345678123456781234567812345678'  注意空格的计数与上面输出位置的关系
6 
7 tab.expandtabs(4)
8 # '1   23  456 7890    1112131415  161718192021'
9 # '12341234123412341234123412341234'  
  1. strip()删除两端空白

str.format(^args, ^^kwargs)

格式化字符串的语法相比繁多,官方文书档案已经有比较详细的
examples,那里就不写例子了。

二.lstrip()删除字符串起首空白

str.format_map(mapping)

类似 str.format(*args, **kwargs) ,分歧的是 mapping 是1个字典对象。

1 People = {'name':'john', 'age':56}
2 
3 'My name is {name},i am {age} old'.format_map(People)
4 # 'My name is john,i am 56 old'

3.rstrip()删除字符串末尾空白

字符串搜索一定与替换

(要永久删除这么些字符串中的空白,必须将去除操作的结果存回到变量中)

str.count(sub[, start[, end]])

 1 text = 'outer protective covering'
 2 
 3 text.count('e')
 4 # 4
 5 
 6 text.count('e', 5, 11)
 7 # 1
 8 
 9 text.count('e', 5, 10)
10 # 0

str.find(sub[, start[, end]]); str.rfind(sub[, start[, end]])

 1 text = 'outer protective covering'
 2 
 3 text.find('er')
 4 # 3
 5 
 6 text.find('to')
 7 # -1
 8 
 9 text.find('er', 3)
10 Out[121]: 3
11 
12 text.find('er', 4)
13 Out[122]: 20
14 
15 text.find('er', 4, 21)
16 Out[123]: -1
17 
18 text.find('er', 4, 22)
19 Out[124]: 20
20 
21 text.rfind('er')
22 Out[125]: 20
23 
24 text.rfind('er', 20)
25 Out[126]: 20
26 
27 text.rfind('er', 20, 21)
28 Out[129]: -1

str.index(sub[, start[, end]]); str.rindex(sub[, start[, end]])

与 find() rfind() 类似,不一致的是只要找不到,就会吸引 ValueError

str.replace(old, new[, count])

 1 'dog wow wow jiao'.replace('wow', 'wang')
 2 # 'dog wang wang jiao'
 3 
 4 'dog wow wow jiao'.replace('wow', 'wang', 1)
 5 # 'dog wang wow jiao'
 6 
 7 'dog wow wow jiao'.replace('wow', 'wang', 0)
 8 # 'dog wow wow jiao'
 9 
10 'dog wow wow jiao'.replace('wow', 'wang', 2)
11 # 'dog wang wang jiao'
12 
13 'dog wow wow jiao'.replace('wow', 'wang', 3)
14 # 'dog wang wang jiao'

str.lstrip([chars]); str.rstrip([chars]); str.strip([chars])

 1 '  dobi'.lstrip()
 2 # 'dobi'
 3 'db.kun.ac.cn'.lstrip('dbk')
 4 # '.kun.ac.cn'
 5 
 6 ' dobi   '.rstrip()
 7 # ' dobi'
 8 'db.kun.ac.cn'.rstrip('acn')
 9 # 'db.kun.ac.'
10 
11 '   dobi   '.strip()
12 # 'dobi'
13 'db.kun.ac.cn'.strip('db.c')
14 # 'kun.ac.cn'
15 'db.kun.ac.cn'.strip('cbd.un')
16 # 'kun.a'

static str.maketrans(x[, y[, z]]); str.translate(table)

maktrans 是3个静态方法,用于转移二个比较表,以供 translate 使用。
如果 maktrans 仅贰个参数,则该参数必须是二个字典,字典的 key
要么是一个 Unicode 编码(叁个平头),要么是1个长度为 1 的字符串,字典的
value 则足以是任意字符串、None或者 Unicode 编码。

 1 a = 'dobi'
 2 ord('o')
 3 # 111
 4 
 5 ord('a')
 6 # 97
 7 
 8 hex(ord('狗'))
 9 # '0x72d7'
10 
11 b = {'d':'dobi', 111:' is ', 'b':97, 'i':'\u72d7\u72d7'}
12 table = str.maketrans(b)
13 
14 a.translate(table)
15 # 'dobi is a狗狗'

如果 maktrans 有多个参数,则七个参数形成映射,且七个字符串必须是长度相等;借使有第几个参数,则第三个参数也必须是字符串,该字符串将电动映射到 None

 1 a = 'dobi is a dog'
 2 
 3 table = str.maketrans('dobi', 'alph')
 4 
 5 a.translate(table)
 6 # 'alph hs a alg'
 7 
 8 table = str.maketrans('dobi', 'alph', 'o')
 9 
10 a.translate(table)
11 # 'aph hs a ag'

字符串的一块与区划

str.join(iterable)

用钦命的字符串,连接成分为字符串的可迭代对象。

 1 '-'.join(['2012', '3', '12'])
 2 # '2012-3-12'
 3 
 4 '-'.join([2012, 3, 12])
 5 # TypeError: sequence item 0: expected str instance, int found
 6 
 7 '-'.join(['2012', '3', b'12'])  #bytes 为非字符串
 8 # TypeError: sequence item 2: expected str instance, bytes found
 9 
10 '-'.join(['2012'])
11 # '2012'
12 
13 '-'.join([])
14 # ''
15 
16 '-'.join([None])
17 # TypeError: sequence item 0: expected str instance, NoneType found
18 
19 '-'.join([''])
20 # ''
21 
22 ','.join({'dobi':'dog', 'polly':'bird'})
23 # 'dobi,polly'
24 
25 ','.join({'dobi':'dog', 'polly':'bird'}.values())
26 # 'dog,bird'

str.partition(sep); str.rpartition(sep)

 1 'dog wow wow jiao'.partition('wow')
 2 # ('dog ', 'wow', ' wow jiao')
 3 
 4 'dog wow wow jiao'.partition('dog')
 5 # ('', 'dog', ' wow wow jiao')
 6 
 7 'dog wow wow jiao'.partition('jiao')
 8 # ('dog wow wow ', 'jiao', '')
 9 
10 'dog wow wow jiao'.partition('ww')
11 # ('dog wow wow jiao', '', '')
12 
13 
14 
15 'dog wow wow jiao'.rpartition('wow')
16 Out[131]: ('dog wow ', 'wow', ' jiao')
17 
18 'dog wow wow jiao'.rpartition('dog')
19 Out[132]: ('', 'dog', ' wow wow jiao')
20 
21 'dog wow wow jiao'.rpartition('jiao')
22 Out[133]: ('dog wow wow ', 'jiao', '')
23 
24 'dog wow wow jiao'.rpartition('ww')
25 Out[135]: ('', '', 'dog wow wow jiao')

str.partition(sep); str.rpartition(sep)

 1 'dog wow wow jiao'.partition('wow')
 2 # ('dog ', 'wow', ' wow jiao')
 3 
 4 'dog wow wow jiao'.partition('dog')
 5 # ('', 'dog', ' wow wow jiao')
 6 
 7 'dog wow wow jiao'.partition('jiao')
 8 # ('dog wow wow ', 'jiao', '')
 9 
10 'dog wow wow jiao'.partition('ww')
11 # ('dog wow wow jiao', '', '')
12 
13 
14 
15 'dog wow wow jiao'.rpartition('wow')
16 Out[131]: ('dog wow ', 'wow', ' jiao')
17 
18 'dog wow wow jiao'.rpartition('dog')
19 Out[132]: ('', 'dog', ' wow wow jiao')
20 
21 'dog wow wow jiao'.rpartition('jiao')
22 Out[133]: ('dog wow wow ', 'jiao', '')
23 
24 'dog wow wow jiao'.rpartition('ww')
25 Out[135]: ('', '', 'dog wow wow jiao')

str.split(sep=None, maxsplit=-1); str.rsplit(sep=None, maxsplit=-1)

 1 '1,2,3'.split(','), '1, 2, 3'.rsplit()
 2 # (['1', '2', '3'], ['1,', '2,', '3'])
 3 
 4 '1,2,3'.split(',', maxsplit=1),  '1,2,3'.rsplit(',', maxsplit=1)
 5 # (['1', '2,3'], ['1,2', '3'])
 6 
 7 '1 2 3'.split(), '1 2 3'.rsplit()
 8 # (['1', '2', '3'], ['1', '2', '3'])
 9 
10 '1 2 3'.split(maxsplit=1), '1 2 3'.rsplit(maxsplit=1)
11 # (['1', '2 3'], ['1 2', '3'])
12 
13 '   1   2   3   '.split()
14 # ['1', '2', '3']
15 
16 '1,2,,3,'.split(','), '1,2,,3,'.rsplit(',')
17 # (['1', '2', '', '3', ''], ['1', '2', '', '3', ''])
18 
19 ''.split()
20 # []
21 ''.split('a')
22 # ['']
23 'bcd'.split('a')
24 # ['bcd']
25 'bcd'.split(None)
26 # ['bcd']

str.splitlines([keepends])

字符串以行界符为分隔符拆分为列表;当 keepends 为True,拆分后保留行界符。

1 'ab c\n\nde fg\rkl\r\n'.splitlines()
2 # ['ab c', '', 'de fg', 'kl']
3 'ab c\n\nde fg\rkl\r\n'.splitlines(keepends=True)
4 # ['ab c\n', '\n', 'de fg\r', 'kl\r\n']
5 
6 "".splitlines(), ''.split('\n')      #注意两者的区别
7 # ([], [''])
8 "One line\n".splitlines()
9 # (['One line'], ['Two lines', ''])

字符串条件判断

str.endswith(suffix[, start[, end]]); str.startswith(prefix[, start[, end]])

 1 text = 'outer protective covering'
 2 
 3 text.endswith('ing')
 4 # True
 5 
 6 text.endswith(('gin', 'ing'))
 7 # True
 8 text.endswith('ter', 2, 5)
 9 # True
10 
11 text.endswith('ter', 2, 4)
12 # False

str.isalnum()

字符串和数字的任性组合,即为真,一句话来说:

只要 c.isalpha()c.isdecimal()c.isdigit()c.isnumeric() 中任意2个为真,则 c.isalnum() 为真。

 1 'dobi'.isalnum()
 2 # True
 3 
 4 'dobi123'.isalnum()
 5 # True
 6 
 7 '123'.isalnum()
 8 # True
 9 
10 '徐'.isalnum()
11 # True
12 
13 'dobi_123'.isalnum()
14 # False
15 
16 'dobi 123'.isalnum()
17 # False
18 
19 '%'.isalnum()
20 # False

str.isalpha()

Unicode 字符数据库中作为 “Letter”(那个字符壹般装有 “Lm”, “Lt”, “Lu”,
“Ll”, or “Lo” 等标识,不一样于 Alphabetic) 的,均为真。

 1 'dobi'.isalpha()
 2 # True
 3 
 4 'do bi'.isalpha()
 5 # False
 6 
 7 'dobi123'.isalpha()
 8 # False
 9 
10 '徐'.isalpha()
11 # True

str.isdecimal(); str.isdigit(); str.isnumeric()

多少个主意的分别在于对 Unicode 通用标识的真值判断范围不壹:

isdecimal: Nd,
isdigit: No, Nd,
isnumeric: No, Nd, Nl

digit 与 decimal 的分别在于有个别数值字符串,是 digit 却非 decimal 。

 1 num = '\u2155'
 2 print(num)
 3 # ⅕
 4 num.isdecimal(), num.isdigit(), num.isnumeric()
 5 # (False, False, True)
 6 
 7 num = '\u00B2'
 8 print(num)
 9 # ²
10 num.isdecimal(), num.isdigit(), num.isnumeric()
11 # (False, True, True)
12 
13 num = "1"  #unicode
14 num.isdecimal(), num.isdigit(), num.isnumeric()
15 # (Ture, True, True)
16 
17 num = "'Ⅶ'" 
18 num.isdecimal(), num.isdigit(), num.isnumeric()
19 # (False, False, True)
20 
21 num = "十"
22 num.isdecimal(), num.isdigit(), num.isnumeric()
23 # (False, False, True)
24 
25 num = b"1" # byte
26 num.isdigit()   # True
27 num.isdecimal() # AttributeError 'bytes' object has no attribute 'isdecimal'
28 num.isnumeric() # AttributeError 'bytes' object has no attribute 'isnumeric'

str.isidentifier()

判断字符串是或不是可为合法的标识符。

 1 'def'.isidentifier()
 2 # True
 3 
 4 'with'.isidentifier()
 5 # True
 6 
 7 'false'.isidentifier()
 8 # True
 9 
10 'dobi_123'.isidentifier()
11 # True
12 
13 'dobi 123'.isidentifier()
14 # False
15 
16 '123'.isidentifier()
17 # False

str.isidentifier()

认清字符串是还是不是可为合法的标识符。

 1 'def'.isidentifier()
 2 # True
 3 
 4 'with'.isidentifier()
 5 # True
 6 
 7 'false'.isidentifier()
 8 # True
 9 
10 'dobi_123'.isidentifier()
11 # True
12 
13 'dobi 123'.isidentifier()
14 # False
15 
16 '123'.isidentifier()
17 # False

str.islower()

 1 '徐'.islower()
 2 # False
 3 
 4 'ß'.islower()   #德语大写字母
 5 # False
 6 
 7 'a徐'.islower()
 8 # True
 9 
10 'ss'.islower()
11 # True
12 
13 '23'.islower()
14 # False
15 
16 'Ab'.islower()
17 # False

str.isprintable()

认清字符串的装有字符都以可打印字符或字符串为空。Unicode 字符集中 “Other”
“Separator” 类其他字符为不可打字与印刷的字符(但不蕴涵 ASCII
的空格(0x20))。

 1 'dobi123'.isprintable()
 2 # True
 3 
 4 'dobi123\n'.isprintable()
 5 Out[24]: False
 6 
 7 'dobi 123'.isprintable()
 8 # True
 9 
10 'dobi.123'.isprintable()
11 # True
12 
13 ''.isprintable()
14 # True

str.isspace()

看清字符串中是还是不是至少有二个字符,并且拥有字符都以空白字符。

1 In [29]: '\r\n\t'.isspace()
2 Out[29]: True
3 
4 In [30]: ''.isspace()
5 Out[30]: False
6 
7 In [31]: ' '.isspace()
8 Out[31]: True

str.istitle()

看清字符串中的字符是或不是是首字母大写,其会忽视非字母字符。

 1 'How Python Works'.istitle()
 2 # True
 3 
 4 'How Python WORKS'.istitle()
 5 # False
 6 
 7 'how python works'.istitle()
 8 # False
 9 
10 'How Python  Works'.istitle()
11 # True
12 
13 ' '.istitle()
14 # False
15 
16 ''.istitle()
17 # False
18 
19 'A'.istitle()
20 # True
21 
22 'a'.istitle()
23 # False
24 
25 '甩甩Abc Def 123'.istitle()
26 # True

str.isupper()

 1 '徐'.isupper()
 2 # False
 3 
 4 'DOBI'.isupper()
 5 Out[41]: True
 6 
 7 'Dobi'.isupper()
 8 # False
 9 
10 'DOBI123'.isupper()
11 # True
12 
13 'DOBI 123'.isupper()
14 # True
15 
16 'DOBI\t 123'.isupper()
17 # True
18 
19 'DOBI_123'.isupper()
20 # True
21 
22 '_123'.isupper()
23 # False

字符串编码

str.encode(encoding=”utf-8″, errors=”strict”)

 1 fname = '徐'
 2 
 3 fname.encode('ascii')
 4 # UnicodeEncodeError: 'ascii' codec can't encode character '\u5f90'...
 5 
 6 fname.encode('ascii', 'replace')
 7 # b'?'
 8 
 9 fname.encode('ascii', 'ignore')
10 # b''
11 
12 fname.encode('ascii', 'xmlcharrefreplace')
13 # b'徐'
14 
15 fname.encode('ascii', 'backslashreplace')
16 # b'\\u5f90'

 

正文转自:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图