'''
1.实现用户传入一个普通字符串,
返回字符串的md5加密结果的函数
'''
# import hashlib
#
# def M(str):
# m = hashlib.md5()
# m.update(str.encode('utf8'))
# return m.hexdigest()
#
# s = M('stoll')
# print(s)
#函数对象的四大功能
#1. 引用(和变量一样)
# x = "hello nick"
# y = x
# def func():
# print('from func')
# f = func
# print(func) #打印的是函数的内存地址
#2. 当做参数传给一个函数 (和变量一样)
# len(x)
# def foo(m):
# m()
# foo(func)
#3. 当做函数的返回值
# def foo(x):
# return x
#
# res = foo(func)
# print(res)
# res()
#4. 可以当做容器类型的元素
# l = [x]
#
# function_list = [func]
# function_list[0]()
'''
return和yield关键字的区别
相同点
功能都是返回程序执行结果
区别
yield返回执行结果并不中断程序执行,
return在返回执行结果的同时中断程序执行。
'''
'''
模块搜索的顺序
1. 先从内存中找
2. 内置的模块
3. 环境变量sys.path中找
'''
'''
包中的__init__文件有以下作用:
1.标识该文件是Package
2.模糊导入中的*中的模块是由__all__来定义的,
定义__all__用来模糊导入
'''
"""
1. 使用while循环实现for循环底层原理
# 提示:使用下述代码可以捕捉异常
try:
# 逻辑代码
except StopIterationError:
break
"""
# 1. 首先使用iter把lt变成迭代器对象;对于文件也要使用iter方法吧文件再一次iter下
# 2. 然后使用next方法进行迭代取值
# 3. 判断StopIteration异常,遇到异常终止
# lt = [2,2,3,5] # 对该列表进行循环取值
# lt_iter = lt.__iter__() # 把列表(可迭代对象)变成迭代器对象
# while 1: # 只要是true,就执行
# try:
# print(lt_iter.__next__())
# except StopIteration: # 遇到异常就抛出,为什么会抛异常,因为while会一直循环,但是迭代器对象只能遇到执行4个__next__,第五个没有了,就会遇到异常
# break
lt=[1,2,3,4,5,5]
lt_iter = lt.__iter__()
while 2:
try:
print(lt_iter.__next__())
except StopIteration:
break
"""
2. 阅读需求,编写代码:
1. 规定使用filter()内置函数和匿名函数
2. 将`names = ['Nick', 'Sean_sb', 'Tank_sb', 'Jason_sb']`中
留下以sb结尾的名字
"""
# names = ['Nick', 'Sean_sb', 'Tank_sb', 'Jason_sb']
# 结果为:['Sean_sb', 'Tank_sb', 'Jason_sb']
print(list(filter(lambda a: a.endswith('sb'), names)))
# print(list(filter(lambda x: x.startswith('s'.upper()), names)))
"""
3. 阅读需求,编写代码:
1. 自定义生成器
2. 该生成器拥有range()函数拥有的功能
"""
def self_range(start, end, step):
list = [start, end]
print(start)
while list[0] < list[1]:
yield list[0]
list[0] += step
#
for i in self_range(1, 10, 2):
print(i)
"""
# 结果为:
for i in self_range(1, 10, 2):
print(i) # 1,3,5,7,9
4. 阅读需求,编写代码:
1. 自定义3*4的numpy数组,
2. 把第1行和第2列的元素置为0
import numpy as np
# 结果为:
'''
array([[0. , 0. , 0. , 0. ],
[0.22721118, 0. , 0.87410034, 0.85833497],
[0.40389177, 0. , 0.42199234, 0.87709706]])
'''
l = np.empty((3, 4))
arr = l.copy()
arr[:1, :] = 0
arr[:, 1:2] = 0
print(arr)
5. 阅读需求,编写代码:
1. 对于字符串`Life234234is beautiful234because234of persistence`
2. 请使用re模块 **一行代码** 还原这句话为`Life is beautiful because of persistence`
"""
import re
s = 'Life234234is beautiful234because234of persistence'
# 结果为:Life is beautiful because of persistence
l = re.sub('234',' ', s)
print(l)
解压缩