day12常用需要记住_函数做返回值_内置函数_模块
-
str
-
strip,返回字符串
-
split,返回列表
-
replace,返回字符串
-
upper,返回字符串
-
-
join,返回字符串
-
-
list
-
append,无
-
insert,无
-
pop,返回要删除的数据
-
remove,无
-
find/index,返回索引的位置
-
-
dict
-
get
-
keys
-
values
-
items
-
-
函数内部的数据是否会混乱。
-
函数内部执行相互之间不会混乱
-
执行完毕+内部元素不被其他人使用=>销毁
-
函数可以做返回值
def func():
print(123)
def dar():
return func
v =dar()
print(v())
n = "nihao"
def func():
print(n)
def dar():
return func
v =dar()
print(v())
name = "oldboy"
def bar():
name = "alex"
def inner():
print(name)
return inner
v = dar()
v()
name = "oldboy"
def bar(name):
def inner():
print(name)
return inner
v1 = dar("alex")
v2 = dar("alex")
v1()
v2()
#闭包是一个函数里面含有在用的变量
info = []
?
def func(i):
def inner():
print(i)
return inner
for item in range(10):
info.append(func(item))
?
info[0]()
info[1]()
info[4]()
?
总结
-
函数执行的流程分析(函数到底是谁创建的?)
-
闭包概念:为函数创建一块区域并为其维护自己数据,以后执行时方便调用。[应用场景:装饰器/SQLAIchemy源码]
内置函数
-
编码相关
-
chr,将十进制数字转换成Unicode编码中的对应字符串。
v = chr(65)
print(v) -
ord,根据字符在Unicode编码中找到其对应的十进制。
v = ord("中")
print(v) -
应用,导入random,模块调用randint生成随机数字
import random
v = random.randint(65,90)
print(v)map,循环每个元素(第二个参数),然后让每个元素执行函数(第一个参数),将每个函数执行的结果保存到新的列表中,并返回。
-
第一个参数:必须是一个函数
-
第二个参数:(可以被for循环)
map 随机法
v1[11,22,33,44]
def func(arg):
return arg + 100
result = map(func,v1)#然后将函数的返回值添加到[None,None]
print(list(result))
result = map (lambda x:x+100,v1)
print(result)
print(list(result))
filter 挑刺法
result = filter(lambda x: True if type(x)== int else False,v1)
print(list(result))
result = filter(lambda x: type(x) ==int ,v1)
print(list(result))
reduce 先加法
import functools
v1 = ["wo","hao","e"]
def func(x+y):
return x+y
result = functools.reduce(func,v1)
print(result)
import functools
v1 = ["wo","hao","e"]
result = functools.reduce(lambda x,y:x+y,v1)
print(result)
-
模块
将字符串加密
def get_md5(data)
import hashlib #hai si lei buo
obj = hashlib.md5() #md5 加密
obj.update(data.encode("utf-8")) #要加密的字符串,以压缩格式
result = obj.hexdigest()
return result
加盐
def get_md5(data)
import hashlib #hai si lei buo
obj = hashlib.md5("sdfjsdkljg".encode("utf-8")) #md5 加密,默认在想要加密的前面加上MD5后面的字符串
obj.update(data.encode("utf-8")) #要加密的字符串,以压缩格式
result = obj.hexdigest()
return result
import hashlib
user_list = []
def get_md5(data)
obj = hashlib.md5("sdfjsdkljg".encode("utf-8"))
obj.update(data.encode("utf-8"))
result = obj.hexdigest()
return result
def register():
print("请创建账户")
while True:
user = input("请输入用户名")
if user =="n":
return
pwd = input("请输入密码")
temp = {"username":user,"password":get_md5(pwd)}
user_list.append(temp)
def login():
print("用户登录")
user = input("请输入用户名:")
pwd = input("请输入密码:")
for item in user_list:
if item["username"] == user and item["password"] == get_md5(pwd):
return True
register()
result = login()
if result:
print("成功")
else:
print("失败")
密码不显示(只能在终端中用)
import getpass #gai te pa si
pwd = getpass.getpass("请输入密码:")
if pwd == "123":
print("正确")