python study to 4 基础篇
基础篇
内置函数
补充内置函数:
1、callable() #判断(函数)是否能够被执行或者被调用,此函数返回值为 Ture or False
def f1():
pass
print(callable(f1))
2、chr() #把数字转换成ASCII字符
print(chr(65))
3、ord() #把ASCII字符串转换成对应的数字
print (ord(","))
4、randrange() #需要导入 import random模块,此函数产生随机数
I=Import rand.range(3,5)
Print(i)
5、compile(s, "<string>","exec") #把一个字符串编译成python代码
m="梁怀军"
s= "print(m)"
r = compile(s,"<string>","exec")
print(r)
exec(r)
6、eval() 把字符串转换成python表达式, python执行表达式 获取返回值
s= "8*8"
r=eval(s)
print(r)
7、exec() #执行python 代码或者字符串,exec()没有返回值
8、dir() #快速查看一个对象提供了那些功能
print(dir(dict))
9、help() #帮忙查找一个对象的操作源码
Help(dict)
10、filter(函数,可迭代的对象) #筛选,符合条件有返回值,不符合条件的没有返回值
def f2(a):
if a > 22:
return True
li = [11,22,33,44,55]
# filter 内部循环第二个参数
# result = []
# for item in 第二个参数:
# r = 第一个参数(item)
# if r:
# result()
# return result
# filter
ret = filter(f2,li) #循环第二个参数,让每个循环元素执行函数,如果函数返回值为True,表示合法元素。
print(list(ret))
Lambda的书写方式:
li = [11,22,33,44,55]
ret = filter(lambda a:a > 33 ,li)
print(list(ret))
11、Map(函数,可迭代的对象(可for循环的数据类型))
li = [11, 22, 33, 44, 55]
def f2(a):
return a + 100
result = map(f2, li)
Print(list(result))
使用lambda表达式的表示方法:
result = map(lambda a: a + 200, li)
print(list(result))
注意:filter与map的本质区别
Filter : 函数返回True,将元素添加到结果中
Map: 将函数返回值添加到结果中
12、globals() #定义所有的全局变量
13、Locals() #定义所有的局部变量
14、Hash() #转换成哈希值,一般用于字典的key来保存
s = "王刚"
print(hash(s))
15、len() #测试字符串长度
# python 3里默认按字符()
s = "李杰"
print(len(s))
# 字节长度,python2.7里默认按字节
s = "李杰"
b = bytes(s, encoding="utf-8")
print(len(b))
16、sum() #求和函数
s = [11,22,33,44]
print(sum(s))
17、pow() #求某个数的多少次方
S = pow(2,10)
Print(s)
18、slince() #切片函数
s = "sssssssss"
print(s[0:2:2])
19、sorted() #对有序数据类型进行排序(包括:列表、元组、字符串)
li = (11,22,33,1,5,8,)
s =sorted(li)
print(s,type(s))
20、round() #四舍五入
Round(1.4)
21、zip() #把相同数据类型的相同位置的元素组成一个元素
l1 = ["alex", 11, 22, 33, ]
l2 = ["is", 11, 22, 33, ]
l3 = ["nb", 11, 22, 33, ]
r = zip(l1, l2, l3)
# print(list(r))
temp = list(r)[0]
ret = " ".join(temp)
print(ret)
内置函数随机验证码产生例子:
1 import random #导入模块 2 3 li=[] #定义列表 4 for i in range(6): #循环语句,控制验证码多少位 5 r=random.randrange(0,5) #产生的随机数字 6 if r==2 or r==4: 7 num=random.randrange(0,10) #产生随机数字的范围 8 li.append(str(num)) 9 else: 10 temp=random.randrange(65,91) #产生字母范围。 11 c=chr(temp) 12 li.append(c) 13 14 result="".join(li) #根据列表拼接字母数字验证码 15 print(result)
JSON:将字符串转换成python基本数据类型
1 s="[11,22,33,44,55]" 2 print(type(s),s) 3 import json 4 n=json.loads(s) #将一个字符串,转换成python基本的数据类型(列表和字典) 5 print(type(n),n)
装饰器(decorator)
装饰器定义:
不改变函数的基础上,在执行函数前,执行函数后,给函数添加功能。
装饰器的语法:
@ + 函数名
功能:
1.自动执行outer函数,并且将其下面的函数名(f1)当作参数传递
2.将outer函数的返回值,重新赋值给其下面的函数的参数
装饰器执行原理
s4.py
def outer(func):
def inner():
print("before")
func()
print("after")
return inner
@outer
def f1():
print("F1")
b2.py
import s4
s4.f1()
输出结果:
before
F1
after
例2有返回值的装饰器:
def outer(func):
def inner():
print("before")
ret=func()
print("after")
Return ret
return inner
@outer
def f1():
print("F1")
Return “您好”
Print(f1())
例3装饰器的万能参数传递
def outer(func):
def inner(*args, **kwargs):
print('before')
r = func(*args, **kwargs)
print('after')
return r
return inner
@outer
def f1(*args,**kwargs):
print(*args,**kwagrs)
return "success"
print(f1)
装饰器主要使用场景:
1、用户的验证
is_login={"islogin":False,}
def outer(func):
def inner(*args,**kwargs):
if is_login["islogin"]==True:
ret=func(*args,**kwargs)
return ret
else:
print("请登入")
return inner
@outer
def manager():
print("欢迎%s登入" %(is_login["current_user"]))
def login(username,password):
if username=="alex" and password=="123":
is_login["islogin"]=True
is_login["current_user"]=username
print("欢迎登入%s登入" %(username))
if __name__ == '__main__':
while True:
inp=input("请输入信息:")
if inp=="1":
username=input("请输入用户名:")
password=input("请输入密码:")
login(username,password)
elif inp=="2":
manager()

浙公网安备 33010602011771号