python里有哪些函数_python update函数会调用哪些内置函数_Python函数之内置函数

截止导Python 3.6 目前内置函数有68个

以下是对这些内置函数的分类

一:作用域相关

以字典的形式返回作用域中的名字

locals # 返回本地作用域的所有名字

globals # 返回全局作用域的所有名字

二: 迭代器相关

range()   生成器

iter()    获取迭代器,内部实际上使用了__iter__()获得迭代器

一样的

list= [1,2,3,4,5]

l1= list.__iter__()

l2=iter(list)print(l1)print(l2)##

next()    迭代器向下执行一次,内部实际上使用了__next__()方法

list = [1,2,3,4,5]

l1 =iter(list)

print(l1.__next__())

print(next(l1))

三:字符串类型代码执行

eval函数--可以执行字符串代码,并有返回值,所以如果有返回值的话使用eval

exec函数-可以执行字符串代码,没有返回值,所以如果没有返回值的话使用exec

ret = eval('1+2+3')print(ret)#6 有返回值

ret1=exec('1+2+3')print(ret1)#None没有返回值

如果需要有返回值,使用eval(),如果只是执行,使用exec()

四: 输入输出相关

input---用户交互,数据类型是字符串

print-打印

print的用法

print(self, *args, sep=' ', end='\n', file=None):

# file参数:指文件句柄,默认为None,即输出到屏幕,如果制定文件句柄,输出到文件

# sep: 间隔,默认为空格,可以指定其他分隔符

# end: 结尾符,默认为\n换行符,可以指定其他

将输出写到文件里

info = 'my name is wangys'with open('test','w',encoding='utf-8') as f: #打开一个文件

print(info,file=f)

去掉print自带的换行符

my name iswangys123

456with open('test',encoding='utf-8') as f:for line inf:print(line)

with open('test',encoding='utf-8') as f:for line inf:print(line,end='')

使用print打印进度条

importtimefor i in range(0,101,2):

time.sleep(0.1)

char_num= i//2per_str= '\r%s%% : %s\n' %(i,'*' * char_num) if i ==100 else '\r%s%% : %s'%(i,'*'*char_num)print(per_str,end='',flush=True)

五 内存相关

id(): 返回变量的内存地址

hash():返回一个hash值,为int类型,再程序一次执行过程中,该值不会变

name='wangys'age=18l= [1,2,3]print(id(name))print(id(age))print(id(l))print(hash(name))print(hash(age))print(hash(l)) #因为列表是可变数据类型会报错

TypeError: unhashable type: 'list'

六: 文件操作open

https://www.cnblogs.com/wc89/p/10261545.html

七: 调用相关

callable 检验名称是否可以被调用(函数)

如果可以被调用返回True,如果不能被调用返回false

八 查看内置属性

dir()   查看一个对象拥有的方法

九: 基础数据类型相关

9.1 与数字相关

bool() 将给定的数据转换为布尔型

int() 将给定的数据转换为int类型

float() 将给定的数据转换为float类型,也就是小数

complex() 复数

9.2 进制转换

bin() 将给定的数据转换为二进制

otc() 将给定的数据转换为八进制

hex() 将给定的数据转换为十六进制

9.3 数据运算

abs() 返回绝对值

divmode() 返回商和余数

round() 四舍五入

pow(a,b) 取a的b次幂,如果有第三个参数,再对第三个数取余

sum() 求和

min() 求最小值

max() 求最大值

9.4 与数据结构相关

list()  将一个可迭代对象转换为一个列表

tuple() 将一个可迭代对象转换为一个元祖

reversed() 将一个序列反转,返回翻转序列的迭代器

slice() 列表切片

9.5 字符串相关

ord() 找到字符的编码位置

chr() 与ord相反,输入一个数字,返回改数字再编码表里对应的元素

repr() 返回一个对象的字符串形式

十: 其他

len() 返回一个对象中的元素个数

enumerate() 获取集合的枚举对象

list = ['apple','orange','西瓜']for i inrange(len(list)):print(i,list[i])for i ,el inenumerate(list):print(i,el)

all 迭代对象中所有对象为True时返回True,否则返回False

any 迭代对象中有一个对象为True,则返回True,否则返回False

zip() 将多个可迭代对象合并成一个个元祖,然后组成列表,以最短的为准

l1 = [1,3,5,7]

