一、内置函数
注意:内置函数id()可以返回一个对象的身份,返回值为整数。
这个整数通常对应与该对象在内存中的位置,但这与python的具体实现有关,不应该作为对身份的定义,即不够精准,最精准的还是以内存地址为准。
is运算符用于比较两个对象的身份,等号比较两个对象的值,内置函数type()则返回一个对象的类型
#更多内置函数:https://docs.python.org/3/library/functions.html?highlight=built#ascii
二、内置函数详情
1、abs(x)
功能:取数的绝对值
1
2
|
>>>
abs
(
-
1
)
#取-1的绝对值
1
|
2、all(iterable)
功能:如果这个可迭代的元素都为真,则返回真(非0的就为真,负数也是为真)
1
2
3
4
|
>>>
all
([
0
,
9
,-
3
])
#有0,说明为假
False
>>>
all
([-
1
,
5
,
6
])
#负数也是为真
True
|
3、any(iterable)
功能:可迭代的元素中,有一个为真,则返回真,没有真或空列表返回假。
1
2
3
4
|
>>>
any
([
0
,
0
,
2
])
#有一个为真,则为真
True
>>>
any
([])
#空列表为假
False
|
4、ascii(object)
功能:把内存对象变成一个可打印的字符串格式
1
2
|
>>> a = ascii([ 1 , 2 , 3 , 4 ])
>>> print(type(a),[a])
|
5、bin(x)
功能:把一个整数转换成二进制
1
2
3
4
|
>>>
bin
(
300
)
#把300转换成二进制
'0b100101100'
>>>
bin
(
1
)
'0b1'
|
6、bool([x])
功能:返回一个布尔值,空列表为假,不为空为真
1
2
3
4
5
6
|
>>>
bool
([])
#空列表
False
>>>
bool
([
1
,
2
])
#不为空列表
True
>>>
bool
([
0
])
True
|
7、bytearray[source[, encoding[, errors]]]
功能:字节数组,并且可以修改二进制的字节
1
2
3
4
5
6
|
>>> b
=
bytearray(
"abcd"
,encoding
=
"utf-8"
)
#声明一个字节数组
>>> b[
0
]
#打印第一个元素的ascii值,也就是'a'对应的ascii值
97
>>> b[
0
]
=
100
#修改时,只能赋值对应字符的ascii值
>>> b
bytearray(b
'dbcd'
)
#发现字节数组值被修改
|
8、bytes([source[, encoding[, errors]]])
功能:把字符串转换成字节
1
2
3
4
5
6
7
8
9
|
>>> b
=
bytes(
"abcd"
,encoding
=
"utf-8"
)
#声明字节
>>> b
b
'abcd'
>>> b[
0
]
#访问到'a'字符对应的ASCII值
97
>>> b[
0
]
=
100
#不可以修改里面的值,不然会报错
Traceback (most recent call last):
File
"<input>"
, line
1
,
in
<module>
TypeError:
'bytes'
object
does
not
support item assignment
|
9、callable(object)
功能:判断一个对象是否可以被调用,只有在后面有括号的,表示可以调用,比如:函数,类。
1
2
3
4
5
|
>>>
callable
([])
#列表后面不加括号
False
>>>
def
sayhi():
pass
#定义一个函数
>>>
callable
(sayhi)
#函数调用,后面需要加括号
True
|
10、chr(i)
功能:通过ascii的值(必须是数字),找到对应的字符
1
2
|
>>>
chr
(
97
)
'a'
|
11、ord(c)
功能:根据字符(必须ascii的字符),找到对应的ascii值
1
2
|
>>>
ord
(
'a'
)
97
|
12、complex([real[, imag]])
功能:返回一个复数,我们几乎用不到。
1
2
|
>>>
complex
(
'1+2j'
)
(
1
+
2j
)
|
13、dict(**kwarg)、dict(mapping, **kwarg)、dict(iterable, **kwarg)
功能:返回一个字典
1
2
3
4
5
6
7
8
|
>>>
dict
()
#定义一个字典
{}
>>>
dict
(name
=
'qianduoduo'
,age
=
18
)
#传入非固定关键字参数
{
'name'
:
'qianduoduo'
,
'age'
:
18
}
>>>
dict
([(
'name'
,
'qianduoduo'
),(
'age'
,
18
)])
#传入一个列表
{
'name'
:
'zhangqigao'
,
'age'
:
18
}
>>>
dict
([[
'name'
,
'qianduoduo'
],[
'age'
,
18
]])
#传入一个列表
{
'name'
:
'qianduoduo'
,
'age'
:
18
}
|
14、dir([object])
功能:看一个对象有哪些方法
1
2
3
4
5
6
7
8
|
>>> name
=
[]
>>>
dir
(name)
#显示name下的所有的方法
[
'__add__'
,
'__class__'
,
'__contains__'
,
'__delattr__'
,
'__delitem__'
,
'__dir__'
,
'__doc__'
,
'__eq__'
,
'__format__'
,
'__ge__'
,
'__getattribute__'
,
'__getitem__'
,
'__gt__'
,
'__hash__'
,
'__iadd__'
,
'__imul__'
,
'__init__'
,
'__iter__'
,
'__le__'
,
'__len__'
,
'__lt__'
,
'__mul__'
,
'__ne__'
,
'__new__'
,
'__reduce__'
,
'__reduce_ex__'
,
'__repr__'
,
'__reversed__'
,
'__rmul__'
,
'__setattr__'
,
'__setitem__'
,
'__sizeof__'
,
'__str__'
,
'__subclasshook__'
,
'append'
,
'clear'
,
'copy'
,
'count'
,
'extend'
,
'index'
,
'insert'
,
'pop'
,
'remove'
,
'reverse'
,
'sort'
]
|
15、divmod(a,b)
功能:地板除,获得一个元组,元组第一个元素是商,第二个元素是余数。
1
2
|
>>>
divmod
(
5
,
2
)
(
2
,
1
)
#2是商,1是余数
|
16、enumerate(iterable,start=0) 购物车的列表用到了,
功能:遍历一个可迭代对象,获取索引和对应的元素的
1
2
3
4
5
|
>>> seasons
=
[
'Spring'
,
'Summer'
,
'Fall'
,
'Winter'
]
>>>
list
(
enumerate
(seasons))
[(
0
,
'Spring'
), (
1
,
'Summer'
), (
2
,
'Fall'
), (
3
,
'Winter'
)]
>>>
list
(
enumerate
(seasons, start
=
1
))
[(
1
,
'Spring'
), (
2
,
'Summer'
), (
3
,
'Fall'
), (
4
,
'Winter'
)]
|
17、eval(expression, globals=None, locals=None)
功能:把字典类型的字符串变成字典,把一个整数类型的字符变成int类型,或者加减乘除这种简单转换成表达式。
1
2
3
4
|
>>>
eval
(
'1'
)
#字符类型转换成int类型
1
>>>
eval
(
"1+3/2*6"
)
#字符串转换为表达式
10.0
|
18、filter(function, iterable)
功能:通过function过滤条件,去获取iterable中你想要的数据。
1
2
3
4
5
6
7
8
9
|
>>> res
=
filter
(
lambda
n:n>
5
,
range
(
10
))
>>> res
#得到一个迭代器
<
filter
object
at
0x0000000003093BE0
>
>>>
for
i
in
res:
print
(i)
6
7
8
9
|
19、map(function, iterable)
功能:对传入的每一个值进行处理,处理完了再返回,再把原来的结果覆盖掉。
1
2
3
4
5
6
7
8
9
10
|
>>> res
=
map
(
lambda
n:n
*
2
,
range
(
5
))
#n*2是处理方式
>>> res
<
map
object
at
0x00000000031B4BE0
>
>>>
for
i
in
res:
print
(i)
0
2
4
6
8
|
20、reduce(function,iterable)
功能:把一组可迭代序列通过function函数操作,元素之间相加或者相乘操作。
1
2
3
4
5
6
7
|
>>>
from
functools
import
reduce
>>> res
=
reduce
(
lambda
x,y:x
+
y,
range
(
10
))
#x+y的值赋给x,rang(10)中的每个元素赋给y
>>> res
45
>>> res
=
reduce
(
lambda
x,y:x
*
y,
range
(
1
,
10
))
#x*y的值赋给x,rang(10)中的每个元素赋给y
>>> res
362880
|
21、float([x])
功能:把一个浮点类型的字符串转换为浮点类型的数据。
1
2
3
4
5
6
7
8
9
10
|
>>>
float
(
'+1.23'
)
1.23
>>>
float
(
' -12345\n'
)
-
12345.0
>>>
float
(
'1e-003'
)
0.001
>>>
float
(
'+1E6'
)
1000000.0
>>>
float
(
'-Infinity'
)
-
inf
|
22、format(value[, format_spec])
功能:格式话字符串,前面字符串拼接讲过
23、frozenset([iterable])
功能:把集合变成一个不可变的集合
1
2
3
4
5
6
7
8
9
10
|
>>> res
=
frozenset
([
1
,
2
,
3
,
4
,
3
])
>>> res
frozenset
({
1
,
2
,
3
,
4
})
#去重的,不可变的集合
>>>
dir
(res)
#没有可变的方法
[
'__and__'
,
'__class__'
,
'__contains__'
,
'__delattr__'
,
'__dir__'
,
'__doc__'
,
'__eq__'
,
'__format__'
,
'__ge__'
,
'__getattribute__'
,
'__gt__'
,
'__hash__'
,
'__init__'
,
'__iter__'
,
'__le__'
,
'__len__'
,
'__lt__'
,
'__ne__'
,
'__new__'
,
'__or__'
,
'__rand__'
,
'__reduce__'
,
'__reduce_ex__'
,
'__repr__'
,
'__ror__'
,
'__rsub__'
,
'__rxor__'
,
'__setattr__'
,
'__sizeof__'
,
'__str__'
,
'__sub__'
,
'__subclasshook__'
,
'__xor__'
,
'copy'
,
'difference'
,
'intersection'
,
'isdisjoint'
,
'issubset'
,
'issuperset'
,
'symmetric_difference'
,
'union'
]
|
注:set()是可变的
24、globals()
功能:返回当前这个python文件中的所有变量的key-value,变量是key,值是value
1
2
3
4
5
6
7
|
print
(
globals
())
#输出
{
'__spec__'
:
None
,
'__name__'
:
'__main__'
,
'__file__'
: 'D:
/
PycharmProjects
/
pyhomework
/
day4
/
内置函数
/
内置函数.py
', '
__doc__
': None, '
__package__
': None, '
__loader__':
<_frozen_importlib_external.SourceFileLoader
object
at
0x0000000000695B00
>,
'__cached__'
:
None
,
'__builtins__'
: <module 'built
|
注:可以判断一个文件中的变量是否存在,而globals()只能打印全局变量
25、help([object])
功能:显示对象的帮助信息
1
2
3
4
5
6
7
8
9
10
11
|
>>> res
=
[]
#定义一个列表
>>>
help
(res)
#打印帮助信息
Help
on
list
object
:
class
list
(
object
)
|
list
()
-
> new empty
list
|
list
(iterable)
-
> new
list
initialized
from
iterable's items
|
| Methods defined here:
|
.....
|
26、hex(x)
功能:把一个数字转成16进制
1
2
3
4
|
>>>
hex
(
255
)
'0xff'
>>>
hex
(
10
)
'0xa'
|
27、id(object)
功能:返回对象的内存地址
1
2
|
>>>
id
(
'zhangqigao'
)
50993136
#'zhangqigao'这个字符串的内存地址
|
28、input([prompt])
功能:输入字符串
1
2
3
4
|
>>> s
=
input
(
'--> '
)
-
-
> Monty Python's Flying Circus
#输入的内容
>>> s
"Monty Python's Flying Circus"
|
29、int(x)
功能:把其他数据类型强制转换成int类型
1
2
|
>>>
int
(
'10'
)
10
|
30、iter(object[, sentinel])
功能:把一个普通序列转成迭代器
1
2
3
|
with
open
(
'mydata.txt'
) as fp:
for
line
in
iter
(fp.readline, ''):
process_line(line)
|
31、len(s)
功能:计算序列或者字符串的长度
1
2
3
4
|
>>>
len
(
"zhangqigao"
)
#字符串的长度
10
>>>
len
([
1
,
2
,
3
,
4
,
5
])
#列表的长度
5
|
32、list([iterable])
功能:把其他序列转换成一个列表
1
2
|
>>>
list
((
1
,
2
,
3
,
4
,
5
))
#把一个元组转换为一个列表
[
1
,
2
,
3
,
4
,
5
]
|
33、locals()
功能:打印局部变量
1
2
3
4
5
6
7
8
9
10
11
|
def
test():
locals_var
=
333
print
(
locals
())
#只打印局部变量
test()
print
(
globals
().get(
"locals_var"
))
#只能打印全局变量
#输出
{
'locals_var'
:
333
}
None
|
34、max(iterable, *[, key, default])
功能:返回列表重点额最大值
1
2
|
>>>
max
([
1
,
2
,
3
,
4
,
5
])
5
|
35、min(iterable, *[, key, default])
功能:返回列表中的最小值
1
2
|
>>>
min
([
1
,
2
,
3
,
4
,
5
])
1
|
36、next(iterator[, default])
功能:返回迭代器的下一个值,相当于__next__()方法,如果迭代最后一个数据之后没有值了,则会抛出一个StopIteration异常
1
2
3
4
5
6
7
8
9
|
>>> a
=
iter
([
1
,
2
])
>>>
next
(a)
1
>>>
next
(a)
2
>>>
next
(a)
Traceback (most recent call last):
File
"<input>"
, line
1
,
in
<module>
StopIteration
|
37、object
功能:python中一切皆对象,每一个对象都有它的属性和方法
38、oct(x)
功能:把一个数转成8进制
1
2
3
4
5
6
7
8
|
>>> oct ( 7 )
'0o7'
>>> oct ( 8 )
'0o10'
>>> oct ( 15 )
'0o17'
>>> oct ( 16 )
'0o20'
|
39、open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
功能:文件操作,详细介绍:http://www.cnblogs.com/ManyQian/p/8075983.html
40、pow(x, y[, z])
功能:返回多少次幂
1
2
|
>>>
pow
(
2
,
3
)
#相当于2**3
8
|
41、print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
功能:打印
1
2
|
>>>
print
(
"zhangqigao"
)
zhangqigao
|
42、range(stop)、range(start, stop[, step])
功能:生成一个迭代器
1
2
3
4
5
6
|
>>>
range
(
5
)
range
(
0
,
5
)
>>>
range
(
1
,
5
)
range
(
1
,
5
)
>>>
range
(
1
,
5
,
2
)
range
(
1
,
5
,
2
)
|
43、reversed(seq)
功能:反转一个序列,跟列表中的reversed方法是一样的
1
2
3
4
5
6
7
8
9
10
|
>>>
reversed
([
1
,
2
,
3
,
4
,
5
])
<list_reverseiterator
object
at
0x00000000030A2588
>
#变成一个迭代器
>>>
for
i
in
reversed
([
1
,
2
,
3
,
4
,
5
]):
...
print
(i)
...
5
4
3
2
1
|
44、round(number[, ndigits])
功能:四舍五入
45、set([iterable])
功能:集合
46、slice(stop),slice(start, stop[, step])
功能:序列的切片,方便多次反复切
1
2
3
4
5
|
>>> a
=
[
1
,
2
,
3
,
4
,
5
,
6
]
>>> a[
slice
(
1
,
3
)]
[
2
,
3
]
>>> a[
1
:
3
]
[
2
,
3
]
|
47、sorted(iterable[, key][, reverse])
功能:对一个序列进行排序
1
2
3
4
5
6
7
8
9
|
>>>
sorted
([
5
,
3
,
2
,
6
,
8
])
[
2
,
3
,
5
,
6
,
8
]
>>> a
=
{
1
:
5
,
6
:
8
,
3
:
6
}
>>>
sorted
(a)
#默认是按key排序
[
1
,
3
,
6
]
>>>
sorted
(a.items())
#按key排序
[(
1
,
5
), (
3
,
6
), (
6
,
8
)]
>>>
sorted
(a.items(),key
=
lambda
x:x[
1
])
#按value排序
[(
1
,
5
), (
3
,
6
), (
6
,
8
)]
|
48、 str(object)
功能:把其他数据类型转换为字符串
1
2
|
>>>
str
(
1
)
'1'
|
49、sum(iterable[, start])
功能:求一个列表的和,元组,集合,前提都是数字类型
1
2
|
>>>
sum
([
1
,
2
,
3
,
4
,
5
,
6
])
21
|
50、tuple([iterable])
功能:把其他序列转换为一个元组
1
2
|
>>>
tuple
([
1
,
2
,
3
,
4
,
5
])
(
1
,
2
,
3
,
4
,
5
)
|
51、type(object) 、type(name, bases, dict)
功能:查看一个对象的数据类型
1
2
3
|
>>> a
=
'qianduoduo'
>>>
type
(a)
<
class
'str'
>
|
注:一切数据类型都是有type()方法产生,它是一切数据类型的根。
52、zip(*iterables)
功能:zip中文意思是拉链的意思,把两个序列一一对应起来。
1
2
3
4
5
6
7
8
9
|
>>> a
=
[
1
,
2
,
3
,
4
]
>>> b
=
[
'a'
,
'b'
,
'c'
,
'd'
]
>>>
for
i
in
zip
(a,b):
...
print
(i)
...
(
1
,
'a'
)
(
2
,
'b'
)
(
3
,
'c'
)
(
4
,
'd'
)
|
注:如果a的元素比b的多,则按照元素最少的那个来
PS:有些没有列出来,不是实在用不着,就是后面类的重点,后面还有单独的博客!