内置函数 匿名函数 eval exec execute compile sorted map filter等常见函数 repr chr ord...
内置函数
什么是内置函数? 就是python给你提供的. 拿来直接用的函数, 比如print., input等等. 截⽌止 到python版本3.6.2 python⼀共提供了了68个内置函数. 他们就是python直接提供给我们的. 有 ⼀些我们已经⽤用过了了. 有一些还没有⽤用过. 还有⼀些需要学完了了⾯向对象才能继续学习的. 今 天我们就认识一下python的内置函数
作用域相关: locals() 返回当前作⽤用域中的名
globals() 返回全局作⽤用域中的名
迭代器相关:
range() 生成数据
next() 迭代器向下执行⼀次, 内部实际使用了__next__()方法返回迭代器的下⼀个项⽬
iter() 获取迭代器, 内部实际使⽤用的是__iter__()⽅方法来获取迭代器
输入和输出相关:
input() 获取⽤用户输入的内容
print() 打印输出
内存相关:
hash() 获取到对象的哈希值(int, str, bool, tuple)
id() 获取到对象的内存地址
数字算出来就是数字本身. 其他的数据算完一坨很长的数字 print(hash("123456789")) # hash算法. 最后算出来的一定是一个数字 print(id("呵呵"))is 比较内存地址== 比较的是值
⽂件操作相关:
open() 用于⼝打开⼀个文件, 创建⼀个文件句柄
模块相关:
__import__() 用于动态加载类和函数
re = __import__(input("请输入你要导入的模块名:")) re.search()
帮助:
help() 函数⽤用于查看函数或模块⽤用途的详细说明
print(help(str)) # 查看帮助....高级框架
调⽤相关:
callable() ⽤用于检查⼀个对象是否是可调⽤用的. 如果返回True, object有可能调⽤用失败, 但 如果返回False. 那调用绝对不会成功
查看内置属性:
dir() 查看对象的内置属性, 方法. 访问的是对象中的__dir__()⽅法
基础数据类型相关:
数字相关:
bool() 将给定的数据转换成bool值. 如果不给值. 返回False
int() 将给定的数据转换成int值. 如果不给值, 返回0
float() 将给定的数据转换成float值. 也就是小数
complex() 创建⼀个复数. 第⼀个参数为实部, 第⼆个参数为虚部. 或者第⼀个参数直接 ⽤字符串来描述复数
进制转换:
bin() 将给的参数转换成二进制
otc() 将给的参数转换成八进制
hex() 将给的参数转换成十六进制
数学运算:
abs() 返回绝对
divmode() 返回商和余数 ##print(divmod(20, 3)) ##(6, 2)
round() 四舍五入 整数是奇数 -> 正常四舍五入 偶数 -> 五舍六入
pow(a, b) 求a的b次幂, 如果有三个参数. 则求完次幂后对第三个数取余
sum() 求和
min() 求最小值
max() 求最大值
和数据结构相关:
列表和元组:
list() 将⼀个可迭代对象转换成列列表
tuple() 将⼀个可迭代对象转换成元组
reversed() 将⼀个序列翻转, 返回翻转序列列的迭代器
slice() 列表的切片
huiwen = "上海自来水来自海上" #这里判断回文 s = huiwen[::-1]
it = reversed(huiwen) # 返回的是迭代器reversed 返回的是迭代器 s = "" for el in it:s += el print(s)
lst = ["河南话", "四川话", "东北", "山东", "上海"]
# s = slice(3,5) # 切片. 麻烦 #用的是slice切片,同理lst[3,5] # print(lst[s]) #这里切片太麻烦所以基本不用slice
# 家,
# 记这个 ####拿到一个列表中的索引和所对应的元素 for i in range(len(lst)):print(i, lst[i])for i, el in enumerate(lst, 1):print(i, el)
字符串串相关:
str() 将数据转化成字符串串
format() 与具体数据相关, ⽤用于计算各种小数, 精算等 #####这里是重点,主要是数值和浮点数居多
bytes() 把字符串串转化成bytes类型
bytearray() 返回⼀一个新字节数组. 这个数字⾥里里的元素是可变的, 并且每个元素的值 得范 围是[0,256)
memoryview() 查看bytes在内存中的情况
ord() 输入字符找带字符编码的位置
chr() 输入位置数字找出对应的字符
ascii() 是ascii码中的返回该值 不是就返回\u...
repr() ###########返回⼀个对象的string形式
转义字符 \n 换行 \t tab 制表符 \r 回车 \" 双引号 \' 单引号 \\ \ print('你好, 我叫周杰伦.我来自\\n台湾. 我老婆叫昆凌')repr() # 还原字符串最官方的效果 这里的字符串能够被所有语言显示,用其他语言能原封不动的显示字符串的内容 str:python的字符串 repr: 所有的字符串 print(repr("你好. \\n我叫\周杰伦")) # python -> repr() -> cpython c里面. 报错print(r"\n\t范德萨发生\r\b\ffdsaf") # 原封不动的显示字符串
数据集合:
dict() 创建⼀个字典
set() 创建⼀个集合
frozenset() 创建⼀个冻结的集合. 冻结的集合不能进⾏添加和删除操作
其他相关:
len() 返回⼀个对象中的元素的个数
sorted() 对可迭代对象进⾏行行排序操作(讲完lamda后再讲这个)
enumerate() 获取集合的枚举对象
all() 可迭代对象中全部是True, 结果才是True 类似于and
any() 可迭代对象中有⼀个是True, 结果就是True 类似于or
zip() 函数⽤于将可迭代的对象作为参数, 将对象中对应的元素打包成⼀个元组, 然后返回由这些元组组成的开了了表. 如果各个迭代器的元素个数不一致, 则返回列列表⻓度与 最短 的对象相同.
# ###zip 拉链函数 lst1 = ["赵四", "刘能", "香秀"] lst2 = ["刘晓光", "王小利"] # 水桶效应 lst3 = ["街舞", "磕巴", "哭"] z = zip(lst1, lst2, lst3) print("__iter__" in dir(z)) # 判断是否是可迭代对象 for el in z:print(el) # True # ('赵四', '刘晓光', '街舞') # ('刘能', '王小利', '磕巴')
匿名函数
# 匿名函数统一的名字是:<lambda> fn = lambda a, b : a + b # 定义一个很简单的函数. 复杂的函数不要用lambda ret = fn(3, 5) print(ret) print(func) print(fn)使用场景: 配合着sorted, map, filter 一起使用
sorted 排序函数. 让你自己去定义排序的规则
filter() 过滤(讲完lamda)
map() 会根据提供的函数对指定序列列做映射(lamda)
lst = [11,5,36,1,27,58] s = sorted(lst) # 默认从小到大排序. ### sorted默认值是将数值从小到大排序 print(s)
lst = ["胡一菲", "张伟", "关谷神奇", "曾小贤吕小布", "诺澜"] # 按照字符串长度排序 def func(s):return len(s) # 返回长度
# # 执行流程:# # 把可迭代对象中的每一项拿出来, 作为参数传递给后面key函数.# # 函数返回数字. 根据数字进行排序s = sorted(lst, key=func)print(s) print(sorted(lst, key=lambda s:len(s) ))##### sorted排序
['张伟', '诺澜', '胡一菲', '关谷神奇', '曾小贤吕小布']
['张伟', '诺澜', '胡一菲', '关谷神奇', '曾小贤吕小布']
####
lst = [{"name":"alex", "shengao":150, "tizhong":250},{"name":"wusir", "shengao":158, "tizhong":150},{"name":"taibai", "shengao":177, "tizhong":130},{"name":"ritian", "shengao":165, "tizhong":130},{"name":"nvshen", "shengao":160, "tizhong":120},{"name":"baolang", "shengao":183, "tizhong":190} ]# 按照体重进行排序 sorted排序
print(sorted(lst, key=lambda dic:dic['tizhong'], reverse=True))
# filter 过滤 lst = ["张无忌", "张翠山", "范冰冰", "金毛狮王", "李冰冰"]# 过滤掉姓张的人 # 把可迭代对象打开. 把内部元素一个一个的传递给前面的函数. 由这个函数决定此项是否保留 f = filter(lambda name : not name.startswith("张"), lst) print("__iter__" in dir(f)) # 可迭代对象 for el in f:print(el)
lst = [{"name":"alex", "shengao":150, "tizhong":250},{"name":"wusir", "shengao":158, "tizhong":150},{"name":"taibai", "shengao":177, "tizhong":130},{"name":"ritian", "shengao":165, "tizhong":130},{"name":"nvshen", "shengao":160, "tizhong":120},{"name":"baolang", "shengao":183, "tizhong":190} ]# 过滤掉体重大于180的人 想要的是 小于180 filter 过滤
f = filter(lambda d : d['tizhong'] <= 180, lst) print(list(f))
map() 映射函数 lst = ["篮球球", "打打台球", "唱歌", "爬慌山", "步"]m = map(lambda s: "爱好:"+s , lst)print(list(m))
#['爱好:篮球球', '爱好:打打台球', '爱好:唱歌', '爱好:爬慌山', '爱好:步']#
lst = [1,5,78,12,16] # 计算每个数字的平方 map() 映射函数 print([i **2 for i in lst]) ##[1, 25, 6084, 144, 256]
m = map(lambda i: i ** 2, lst) print(list(m)) ##[1, 25, 6084, 144, 256]
参考资料:内置函数分类图
https://www.processon.com/view/link/5b4ee15be4b0edb750de96ac
eval 是把字符串类型的数据作为代码进行执行
eval 是把字符串类型的数据作为代码进行执行 s = "18+2" ret = eval(s) # 执行字符串类型的代码 print(ret) code = input("请输入你要执行的代码:") ret = eval(code) print(ret) s = "{'name':'alex', 'age':18, 'isMan':False}" # 字符串 # 把字符串类型的代码还原回字典, 列表, 元组 ret = eval(s) # 侧重的有返回值 print(ret) print(type(ret))
exec execute 执行字符串类型的代码, 不能太长. 不能太乱
exec execute 执行字符串类型的代码, 不能太长. 不能太乱 code = input("请输入你要执行的代码") exec(code) # 没有返回值. 想要返回值用eval print(a) # pycharm报错不一定准 compile 编译: 把你要执行的代码先预编译. 通过exec和eval可以执行我们的代码code = ''' for i in range(10):if i % 2 == 0:print(i) '''
compile(code, "", "exec") # 预加载代码
c = compile(code, "", "exec") # 预加载代码 # exec exec(c) # 运行代码 可以使用complie写一个编程大赛.
转载于:https://www.cnblogs.com/H1050676808/p/10109209.html
内置函数 匿名函数 eval exec execute compile sorted map filter等常见函数 repr chr ord...相关推荐
- python学习日记(内置、匿名函数练习题)
用map来处理字符串列表 用map来处理字符串列表,把列表中所有水果都变成juice,比方apple_juice fruits=['apple','orange','mango','watermelo ...
- 内置函数 ,匿名函数
python之内置函数,匿名函数 内置函数 我们一起来看看python里的内置函数.什么是内置函数?就是Python给你提供的,拿来直接用的函数,比如print,input等等.截止到python版本 ...
- python笔记4 内置函数,匿名函数.递归函数 面向对象(基础, 组合,继承)
内置函数 eval和exec eval :执行字符串中的代码并将结果返回给执行者,有返回值 exec:执行字符串中的代码,往往用于执行流程语句,没有返回值. s1 = '1+2' s2 = 'prin ...
- Python中匿名函数与内置高阶函数详解
大家好,从今天起早起Python将持续更新由小甜同学从 初学者的角度 学习Python的笔记,其特点就是全文大多由 新手易理解 的 代码与注释及动态演示 .刚入门的读者千万不要错过! 很多人学习pyt ...
- JS(内置对象,全局函数,事件,事件对象)
目录 内置对象 全局函数 事件 事件对象 内置对象 <!DOCTYPE html> <html><head><meta charset="utf-8 ...
- python内置数字类型转换函数_Python学习 Day2-2 Python3的基本数据类型、数据内置类型转换函数...
Python3的基本数据类型 Python 中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在 Python 中,变量就是变量,它没有类型,我们所说的"类型& ...
- python中的内置高阶函数
一. 内置高阶函数的类型 (一).内置高阶函数map """ map():接收两个参数,一个是函数 一个是序列 map将传入的函数依次作用到序列的每个元素,并且把结果作为 ...
- 【Kotlin】Kotlin 函数总结 ( 具名函数 | 匿名函数 | Lambda 表达式 | 闭包 | 内联函数 | 函数引用 )
文章目录 一.函数头声明 二.函数参数 1.默认参数值 2.具名参数 三.Unit 函数 四.TODO 函数抛出异常返回 Nothing 类型 五.反引号函数名 六.匿名函数 七.匿名函数的函数类型 ...
- CAPL内置的时间函数
CAPL内置的时间函数 在CAPL中我们要经常和时间打交道,为了方便的写CAPL脚本,所以我整理了Vector官方提供的与时间有关的函数,并对常用的进行简单说明. 本文主体部分摘录了Vector的官方 ...
最新文章
- springboot-6-整合jdbc
- 小冰负责人李笛:微软不缺钱,缺对未来的把握
- 2018.10.25-dtoj-2903-蛋糕(cake)
- pve 不订阅更新_??“吃鸡”体验服已无更新,暗夜危机2.0或将被1款新游代替
- KMP算法 java版本
- hexo部署在码云出现样式问题
- Apache Camel 3 –新增功能前10名
- docker常用参数详解,docker run常用参数详解(精)
- Eclipse3.2下JFace和SWT工程环境配置方法
- vue 随机显示数组的其中一个_两个显示器组建双屏其中一个屏幕出现重影解决方法...
- 正则表达式-验证带千分号的,带任意位小数的数字类型
- 火灾检测、人流量统计、安全帽检测,飞桨开源一键运行的产业案例教程
- mysql存储过程的学习(mysql提高执行效率之进阶过程)
- LTE网络架构简化了
- php 内网/外网ip判断
- KumiaoQQ机器人框架源码(带成品)
- java pgm_如何用Java读取PGM图像?
- MFC 菜单栏添加方法
- 幻想战姬PVP模拟器(二)
- 供给云saas平台小程序赋能门店增加销售额
热门文章
- 头条系 巨量算数 _signature
- 人工智能-用matlab实现数字识别
- 项目经理和团队如何产生距离美?
- 实现客户机(Client)类声明字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户机数量;定义静态函数成员ChangeServerName
- 用photoshop拼接一个七巧板图案
- win7将mysql换个盘_win7系统镜像文件包win7系统驱动光盘
- mysql嵌套select_select 嵌套查询
- iOS中设置百度地图自定义标注图片,自定义泡泡
- 2018-1-4 Javascript实例演示:
- matlab中如何打出心,如何在MATLAB中再现这个心形网格?