⼀. 本节主要内容:
1. 内置函数
什么是内置函数? 就是python给你提供的. 拿来直接⽤的函数, 比如print., input等等. 截⽌
到python版本3.6.2 python⼀共提供了68个内置函数. 他们就是python直接提供给我们的.

作用域相关:

  locals()返回当前作用域中的名字

  globas()返回全局作用域中的名字

迭代器相关:

  range()生成数据

  next()迭代器向下执行一次,内部实际使用了__next__()方法返回迭代器的下一个项目

  iter()获取迭代器,内部实际使用的是__iter_()方法来获取迭代器

字符串类型代码的执行

  eval()执行字符串类型的代码。并返回最终结果

print(eval("2+2")) # 4
n = 8
print(eval("2+n")) # 10
def func():
print(666)
eval("func()") # 666

  exec()执行字符串类型的代码

exec("""
for i in range(10):
print(i)
""")
exec("""
def func():
print("我是周杰伦")
func()
""")

  compile()将字符串类型的代码编译。代码对象能够通过exec语句来执行或者 eval()进行

  求值

  参数说明:

    1.resource 要执行的代码,动态代码片段

    2.文件名,代码存放的文件名,当传入了第一个参数的时候,这个参数给空就可以了

    3.模式,取值有三个:

      1.exec:一般放一些流程语句的时候使用

      2.eval:resource之存放一个求值表达式。

      3.single:resource存放的代码有交互的时候,使用

code1 = "for i in range(10): print(i)"
c1 = compile(code1, "", mode="exec")
exec(c1) code2 = "1+2+3"
c2 = compile(code2, "", mode="eval")
a = eval(c2)
print(a) code3 = "name = input('请输⼊你的名字:')"
c3 = compile(code3, "", mode="single")
exec(c3)
print(name)

  有返回值的字符串形式的代码用eval(),没有返回值的字符串形式的代码用exec(),一般很少

  用到compile()

  输入和输出相关:
    input()获取用户输入的内容

    print()打印输出

  内存相关:

    hash()获取对象的哈希值(int,str,bool,tuple)

    id()获取到对象的内存地址

  文件操作相关:
    open()用于打开一个文件,创建一个文件句柄

  模块相关:

    __import__()用于动态加载类和函数

  帮助:

    help()函数用于查看函数或模块用途的详细说明

  调用相关:

    callable()用于检查一个对象是否是可调用。如果返回True,object有可能调用失败,但如果

  返回False,那调用绝对不会成功。

  查看内置属性:
    敌人()查看对象的内置属性,方法。访问的是对象中的__dir__()方法

  基础数据类型相关:

    数字相关:

      bool()将给定的数据转换成bool值。如果不给值。返回False

      int()    将给定的数据转换成int值,如果不给值,返回0

      float()  将给定的数据转换成float值。也就是小数

      complex()创建一个复数,第一个参数为实部,第二个参数为虚部。或者第一个参数直

      接用字符串来描述复数

  进制转换:

    bin()将给的参数转换成二进制

    otc()将给的参数转换成八进制

    hex()将给的参数转换成十六进制

  数学运算:
    abs()返回绝对值

    divmode()返回商和余数

    round()四舍五入

    pow(a,b)求a的b次幂,如果有三个参数。则求完次幂后对第三个数取余

    sum()求和

    min()求最小值

    max()求最大值

  和数据结构相关:

    列表和元组:

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

      tuple()将一个可迭代对象转换成元组

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

      slice()列表的切片

st = "⼤家好, 我是麻花藤"
s = slice(1, 5, 2)
print(st[s])

  字符串相关:

    str() 将数据转化成字符串

    format()与具体数据有关,用于计算各种小数,精算等。

# 字符串
print(format('test', '<20')) # 左对⻬
print(format('test', '>20')) # 右对⻬
print(format('test', '^20')) # 居中
# 数值
print(format(3, 'b')) # ⼆进制
print(format(97, 'c')) # 转换成unicode字符
print(format(11, 'd')) # ⼗进制
print(format(11, 'o')) # ⼋进制
print(format(11, 'x')) # ⼗六进制(⼩写字⺟)
print(format(11, 'X')) # ⼗六进制(⼤写字字⺟)
print(format(11, 'n')) # 和d⼀样
print(format(11)) # 和d⼀样
# 浮点数
print(format(123456789, 'e')) # 科学计数法. 默认保留6位⼩数
print(format(123456789, '0.2e')) # 科学计数法. 保留2位⼩数(⼩写)
print(format(123456789, '0.2E')) # 科学计数法. 保留2位⼩数(⼤写)
print(format(1.23456789, 'f')) # ⼩数点计数法. 保留6位⼩数
print(format(1.23456789, '0.2f')) # ⼩数点计数法. 保留2位⼩数
print(format(1.23456789, '0.10f')) # ⼩数点计数法. 保留10位⼩数
print(format(1.23456789e+10000, 'F')) # ⼩数点计数法.

  

  bytes()把字符串转化成bytes类型

