python笔记-5(内置函数)

一、内置函数

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

print(abs(-0.11))
x=-0.01
y=0.11
print(abs(x),abs(y))
------------------------------
0.11
0.01 0.11

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

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

>>> all(123)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: ‘int‘ object is not iterable

print(all([0,-5,-1]))#0为假,负数为真
print(all([-1,-2,-3]))
print(all([1,2,3,‘false‘]))
print(all([1,2,3,‘false‘,‘‘]))#有空对象
print(all([1,2,3,False]))#有False
print(all([]))
print(all({‘0‘:‘1‘}))
print(all({0:‘1‘}))
print(all({}))
print(all(‘‘))
#all 可迭代的对象内 如果存在假的 则返回false。此时空的为真
#any 可迭代的对象内 如果存在真的 则返回true 此时空的为假
----------------------------------
False
True
True
False
False
True
True
False
True
True

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

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

print(any([0,1,3]))
print(any([]))
print(any([-1]))
print(any([0]))
print(any([0,-1]))
------------------------------
True
False
True
False
True

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

print(‘bin 将数字转换为二进制‘)
print(bin(255))
print(bin(-255))
print(bin(4))
print(bin(-4))
----------------------
0b11111111
-0b11111111
0b100
-0b100

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

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

print(bool(0))#假
print(bool(1))
print(bool(-1))
print(bool([]))#假
print(bool([0]))
print(bool([1]))
print(bool([-1]))
print(bool({}))#假
print(bool({0:‘01‘}))
print(bool({1:‘xx‘}))
print(bool({-1:‘xxx‘}))
#布尔值判断 空和0为假
-------------------------------------------------
False
True
True
False
True
True
True
False
True
True
True

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

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

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

astr=‘你好‘
print(bytes(astr,encoding=‘utf-8‘))#将一个字符串装换为b类型
print(astr.encode(‘utf-8‘))
print(astr.encode(‘gbk‘))
print(astr.encode(‘utf-8‘).decode(‘utf-8‘).encode(‘gbk‘))
# str (unicode) -> encode -> utf -8 -> decode-> unicode -> str -> encode -> gbk
print(astr.encode(‘unicode_escape‘))
print(bytes(astr,encoding=‘unicode_escape‘))
print(astr.encode(‘unicode_escape‘).decode(‘unicode_escape‘))
print(astr.encode(‘unicode_escape‘).decode())
-----------------------------------------------
b‘\xe4\xbd\xa0\xe5\xa5\xbd‘
b‘\xe4\xbd\xa0\xe5\xa5\xbd‘
b‘\xc4\xe3\xba\xc3‘
b‘\xc4\xe3\xba\xc3‘
b‘\\u4f60\\u597d‘
b‘\\u4f60\\u597d‘
你好
\u4f60\u597d

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

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

c=bytes(‘abc‘,encoding=‘utf-8‘)
print(c,c.capitalize())
print(c)#输出c 发现大小写没有改变
c=c.capitalize()
#c字符串不能被改变,只能重新覆盖
print(c)
d=bytearray(‘abc‘,encoding=‘utf-8‘)
print(c,d)
d[1]=70
print(c,d,d[1])
#c[1]=44 TypeError: ‘bytes‘ object does not support item assignment
print(c,d)
-------------------------------------
b‘abc‘ b‘Abc‘
b‘abc‘
b‘Abc‘
b‘Abc‘ bytearray(b‘abc‘)
b‘Abc‘ bytearray(b‘aFc‘) 70
b‘Abc‘ bytearray(b‘aFc‘)

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

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

print(callable({}))
----------------------
False

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

知道A 65 a97 相差32

