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

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

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

  2. Python基础(二)——常用内置函数

    1. 常用内置函数 (1)isinstance(object, classinfo) 用于判断一个对象是否为某一类型. object  是实例对象 classinfo 是基本类型如 int, floa ...

  3. python之迭代器 生成器 枚举 常用内置函数 递归

    迭代器 迭代器对象:有__next__()方法的对象是迭代器对象,迭代器对象依赖__next__()方法进行依次取值 with open('text.txt','rb',) as f: res = f ...

  4. python第十八课——常用内置函数

    常用内置函数:round(): print(round(3.14),round(3.99)) print(round(3145.926,-2),round(413.575,2)) abs(): pri ...

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

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

  6. Python学习日记(六)——内置函数和文件操作(lambda)

    lambda表达式 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: # 普通条件语句 if 1 == 1: name = 'prime' else: name = 'c ...

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

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

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

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

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

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

随机推荐

  1. 【java开发系列】—— JDK安装

    前言 作为一个java开发者,安装JDK是不可避免的,但是配置路径却总是记不住,百度也有很多参考例子.这里仅仅当做以后参考的笔记记录. 说到JDK,就不得不提JRE.他们到底是什么呢? 通常我们进行j ...

  2. linux_x86_64 blat安装

    blatSrc35.zip下载地址:http://users.soe.ucsc.edu/~kent/src/ 对于下载好的源代码安装包blatSrc35.zip,需进行编译,安装过程如下: 1.用un ...

  3. HUD 5086 Revenge of Segment Tree(递推)

    http://acm.hdu.edu.cn/showproblem.php?pid=5086 题目大意: 给定一个序列,求这个序列的子序列的和,再求所有子序列总和,这些子序列是连续的.去题目给的第二组 ...

  4. Ubuntu 16.04 LTS Final Beta about JAVA

    我们知道Ubuntu里可能会事先安装了openjdk.但是我习惯于Oracle jdk. ## < 卸载 openjdk > successfully: ### Terminal comm ...

  5. CCF真题之图像旋转

    201503-1 问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度. 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可. 输入格式 ...

  6. 生成apache证书(https应用)

    # cd /usr/local/apache2/conf# tar zxvf ssl.ca-0.1.tar.gz# cd ssl.ca-0.1生成根证书:# ./new-root-ca.sh      ...

  7. paper 81:HDR成像技术

    什么是HDR?谈HDR照片的制作方法和效果 HDR,是英文High-Dynamic Range的缩写,意为“高动态范围”.这是一个简单的术语,HDR照片是使用多张不同曝光的图片,然后再用软件将其叠加合 ...

  8. sql except 用法,找两个表中非共同拥有的

    ;with tt as (select a.id as id from [dbo].[1234] a where a.id not in (select a.ProtocolID from Proto ...

  9. -XX:+printGC

    -XX:+printGC 可以打印GC的简要信息[GC 4790K->374K(15872K), 0.0001606 secs][GC 4790K->374K(15872K), 0.000 ...

  10. 锋利的JQuery(三)

    事件冒泡: 解决方式: 1.使用事件对象:$("element").bind("click",function(event){}); 这个事件对象只有事件处理函 ...