欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python成长之路——第四天

发布时间:2025/6/17 python 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python成长之路——第四天 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
内置函数: callable:查看对象是否能被调用(对象是函数的话能被调用) #callable def f1(): pass f2="a" print(callable(f1)) print(callable(f2)) 

#chr() 将ascii码转换成对应的字符

#ord() 相反

print(chr(65)) print(ord("B")) 生成一个6位的随机验证码: #!/usr/bin/env python # -*- coding:utf-8 -*-import random li=[] for i in range(6):r=random.randrange(0,5) if r == 2:temp=random.randrange(0,10)li.append(str(temp)) #注意:join方法要求列表里的每个元素必须是字符串 elif r == 4:temp=random.randrange(97,123)k=chr(temp)li.append(k) else:temp=random.randrange(65,91)k=chr(temp)li.append(k) print("".join(li)) V67Dj2A compile()  将字符串,编译成python代码 exec()   执行   比eval功能更强大,直接执行python代码或者字符串(如果接收的是字符串的话,内部会执行compile),没有返回值 eval()    执行   主要是用来执行表达式的,有返回值 python解释器执行文件要经过以下几个步骤: 1.读取文件内容到内存  open—str到内存open完成 2.python解释器把  字符串—》编译—》特殊代码   compile完成 3.执行代码exec完成 编译模式: single:编译成单行的python程序 eval:编译成表达式 exec:编译成和python代码一模一样的东西 with open("zy.py","r",encoding="utf8") as f: r = compile(f.read(),"<string>","exec") exec(r) BBDfji zy.py是上面的6位随机验证码程序,这个就模拟了python解释器的执行过程 s = "print(123)" r = compile(s,"<string>","exec") print(r) print(type(r)) exec(r) <code object <module> at 0x0000000000802DB0, file "<string>", line 1> <class 'code'> 123 s = ''' print(123) print(456) ''' r = compile(s,"<string>","single") exec(r) Traceback (most recent call last): File "C:/Users/Administrator/PycharmProjects/untitled/day4.py", line 14, in <module> r = compile(s,"<string>","single") File "<string>", line 2 print(123) ^ SyntaxError: multiple statements found while compiling a single statement s = ''' print(123) print(456) ''' r = compile(s,"<string>","exec") exec(r) 123 456 print(eval("2+3")) a="[1,2,3,4]" li=eval(a) print(type(li)) b='{"k1":"v1","k2":"v2"}' dic=eval(b) print(type(dic)) 5 <class 'list'> <class 'dict'> delattr,getattr,setattr,hasattr  反射  以后讲 dir()  快速查看一个对象提供什么功能,不显示功能详细 help()  显示功能详细    divmod()   #divmod() 得到商和余数,返回值是元组 #共97 每页显示10 总共多少页 print(divmod(97,10)) n1, n2 = divmod(97,10) print("n1",n1) print("n2",n2) (9, 7) n1 9 n2 7 对象是类的实例 则True isinstance()   #isinstance() 判断对象是否是某个类的实例 s="alex" r=isinstance(s,list) print(r) False filter(函数,可迭代的对象) def f1(a): if a>22: return Trueli=[11,22,33,44,55] ret = filter(f1,li) print(ret) print(list(ret)) <filter object at 0x0000000001142198> [33, 44, 55] filter和lambda组合: li=[11,22,33,44,55] ret = filter(lambda a: a > 33,li) print(list(ret)) [44, 55] map(函数,可迭代对象),对可迭代对象的每个元素都进行处理 li=[11,22,33,44,55] def f(a): return a+100 ret = map(f,li) print(ret) print(list(ret)) <map object at 0x0000000000B82128> [111, 122, 133, 144, 155] li=[11,22,33,44,55] ret = map(lambda a: a+100 , li) print(ret) print(list(ret)) <map object at 0x00000000011C2128> [111, 122, 133, 144, 155] filter:函数返回True 则元素添加到结果中 map: 将函数返回值添加到结果中 NAME = "alex" def show():a=123 print(globals()) print(locals()) show() {'__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000000000A05BA8>, '__builtins__': <module 'builtins' (built-in)>, 'show': <function show at 0x0000000001169C80>, '__cached__': None, '__name__': '__main__', '__doc__': None, '__spec__': None, '__file__': 'C:/Users/Administrator/PycharmProjects/untitled/day4.py', 'NAME': 'alex'} {'a': 123} 如果一个字符串是字典或者列表等形式的,一定是单引号在外边,双引号在里面 装饰器: @ + 函数名 功能: 1.自动执行outer函数并且将其下面的函数名f1当作参数传递 2.将outer函数的返回值,重复赋值给f1 详细过程: 1. 将outer函数加载入内存 2. 执行@outer  将函数名f1传给func(func=原f1),执行outer 3. 将inner函数加载入内存 4. 将outer函数的返回值inner,重新赋值给f1,(f1=inner) 5. 当调用f1时,就执行inner(),inner中的func=原f1 适用场景: 主要是权限控制 def outer(func): def inner(*args,**kwargs): print("before")ret = func(*args,**kwargs) print("after") return ret return inner@outer def f1(aa): print("F1") return aa @outer def f2(*args,**kwargs): print("F2") for index,items in enumerate(args): print(index,"-"*5,items) for k in kwargs: print(k,"-"*5,kwargs[k]) f2(1,2,3,a=1,b=2,c=3) before F2 0 ----- 1 1 ----- 2 2 ----- 3 b ----- 2 c ----- 3 a ----- 1 after

 

转载于:https://www.cnblogs.com/meitangyanyan/p/5132919.html

总结

以上是生活随笔为你收集整理的python成长之路——第四天的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。