内置函数:

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成长之路——第四天相关推荐

  1. Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程–>错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个人 ...

  2. (转)Python成长之路【第九篇】:Python基础之面向对象

    一.三大编程范式 正本清源一:有人说,函数式编程就是用函数编程-->错误1 编程范式即编程的方法论,标识一种编程风格 大家学习了基本的Python语法后,大家就可以写Python代码了,然后每个 ...

  3. 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xa)的解决方法【华为云分享】

    [写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...

  4. 【Python成长之路】快速理解复制、浅拷贝、深拷贝

    哈喽大家好,我是鹏哥. 今天想聊聊的主题是 -- 浅拷贝/深拷贝. ~~~上课铃~~~ 赤伶HITA - 赤伶 1 写在前面 浅拷贝.深拷贝的知识点,在python笔试和面试的过程中,经常被作为考题来 ...

  5. 【Python成长之路】Python爬虫 --requests库爬取网站乱码(\xe4\xb8\xb0\xe5\xaf\x8c\xe7\x9)的解决方法

    [写在前面] 在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\ ...

  6. 【Python成长之路】如何用python开发自己的iphone应用程序,并添加至siri指令

    哈喽大家好,我是鹏哥. 今天想记录的学习主题是 -- 基于pythonista3 app开发自己的iphone应用程序. ~~~上课铃~~~ (由于今天被小伙伴推荐了这首歌,因此就应他的要求,作为此文 ...

  7. 【Python成长之路】破解Boss直聘网站滑块验证

    哈喽大家好,我是鹏哥. 今天要记录的内容是 -- 破解Boss直聘网站的滑块验证. -- 上 课 铃-- TuesdayBurak Yeter;Danelle Sandoval - Tuesday 1 ...

  8. 【Python成长之路】如何用2行代码将抖音视频设置成我的手机铃声

    哈喽大家好,我是鹏哥. 今天想学习记录的内容是 -- 如何用python提取视频中的音频. ~~~上课铃~~~ 1 写在前面 本来按我的性子和精力,一周一般只想写一篇博客:但是今天在刷抖音时,发现有个 ...

  9. 程序员成长之路(四)之有用的网址

    2019独角兽企业重金招聘Python工程师标准>>> 通过Java来测试JSON和Protocol Buffer的传输文件大小 http://www.jb51.net/articl ...

最新文章

  1. “数学不好,干啥都不行!”资深程序员:别再瞎努力了!
  2. java文件读写不完整_Java读取文件内容不完整
  3. 编程语言注释方法大全
  4. Micronaut for Spring支持Spring Boot应用以Micronaut形式运行
  5. oracle与sqlserver差异,Oracle与SQLServer的SQL语法差异总结
  6. [css] 使用css3画一个扇形
  7. Oracle中临时表的深入研究
  8. Dirichlet过程混合模型(DPMM)的Gibbs抽样程序
  9. 【NOIP2013】【Luogu1966】火柴排队(逆序对)
  10. 超详细|一篇搞定操作系统——文件管理
  11. 关于矩阵乘法的记忆方法
  12. 数据分析中应该了解的几种常用预测方法
  13. 32位联想台式机更新xp到win10工作站版本
  14. 【观察】戴尔:为核心数据“保驾护航”,为数字化转型“拨云见日”
  15. 基于百度指数的股票收益率多因子模型研究
  16. php 获取月初月末时间,php一个获取下月月初和月末的函数
  17. Loadrunner场景设计之场景计划
  18. beamer中block样式修改
  19. 计算机默认存储格式,表格默认保存为et格式
  20. Pandas50个高级高频操作

热门文章

  1. 第七讲:数据契约(2)
  2. react问答 项目开发
  3. floyd 判圈算法 UVa 11549 计算器谜题
  4. codetyphon, Lazarus+FreePascal+Tools+Free Components packages+Free Libraries
  5. 保证相同类型的MDI子窗体只会被打开一次的方法
  6. flutter AppBar
  7. 云计算入门学习资料,linux云计算学习大纲
  8. python指定版本 安装模块包
  9. Discuz常见小问题-如何快速清除帖子
  10. PhpForm表单验证