一、内置函数

1、abs()--取绝对值函数

  1. print(abs(-0.11))
  2. x=-0.01
  3. y=0.11
  4. print(abs(x),abs(y))
  5. ------------------------------
  6. 0.11
  7. 0.01 0.11

2、all()--判断可迭代对象内是否有0或false或元素为空

all(iterable)如果非可迭代对象,则会报错

  1. >>> all(123)
  2. Traceback (most recent call last):
  3. File "<stdin>", line 1, in <module>
  4. TypeError: 'int' object is not iterable
  5.  
  6. print(all([0,-5,-1]))#0为假,负数为真
  7. print(all([-1,-2,-3]))
  8. print(all([1,2,3,'false']))
  9. print(all([1,2,3,'false','']))#有空对象
  10. print(all([1,2,3,False]))#有False
  11. print(all([]))
  12. print(all({'':''}))
  13. print(all({0:''}))
  14. print(all({}))
  15. print(all(''))
  16. #all 可迭代的对象内 如果存在假的 则返回false。此时空的为真
  17. #any 可迭代的对象内 如果存在真的 则返回true 此时空的为假
  18. ----------------------------------
  19. False
  20. True
  21. True
  22. False
  23. False
  24. True
  25. True
  26. False
  27. True
  28. True

3、any()---判断给定的可迭代参数 iterable 是否全部为空对象,如果都为空、0、false,则返回 False,如果不都为空、0、false,则返回 True。

any 与all用法相似 需要用Iterable
any(Iterable)

  1. print(any([0,1,3]))
  2. print(any([]))
  3. print(any([-1]))
  4. print(any([0]))
  5. print(any([0,-1]))
  6. ------------------------------
  7. True
  8. False
  9. True
  10. False
  11. True

4、bin()--- 将数字转换为二进制

  1. print('bin 将数字转换为二进制')
  2. print(bin(255))
  3. print(bin(-255))
  4. print(bin(4))
  5. print(bin(-4))
  6. ----------------------
  7. 0b11111111
  8. -0b11111111
  9. 0b100
  10. -0b100

5、bool()---布尔值判断

空和0 为假,需要注意0的情况,如list[0]、dict{0:123}这种情况为真

  1. print(bool(0))#假
  2. print(bool(1))
  3. print(bool(-1))
  4. print(bool([]))#假
  5. print(bool([0]))
  6. print(bool([1]))
  7. print(bool([-1]))
  8. print(bool({}))#假
  9. print(bool({0:''}))
  10. print(bool({1:'xx'}))
  11. print(bool({-1:'xxx'}))
  12. #布尔值判断 空和0为假
  13. -------------------------------------------------
  14. False
  15. True
  16. True
  17. False
  18. True
  19. True
  20. True
  21. False
  22. True
  23. True
  24. True

6、bytes()---与encode方法类似

需要理解的是python中str格式与bytes格式b‘xxxxx’、r'xxxxx'、‘\uxxxxxx’这些格式的使用

bytes的作用为将字符串转码为bytes类型,实际和encode的效果一样。

  1. astr='你好'
  2. print(bytes(astr,encoding='utf-8'))#将一个字符串装换为b类型
  3. print(astr.encode('utf-8'))
  4. print(astr.encode('gbk'))
  5. print(astr.encode('utf-8').decode('utf-8').encode('gbk'))
  6. # str (unicode) -> encode -> utf -8 -> decode-> unicode -> str -> encode -> gbk
  7. print(astr.encode('unicode_escape'))
  8. print(bytes(astr,encoding='unicode_escape'))
  9. print(astr.encode('unicode_escape').decode('unicode_escape'))
  10. print(astr.encode('unicode_escape').decode())
  11. -----------------------------------------------
  12. b'\xe4\xbd\xa0\xe5\xa5\xbd'
  13. b'\xe4\xbd\xa0\xe5\xa5\xbd'
  14. b'\xc4\xe3\xba\xc3'
  15. b'\xc4\xe3\xba\xc3'
  16. b'\\u4f60\\u597d'
  17. b'\\u4f60\\u597d'
  18. 你好
  19. \u4f60\u597d

