今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数:

下面就一一介绍一下内置函数的用法:

1、abs()

返回一个数值的绝对值,可以是整数或浮点数等。

print(abs(-18))

print(abs(0.15))

result:

18

0.15

2、all(iterable)

如果iterable的所有元素不为0、''、False或者iterable为空,all(iterable)返回True,否则返回False。

print(all(['a','b','c','d'])) #列表list,元素都不为空或0,返回True

True

print(all(['a','b','','d'])) #如果存在一个为空的元素,返回False

False

print(all([0,1,2,3])) #如果存在为0的元素,同样返回False

False

print(all([])) #空元组和空列表返回值为True

True

print(all(()))

True

3、any(iterable)

如果iterable的任何元素不为0、''、False,all(iterable)返回True,如果iterable为空,返回Fasle。

注意:此函数与all()函数的在于,any()函数中有任意一个元素为0、''、False不影响整体,会返回True,而all()函数中必须是全部不包含特殊元素才会返回True,只要有一个特殊元素,会直接返回False.

print(any(['a','b','c','d'])) #列表list,元素都不为空或0

True

print(any(['a','b','','d'])) #列表list,存在一个为空的元素,返回True

True

print(any([0,False])) #如果元素全部是0,Fasle,返回Fasle

False

print(any([])) #any函数中空列表和空元组返回Fasle

False

print(any(()))

False

4、bin()

将一个整数转换成一个二进制字符串,结果以'0b'为前缀。

print(bin(32)) #将十进制转换成二进制

print(bin(64))

print(bin(128))

result:

0b100000

0b1000000

0b10000000

5、hex()

将一个整数转换成一个小写的十六进制字符串,结果以'0x'为前缀。

print(hex(255)) #将整数转换成十六进制

print(hex(192))

result:

0xff

0xc0

6、oct()

将一个整数转换成八进制的字符串,结果以'0o'为前缀。

print(oct(255)) #将整数转换成八进制

print(oct(192))

result:

0o377

0o300

7、bool()

返回一个布尔值,True或False。

print(bool()) #bool值缺省为False

False

print(bool(0))

False

print(bool('jack'))

True

print(bool(""))

False

8、bytes()

将一个字符串转换成你想要的编码格式的字节。

print(bytes('你好',encoding='utf-8')) #将字符串转换成utf-8编码格式的字节

b'\xe4\xbd\xa0\xe5\xa5\xbd'

print(bytes('你好',encoding='gbk')) #将字符串转换gbk编码格式的字节

b'\xc4\xe3\xba\xc3'

9、chr()

介绍chr()函数之前先看一下ASCII码对照表:

chr()函数就是返回整数对应的ASCII码对照表里的字符,取值范围[0~255]之间的正数。

ord()函数作用正好和chr()函数相反,不再介绍,请看下面例子:

n = chr(65) #根据十进制找到在ascii码里对应的字符

print(n)

result:A

a= ord("a") #根据字符找到在ascii码里对应的十进制

print(a)

result:97

10、compile(source,filename,mode)

将source编译为,代码对象能够通过exec语句来执行或者eval()进行求值。

source:字符串或者对象;

filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值;

model:编译代码的种类,可以指定为'exec','eval','single'。

code="for i in range(0,10):print(i)"

cmpcode = compile(code,'','exec') #可以将字符串转换成python代码执行

print(cmpcode)

result:

at 0x000002A54E938ED0, file "", line 1>

11、exec()

exec语句用来执行储存在字符串或文件中的Python语句。

exec("print('hello,world')") #执行exec()里的python语句

result:

hello,world

12、eval()

eval()函数将字符串str当成有效的表达式来求值并返回计算结果。

ret = eval("8*8") #执行表达式并返回结果

print(ret)

#result:64

t = exec("8*8") #执行python代码,可以接收或字符串,没有返回值

print(t)

#result:None

13、divmod(a,b)

divmod(a,b)方法是计算a,b的商和余数,即:a//b 余几,返回结果为元组。以后做网页翻页的时候会。

num = divmod(9,2) #9//2

print(num)

#result:

(4,1) #结果为商4余1

14、enumerate(iterable,start=0)

返回一个枚举对象。iterable必须是序列,迭代器,或者其他支持迭代的对象。

dic = {'name':'jack',

'age':18,

'sex':'boy',}

for i in enumerate(dic.keys(),start=0):

print(i)

#result:

(0, 'name')

(1, 'sex')

(2, 'age')

15、filter()

对于序列中的元素进行筛选,最终获取符合条件的序列。

filter() #循环第二个参数,让每个循环元素执行函数,如果函数返回值为True,表示元素合法

