python-常用内置函数与装饰器
1.常用的python函数

abs 求绝对值
all 判断迭代器中所有的数据是否为真或者可迭代数据为空,返回真,否则返回假
any 判断迭代器中的数据是否有一个为真,有返回真,可迭代数据为空或者没有真,返回假
bin 转换整数为二进制字符串
hex 转换整数为十六进制字符串
oct 转换整数为八进制字符串
bool 转换数据为布尔值
bytearray 将数据转换为字节数据
bytes 将数据转换为字节数组 bytes是bytearray的不可变版本
chr 将数字按照asci码表转换对应的字符(面向过程中可用于验证码生成)
ord 将字母按照asci码表转换对应的数字
compile 编译字符串或者文件,返回编译后的代码
exec 执行python代码,不返回结果(可接受python代码,或者字符串)
eval 执行python表达式,返回结果
divmod 得到两个数字相除的结果和余数(可用于分页)
enumerae 得到一个枚举对象(给可迭代数据添加下标)
filter 过滤数据,当条件为真,返回一个迭代器(用于过滤操作)
def big(a):
if a>34:
return True
return False
li=[11,22,33,44,55,66]
print(list(filter(big,li)))
map 更改迭代器中的每个数据得到一个新的迭代器(可批量操作)
def big(a): return a+14
li=[11,22,33,44,55,66]
print(list(map(big,li)))
pow 幂运算
range 创建一个可迭代范围对象 r[i] = start + step * i
round 浮点数按小数位数做舍入操作
zip
它是Python的内建函数,(与序列有关的内建函数有:sorted()、reversed()、enumerate()、zip()),其中sorted()和zip()返回一个序列(列表)对象,reversed()、enumerate()返回一个迭代器(类似序列)
定义:zip([seql, ...])接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同
li=['python','java','php','ruby',]
num=[23,17,33,67,85]
for l,n in zip(li,num):
print(l,n)
zip()配合*号操作符,可以将已经zip过的列表对象解压
(注意解压只适合python2,python3解压为空)
1.2利用chr,ord生成字母和数字混合的验证码
1.2.1.随机生成6位大写字母验证码
import random
li=[]
for i in range(6):
temp=random.randrange(65,91)
c=chr(temp)
li.append(c)
re=''.join(li)
print(re)
1.2.2.随机生成6位大写字母混合数字验证码
import random
li=[]
for i in range(6):
n=random.randrange(0,6)
if n==2 or n==4:
rn=random.randrange(0,10)
li.append(str(rn))
else:
tmp=random.randrange(65,91)
s=chr(tmp)
li.append(s)
l=''.join(li)
print(l)
1.2.3.随机生成6位大小写字母混合数字验证码
import random
li=[]
for i in range(6):
n=random.randrange(0,6)
if n==2 or n==4:
rn=random.randrange(0,10)
li.append(str(rn))
elif n==3:
a=random.randrange(97,122)
b=chr(a)
li.append(str(b))
else:
tmp=random.randrange(65,91)
s=chr(tmp)
li.append(s)
l=''.join(li)
print(l)
注意:lambda 匿名函数,自动返回结果

课堂小知识:
len 在python 3中默认按字符计算长度
len 在python 2默认按照字节计算长度
str='中国'
print(len(str))#默认字符计算长度
str2='中国'
b=bytes(str2,encoding='utf-8')#转换字节计算
print(len(b))
2.python json模块
import json
json_string = '{"name": "python", "age":"man"}'#数据的元素必须使用双引号,否则报错
parsed_json = json.loads(json_string)
print(parsed_json)json.loads 方法可以将数据格式化成相应数据类型

python原始类型向json类型的转化过程,具体的转化对照如下:

从json到python的类型转化对照如下:

3.python装饰器(decorator)
了解装饰器,咱们先了解下闭包
3.1.闭包(closure)
闭包是Python所支持的一种特性,它让在非全局定义的函数可以引用其外围空间中的变量,这些外围空间中被引用的变量叫做这个函数的环境变量。环境变量和这个非全局函数一起构成了闭包。
def outer(x):
y = [1,2,3]
def inner():
print x
print y
return inner
x = 5 #这个x没有被引用
f = outer(2)
f()
print f.__closure__ #函数属性__closure__存储了函数的环境变量
x和y都是属于函数outer命名空间的,在inner中被引用,当outer函数退出后,outer的命名空间不存在了,但是inner依然维护了其定义时候对其外部变量x,y的连接
3.2装饰器(decorator)
def outer(func):
def inner():
print('before')
func()
print('after')
return inner
@outer
def f1():
print('function f1')
f1()
装饰器是一个可调用对象(a callable),在Python中,函数是对象,当然也是可调用的,所以装饰器可以是一个函数,我们称其为函数装饰器。
这个可调用对象以一个函数作为参数,闭且返回另一个函数(来替换参数那个函数)
装饰器调用过程


def outer(func):
def inner():
print('before')
re=func()
print('after')
return re
return inner
@outer
def f1():
print('f1')
return 'no'
s=f1()
print(s)
装饰器的用途?
从这个刻意构造的很简单的例子,可以看出装饰器的意义,如果一个函数需要一个功能,如果这个功能可以被使用在很多函数上,或是函数并不是自己实现,那可以写个装饰器来实现这些功能。
上面的装饰器entrance,装饰一个函数后,函数被调用时会打印出这个函数的名字。
但是有一个问题,这个装饰器从功能上看,是要应该可以用来装饰任何函数,但是如果我们用它来装饰了一个带参数的函数
带参数的装饰器
def outer(func):
def inner(*args,**kwargs):
print('before')
re=func(*args,**kwargs)
print('after')
return re
return inner
@outer
def f1(a1):
print(a1)
return 'f1'
@outer
def f2(a2,a3):
print(a2,a3)
return 'f2'
s=f1('xxxxxxxxx')
print(s)
s2=f2('xwe',['12312','sfda'])
print(s2)


