题1:考察正则式re
import re
str1 = "Python's feature"
str2 = re.match(r'(.*)on(.*?) .*' , str1, re.M|re.I)
print(str2.group(1)) # 输出Pyth
re知识点:
-
.
(句点/点号):匹配任意单个字符,除了换行符\n
。换句话说,它表示可以匹配任意一个字符(字母、数字、特殊字符等),但不匹配换行符。 -
*
(星号):匹配前面的字符零次或多次。它表示前面的字符可以出现任意次数,包括零次。例如,a*
将匹配零个或多个连续的字符 'a'。 -
?
(问号):匹配前面的字符零次或一次。它表示前面的字符可以出现零次(即不存在)或一次(即只出现一次)。例如,a?
将匹配零个或一个字符 'a'。 -
(.*)
:表示贪婪匹配,会尽可能多地匹配满足条件的字符。其中,.
表示匹配任意单个字符(除了换行符\n
),而*
表示前面的字符可以出现零次或多次。 -
(.*?)
:表示非贪婪匹配,会尽可能少地匹配满足条件的字符。其中,.
表示匹配任意单个字符(除了换行符\n
),而*
表示前面的字符可以出现零次或多次。 -
re.M
(多行模式):使^
和$
元字符匹配每一行的开头和结尾。如果不使用re.M
标志,^
将只匹配字符串的开头,$
将只匹配字符串的结尾。 -
re.I
(忽略大小写):在进行匹配时忽略大小写。例如,如果匹配模式是'cat'
,则re.I
标志将使其同时匹配'cat'
、'Cat'
、'cAt'
等。
题2 考察filter函数
# 要求输出[2,4,6,8,10]
No.1
a = [1,2,3,4,5,6,7,8,9,10]
print(a[1::2]) # 索引1开始,索引号依次加2,索引号为1,3,5,7,9,输出[2,4,6,8,10]
# No.2
a = [1,2,3,4,5,6,7,8,9,10]
lis = []
for i in a:
if i % 2 == 0: # 取数组中的偶数
lis.append(i)
print(lis) # 输出[2,4,6,8,10]
# No.3
a = [1,2,3,4,5,6,7,8,9,10]
print(list(filter(lambda x:x%2==0,a)))
""" filter函数分为两步,第一步将a中每个值进行运算,得到布尔列表,跟着根据布尔列表中的值取出a,其效果如下面这行代码"""
[a[i] for i in range(len(a)) if list(map(lambda x:x%2==0,a))[i]] # list comprehension
# No.4
a = [1,2,3,4,5,6,7,8,9,10]
def is_odd(n):
return n%2==0
print(list(filter(is_odd,a))) # 注意filter要求的是函数体,不是方法调用,因此不用括号
题目3 考察 __name__
# print_func.py 代码如下
print('Hello World!')
print('__name__value:', __name__)
def main():
print('This message is from main function')
if __name__ == '__main__':
main()
# print_module.py的代码如下
import print_func
print("Done!")
输出:
题目4:考察str的方法
# upper()全大写,title()首字母大写,其余小写,自动识别分隔的字母(数字或空格)
strs = 'abcd12efg'
print(strs.upper().title()) # output:Abcd12Efg
strs = 'abcd efg'
print(strs.upper().title()) # output:Abcd Efg
strs = 'abcd 12 efg'
print(strs.upper().title()) # output:Abcd 12 Efg
题目5 list索引
lists = [1,2,3,4,5,6]
print(lists[6:]) # [],如果是print(lists[6])报错 IndexError: list index out of range
题目6 filter
func = lambda x:x%2
a = [1,2,3,4,5,6]
result = filter(func, a)
print(list(result)) # [1,3,5]
"""filter函数道理同[a[i] for i in range(len(a)) if list(map(func,a))[i]],第一步取布尔列表,第二步掩码数组取值"""
题目7 位置参数
def fun(a,*,b):
print(b)
fun(1,2,3,4) # 报错,*表示后面必须是关键字参数, 另外/ 前面必须是位置参数
题目8 list常用方法
# .append()
my_list = [1, 2, 3]
my_list.append(4)
print(my_list) # Output: [1, 2, 3, 4]
# .extend()
my_list = [1, 2, 3]
other_list = [4, 5, 6]
my_list.extend(other_list)
print(my_list) # Output: [1, 2, 3, 4, 5, 6]
# .insert()
my_list = [1, 2, 3]
my_list.insert(1, 10)
print(my_list) # Output: [1, 10, 2, 3]
# 集合 .add()
my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # Output: {1, 2, 3, 4}