filter内部实现方法:

for item in 第二个参数:

r = 第一个参数(item)

if r:

result(item)

return result

#例:

def f1(args):

if args>22:

return True

li=[11,22,33,44]

ret = filter(f1,li)

print(list(ret)) #返回值为一个迭代器,所以使用list()函数来返回像上面这种简单的函数可以使用lambda函数来执行:

像上面这种简单的函数可以使用lambda函数来执行:

li = [11,22,33,44]

ret = filter(lambda a:a>22,li) #通过lambda函数处理,lambda是有返回值的,条件成立返回True

print(list(ret))

对于列表中字符串跟数字并存的提取方法:

li = [2,32,4,45,22,'tony',33,25,5,76,'liupeng',19,78,'jack',24]

l1 = []

ret = filter(lambda i:type(i) == str,li)      #使用filter函数结合lambda表达式来过滤type为str的元素

print(ret,type(ret))

for i in ret:

l1.append(i)                    #把过滤掉的str元素导入到新列表中

print(l1)

#result:

['tony', 'liupeng', 'jack']

li = [11,22,33,44,55,66,77,88,99,90]

def numb(args):

if args % 2 ==0:      #取列表中偶数值,要想取基数值把0变成1

return True

ret = filter(numb,li)

print(list(ret))

#result:

[22, 44, 66, 88, 90]

li1 = ['A','','B',None,'C',' ']

def numb1(args):

if args and args.strip():      # 去空

return True

ret = filter(numb1,li1)

print(list(ret))

#result:

['A', 'B', 'C']

filter主要的功能其实就是进行过滤及筛选。在此进行一段插曲。python中的正则表达式也可以进行过滤跟筛选,主要是面向于字符串的过滤中起到了很好的作用。对于正则表达式打算另起章节具体介绍,在此仅简单列举1-2个案例仅供参考。

小插曲(正则表达式筛选案例):

需求1:取出s变量中的speed跟angle。

importre                       #在这里我们需要提前导入re模块。目的为了是使用re模块中findall方法

s= 'speed=210,angle=150'm= re.findall(r'(\w*[a-zA-Z]+)\w*',s)      #\w代表匹配字母跟数字,*代表对于前一个字符重复0到无穷次,[a-zA-Z]代表匹配26个包含大小写的字母,而后面的+号表示把匹配到的字母拼接起来

#m = re.findall(r'([a-zA-Z]+)',s)#上述代码的简化版。不需要指定过度的匹配字符,因为[a-zA-Z]的范围已经是指定了所有字母组合了。print(m)#result:

['speed', 'angle']

需求2:从s这个字符串中,把数字跟字符分别提取出来。

import re

s = 'lajsfdhoiqu190821AWJKJE34ijoohoyyuoi1234uh12412io980843'

s1 = re.findall(r'[0-9]+',s)              #使用方法跟需求1中的运用方法基本一致。只不过范围我们从字符转到了字母身上。而在指定字母的时候给出【0-9】的范围即可。

print(s1)

s2 = re.findall(r'([a-zA-Z]+)',s)

print(s2)

#result:

['190821', '34', '1234', '12412', '980843']

['lajsfdhoiqu', 'AWJKJE', 'ijoohoyyuoi', 'uh', 'io']

需求3:从s这个字符串中,把数字跟字符分别提取出来。

import re

relink = '(.*)'

info = 'baidu'

cinfo = re.findall(relink,info)

print (cinfo)

#result:

[('http://www.baidu.com', 'baidu')]

16、map(函数,可迭代的对象)

我们先看map。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map()实现如下:

现在,我们用Python代码实现:

>>> def f(x):

... return x * x

...

>>> map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])

[1, 4, 9, 16, 25, 36, 49, 64, 81]

map()传入的第一个参数是f,即函数对象本身。

你可能会想,不需要map()函数,写一个循环,也可以计算出结果:

def f(x):

return x*x

L = []

for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]:

L.append(f(n))

print(L)

#result:

[1, 4, 9, 16, 25, 36, 49, 64, 81]

的确可以,但是,从上面的循环代码,能一眼看明白“把f(x)作用在list的每一个元素并把结果生成一个新的list”吗?

所以,map()作为高阶函数,事实上它把运算规则抽象了,因此,我们不但可以计算简单的f(x)=x2,还可以计算任意复杂的函数,比如,把这个list所有数字转为字符串:

>>> map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])

['1', '2', '3', '4', '5', '6', '7', '8', '9']

只需要一行代码(仅限于python2的版本。python3返回的是个迭代器需要for循环出元素)。

li = [11,22,33,44]

ret = map(str,li)

l1 = []