l2= [2,4,6,8,10]

ret=zip(l1,l2)print(ret)print(list(ret))##[(1, 2), (3, 4), (5, 6), (7, 8)]

十一 匿名函数

为了解决简单需求而设计的一句话函数

语法:   lambda 参数: 返回值

参数可以有多个,多个使用逗号分隔

只能写一行

返回值和正常函数一致,可以是任意数据类型

计算n的n次方

# 普通函数

deffunc(n):return n**nprint(func(2))

# 匿名函数

n = lambda n: n**nprint(n(2))

十二: sorted

用来做排序

会生成一个新的可迭代对象

语法:

sorted(iterable,key=None,reverse=False)

iterable 可迭代对象

key为排序规则,在sorted内部,会将每个元素作为参数传递给这个函数,然后得到一个权重值,根据权重值进行排序

reverse: 是否倒叙, True 倒叙, False为正序

# 排序后会生成一个新的可迭代对象

lis1= [4,2,6,8,10]

lis2=sorted(lis1)#原列表不动

print(lis1)#会生成一个新的列表

print(lis2)#[4, 2, 6, 8, 10]#[2, 4, 6, 8, 10]

# 将列表元素安装长度排序

list1 = ['射雕英雄传','连城诀','天龙八部','倚天屠龙纪']deffunc(s):returnlen(s)

list2=sorted(list1,key=func)print(list2)#['连城诀', '天龙八部', '射雕英雄传', '倚天屠龙纪']

#使用lambda

list1 = ['射雕英雄传','连城诀','天龙八部','倚天屠龙纪']

list2=sorted(list1,key=lambdael:len(el))print(list2)

# 列表中安装每个字典的年龄排序

l1 =[

{'name':'wangys','age':18},

{'name':'huisz','age':16},

{'name':'anyl','age':31}

]deffunc(dic):return dic['age']

l2=sorted(l1,key=func)print(l2)#[{'name': 'huisz', 'age': 16}, {'name': 'wangys', 'age': 18}, {'name': 'anyl', 'age': 31}]

#使用lambda

l1 =[

{'name':'wangys','age':18},

{'name':'huisz','age':16},

{'name':'anyl','age':31}

]

l2=sorted(l1,key=lambda dic:dic['age'])print(l2)#[{'name': 'huisz', 'age': 16}, {'name': 'wangys', 'age': 18}, {'name': 'anyl', 'age': 31}]

十三 filter筛选

是一个筛选函数

语法:

filter(function,iterable)

function: filter将可迭代对象的每一个元素传入改函数中,然后根据函数的返回值True或者False来判断是否需要过滤,返回False的元素会被过滤调

iterable,可迭代对象

# 筛选所有的偶数

l1 = [1,2,3,4,5,6,7,8,9]#常规做法

l2=[]for el inl1:if el%2 ==0:

l2.append(el)print(l2)#[2, 4, 6, 8]

#filter

deffunc(el):if el%2 ==0:returnTrueelse:returnFalse

l2=filter(func,l1)print(list(l2))#[2, 4, 6, 8]

#filter+lambda

l2 = filter(lambda el:el%2 ==0,l1)print(list(l2))#[2, 4, 6, 8]

# 筛选年龄大于20岁的人

l1 =[

{'name':'wangys','age':18},

{'name':'huisz','age':16},

{'name':'anyl','age':31}

]#常规做法

l2=[]for el inl1:if el['age'] >20:

l2.append(el)print(l2)#filter

deffunc(dic):if dic['age'] >20:returnTrueelse:returnFalse

l2=filter(func,l1)print(list(l2))#filter + lambda

l2 = filter(lambda dic:dic['age']>20,l1)print(list(l2))

十四: map映射函数

将可迭代对象中的每一个元素分别执行function函数

# 求列表中的元素的平方

l1 = [1,2,3,4,5]#常规做法1

l2 =[]for el inl1:

l2.append(el**2)print(l2)#常规做法2 列表推导式

l2 = [ el**2 for el inl1 ]print(l2)#map

deffunc(el):return el**2l2=map(func,l1)print(list(l2))#map+ lamabd

l2=map(lambda x:x**2,l1)print(list(l2))

# 将两个列表中的元素相加

l1 = [1,2,3,4,5]

l2= [2,4,6]

l3=map(lambda x,y:x+y,l1,l2)print(list(l3)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值