s = "你好"
bs = s.encode("UTF-8")
print(bs)
s1 = bs.decode("UTF-8")
print(s1)
bs = bytes(s, encoding="utf-8") # 把字符串编码成UTF-8
print(bs)

  

  bytearray()返回一个新字节数组。这个数字里的元素是可变的,并且每个元素的值的范围

  是 [0,256)

ret = bytearray('alex',encoding='utf-8')
print(ret[0])
print(ret)

  

  memoryview()查看bytes在内存中的情况

# 查看bytes字节在内存中的情况
s = memoryview("麻花藤".encode("utf-8"))
print(s)

  

  ord()输入字符找带字符编码的位置

  chr()输入位置数字找出对应的字符

  ascii()是ascii码中的返回值,不是就返回\u..

# 找到对应字符的编码位置
print(ord('a'))
print(ord('中')) # 找到对应编码位置的字符
print(chr(97))
print(chr(20013)) # 在ascii中就返回这个值. 如果不在就返回\u...
print(ascii('a'))
print(ascii('好'))

  

  rep()返回一个对象的string的形式

# repr 就是原封不动的输出, 引号和转义字符都不起作⽤
print(repr('⼤家好,\n \t我叫周杰伦'))
print('⼤家好我叫周杰伦')
# %r 原封不动的写出来
name = 'taibai'
print('我叫%r' % name)

  数据集合:
    dict()创建一个字典

    set()创建一个集合

    frozenset()创建一个冻结的集合,冻结的集合不能进行添加和删除操作

  其他相关:

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

    sorted() 对可迭代对象进行排序操作,可以配合lamda()

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

lst = ["alex", "wusir", "taibai"]
for index, el in enumerate(lst):
print(str(index)+"==>"+el)

  all() 可迭代对象中全部是True,结果才是True

  any()可迭代对象中有一个是True,结果是True

print(all([1,2,True,0]))
print(any([1,'',0]))

  zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元祖组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。

l1 = [1,2,3,]
l2 = ['a','b','c',5]
l3 = ('*','**',(1,2,3))
for i in zip(l1,l2,l3):
print(i)

  filter() 过滤,也可以配合lamda使用

  map()会根据提供的函数对指定序列做映射,也可以配合lamda使用

二、lamda函数

  lamda匿名函数

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

# 计算n的n次⽅
def func(n):
return n**n
print(func(10)) f = lambda n: n**n
print(f(10))

  lambda表⽰的是匿名函数. 不需要⽤def来声明, ⼀句话就可以声明出⼀个函数

语法:

  函数名 = lambda 参数: 返回值

注意:

  1. 函数的参数可以有多个. 多个参数之间⽤逗号隔开
  2. 匿名函数不管多复杂. 只能写⼀⾏, 且逻辑结束后直接返回数据
  3. 返回值和正常的函数⼀样, 可以是任意数据类型

  匿名函数并不是说⼀定没有名字. 这⾥前⾯的变量就是⼀个函数名. 说他是匿名原因是我们通
  过__name__查看的时候是没有名字的. 统⼀都叫lambda. 在调⽤的时候没有什么特别之处.
  像正常的函数调⽤即可

详细讲解sorted()

  排序函数:

  语法: sorted(Iterable, key=None, reverse=False)

      Iterable: 可迭代对象

      key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每⼀个元素传递给这个函
      数的参数. 根据函数运算的结果进⾏排序

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

lst = [1,5,3,4,6]
lst2 = sorted(lst)
print(lst) # 原列表不会改变
print(lst2) # 返回的新列表是经过排序的
dic = {1:'A', 3:'C', 2:'B'}
print(sorted(dic)) # 如果是字典. 则返回排序过后的key

  和函数组合使用

# 根据字符串⻓度进⾏排序
lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"]
# 计算字符串⻓度
def func(s):
return len(s)
print(sorted(lst, key=func))

  和lambda组合使用

# 根据字符串⻓度进⾏排序
lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"]
# 计算字符串⻓度
def func(s):
return len(s)
print(sorted(lst, key=lambda s: len(s)))
lst = [{"id":1, "name":'alex', "age":18},
{"id":2, "name":'wusir', "age":16},
{"id":3, "name":'taibai', "age":17}]
# 按照年龄对学⽣信息进⾏排序
print(sorted(lst, key=lambda e: e['age']))

三、filter()详解

  筛选函数

  语法: filter(function. Iterable)

    function: ⽤来筛选的函数. 在filter中会⾃动的把iterable中的元素传递给function. 然后
        根据function返回的True或者False来判断是否保留此项数据

    Iterable: 可迭代对象

lst = [1,2,3,4,5,6,7]
ll = filter(lambda x: x%2==0, lst) # 筛选所有的偶数
print(ll)
print(list(ll))
lst = [{"id":1, "name":'alex', "age":18},
{"id":2, "name":'wusir', "age":16},
{"id":3, "name":'taibai', "age":17}]
fl = filter(lambda e: e['age'] > 16, lst) # 筛选年龄⼤于16的数据
print(list(fl))

  

四、map()详解

  映射函数 

  语法: map(function, iterable) 可以对可迭代对象中的每⼀个元素进⾏映射. 分别取执⾏
  function
  计算列表中每个元素的平⽅ ,返回新列表