for x in ret:

l1.append(x)

print(l1)

#result:

['11', '22', '33', '44']

map结合lambda表达式案例:

li = [11,22,33,44]

new_list = map(lambda a:a+100,li)

print(list(new_list))

#result:

[111,122,133,144]

li = [11, 22, 33]

sl = [1, 2, 3]

new_list = map(lambda a, b: a + b, li, sl)

print(list(new_list))

#result:

[12, 24, 36]

map结合生成器案例:

def func(x,y):

return x*y*2 #返回结果为x*y的和再成2

li = [1,2,3,4]

li1= [2,3,4,5]

ret = map(func,li,li) # 第一个参数为func函数本身,第二个参数为x(li列表中的每个值),第三个参数为y(li1列表中的每个值)

print(ret.__next__())

for i in ret:

print(i)

#result:(结果为li列表跟li1列表每个值相乘再成2)

4

12

24

40

17、reduce()

对于序列内所有元素进行累计操作:

li = [11,22,33]

result = reduce(lambda x,y:x + y,li)

print (result)

#result: #注意在Python3中已经没有了reduce函数

66

当然也可以通过结合lambda表达式3行解决

from functools import reduce

#python3中已经把reduce踢出了内置函数。需要通过import functools函数来引用reduce

li = [11,22,33]

result = reduce(lambda x,y:x+y,li)

print(result)

#result:

66

18、isinstance()

判断对象是不是类的实例。

li = [11,22,33]

n = isinstance(li,list) #判断li是不是list类的实例

print(n)

#result:

True #返回True/False

19、len()

判断字符串长度。

s = "你好"

print(len(s)) #在python3中len函数既可以取的字符的长度,也可以取字节的长度

#python2.*中len函数只可以取字节的长度

#result:2

s = "你好"

b = bytes(s,encoding='utf-8')

print(len(b))

#result:6

分别使用2.*和3.*循环“你好”,查看结果:

2.7 for 循环“你好” #输出6个空字符

3.5 for 循环“你好”查看结果 #输出"字符串结果"

20、max()、min()、sum()

max():取最大值; min():取最小值; sum():取总的值

li=[11,22,33]

print(max(li)) #最大值

33

print(min(li)) #最小值

11

print(sum(li)) #总和

66

21、pow(x,y)

pow()返回x的y次方的值。

print(pow(2,3)) #计算2的3次方

8

print(pow(2,4)) #计算2的4次方

16

22、round()

round() 方法返回浮点数x的四舍五入值。

print(round(2.3)) #四舍五入

2

print(round(2.8))

3

23、random()

random方法返回随机生成的一个实数,它在[0,1]范围内。random的使用一般对于自动生成密码,验证码之类的用的比较多。

import random

print('random:',random.random())

#result: random: 0.7037348886029884

#coding=utf-8

__author__ = 'hillfree'

importrandomdeftestRand():#在[a, b]之间产生随机整数 random.randint(a, b)

for i in range(5):

ret= random.randint(100, 999)print("random.randint(100, 999) = {0}".format(ret,))#在[a, b]之间产生随机浮点数 random.uniform(a, b)

for i in range(5):

ret= random.uniform(1.0, 100.0)print("random.uniform(1.0, 100.0) = {0}".format(ret,))#在[0.0, 1.0)之间产生随机浮点数 random.random()

for i in range(5):

ret=random.random()print("random.random() = {0}".format(ret,))#在样本population中随机选择k个 random.sample(population, k)

population = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"}for i in range(5):

ret= random.sample(population, 3)print("random.sample(population, 3) = {0}".format(ret,))#在序列seq中随机选择1个 random.choice(seq)

seq = ("to", "be", "or", "not", 'tobe', 'is', 'a', 'question')for i in range(5):

ret=random.choice(seq)print("random.choice(seq) = {0}".format(ret,))#从序列中随机获取指定长度的片断。不修改原有序列。

#random.sample(sequence, k)

sentence = "to be or not to be is a question"

for i in range(5):

ret= random.sample(sentence, 5)print("random.sample(sentence, 5) = {0}".format(ret,))#三角分布的随机数 random.triangular(low, high, mode)

for i in range(5):

ret= random.triangular(0, 100, 10)print("random.triangular(0, 100, 10) = {0}".format(ret,))#高斯分布的随机数(稍快) random.gauss(mu, sigma)

for i in range(5):

ret= random.gauss(0, 1)print("random.gauss(0, 1) = {0}".format(ret,))#beta β分布的随机数 random.betavariate(alpha, beta)

#指数分布的随机数 random.expovariate(lambd)

#伽马分布的随机数 random.gammavariate(alpha, beta)

