python基础查漏补缺3--函数&字符串

1. 全局变量  global

name = 'jack'
def say_hello():
    print('hello ' + name + '!')
def change_name(new_name):
    global name
    name = new_name

>>> say_hello()
hello jack!
>>> change_name('Piper')
>>> say_hello()
hello Piper!

2. 字符函数 ord chr:ascii

>>> ord('a')
97
>>> ord('c')
99
>>> chr(97)
'a'
>>> chr(100)
'd'

3. 字符串长度计算 len

>>> len('\')
1
>>> len('abc')
3
>>> len('a
b
c')
5

4. 字符串切片str[start:end:step]

>>> food = 'apple pie'
>>> food[0:4]
'appl'
>>> food[0:4:2]
'ap'
>>> food[0:6:2]
'ape'
>>> food[::-1]
'eip elppa'
>>> food[-1:-5:-1]
'eip '

5. 字符串测试函数

函  数  名 什么情况返回True
 s.endswith(t) s 以字符串 t 结尾 
 s.startswith(t) s 以字符串 t 开头 
 s.isalnum() s 只包含字母或数字 
 s.isalpha() s 只包含字母 
 s.isdecimal() s 只包含十进制数字的字符 
 s.isdigit() s 只包含数字字符 
 s.isidentifier()

s 是合法的标识符 

 s.islower() s 只包含小写字母
 s.isnumeric() s 只包含数字 
 s.isprintable() s 只包含可打印字符 
 s.isspace()  s 只包含空白字符 
 s.istitle() s 是个大小写符合标准要求的字符串(title-case)的字符串 
 s.isupper() s 只包含大写字母
 t in s s 包含字符串 t
>>> 'abcd'.endswith('d')
True
>>> 'abcd'.endswith('c')
False
>>> 'abcd'.startswith('a')
True
>>> 'abcd'.startswith('b')
False
>>> 'abcd'.isalnum()
True
>>> '123'.isalnum()
True
>>> 'abcd123'.isalnum()
True
>>> 'abcd123.'.isalnum()
False
>>> 'abcd'.isalpha()
True
>>> 'abcd1'.isalpha()
False
>>> '123'.isdecimal()
True
>>> '123d'.isdecimal()
False
>>> 'abc'.isidentifier()
True
>>> '~~~'.isidentifier()
False
>>> 'abc'.islower()
True
>>> 'Abc'.islower()
False
>>> '123.1'.isnumeric()
False
>>> '-123'.isnumeric()
False
>>> '123'.isnumeric()
True
>>> '12.3'.isdecimal()
False
>>> '\\'.isprintable()
True
>>> '
'.isprintable()
False
>>> ''.isspace()
False
>>> ' '.isspace()
True
>>> 'This Is A Title'.istitle()
True
>>> 'ABC'.isupper()
True
>>> 'AbcC'.isupper()
False
>>> 'a' in 'abc'
True
>>> 'd' in 'abc'
False

6. 字符串搜索函数

函  数  名 返  回  值
s.find(t) 如果没有找到字符串 t,返回-1;否则返回 t 在 s 中的起始位置
s.rfind(t) 与find相同,但是从右向左搜索
s.index(t) 与find相同,但如果在 s 中找不到 t, 则引发ValueError异常
s.rindex(t) 与index相同,但从右向左搜索
>>> 'abc'.find('b')
1
>>> 'abcd'.find('a')
0
>>> 'abcd'.rfind('a')
0
>>> 'abcda'.rfind('a')
4
>>> 'abc'.find('ccc')
-1
>>> 'abcda'.index('a')
0
>>> 'abcda'.rindex('a')
4
>>> 'abcda'.index('m')
Traceback (most recent call last):
  File "<pyshell#101>", line 1, in <module>
    'abcda'.index('m')
ValueError: substring not found

 7.  改变大小写的函数

函 数 名 返回的字符串
s.capitalize() 将 s[0] 改为大写,其余小写
s.lower() 让 s 的所有字母都小写
s.upper() 让 s 的所有字母都大写
s.swapcase() 将小写字母改为大写,并将大写字母改为小写
s.title() 让 s 的大小写符合标题的要求
>>> 'abcd'.capitalize()
'Abcd'
>>> 'ABCD'.lower()
'abcd'
>>> 'abcd'.upper()
'ABCD'
>>> 'AbCd'.swapcase()
'aBcD'
>>> 'hello world'.title()
'Hello World'

8. 设置字符串格式的函数

函 数 名 返回的字符串
s.center(n, ch) 包含 n 个字符的字符串,其中 s 位于中央,两边用字符 ch 填充
s.ljust(n, ch)  包含 n 个字符的字符串,其中 s 位于左边,右边用字符 ch 填充
s.rjust(n, ch) 包含 n 个字符的字符串,其中 s 位于右边,左边用字符 ch 填充
>>> 'abcd'.center(10, 'm')
'mmmabcdmmm'
>>> 'abcd'.ljust(10, 'm')
'abcdmmmmmm'
>>> 'abcd'.rjust(10, 'm')
'mmmmmmabcd'

9. 字符串剥离函数

函 数 名 返回的字符串
s.strip(ch) 从 s 开头和末尾删除所有包含在字符串ch中的字符
s.lstrip(ch) 从 s 开头(左端)删除所有包含在字符串 ch 中的字符
s.rstrip(ch) 从 s 末尾(右端)删除所有包含在字符串 ch 中的字符
>>> '   abc    '.strip()
'abc'
>>> 'aaaabbbbbccccaaaa'.strip('a')
'bbbbbcccc'
>>> 'aaaabbbbbccccaaaa'.strip('ab')
'cccc'
>>> '    abc    '.lstrip()
'abc    '
>>> 'aaaabbbbccccaaaa'.lstrip('a')
'bbbbccccaaaa'
>>> 'aaaabbbbbccccaaaa'.lstrip('ab')
'ccccaaaa'
>>> 'aaaabbbbbccccaaaa'.rstrip('a')
'aaaabbbbbcccc'
>>> 'aaaabbbbbccccaaaabbbb'.rstrip('ab')
'aaaabbbbbcccc'

10. 字符串拆分函数

函 数 名 返回的字符串
s.partition(t) 将 s 拆分为三个字符串(head、t 和 tail), 其中 head 为 t 前面的子串,tail 为 t 后面的子串
s.rpartition(t) 与 partition相同,但从 s 的右侧开始搜索 t
s.split(t) 以 t 为分隔符,将 s 划分成一系列的子串,并返回一个由这些子串组成的列表
s.rsplit(t) 与 split 相同,但从 s 的右端开始搜索 t
s.splitlines() 返回一个由 s 中的各行组成的列表
>>> 'www.google.com'.partition('.')
('www', '.', 'google.com')
>>> 'www.google.com'.rpartition('.')
('www.google', '.', 'com')
>>> 'www.google.com'.split('.')
['www', 'google', 'com']
>>> 'aaa
bbb
'.splitlines()
['aaa', 'bbb']

11. 字符串替换函数

函 数 名 返回的字符串
s.replace(old, new) 将 s 中的每个 old 替换为 new
s.expandtabs(n)   将 s 中的每个制表符扩展为空格,制表符宽度为n
>>> 'abcd'.replace('a','A')
'Abcd'
>>> 'a b c'.expandtabs(4)
'au3000bu3000c'

12. 其他字符串函数

函 数 名 返回的值
s.count(t) t 在 s 中出现的次数
s.encode() 设置 s 的编码
s.join(sep) 使用 s 将 sep 中的字符串连接成一个字符串
s.maketrans(old, new) 创建一个转换表,用于将 old 中的字符改为 new 中相应的字符;
s.translate(table) 使用指定转换表(使用 maketrans 创建的)对 s 中的字符进行替换
s.zfill(width) 在 s 左边添加足够多的 0,让字符串的长度为 width
>>> 'abca'.count('a')
2
>>> 'abcd'.encode()
b'abcd'
>>> b'abcd'.decode()
'abcd'
>>> '-'.join(['www','google','com'])
'www-google-com'
>>> lee_table = ''.maketrans('EIOBT', '31087')
>>> 'BE COOL. SPEAK LEET!'.translate(lee_table)
'83 C00L. SP3AK L337!'
>>> '23'.zfill(4)
'0023'
>>> '-85'.zfill(5)
'-0085'
原文地址:https://www.cnblogs.com/yunmenzhe/p/7506414.html