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)
# <list_iterator object at 0x0000023D322AD0B8>
# <list_iterator object at 0x0000023D306EC198>
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 is wangys
123
456 with open('test',encoding='utf-8') as f:
for line in f:
print(line) with open('test',encoding='utf-8') as f:
for line in f:
print(line,end='')
使用print打印进度条
import time
for i in range(0,101,2):
time.sleep(0.1)
char_num = i//2
per_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=18
l = [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 in range(len(list)):
print(i,list[i]) for i ,el in enumerate(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))
# <zip object at 0x0000023FE05EFD48>
# [(1, 2), (3, 4), (5, 6), (7, 8)]
十一 匿名函数
为了解决简单需求而设计的一句话函数
语法: lambda 参数: 返回值
- 参数可以有多个,多个使用逗号分隔
- 只能写一行
- 返回值和正常函数一致,可以是任意数据类型
计算n的n次方
# 普通函数
def func(n):
return n**n
print(func(2))
# 匿名函数
n = lambda n: n**n
print(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 = ['射雕英雄传','连城诀','天龙八部','倚天屠龙纪']
def func(s):
return len(s)
list2=sorted(list1,key=func)
print(list2)
# ['连城诀', '天龙八部', '射雕英雄传', '倚天屠龙纪'] # 使用lambda
list1 = ['射雕英雄传','连城诀','天龙八部','倚天屠龙纪']
list2=sorted(list1,key=lambda el:len(el))
print(list2)
# 列表中安装每个字典的年龄排序
l1 = [
{'name':'wangys','age':18},
{'name':'huisz','age':16},
{'name':'anyl','age':31}
]
def func(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 in l1:
if el%2 == 0:
l2.append(el)
print(l2)
# [2, 4, 6, 8] # filter
def func(el):
if el%2 == 0:
return True
else:
return False
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 in l1:
if el['age'] >20:
l2.append(el)
print(l2) # filter
def func(dic):
if dic['age'] >20:
return True
else:
return False
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 in l1:
l2.append(el**2)
print(l2)
# 常规做法2 列表推导式
l2 = [ el**2 for el in l1 ]
print(l2) # map
def func(el):
return el**2
l2=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)
Python函数之内置函数的更多相关文章
- Python基础之内置函数(二)
先上一张图,python中内置函数: python官方解释在这:点我点我 继续聊内置函数: callable(object):检查对象是否可被调用,或是否可执行,结果为bool值 def f1(): ...
- python基础之内置函数
该博客内容参考http://www.cnblogs.com/wupeiqi/articles/4943406.html 内置函数 一 详细见python文档,猛击这里 文件操作 操作文件时,一般需要经 ...
- 【python】函数之内置函数
Python基础 内置函数 今天来介绍一下Python解释器包含的一系列的内置函数,下面表格按字母顺序列出了内置函数: 下面就一一介绍一下内置函数的用法: 1.abs() 返回一个数值的绝对值,可以是 ...
- Python基础之内置函数和递归
一.内置函数 下面简单介绍几个: 1.abs() 求绝对值 2.all() 如果 iterable 的所有元素都为真(或者如果可迭代为空),则返回 True 3.any() 如果 iterable 的 ...
- python进阶之内置函数和语法糖触发魔法方法
前言 前面已经总结了关键字.运算符与魔法方法的对应关系,下面总结python内置函数对应的魔法方法. 魔法方法 数学计算 abs(args):返回绝对值,调用__abs__; round(args): ...
- python基础之内置函数补充、匿名函数、递归函数
内置函数补充 python divmod()函数:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b) 语法: 1 divmod(a, b) #a.b为数字,a为除数 ...
- python基础之内置函数和匿名函数
内置函数 学习函数以后多了很多概念,例如函数的命名空间,函数的作用域,函数的调用等等,函数的作用就是为了实现某些功能而方便以后可以调用,内置函数就是这样的一些公共的函数,被称为内置函数. 我们就一 ...
- Python系列之内置函数
内置函数 一.数学运算类: abs(a):求绝对值如果参数是个复数则返回复数的模. a = abs(-1) print(a) >>>1 compilex([real[, imag]] ...
- python学习之内置函数(二)
4.7.3 内置函数(2) int() str() bool() set() list():将一个可迭代对象转化为列表 tuple():将一个可迭代对象转换成元组 dic(): 通过相应的方式创建字典 ...
随机推荐
- MySQL触发器trigger的使用
https://www.cnblogs.com/geaozhang/p/6819648.html 触发器的触发 语句的错误 和 触发器里面 错误 都不会运行 NEW与OLD详解 MySQL 中定义了 ...
- [Jenkins]CentOS7下Jenkins搭建
最近在倒腾Kubernetes的一些东西,这次需要用到Jenkins来实现自动化构建.来讲一讲搭建的整个过程. Jenkins是什么 Jenkins提供了软件开发的持续集成服务.它运行在Servlet ...
- 非极大值抑制(NMS)的几种实现
因为之前对比了RoI pooling的几种实现,发现python.pytorch的自带工具函数速度确实很慢,所以这里再对Faster-RCNN中另一个速度瓶颈NMS做一个简单对比试验. 这里做了四组对 ...
- Pytorch tutorial 之Datar Loading and Processing (1)
引自Pytorch tutorial: Data Loading and Processing Tutorial 这节主要介绍数据的读入与处理. 数据描述:人脸姿态数据集.共有69张人脸,每张人脸都有 ...
- Python3学习笔记01-环境安装和运行环境
最近在学习Python3,想写一些自己的学习笔记.方便自己以后看,主要学习的资料来自菜鸟教程的Python3教程和廖雪峰官方网站的Python教程. 1.下载 1)打开https://www.pyth ...
- 使用sudo而无需输入密码的设置
在linux上,root用户是老大,什么事都能做.但是,很多时候由于安全等各种原因,我们不希望把root用户开放给大家,但是又希望其他的用户可以有root的权限,所以就有了sudo用户.而执行sudo ...
- WM_COMMAND消息
原文地址:https://blog.csdn.net/whm243149796/article/details/78966065 当用户点击菜单.按钮.下拉列表框等控件时候,会触发WM_COMMAND ...
- mysql备份和bin-log日志
总结]:mysql备份和bin-log日志 备份数据: mysqldump -uroot -p123456 test -l -F '/tmp/test.sql' -l:读锁(只能读取,不能更新) -F ...
- expect学习笔记及实例详解
因为最近正在学习expect脚本,但是发现网上好多文章都是转载的,觉得这篇文章还不错,所以简单修改之后拿过来和大家分享一下~ 1. expect是基于tcl演变而来的,所以很多语法和tcl类似,基本的 ...
- ACL认证 vs 密码认证
呼入时需要进行认证:acl IP认证 和 密码认证. acl 认证优先进行. ACL认证成功: Access Granted. 直接进入 sip_profile>context 进行路由 A ...