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)
json将字符串转换成基本数据类型

装饰器(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()
使用案例

 

  

 

posted @ 2016-06-03 09:27  梁怀军  阅读(188)  评论(0编辑  收藏  举报