print(chr(100))
print(chr(96))
print(chr(70))
print(ord(‘A‘)) #大A的ascii码和小a差32
print(ord(‘a‘))
-----------------------------------
d
`
F
65
97

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

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

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

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

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

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

a=dict()
b={}#a、b两种生成方式实际没有区别
print(type(a),a,len(a))
print(type(b),b,len(b))
-------------------------------
<class ‘dict‘> {} 0
<class ‘dict‘> {} 0

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

>>> import time
>>> dir(time)
[‘_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‘]
>>>

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

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

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

16、exec()---执行str

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

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

数字与逻辑运算:

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

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

t1=filter(lambda i:i>3,range(7))
t2=filter(lambda i:i*3,range(7))
print(t1)
for i in t1:
        print(i)
print(t2)
for i in t2:
    print(i)
#lambda不仅能表示函数运算还能表示一种关系 配合filter进行过滤
print(‘!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!‘)
#t3=map(lambda i:i*3,range(7))
t3=map(lambda i:i>3,range(7))#与filter对比
print(t3)
for i in t3:
        print(i)
-------------------------------------------
<filter object at 0x000001B68E7EFC50>
4
5
6
<filter object at 0x000001B68E7EFCC0>
1
2
3
4
5
6
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<map object at 0x000001B68E7EFC88>
False
False
False
False
True
True
True

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

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

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

18.float()---浮点数

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

import time
x=‘%Y %m %d %X‘
print(time.strftime(x))

20 frozenset()---只读集合

a=set([1,2,3,4,5])
b=frozenset([1,2,3,4,5])
print(a,b)
for i in a:
    print(i)
for i in b:
    print(i)
------------------------------------------------------------
{1, 2, 3, 4, 5} frozenset({1, 2, 3, 4, 5})
1
2
3
4
5
1
2
3
4
5

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

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

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

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

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

>>> print(bin(255),hex(255))
0b11111111 0xff

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

print(min({9:‘nnn‘,1:‘xxx‘}),min([1,2,3,4]),max(1,2,3,4))
------------------------------------------------------
1 1 4

>>> max(‘a‘,‘b‘,‘c‘)
‘c‘

25、iter()---迭代器

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

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

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

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

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

print(chr(100))
print(chr(96))
print(ord(‘A‘))
print(ord(‘a‘))

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

print(pow(2,10))
1024
print(pow(2,2))
4

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

xxx=‘abc‘
y=reversed(xxx)
print(y)
for i in y:
  print(i) #反转并变成一个迭代器
------------------------------
<reversed object at 0x00000000027D75F8>
c
b
a

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

print(round(1.23456,2))
print(round(1.23456,5))
print(round(1.23456,0))
print(round(1.23456))
----------------------------------
1.23
1.23456
1.0
1

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/yomi/p/8423709.html

时间: 2024-10-09 02:11:13

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

python学习笔记11-python内置函数

python学习笔记11-python内置函数 一.查看python的函数介绍: https://docs.python.org/2/library/ 二.python内置函数 1.abs获取绝对值: 通过python官网查看abs abs(x) Return the absolute value of a number. The argument may be a plain or long integer or a floating point number. If the argument

python中的内置函数getattr()

在python的官方文档中:getattr()的解释如下: getattr(object, name[, default]) Return the value of the named attribute of object. name must be a string. If the string is the name of one of the object’s attributes, the result is the value of that attribute. For examp

python之路——内置函数与匿名函数

内置函数 python里的内置函数.截止到python版本3.6.2,现在python一共为我们提供了68个内置函数.它们就是python提供给你直接可以拿来使用的所有函数.这些函数有些我们已经用过了,有些我们还没用到过,还有一些是被封印了,必须等我们学了新知识才能解开封印的.那今天我们就一起来认识一下python的内置函数.这么多函数,我们该从何学起呢? 上面就是内置函数的表,68个函数都在这儿了.这个表的顺序是按照首字母的排列顺序来的,你会发现都混乱的堆在一起.比如,oct和bin和hex都

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

内置函数 python提供了68个内置函数,在使用过程中用户不再需要定义函数来实现内置函数支持的功能.更重要的是内置函数的算法是经过python作者优化的,并且部分是使用c语言实现,通常来说使用内置函数相比于用户自己定义函数实现相同功能,在执行效率和对内存的分配和使用上是要更加理想的.所以理解和熟练运用python中的内置函数,不仅可以增强代码的可读性,同时也可以提升代码的品质.下面对内置函数的使用方法进行分类介绍,以方便归纳理解. 一.查看作用域中变量相关 global () 功能:查看全局作

python之枚举--内置函数-enumerate()

python之枚举 内置函数 enumearate() enumerate()是python的内置函数 enumerate在字典上是枚举.列举的意思 对于一个可迭代的(iterable)/可遍历的对象(如列表.字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值 enumerate多用于在for循环中得到计数 enumerate()使用 如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写: list=["这","是","一个

Python标准库 内置函数print objects sep &#39; &#39; end &#39;\n&#39; file sys st

本函数是实现对象以字符串表示的方式格式化输出到流文件对象file里.其中所有非关键字参数都按str()方式进行转换为字符串输出,关键字参数sep是实现分隔符,比如多个参数输出时想要输出中间的分隔字符:关键字参数end是输出结束时的字符,默认是换行符\n:关键字参数file是定义流输出的文件,可以是标准的系统输出sys.stdout,也可以重定义为别的文件:参数flush是立即把内容输出到流文件,不作缓存. 例子: #print() print(1, 2, 3, sep = ',', end =

part2:Python 变量及简单类型,print 函数介绍,Python 关键字、内置函数介绍

Python是弱类型语言,关于弱类型有两个含义:(1).所有的变量无须声明即可使用,或者说对从末用过的变量赋值就是声明了该变量:(2).变量的数据类型可以随时改变,同一个变量可以进行多次赋值,可以赋数值型和字符串型值. 一. 单行注释和多行注释 注释可提高程序可读性,用于解释某行或某部分程序的作用和功能.此外注释也是调试程序的重要方式,在调试时可将不希望编译.执行的代码注释掉.注释还可以为别人或自己过一段时间后能读懂代码的目的提供帮助.合理的代码注释占源代码 1/3 左右. Python语言不能

python 关键字和内置函数

Python关键字(保留字)一览表 来自 http://c.biancheng.net/view/4188.html 保留字是 Python 语言中一些已经被赋予特定意义的单词,这就要求开发者在开发程序时,不能用这些保留字作为标识符给变量.函数.类.模板以及其他对象命名. 表 1 Python 保留字一览表 and as assert break class continue def del elif else except finally for from False global if im

Python学习笔记-Day3-python内置函数

python内置函数 1.abs    求绝对值 2.all 判断迭代器中的所有数据是否都为true 如果可迭代的数据的所有数据都为true或可迭代的数据为空,返回True.否则返回False 3.any 判断迭代器中的是否有一个数据为true 如果可迭代的数据中有一个数据为true,返回True.否则返回False.可迭代的数据为空也返回False 4.bin    转换整数为一个二进制字符串(其他数据类型报错) 5.bool 转换一个数据为布尔值 bool是int的子类,如果参数为false

Python经常使用内置函数介绍【filter,map,reduce,apply,zip】

Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是将复杂的数据结构隐藏在内置函数中,用C语言来实现,所以仅仅要写出自己的业务逻辑Python会自己主动得出你想要的结果.这方面的内置函数主要有,filter,map,reduce,apply,结合匿名函数,列表解析一起使用,功能更加强大.使用内置函数最显而易见的优点是: 1. 速度快,使用内置函数,比