#对数正态分布的随机数 random.lognormvariate(mu, sigma)

#正态分布的随机数 random.normalvariate(mu, sigma)

#冯米塞斯分布的随机数 random.vonmisesvariate(mu, kappa)

#帕累托分布的随机数 random.paretovariate(alpha)

#韦伯分布的随机数 random.weibullvariate(alpha, beta)

if __name__ == "__main__":

testRand()

random模块

利用random生成一个简单的验证码案例

# import random 导入 随机模块,

#验证码的操作

random.randint(1,99) #随机数字

temp = '' 定义一个空字付串

for i in range(6): 循环6次

q = random.randrange(0,4) 自动生成一个0-4的随机数

if q == 3 or q == 1: 如果随机数等于3 或 1就生成小写字母

c2 = random.randrange(0,10) 生成 0--10内的随机数

temp = temp + str(c2) 向变量中添加当前数字对应的ascii码的字符

else:

c = random.randrange(65,91) 生成 65-91内的随机数

z = chr(c)

temp = temp + z 向变量中添加当前数字对应的ascii码的字符

print(temp)

随机生成密码:

这里用到了除random以外的另外一个模块(string),通过string模块可以更方便的为我们调取字母跟数字。不需要按照上例来自己创建范围来生成数字字母了。

import random

import string

sal = '!@#$%^&*()><?'

def passwd(length):

chars = string.ascii_letters + string.digits + sal

#return ''.join(random.choice(chars) for i in range(length))

return ''.join(random.sample(chars,8))

if __name__ == '__main__':

for i in range(1):

print(passwd(8))

24、choice()

choice()方法返回一个列表,元组或字符串的随机项。

import random

#取列表或元组的随机值

print("choice([1, 2, 3, 5, 9]) : ", random.choice([1, 2, 3, 5, 9]))

print("choice('A String') : ", random.choice('A String'))

#result:

choice([1, 2, 3, 5, 9]) : 9 #执行一次值会变一次

choice('A String') : i

25、randrange()

返回指定递增基数集合中的一个随机数,基数缺省值为1,听这个意思不是太好理解,下面举例说明:

import random

#随机输出100到1000间的偶数

print("rangrange(100,1000,2):",random.randrange(100,1000,2))

#随机输出100到1000间的其他数

print("rangrange(100,1000,2):",random.randrange(100,1000,3))

#result:

rangrange(100,1000,2): 260

rangrange(100,1000,2): 511

下面将上面三个函数放在一起,来做一道题,生成6位的随机数,其中包括大写字母,数字?

import random

li= []

for i in range(6): #循环6次

temp = random.randrange(65,91) #random随机数从ascii码里取65到91

c = chr(temp) #将随机数找到ascii码表里找到具体字符

li.append(c) #追加到空列表里

result = "".join(li) #再用join的方式将列表转换成字符串

print(result) #结果全是大写字母

li = [] #定义空列表

for i in range(6): #循环6次

r= random.randrange(0,5) #生成一个0-4的随机值,然后根据r的值判断数字出现的位置

if r ==2 or r==4: #如果第一次循环r==2或者4的时候,条件满足,在列表里随机添加一个数字

num = random.randrange(0,10) #生成一个0-9的随机数

li.append(str(num))

else:

temp = random.randrange(65,91) #如果上面条件不成立,添加字符串

c = chr(temp)

li.append(c)

result = "".join(li)

print(result)

26、zip()

利用每个可迭代元素,制作一个迭代器来聚合元素。

l1 = ['北京',11,22,33]

l2 = ['欢迎',11,22,33]

l3 = ['你',11,22,33]

r=zip(l1,l2,l3)

#print(list(r))

# [('北京', '欢迎', '你'), (11, 11, 11), (22, 22, 22), (33, 33, 33)]

temp = list(r)[0]

ret ="".join(temp)

print(ret)

今天的内置函数就介绍到这,由于还没有学习面向对象编程,一些内置函数会在学完面向对象编程以后,在更新。

