内置函数
- callable() #判断是否能够被调用执行,可以调用返回True,例如函数和类
- chr() #将ascii值转换为字符,例如print(chr(65) )输出为a
- ord()#将字符转换为ascii值,例如print(ord('a')) 输出为97
- chr和ord应用随机生成验证码
#随机生成数字和大写字母的验证码
import random
li = []
for i in range(6):
r = random.randrange(0,5)
if r == 2 or r== 4:
num = random.randrange(0,10)
li.append(str(num))
else:
temp = random.randrange(65,91)
c = chr(temp)
li.append(c)
resault = "".join(li)
print(resault)
#第二位和四位为数字
# li = []
# for i in range(6):
# if i == 2 or i == 4:
# num = random.randrange(0,10)
# li.append(str(num))
# else:
# temp = random.randrange(65,91)
# c = chr(temp)
# li.append(c)
# resault = "".join(li)
# print(resault)- compile() #将字符串编译为python代码,执行python代码,接收代码或者字符串
s = 'print(123)'
#编译,single,eval,exec
#将字符串编译为python代码
r = compile(s,"<string>","exec")
#执行python代码
exec (r)
输出为
123- exec() #执行python代码,无返回值
- eval() #将字符串转换为表达式,并把结果计算出来,有返回值;ret = eval('7+8+9');print(ret) 输出为24
- dir() #快速查看对象提供了哪些功能,print(dir(list))
- help() #查看帮助信息,详细的使用说明,包括对象功能方法带的参数等print(help(list))
- divmod() #接收2个参数,前一个参数对后一个参数求余操作,结果将整数和余数打印出来r = divmod(97,10);print(r)输出(9, 7)商9余7
- isinstance() #判断对象是否为某一个类的实例,属于返回True否则返回False
li = [1,2,3,4]
resault = isinstance(li,list)
print(resault)
#输出
True #如果li属于list类返回True- filer() #对筛选出来的结果进行函数操作,filter执行内部循环第二个参数,让每个循环元素执行函数,如果函数返回值为True表示元素合法;filter('函数','可迭代的对象')
#完全函数方式实现返回列表中大于22的元素
def f1(a):
resault = []
for item in a:
if item >22:
resault.append(item)
return resault
l1 = [11,22,33,44,55]
ret1 = f1(l1)
print(ret1)
#filer+函数返回列表中大于22的元素
def f2(a):
if a > 22:
return True
li = [11,22,44,33,66]
ret = filter(f2,li)
print(list(ret))
#通过fileter+lamda表达式来实现
l2 = [11,22,44,55,66]
resault = filter(lambda a:a>33,l2)
print(list(resault))- map() #批量将迭代对象中的元素进行操作,map('函数','可迭代对象(可以for循环的东西)');
#通过整个函数实现对列表中数据全部加100操作
li = [11,22,33,44,55]
def f1(args):
resault = []
for i in args:
resault.append(100+i)
return resault
r = f1(li)
print(r)
#函数方式map使用形式
li = [11,22,33,44,55]
def f2(a):
return a+100
resault = map(f2,li)
print(list(resault))
#lambda方式map使用形式
li = [11,22,33,44,55]
resault = map(lambda a:a+100,li)
print(list(resault)) #filter 函数返回True,将元素添加到结果中
#map 将函数返回值添加到结果中- locals()#所有局部参数集合
- globals() #所有全局变量参数集合
- hash()#pyhon中存储字符串都是通过此函数计算的哈希值来存储的
- len()#计算字符串的长度,py2中以默认字节来计算长度,py3中以默认字符来计算长度
#验证py3中输出情况
s = "李杰"
print(len(s))
b = bytes(s,encoding='utf-8')
print(len(b)) 2
6
#py3.5中循环汉字时候正常输出
for i in '李杰':
print(i)
李
杰
#py2.7中循环汉字时候出现乱码
for i in '李杰':
print(i)
�
�
�
�
�
�- max() #取参数中最大的值,参数值均为int类型数字
- min()#取参数中最小的值
- sum()#求和
- pow() #求平方等价于** 例如2**10==pow(2,10)
- reversed()#对参数中元素反向显示在列表中等价于list.reverse()
#li.reverse()与reversed(li)是等价的
li = [11,22,1,3,5,2]
li.reverse()#对列表顺序反向输出
print(li) #[2, 5, 3, 1, 22, 11]
print(list(reversed(li))) #[11, 22, 1, 3, 5, 2]
#sort和sorted对列表中元素进行大小排序
li = [11,22,1,3,5,2]
li.sort()
print(li) #sort表示对自己的列表操作 li2 = sorted(li)
print(li2) #sorted表示作为一个新的列表排序- round() #四舍五入函数print(round(1.4)) 输出1
- zip() #将多个列表合并为1个
#zip函数将三个列表进行了合并,当其中一个列表元素数量和其他列表元素个数不等时,新的列表以少的元素为准,不会将没有的元素列作为新的元素
l1 = ['lily',11,22,33]
l2 = ['is',11,22]
l3 = ['a girl',11,22,33]
r = zip(l1,l2,l3)
print(list(r))
#输出:
[('lily', 'is', 'a girl'), (11, 11, 11), (22, 22, 22)] #对列表中元素进行join合并
l1 = ['lily',11,22,33]
l2 = ['is',11,22,33]
l3 = ['a girl',11,22,33]
r = zip(l1,l2,l3)
temp = list(r)[0]
ret = ' '.join(temp)
print(ret)
#输出:
lily is a girl
函数相关--装饰器
用法:
@+函数名
功能:
- 自动执行装饰器定义的函数并且将其下面的函数名当作参数传递
- 将装饰器定义函数的返回值,重复赋值给下面的函数
例子:
#定义一个简单装饰器
def outer(func):
def inner():
print('before')
func()
print('after')
return inner
@outer
def f1():
print('F1') #调用装饰器中的函数
import test #上面装饰器文件名称为test.py
test.f1()
#输出
before
F1
after
装饰器的应用登陆的练习
#!/usr/bin/env python
#-*- coding:utf-8 -*- LOGIN_USER = {'is_login':False} def outer(func):
def inner(*args,**kwargs):
if LOGIN_USER['is_login']:
r = func()
return r
else:
print("请登陆")
return inner def outer1(func):
def inner(*args, **kwargs):
if LOGIN_USER['is_login'] and LOGIN_USER['user_type'] == 2:
r = func()
return r
else:
print("请登录,或者权限不够")
return inner @outer1
def order():
print('欢迎%s登录'%LOGIN_USER['current_user']) @outer
def changepwd():
print('欢迎%s登录' % LOGIN_USER['current_user']) @outer
def manager():
print('欢迎%s登录' % LOGIN_USER['current_user']) def login(user,pwd):
if user == 'ljb' and pwd == '':
LOGIN_USER['is_login'] = True
LOGIN_USER['current_user'] = user
manager() def main():
while True:
inp = input("1后台管理:2,登录")
if inp == '':
manager()
elif inp == '':
username = input("请输入用户名:")
pwd = input("请输入密码:")
login(username,pwd) main()