Python基础(第一次Python基础测试的补充与回顾)

ord()与chr()

chr(数值表达式): 返回String
ord(“字符串”): 返回int

print(ord('a'))
print(chr(78))

运行结果为:
97
N

map()函数

1、语法格式

map(func, *iterables)

2、作用:遍历一个序列,并对每一个元素执行对应操作
3、map()返回的是map对象,需要再转换成列表、元组或集合输出

def add(x, y):
    return x + y
a = (2, 3, 4)
b = [10, 5, 3]
print(list(map(add, a, b)))

运行结果为:
[12, 8, 7]

print()中的end与sep

end: 默认是换行,表示两个字符串最后以什么结尾。
eg: 换行 end="\n"

sep: 默认是空格,表示两个字符串之间用什么分割。
eg: 空格 sep=" "

print('a','b','c',sep=':')

运行结果为:
a:b:c

partition()方法

1、语法:

str.partition(str)

2、参数:指定的分隔符
3、返回值:返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。

print('abc'.partition('a'))

运行结果为:
('', 'a', 'bc')

join()函数

用于将一系列子字符串通过某个字符串连接起来

>>> a = ["s","b","d"]
>>> "*".join(a)
's*b*d'
>>>print('a'.join(('','a','bc')))    #也可以是元组
aaabc

re.sub()用法

语法:

re.sub(pattern, repl, string, count=0, flags=0)       #后两个参数可省略
替换函数,将正则表达式 pattern 匹配到的字符串替换为 repl 指定的字符串,  参数 count 用于指定最大替换次数

random模块中的sample函数

random.sample(seq, n) 

从序列seq中选择n个随机且独立的元素

import random
print(sorted(random.sample(range(5),5)))

运行结果为:
[0, 1, 2, 3, 4]

sorted()函数扩展

1、提供一个有序的列表作为返回值,默认是升序
2、可选参数reverse:
reverse = True时,为降序排列
3、可选参数key:
这个参数可以接收一个函数,该函数将作用于排序列表中的每个值,以返回值的升序来确定结果的顺序

x = [[1,3,3],[2,3,1]]
y = sorted(x,key = lambda item:item[0]+item[2])
print(y)

运行结果为:
[[2, 3, 1], [1, 3, 3]]

lambda表达式

用来声明匿名函数,语法格式:

lambda arg1,arg2,agr3... : 表达式
>>> f = lambda a,b,c:a+b+c
>>> print(f(2,3,4))
9

enumerate()函数

1、遍历集合对象,同时还可以得到元素的索引位置
2、返回(index, value) 元组
3、该函数有一个可选择的参数,用来设置索引计数器的初始值

x = [1,2,3,1,1]
print(list((index for index,value in enumerate(x,1) if value ==1)))

运行结果为:
[1, 4, 5]

正则表达式模块

1、正则表达式是很强大的字符串处理工具
2、元字符
常见的元字符:
\d :匹配一个数字, 相当于 [0-9]
\w:匹配数字、字母、下划线中任意一个字符, 相当于 [a-z A-Z 0-9 _]
+:匹配前一个元字符1到多次
|:逻辑表达式 或 ,比如 a|b 代表可匹配 a 或者 b
*:匹配前一个元字符0到多次
.:匹配任意字符(不包括换行符)
更多详细元字符戳这

3、匹配模式
.re.I(re.IGNORECASE):忽略大小写
更多匹配模式戳这

4、compile方法
(1)语法格式:

compile(pattern, flags=0)

(2)作用:编译一个正则表达式模式,返回一个模式对象

下面的两个例子等价:

import re
text="JGod is a handsome boy ,but he is a ider"
print(re.findall(r'\w*o\w*',text))  #查找有o的单词 #r意思是原生字符,后面的不需要再次转义

运行结果为:
['JGod', 'handsome', 'boy']
import re
text = "JGod is a handsome boy ,but he is a ider"
regex = re.compile(r'\w*o\w*')    #也可以先用compile生成一个规则模式,再进行查找
print(regex.findall(text))

运行结果为:
['JGod', 'handsome', 'boy']

加入匹配模式:

import re
test1="who you are,what you do,When you get get there? What is time you state there?"
regex1=re.compile(r'\w*wh\w*',re.IGNORECASE)
wh=regex1.findall(test1)
print(wh)

运行结果为:
['who', 'what', 'When', 'What']

5、match()函数
(1)定义:尝试从字符串的开始匹配一个模式
(2)语法格式:

re.match(pattern, string, flags)

第一个参数是正则表达式,如果匹配成功,则返回一个Match,否则返回一个None;
第二个参数表示要匹配的字符串;
第三个参数是标致位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

(3)返回值:如果查找到则返回一个match对象,否则返回为None

import re
print(re.match("shi", "baishi"))

运行结果为:
None
import re
print(re.match("bai", "baishi"))

运行结果为:
<re.Match object; span=(0, 3), match='bai'>

6、re.search()函数
(1)定义:在给定字符串中寻找第一个匹配给定正则表达式的子字符串
(2)返回值:如果查找到则返回一个match对象,否则返回为None
(3)语法格式:

re.search(pattern, string, flags)
import re
print(re.search("shi", "baishi")) 

运行结果为:
<re.Match object; span=(3, 6), match='shi'>

7、re.sub()函数
(1)语法格式:

sub(pattern, repl, string, count=0, flags=0)   

(2)定义:替换函数,将正则表达式 pattern 匹配到的字符串替换为 repl 指定的字符串, 可选参数 count 用于指定最大替换次数

import re
print(re.sub("\d+",'1','a1324bfg231bv2b341'))

运行结果为:
a1bfg1bv1b1
发布了14 篇原创文章 · 获赞 0 · 访问量 383

猜你喜欢

转载自blog.csdn.net/Bro_Jun/article/details/104888855
今日推荐