def func(e):
return e*e
mp = map(func, [1, 2, 3, 4, 5])
print(mp)
print(list(mp))

  改写lambda

print(list(map(lambda x: x * x, [1, 2, 3, 4, 5])))

  计算两个列表中相同位置的数据的和

# 计算两个列表相同位置的数据的和
lst1 = [1, 2, 3, 4, 5]
lst2 = [2, 4, 6, 8, 10]
print(list(map(lambda x, y: x+y, lst1, lst2)))

  最后

  附上一个内置函数的思维导图:

  https://www.processon.com/view/link/5c10d5fde4b0fd4819959b0d

  密码:

  5bI2

python内置函数一的更多相关文章

  1. python内置函数

    python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...

  2. python 内置函数和函数装饰器

    python内置函数 1.数学相关 abs(x) 取x绝对值 divmode(x,y) 取x除以y的商和余数,常用做分页,返回商和余数组成一个元组 pow(x,y[,z]) 取x的y次方 ,等同于x ...

  3. Python基础篇【第2篇】: Python内置函数(一)

    Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位 ...

  4. [python基础知识]python内置函数map/reduce/filter

    python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法) ...

  5. Python内置函数进制转换的用法

    使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Convert an integer numb ...

  6. Python内置函数(12)——str

    英文文档: class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string  ...

  7. Python内置函数(61)——str

    英文文档: class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string ...

  8. 那些年,很多人没看懂的Python内置函数

    Python之所以特别的简单就是因为有很多的内置函数是在你的程序"运行之前"就已经帮你运行好了,所以,可以用这个的特性简化很多的步骤.这也是让Python语言变得特别的简单的原因之 ...

  9. Python 内置函数笔记

    其中有几个方法没怎么用过, 所以没整理到 Python内置函数 abs(a) 返回a的绝对值.该参数可以是整数或浮点数.如果参数是一个复数,则返回其大小 all(a) 如果元组.列表里面的所有元素都非 ...

  10. 【转】实习小记-python 内置函数__eq__函数引发的探索

    [转]实习小记-python 内置函数__eq__函数引发的探索 乱写__eq__会发生啥?请看代码.. >>> class A: ... def __eq__(self, othe ...

随机推荐

  1. Hadoop完全分布式环境搭建(四)——基于Ubuntu16.04安装和配置Hadoop大数据环境

    [系统环境] [安装配置概要] 1.上传hadoop安装文件到主节点机器 2.给文件夹设置权限 3.解压 4.拷贝到目标文件夹 放在/opt文件夹下,目录结构:/opt/hadoop/hadoop-2 ...

  2. jQuery--修改表单数据并提交

    目的: ​点击'编辑',弹出对话框,修改数据. 主要知识点: prevAll(),获取同级别本元素前面的所有元素. 代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

  3. LoadRunner 学习(基础一)

    最近开始正式系统地学习LoadRunner11.本想在自己觉得确实学到了比较有成就感的时候再mark一下,写个博客分享.阶段性地或者在自己有所小收获的时候,做做笔记分享下也好.这次作为开篇,我想记录下 ...

  4. ASP.NET多页面传递数据,附框架源码

    很多时候我们需要把数据传递到多个页面,比如表单提交可以指定提交数据到某个页面,那么关闭某个页面怎么把数据传递到上一个页面或者它的父页面. 在这里我附一段源码用于当前页面关闭指定某个页面刷新. 子页面方 ...

  5. (转)通过Javascript得到URL中的参数(query string)

    原文地址:http://www.cnblogs.com/season-huang/p/3322561.html 我们知道,"GET"请求中,通常把参数放在URL后面,比如这样htt ...

  6. delphi监控文件夹

    (****************************************** 文件和目录监控 当磁盘上有文件或目录操作时,产生事件 使用方法: 开始监控: PathWatch(Self.Ha ...

  7. Oracle大字段(clob)模糊查询优化方法

    对于内容很多的时候clob打字段模糊查询很慢,整理一个小方法: 1,在查询的列上建索引 2,对于要查询的clob字段使用一下语句创建索引   CREATE INDEX idx_zs_info_note ...

  8. this、static、main方法、静态代码块、final关键字、Runtime类、Cloneable类、类成员的访问控制权限、异常体系

    this表示当前对象,用在方法内部,当某对象调用该方法时,该方法中的this就代表调用该方法的对象: static关键字: 修饰类属性后,该属性就成为该类所有实例的公共属性,修改该属性值,所有的实例的 ...

  9. 题解 P2350 【[HAOI2012]外星人】

    题目链接 还是本宝宝写题解的一贯习惯 $ :$ 先吐槽吐槽这道题$……$ 相信不少同学第一眼一定没有看懂题.(因为我也没看懂) ~~初中~~数学知识: 对于函数 $ f(x)$ 有 $f^{-1}(x ...

  10. FireFox调试代码技巧

    本文版权归 csdn DyncRole 所有,此处为技术收藏,如有再转请标明原创作者及出处,以示尊重! 作者:DyncRole 原文:http://blog.csdn.net/qqhjqs/artic ...