python里面的内置函数_【python】函数之内置函数相关推荐

  1. python系统提供构造函数传入参数_[ Python入门教程 ] Python函数定义和使用

    函数是一段可以重复多次调用的代码,通过输入的参数值,返回需要的结果.通过使用函数,可以提高代码的重复利用率.本文主要介绍Python函数的定义.调用和函数参数设置方法. 函数的定义 Python函数定 ...

  2. python中如何调用函数_我写了一个函数,如何在python中调用

    匿名用户 1级 2015-03-06 回答 Python的特色简单 Python是一种代表简单主义思想的语言.阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Pyth ...

  3. python计算执行时间的函数_[python] 统计函数运行时间

    第一种: import time def time_me(fn): #fn 是要修饰/修改 的函数 def _wrapper(*args, **kwargs): #这个 _wrapper(*args, ...

  4. python三维图如何标注曲面_(python)使用colormap作为第4维,x,y,z函数绘制3d曲面 - python...

    我正在尝试绘制3d曲面,其中三个维度中的每个维度都在单独的值数组中,并且每个坐标处的曲面着色是x,y,z的函数.一种numpy.pcolormesh,但是是4D而不是3D的. 3D图由下式给出: fr ...

  5. python爬虫库的常见用法_$python爬虫系列(2)—— requests和BeautifulSoup库的基本用法...

    本文主要介绍python爬虫的两大利器:requests和BeautifulSoup库的基本用法. 1. 安装requests和BeautifulSoup库 可以通过3种方式安装: easy_inst ...

  6. python画完图 程序暂停运行_[Python实战]你也能写的计时器程序

    文章地址:[Python实战]你也能写的计时器程序 上次,公众号介绍了如何使用 Pyqt5 制作猜数游戏界面,并介绍了如何在 Pycharm 中使用 Qt Designer 生成 UI 文件.这次,我 ...

  7. python中for循环的用法_@Python小白,一文让你掌握Python爬虫

    兴趣 我没事喜欢逛知乎,有一段时间看到了这个问题:利用爬虫技术能做到哪些很酷很有趣很有用的事情: http://t.cn/RptGOPx 觉得回答的一个个炒鸡酷炫 就对爬虫产生了浓厚的兴趣, 于是就开 ...

  8. python项目源码 日程管理_[Python] Python日程处理

    日程处理 目标是输入个文本文件关于日程的,就能够到时间的时候显示出来,在ubuntu系统上运行. 包括以下几点: 1.了解Tkinter. 1.1 参考文献自己制作Python IDEL 1.1.1 ...

  9. python爬虫爬取公众号_[Python]爬取微信公众号文章

    [Python] 纯文本查看 复制代码import sys reload(sys) sys.setdefaultencoding('utf-8') from urllib import quote f ...

  10. mysql 聚合函数内比较运算符_关于常用 MYSQL 聚合函数,其他函数 ,类型转换,运算符 总结...

    /* 关于MYSQL 聚合函数,其他函数 ,类型转换,运算符 总结,*/ -- 1 运算符优先级  /* 12.1.1. 操作符优先级 以下列表显示了操作符优先级的由低到高的顺序.排列在同一行的操作符 ...

最新文章

  1. 4行代码,让app自动化框架支持 webview 混合应用操作
  2. 共享文件服务器迁移,服务器共享文件夹迁移
  3. 蓝桥杯比赛常考算法_备战蓝桥--算法竞赛入门第一章总结
  4. 成功跳槽百度工资从15K涨到28K,已整理成文档
  5. docker redis:6.2.6
  6. 文件字节输入流 java
  7. WebStorm设置字体和颜色
  8. 原产地证的作用跟分类
  9. 武汉大学计算机学院期末考试安排,【通知】关于2019-2020学年第一学期期末考试工作安排的通知...
  10. 多余元素删除(多种代码)
  11. sql中exist与in 的区别
  12. c++课程设计之贪食蛇
  13. 黑苹果从入门到精通:可能是世界上最详细的VMware安装macOS教程
  14. EOS智能合约开发系列(五): 配置VS Code
  15. 双目立体匹配流程详解
  16. 同余 在计算机中的应用 算法,线性乘同余法在购车摇号中的应用
  17. 行业研究-全球与中国牙科电子病历软件市场现状及未来发展趋势
  18. 任务管理器中查看文件被哪个进程占用
  19. Debut of Hyper-V, departure of Gates usher[引导,展示,招待员] in new era for Microsoft
  20. GnuTLS recv error (-54): Error in the pull function.

热门文章

  1. 腾讯娱乐讯 由葫芦兄弟改编的现代神话剧《金刚葫芦侠》第
  2. 吃野生动物真的是“猎奇”的生物本能驱动的?
  3. VMware虚拟机快照——虚拟机状态恢复
  4. 《雪中悍刀行》到底行不行?我爬了1w条评论来告诉你
  5. Linux下压缩文件夹命令
  6. Xcode Executable Not Found
  7. MAXHUB+腾讯会议:为未来办公造一部动力引擎
  8. REST接口如何调用
  9. Neutrino追问AMA第20期 | Ultrain 郭睿:在RPoS共识机制中,核心是随机数和 BFT 算法
  10. 《足球经理2018》这游戏据说特AI