7、bytearrary()----很少用到

可以对byte类型数据进行修改,了解即可

  1. c=bytes('abc',encoding='utf-8')
  2. print(c,c.capitalize())
  3. print(c)#输出c 发现大小写没有改变
  4. c=c.capitalize()
  5. #c字符串不能被改变,只能重新覆盖
  6. print(c)
  7. d=bytearray('abc',encoding='utf-8')
  8. print(c,d)
  9. d[1]=70
  10. print(c,d,d[1])
  11. #c[1]=44 TypeError: 'bytes' object does not support item assignment
  12. print(c,d)
  13. -------------------------------------
  14. b'abc' b'Abc'
  15. b'abc'
  16. b'Abc'
  17. b'Abc' bytearray(b'abc')
  18. b'Abc' bytearray(b'aFc') 70
  19. b'Abc' bytearray(b'aFc')

8、callable()---是否可调用

#callable()#判断是否可调用 变量后面加()表示调用,函数可以调用,类可以调用。列表字典不能调用

  1. print(callable({}))
  2. ----------------------
  3. False

9、chr()--- ASCII码转换成字符 对应ord() 字符转为ASCII码

知道A 65 a97 相差32

  1. print(chr(100))
  2. print(chr(96))
  3. print(chr(70))
  4. print(ord('A')) #大A的ascii码和小a差32
  5. print(ord('a'))
  6. -----------------------------------
  7. d
  8. `
  9. F
  10. 65
  11. 97

10、compile()---仅做个了解 不常用 将str装换成可执行的形式

平时看上去和直接使用exec、eval没什么区别

  1. print('--------------------')str = "3 * 4 + 5"
  2. a = compile(str,'','eval')
  3. x=eval(a)
  4. print(x)
  5. str = "for i in range(0,10,3): print(i)"
  6. c = compile(str,'','exec') # 编译为字节代码对象
  7. exec(c)
  8. print('--------------------')
  9. exec(str)
  10. -------------------------

--------------------
17
0
3
6
9
--------------------
0
3
6
9

11、complex()---复数 此处不做了解 一般用不着

12、dict()---生成一个空字典

  1. a=dict()
  2. b={}#ab两种生成方式实际没有区别
  3. print(type(a),a,len(a))
  4. print(type(b),b,len(b))
  5. -------------------------------
  6. <class 'dict'> {} 0
  7. <class 'dict'> {} 0

13、dir()---查看一个变量有哪些内部方法 用于查询

  1. >>> import time
  2. >>> dir(time)
  3. ['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'altzone', 'asctime', 'clock', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 'mktime', 'monotonic', 'perf_counter', 'process_time', 'sleep', 'strftime', 'strptime', 'struct_time', 'time', 'timezone', 'tzname']
  4. >>>

14、divmod()---求商取余 第一个为商 第二个为余数

  1. print(divmod(10,3),divmod(100,25),divmod(3,5))#返回一个元组 第一个元素为商,第二个为余数
    -----------------------------------
    (3, 1) (4, 0) (0, 3)

15、eval()---用来将字符串转换为字典、列表

16、exec()---执行str

17、lambda()----匿名函数

三种功能:数字运算与逻辑运算、数据过滤、与functools结合做数列求和求积运算

数字与逻辑运算:

  1. print(lambda x:x+1) #输出函数体的位置
  2. print((lambda x:x+1)(1))#定义一个函数 接收左边的x 右边表示要输出结果 x+1
  3. print((lambda x:x if x >10 else 10)(5)) #定义一个函数 左边为输入x 右边如果x>10则输出x 否则输出y 用括号调用
  4. tmp_x=lambda x:x if x>10 else 20 #将函数体赋值 相当于def了一个函数
  5. print(tmp_x(5)) #函数调用
  6. (lambda x:print(x) if x>10 else print(50))(10)#用print的方式时一样的
  7. --------------------------------
  8. <function <lambda> at 0x0000015B82F62E18>
  9. 2
  10. 10
  11. 20
  12. 50

数据过滤(与map或filter结合使用,注意filter、map的区别):

  1. t1=filter(lambda i:i>3,range(7))
  2. t2=filter(lambda i:i*3,range(7))
  3. print(t1)
  4. for i in t1:
  5. print(i)
  6. print(t2)
  7. for i in t2:
  8. print(i)
  9. #lambda不仅能表示函数运算还能表示一种关系 配合filter进行过滤
  10. print('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
  11. #t3=map(lambda i:i*3,range(7))
  12. t3=map(lambda i:i>3,range(7))#与filter对比
  13. print(t3)
  14. for i in t3:
  15. print(i)
  16. -------------------------------------------
  17. <filter object at 0x000001B68E7EFC50>
  18. 4
  19. 5
  20. 6
  21. <filter object at 0x000001B68E7EFCC0>
  22. 1
  23. 2
  24. 3
  25. 4
  26. 5
  27. 6
  28. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  29. <map object at 0x000001B68E7EFC88>
  30. False
  31. False
  32. False
  33. False
  34. True
  35. True
  36. True

此程序说明:filter()结合lambda使用,是完成过滤的效果,能将符合条件的值显示出来,但是不能进行计算,所以t2=filter(lambda i:i*3,range(7))的结果为1-6,此处还需要注意range(7)表示的数字范围为1-6,没有7和0。filter与map对比,map所输出的结果为布尔值,不是最后过滤出来的数据

与functools结合做数列求和求积运算:

  1. import functools
  2. t3=functools.reduce(lambda x,y:x+y,range(101))
  3. print(t3)
  4. t4=functools.reduce(lambda x,y:x*y,range(1,5))
  5. print(t4)
  6. t5=functools.reduce(lambda x,y:x*y,range(5))
  7. print(t5)
  8. ----------------------------
  9. 5050
  10. 24 #1*2*3*4
  11. 0 #这里从0开始

18.float()---浮点数

19、format---字符串格式输出 先不深究

  1. import time
  2. x='%Y %m %d %X'
  3. print(time.strftime(x))

20 frozenset()---只读集合

  1. a=set([1,2,3,4,5])
  2. b=frozenset([1,2,3,4,5])
  3. print(a,b)
  4. for i in a:
  5. print(i)
  6. for i in b:
  7. print(i)
  8. ------------------------------------------------------------
  9. {1, 2, 3, 4, 5} frozenset({1, 2, 3, 4, 5})
  10. 1
  11. 2
  12. 3
  13. 4
  14. 5
  15. 1
  16. 2
  17. 3
  18. 4
  19. 5

与普通集合相比,少了很多方法

21、globals()---全局表量(与locals()对比)

22、hash()---求哈希值

  1. hh=hash('yomi') #哈希 散列函数 字典的查找方式 hash算法之后 排序 之后用折半查找
  2. print(hh)#了解一下python内置的hash函数对于字符串来说,每次得到的值不一样

23、hex() ---十进制转换为十六进制

  1. >>> print(bin(255),hex(255))
  2. 0b11111111 0xff

24、max 与min---最大最小值的运算,注意的是列表、字典的情况

  1. print(min({9:'nnn',1:'xxx'}),min([1,2,3,4]),max(1,2,3,4))
  2. ------------------------------------------------------
  3. 1 1 4
  4.  
  5. >>> max('a','b','c')
  6. 'c'

25、iter()---迭代器

此处不再展开介绍,详见迭代器章节,next ->迭代器里面的__next__

26 、oct()---八进制转换

  1. print(oct(1),oct(8),oct(16))
  2. -----------------------
  3. 0o1 0o10 0o20

27、ord()---与chr相对应

chr ASCII码转换成字符 对应ord 字符转为ASCII码 知道A 65 a97 相差32

  1. print(chr(100))
  2. print(chr(96))
  3. print(ord('A'))
  4. print(ord('a'))

28、pow()---指数运算

  1. print(pow(2,10))
  2. 1024
  3. print(pow(2,2))
  4. 4

29、reversed( )---将字符串取反并拆分成迭代器

  1. xxx='abc'
  2. y=reversed(xxx)
  3. print(y)
  4. for i in y:
  5. print(i) #反转并变成一个迭代器
  6. ------------------------------
  7. <reversed object at 0x00000000027D75F8>
  8. c
  9. b
  10. a

30、round( )--- 小数点后取位数

  1. print(round(1.23456,2))
  2. print(round(1.23456,5))
  3. print(round(1.23456,0))
  4. print(round(1.23456))
  5. ----------------------------------
  6. 1.23
  7. 1.23456
  8. 1.0
  9. 1

31、slice()---切片(注意管前不管后)

  1. a=[11,22,33,44,55]
  2. print(a[slice(2,4)])#切片
  3. print(a[2:4])
  4. ----------------------
  5. [33,44]
  6. [33,44]
  7. #管前不管后

32、sorted()--- 排序(注意lambda的另一种使用方式)

  1. dict_tmp={0:111,7:222,3:999,2:923,-5:122,11:114,9:-888}#这是个无序的字典,keyvalue的值都是无序的
  2. print(sorted(dict_tmp))#输出key的排序结果,此处只输出key,列表形式输出
  3. print(sorted(dict_tmp.items()))#输出key的排序结果,此处输出key-value的对应值,列表形式输出,key-value为元组形式
  4. print(sorted(dict_tmp.items(),key=lambda x:x[1]))#输出value的排序结果,输出格式为key-value,列表形式输出,key-value为元组形式
  5. ---------------------------------------
  6. [-5, 0, 2, 3, 7, 9, 11]
  7. [(-5, 122), (0, 111), (2, 923), (3, 999), (7, 222), (9, -888), (11, 114)]
  8. [(9, -888), (0, 111), (11, 114), (-5, 122), (7, 222), (2, 923), (3, 999)]

33、zip()--- 组合(在key-value的结构时使用可以组合成关系,适当加工可以生成字典)

  1. z1=[1,2,3,4,5]
  2. z2=['a','b','c','d','e']
  3. z3=zip(z1,z2)#组合成key-valued的对应形式
  4. print(type(z3),z3)
  5. for i in z3:
  6. print(i) #迭代器 此处循环后不会下面不会有运行结果
  7. for i,j in z3:
  8. print(i,j)
  9. -------------------------------------
  10. <class 'zip'> <zip object at 0x000001D4B9659F48>
  11. (1, 'a')
  12. (2, 'b')
  13. (3, 'c')
  14. (4, 'd')
  15. (5, 'e')

python笔记-5(内置函数)的更多相关文章

  1. python笔记4 内置函数,匿名函数.递归函数 面向对象(基础, 组合,继承)

    内置函数 eval和exec eval :执行字符串中的代码并将结果返回给执行者,有返回值 exec:执行字符串中的代码,往往用于执行流程语句,没有返回值. s1 = '1+2' s2 = 'prin ...

  2. Python的常用内置函数介绍

    Python的常用内置函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.取绝对值(abs) #!/usr/bin/env python #_*_coding:utf-8_ ...

  3. python学习交流 - 内置函数使用方法和应用举例

    内置函数 python提供了68个内置函数,在使用过程中用户不再需要定义函数来实现内置函数支持的功能.更重要的是内置函数的算法是经过python作者优化的,并且部分是使用c语言实现,通常来说使用内置函 ...

  4. python常用的内置函数哈哈

    python常用的内置函数集合做一个归类用的时候可以查找 abs 返回数字x的绝对值或者x的摸 all (iterable)对于可迭代的对象iterable中所有元素x都有bool(x)为true,就 ...

  5. python常用的内置函数

    python常用的内置函数集合做一个归类用的时候可以查找- abs 返回数字x的绝对值或者x的摸 - all (iterable)对于可迭代的对象iterable中所有元素x都有bool(x)为tru ...

  6. 十六. Python基础(16)--内置函数-2

    十六. Python基础(16)--内置函数-2 1 ● 内置函数format() Convert a value to a "formatted" representation. ...

  7. 十五. Python基础(15)--内置函数-1

    十五. Python基础(15)--内置函数-1 1 ● eval(), exec(), compile() 执行字符串数据类型的python代码 检测#import os 'import' in c ...

  8. python 常见的内置函数

    内置函数 接下来,我们就一起来看看python里的内置函数.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就是python提供给你直接可以拿来使用的所有函数.这 ...

  9. python之路——内置函数和匿名函数

    阅读目录 楔子 内置函数 匿名函数 本章小结 楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们 ...

  10. Python进阶(五)----内置函数Ⅱ 和 闭包

    Python进阶(五)----内置函数Ⅱ 和 闭包 一丶内置函数Ⅱ ####内置函数#### 特别重要,反复练习 ###print() 打印输入 #sep 设定分隔符 # end 默认是换行可以打印到 ...

随机推荐

  1. Spark机器学习3·推荐引擎(spark-shell)

    Spark机器学习 准备环境 jblashttps://gcc.gnu.org/wiki/GFortranBinaries#MacOS org.jblas:jblas:1.2.4-SNAPSHOT g ...

  2. 【Java】Swing+IO流实现一个简单的文件加密程序(demo版)

    留着参考 EncrytService package com.my.service; import java.io.File; import java.io.FileInputStream; impo ...

  3. Django 函数和方法的区别

    函数和方法的区别 1.函数要手动传self,方法不用传 2.如果是一个函数,用类名去调用,如果是一个方法,用对象去调用 class Foo(object): def __init__(self): s ...

  4. MD5key.java

    代码如下: package com.lekou.utils; public class MD5key { ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; , , , , , , , , ...

  5. spring核心技术IOC,DI

    在介绍Spring中IOC之前,先说说Spring的优势有哪些.首先1.方便解耦,简化开发:就是说将对象间的依赖关系交给Spring进行控制,避免了编码造成的过度耦合.2.AOP编程的支持:方便进行切 ...

  6. Java中的日期和时间

    Java中的日期和时间 Java在java.util包中提供了Date类,这个类封装了当前的日期和时间. Date类支持两种构造函数.第一个构造函数初始化对象的当前日期和时间. Date() 下面的构 ...

  7. Codeforces Beta Round #17 D.Notepad 指数循环节

    D. Notepad time limit per test 2 seconds memory limit per test 64 megabytes input standard input out ...

  8. SpringBoot:竟然has no explicit mapping for /error

    异常:This application has no explicit mapping for /error, so you are seeing this as a fallback. 出现这个异常 ...

  9. jedis使用管道(pipeline)对redis进行读写(使用hmset、hgetall测试)

    一般情况下,Redis Client端发出一个请求后,通常会阻塞并等待Redis服务端处理,Redis服务端处理完后请求命令后会将结果通过响应报文返回给Client.这有点类似于HBase的Scan, ...

  10. socket编程 TCP 粘包和半包 的问题及解决办法

    一般在socket处理大数据量传输的时候会产生粘包和半包问题,有的时候tcp为了提高效率会缓冲N个包后再一起发出去,这个与缓存和网络有关系. 粘包 为x.5个包 半包 为0.5个包 由于网络原因 一次 ...