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-常用内置函数与装饰器的更多相关文章

  1. python学习笔记-day4笔记 常用内置函数与装饰器

    1.常用的python函数 abs             求绝对值 all               判断迭代器中所有的数据是否为真或者可迭代数据为空,返回真,否则返回假 any          ...

  2. Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器)

    Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器) 1.初始函数 2.函数嵌套及作用域 3.装饰器 4.迭代器和生成器 6.内置函数 7.递归函数 8.匿名函数

  3. python之路 内置函数,装饰器

    一.内置函数 #绝对值 abs() #所有值都为真才为真 all() #只要有一个值为真就为真 any() #10进制转成二进制 bin() #10进制转成八进制 oct() #10进制转成十六进制 ...

  4. python学习之路-4 内置函数和装饰器

    本篇涉及内容 内置函数 装饰器 内置函数 callable()   判断对象是否可以被调用,返回一个布尔值 1 2 3 4 5 6 7 8 9 10 11 num = 10 print(callabl ...

  5. Python学习【第5篇】:Python之函数(自定义函数,内置函数,装饰器,迭代器,生成器、模块)

    一.为什么要使用函数? 1.避免代码重用 2.提高代码的可读性 二.函数的定义与调用 1. def  函数名(参数1,参数2): ''' 函数注释''' print('函数体') return 返回值 ...

  6. Python之函数目录(自定义函数,内置函数,装饰器,迭代器,生成器)

    1.初始函数 2.函数嵌套及作用域 3.装饰器 4.迭代器和生成器 6.内置函数 7.递归函数 8.匿名函数 9.函数相关定义 10.三元表达式.列表推导式.生成器表达式 11.函数与方法的区别  

  7. day 12 内置函数,装饰器,递归函数

    内置函数 内置函数:python给咱们提供了一些他认为你会经常用到的函数,68种      内置函数     abs() dict() help() min() setattr() all()  di ...

  8. python常用内置函数

    Python所以内置函数如下: 下面列举一些常用的内置函数: chr()和ord() chr()将数字转换为对应的ascii码表字母 >>> r=chr(65) >>&g ...

  9. Python常用内置函数介绍

    Python提供了一个内联模块buildin.内联模块定义了一些开发中经常使用的函数,利用这些函数可以实现数据类型的转换.数据的计算.序列的处理等功能.下面将介绍内联模块中的常用函数. Python内 ...

  10. $Python常用内置函数典型用法

    Python中有许多功能丰富的内置函数,本文基于Python 2.7,就常用的一些函数的典型用法做一些积累,不断更新中. sorted函数的三种用法 # coding:utf-8 # sorted函数 ...

随机推荐

  1. C++中的static关键字的总结(转)

    C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用. 1.面向过程设计中的st ...

  2. UNP学习笔记(第二十六章 线程)

    线程有时称为轻权进程(lightweight process) 同一进程内的所有线程共享相同的全局内存.这使得线程之间易于共享信息,然后这样也会带来同步的问题 同一进程内的所有线程处理共享全局变量外还 ...

  3. Xen on Ubuntu

    实验环境 ubuntu-14.04.1-desktop-amd64.iso Recommended reference: https://help.ubuntu.com/community/Xen h ...

  4. VueJS事件处理器v-on:事件修饰符&按键修饰符

    事件修饰符 Vue.js 为 v-on 提供了事件修饰符来处理 DOM 事件细节,如:event.preventDefault() 或 event.stopPropagation(). Vue.js通 ...

  5. 15:取近似值ApproximateValue

    题目描述 写出一个程序,接受一个正浮点数值,输出该数值的近似整数值.如果小数点后数值大于等于5,向上取整:小于5,则向下取整. 输入描述:输入一个正浮点数值 输出描述:输出该数值的近似整数值 输入例子 ...

  6. 【Wechall.net挑战】Anderson Application Auditing

    Wechall.net是一个国外用于练习CTF和攻防的网站,国内资料writeup不多,只有个别几篇.作为小白,近日玩了几道有意思的题目,在此分享 题目地址:http://www.wechall.ne ...

  7. Linux系统运维之路

    九月份开始,半年内搞定运维,博客会慢慢的更新,vim编辑器,Nginx配置文件优化 运维基础 运维基础-Linux发展史.安装.基本操作 运维基础-用户和组管理 运维基础-文件权限管理 运维基础-进程 ...

  8. 概率图模型(PGM)学习笔记(二)贝叶斯网络-语义学与因子分解

    概率分布(Distributions) 如图1所看到的,这是最简单的联合分布案例,姑且称之为学生模型. 图1 当中包括3个变量.各自是:I(学生智力,有0和1两个状态).D(试卷难度,有0和1两个状态 ...

  9. 2014年java软件project师面试题收集

    如果页面中于五个li标签.写个js使点击每个li返回他的index <!doctype html> <html> <head> <style> li{c ...

  10. C语言补漏(1)--- char到int赋值的一个陷阱

    作为一个C的新手(虽然学的第一门语言就是C,可是用C实际开发项目却是最近的事情),对使用C过程中遇到的各类问题.疑惑.知识漏洞进行弥补无疑是非常有必要的,于是决定将每次遇到的知识漏洞写到博客上. 今天 ...