python-常用内置函数与装饰器的更多相关文章
- python学习笔记-day4笔记 常用内置函数与装饰器
1.常用的python函数 abs 求绝对值 all 判断迭代器中所有的数据是否为真或者可迭代数据为空,返回真,否则返回假 any ...
- Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器)
Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器) 1.初始函数 2.函数嵌套及作用域 3.装饰器 4.迭代器和生成器 6.内置函数 7.递归函数 8.匿名函数
- python之路 内置函数,装饰器
一.内置函数 #绝对值 abs() #所有值都为真才为真 all() #只要有一个值为真就为真 any() #10进制转成二进制 bin() #10进制转成八进制 oct() #10进制转成十六进制 ...
- python学习之路-4 内置函数和装饰器
本篇涉及内容 内置函数 装饰器 内置函数 callable() 判断对象是否可以被调用,返回一个布尔值 1 2 3 4 5 6 7 8 9 10 11 num = 10 print(callabl ...
- Python学习【第5篇】:Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器、模块)
一.为什么要使用函数? 1.避免代码重用 2.提高代码的可读性 二.函数的定义与调用 1. def 函数名(参数1,参数2): ''' 函数注释''' print('函数体') return 返回值 ...
- Python之函数目录(自定义函数,内置函数,装饰器,迭代器,生成器)
1.初始函数 2.函数嵌套及作用域 3.装饰器 4.迭代器和生成器 6.内置函数 7.递归函数 8.匿名函数 9.函数相关定义 10.三元表达式.列表推导式.生成器表达式 11.函数与方法的区别
- day 12 内置函数,装饰器,递归函数
内置函数 内置函数:python给咱们提供了一些他认为你会经常用到的函数,68种 内置函数 abs() dict() help() min() setattr() all() di ...
- python常用内置函数
Python所以内置函数如下: 下面列举一些常用的内置函数: chr()和ord() chr()将数字转换为对应的ascii码表字母 >>> r=chr(65) >>&g ...
- Python常用内置函数介绍
Python提供了一个内联模块buildin.内联模块定义了一些开发中经常使用的函数,利用这些函数可以实现数据类型的转换.数据的计算.序列的处理等功能.下面将介绍内联模块中的常用函数. Python内 ...
- $Python常用内置函数典型用法
Python中有许多功能丰富的内置函数,本文基于Python 2.7,就常用的一些函数的典型用法做一些积累,不断更新中. sorted函数的三种用法 # coding:utf-8 # sorted函数 ...
随机推荐
- Python将JSON格式数据转换为SQL语句以便导入MySQL数据库
前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据.我们希望把这些数据导入到MySQL数据库中.phpMyadmin能够把MySQL数据库中的数据导出为JSON格式文件,但却 ...
- vue-cli配置文件详解
转自: https://blog.csdn.net/Mr_YanYan/article/details/79233188
- MQTT---HiveMQ源代码具体解释(十四)Persistence-LocalPersistence
源博客地址:http://blog.csdn.net/pipinet123 MQTT交流群:221405150 简单介绍 HiveMQ的Persistence提供配置包含File和Memory,以解决 ...
- 学习使用用Eclipse编写java程序
本文讲解了在Eclipse中完成一个HelloWorld程序的编写过程. 刚刚学习java的同学们可能用 记事本编写java源代码,在命令提示符中完成java程序的编译和运行过程.这样的方法对于学习j ...
- WPF自定义依赖集合属性无法触发更新的问题
通常WPF中通过继承UserControl的来快速创建自定义控件,最近项目上需要设计一个卫星星图显示控件,最终效果如下图所示.完成过程中遇到了自定义集合依赖属性无法触发更新通知的问题,在此记录一下,方 ...
- tomcat报错: Error parsing HTTP request header
Error parsing HTTP request header 在服务器上面集成项目的时候,tomcat报错,在往上面查找是因为eclipse运行的tomcat和服务器上面的tomcat版本不一致 ...
- Linux相互排斥与同步应用(三):posix线程实现单个生产者和单个消费者模型
[版权声明:尊重原创.转载请保留出处:blog.csdn.net/shallnet 或 .../gentleliu.文章仅供学习交流,请勿用于商业用途] 在第一节说到了 ...
- GIT简单使用——私人库篇
1.生成公钥公钥是远程库识别您的用户身份的一种认证方式,通过公钥,您可以将本地git项目与远程库建立联系,然后您就可以很方便的将本地代码上传到远程库,或者将远程库代码下载到本地了.$ ssh-keyg ...
- cesium学习--初识
一.Cesium 官方介绍:CesiumJS是一个开源的JavaScript库,用于世界级的3D地球仪和地图.任务是为静态和时间动态的内容创建领先的3D地球和地图,具有最好的性能.精度.视觉质量.平台 ...
- Node.js面试题
Node.js面试题列表 什么是错误优先的回调函数? 如何避免回调地狱? 如何用Node来监听80端口? 什么是事件循环? 哪些工具可以用来保证一致的编程风格? 什么是测试金字塔?对于HTTP API ...