截止到Python版本3.6.2,一共为我们提供了68个内置函数。它们就是Python提供的直接可以拿来使用的所有函数。

这个表的顺序是按照首字母的排列顺序来的,都混乱的堆在一起。比如,oct和bin和hex都是做进制换算的,但是却被写在了三个地方。。。这样非常不利于归纳和学习,于是我做了一个整理

数学运算(7个)  类型转换(24个)   序列操作(8个)  对象操作(7个)   反射操作(8个)

变量操作(2个)  交互操作(2个)   文件操作(1个)  编译执行(4个)  装饰器(3个)

数学运算

abs:求数值的绝对值

>>> abs(-2)
2

abs

divmod:返回两个数值的商和余数

>>> divmod(5,2)
(2, 1)
>> divmod(5.5,2)
(2.0, 1.5)

divmod

max:返回可迭代对象中的元素中的最大值或者所有参数的最大值

>>> max(1,2,3) # 传入3个参数 取3个中较大者
3
>>> max('') # 传入1个可迭代对象,取其最大元素值
'' >>> max(-1,0) # 数值默认去数值较大者
0
>>> max(-1,0,key = abs) # 传入了求绝对值函数,则参数都会进行求绝对值后再取较大者
-1

max

min:返回可迭代对象中的元素中的最小值或者所有参数的最小值

>>> min(1,2,3) # 传入3个参数 取3个中较小者
1
>>> min('') # 传入1个可迭代对象,取其最小元素值
'' >>> min(-1,-2) # 数值默认去数值较小者
-2
>>> min(-1,-2,key = abs) # 传入了求绝对值函数,则参数都会进行求绝对值后再取较小者
-1

min

pow:返回两个数值的幂运算值

>>> pow(2,3)
8

pow

round:对浮点数进行四舍五入求值

>>> round(1.1314926,1)
1.1
>>> round(1.1314926,5)
1.13149

round

sum:对元素类型是数值的可迭代对象中的每个元素求和

# 传入可迭代对象
>>> sum((1,2,3,4))
10
# 元素类型必须是数值型
>>> sum((1.5,2.5,3.5,4.5))
12.0
>>> sum((1,2,3,4),-10)
0

sum

类型转换

 bool:根据传入的参数的逻辑值创建一个新的布尔值

>>> bool() # 未传入参数
False
>>> bool(0) # 数值0、空序列等值为False
False
>>> bool(1)
True

bool

int:根据传入的参数创建一个新的整数

>>> int() # 不传入参数时,得到结果0。
0
>>> int(3)
3
>>> int(3.6)
3

int

float:根据传入的参数创建一个新的浮点数

>>> float() # 不提供参数的时候,返回0.0
0.0
>>> float(3)
3.0
>>> float('')
3.0

float

complex:根据传入参数创建一个新的复数

>>> complex() # 当两个参数都不提供时,返回复数 0j。
0j
>>> complex('1+2j') # 传入字符串创建复数
(1+2j)
>>> complex(1,2) # 传入数值创建复数
(1+2j)

complex

 str:返回一个对象的字符串

>>> str()
''
>>> str(None)
'None'
>>> str('abc')
'abc'
>>> str(123)
''

str

bytearray:根据传入的参数创建一个新的字节数组

>>> bytearray('中文', 'utf-8')
bytearray(b'\xe4\xb8\xad\xe6\x96\x87')

bytearray

bytes:根据传入的参数创建一个新的不可变字节数组

>>> bytes('中文', 'utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'

bytes

memoryview:根据传入的参数创建一个新的内存查看对象

>>>v = memoryview(b'abcefg')
>>>v[1]
98
>>>v[-1]
103

memoryview

ord:返回Unicode字符对应的整数

>>> ord('a')
97

ord

chr:返回整数所对应的Unicode字符

>>> chr(97) # 参数类型为整数
'a'

chr

bin:将整数转换成二进制字符串

>>> bin(3)
'0b11'

bin

oct:将整数转化成八进制数字符串

>>> oct(10)
'0o12'

oct

hex:将整数转换成十六进制字符串

>>> hex(15)
'0xf'

hex

tuple:根据传入的参数创建一个新的元组

>>> tuple() #不传入参数,创建空元组
()
>>> tuple('') #传入可迭代对象。使用其元素创建新的元组
('', '', '')

tuple

list:根据传入的参数创建一个新的列表

>>>list() # 不传入参数,创建空列表
[]
>>> list('abcd') # 传入可迭代对象,使用其元素创建新的列表
['a', 'b', 'c', 'd']

list

dict:根据传入的参数创建一个新的字典

>>> dict() # 不传入任何参数时,返回空字典。
{}
>>> dict(a = 1,b = 2) # 可以传入键值对创建字典。
{'b': 2, 'a': 1}
>>> dict(zip(['a','b'],[1,2])) # 可以传入映射函数创建字典。
{'b': 2, 'a': 1}
>>> dict((('a',1),('b',2))) # 可以传入可迭代对象创建字典。
{'b': 2, 'a': 1}

dict

set:根据传入的参数创建一个新的集合

>>>set() # 不传入参数,创建空集合
set()
>>> a = set(range(10)) # 传入可迭代对象,创建集合
>>> a
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

set

frozenset:根据传入的参数创建一个新的不可变集合

>>> a = frozenset(range(10))
>>> a
frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})

frozenset

enumerate:根据可迭代对象创建枚举对象

>>> 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')]

enumerate

range:根据传入的参数创建一个新的range对象

>>> a = range(10)
>>> b = range(1,10)
>>> c = range(1,10,3)
>>> a,b,c # 分别输出a,b,c
(range(0, 10), range(1, 10), range(1, 10, 3))
>>> list(a),list(b),list(c) # 分别输出a,b,c的元素
([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 4, 7])

range

iter:根据传入的参数创建一个新的可迭代对象

>>> a = iter('abcd') # 字符串序列
>>> a
<str_iterator object at 0x03FB4FB0>
>>> next(a)
'a'
>>> next(a)
'b'
>>> next(a)
'c'
>>> next(a)
'd'
>>> next(a)
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
next(a)
StopIteration

iter

slice:根据传入的参数创建一个新的切片对象

>>> c1 = slice(5) # 定义c1
>>> c1
slice(None, 5, None)
>>> c2 = slice(2,5) # 定义c2
>>> c2
slice(2, 5, None)
>>> c3 = slice(1,10,3) # 定义c3
>>> c3
slice(1, 10, 3)

slice

super:根据传入的参数创建一个新的子类和父类关系的代理对象

# 定义父类A
>>> class A(object):
def __init__(self):
print('A.__init__') # 定义子类B,继承A
>>> class B(A):
def __init__(self):
print('B.__init__')
super().__init__() # super调用父类方法
>>> b = B()
B.__init__
A.__init__

super

object:创建一个新的object对象

>>> a = object()
>>> a.name = 'kim' # 不能设置属性
Traceback (most recent call last):
File "<pyshell#9>", line 1, in <module>
a.name = 'kim'
AttributeError: 'object' object has no attribute 'name'

object

序列操作

all:判断可迭代对象的每个元素是否都为True值

>>> all([1,2]) # 列表中每个元素逻辑值均为True,返回True
True
>>> all([0,1,2]) # 列表中0的逻辑值为False,返回False
False
>>> all(()) # 空元组
True
>>> all({}) # 空字典
True

all

any:判断可迭代对象的元素是否有为True值的元素

>>> any([0,1,2]) # 列表元素有一个为True,则返回True
True
>>> any([0,0]) # 列表元素全部为False,则返回False
False
>>> any([]) # 空列表
False
>>> any({}) # 空字典
False

any

filter:使用指定方法过滤可迭代对象的元素

>>> a = list(range(1, 10)) # 定义序列
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> def if_odd(x): # 定义奇数判断函数
return x%2 == 1 >>> list(filter(if_odd, a)) # 筛选序列中的奇数
[1, 3, 5, 7, 9]

filter

map:使用指定方法去作用传入的每个可迭代对象的元素,生成新的可迭代对象

>>> a = map(ord, 'abcd')
>>> a
<map object at 0x03994E50>
>>> list(a)
[97, 98, 99, 100]

map

next:返回可迭代对象中的下一个元素值

>>> a = iter('abcd')
>>> next(a)
'a'
>>> next(a)
'b'
>>> next(a)
'c'
>>> next(a)
'd'
>>> next(a)
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
next(a)
StopIteration # 传入default参数后,如果可迭代对象还有元素没有返回,则依次返回其元素值,如果所有元素已经返回,则返回default指定的默认值而不抛出 StopIteration 异常 >>> next(a,'e')
'e'
>>> next(a,'e')
'e'

next

reversed:反转序列生成新的可迭代对象

>>> a = reversed(range(10))     # 传入range对象
>>> a # 类型变成迭代器
<range_iterator object at 0x035634E8>
>>> list(a)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

reversed

sorted:对可迭代对象进行排序,返回一个新的列表

>>> a = ['a','b','d','c','B','A']
>>> a
['a', 'b', 'd', 'c', 'B', 'A'] >>> sorted(a) # 默认按字符ascii码排序
['A', 'B', 'a', 'b', 'c', 'd'] >>> sorted(a,key = str.lower) # 转换成小写后再排序,'a'和'A'值一样,'b'和'B'值一样
['a', 'A', 'b', 'B', 'c', 'd']

sorted

zip:聚合传入的每个迭代器中相同位置的元素,返回一个新的元组类型迭代器

>>> x = [1,2,3] # 长度3
>>> y = [4,5,6,7,8] # 长度5
>>> list(zip(x,y)) # 取最小长度3
[(1, 4), (2, 5), (3, 6)]

zip

对象操作

help:返回对象的帮助信息

>>> help(str)
Help on class str in module builtins: class str(object)
| str(object='') -> str
| str(bytes_or_buffer[, encoding[, errors]]) -> str
|
| Create a new string object from the given object. If encoding or
| errors is specified, then the object must expose a data buffer
| that will be decoded using the given encoding and error handler.
| Otherwise, returns the result of object.__str__() (if defined)
| or repr(object).
| encoding defaults to sys.getdefaultencoding().
| errors defaults to 'strict'.
|
| Methods defined here:
|
| __add__(self, value, /)
| Return self+value.
|
***************************

help

dir:返回对象或者当前作用域内的属性列表

>>> import math
>>> math
<module 'math' (built-in)>
>>> dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']

dir

id:返回对象的唯一标识符

>>> a = 'some text'
>>> id(a)
69228568

id

hash:获取对象的哈希值

>>> hash('good good study')
1032709256

hash

type:返回对象的类型,或者根据传入的参数创建一个新的类型

>>> type(1) # 返回对象的类型
<class 'int'> # 使用type函数创建类型D,含有属性InfoD
>>> D = type('D',(A,B),dict(InfoD='some thing defined in D'))
>>> d = D()
>>> d.InfoD
'some thing defined in D'

type

len:返回对象的长度

>>> len('abcd')     # 字符串
>>> len(bytes('abcd','utf-8')) # 字节数组
>>> len((1,2,3,4)) # 元组
>>> len([1,2,3,4]) # 列表
>>> len(range(1,5)) # range对象
>>> len({'a':1,'b':2,'c':3,'d':4}) # 字典
>>> len({'a','b','c','d'}) # 集合
>>> len(frozenset('abcd')) #不可变集合

len

ascii:返回对象的可打印表字符串表现方式

>>> ascii(1)
''
>>> ascii('&')
"'&'"
>>> ascii(9000000)
''
>>> ascii('中文') # 非ascii字符
"'\\u4e2d\\u6587'"

ascii

format:格式化显示值,返回一个新的字符串,参数从0 开始编号

>>>"{0}:计算机{1}的CPU 占用率为{2}%。".format("2018-10-14","Python",10)
'2018-10-14:计算机Python的CPU 占用率为10%。'

format

vars:返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表

>>> a.__dict__
{}
>>> vars(a)
{}
>>> a.name = 'Kim'
>>> a.__dict__
{'name': 'Kim'}
>>> vars(a)
{'name': 'Kim'}

vars

反射操作

__import__:动态导入模块

# a.py

import os
print ('在 a.py 文件中 %s' % id(os)) # test.py import sys
__import__('a') # 导入 a.py 模块 # 执行 test.py 文件,输出结果为
在 a.py 文件中 4394716136

__import__

isinstance:判断对象是否是类或者类型元组中任意类元素的实例

>>> isinstance(1,int)
True
>>> isinstance(1,str)
False
>>> isinstance(1,(int,str))
True

isinstance

issubclass:判断类是否是另外一个类或者类型元组中任意类元素的子类

>>> issubclass(bool,int)
True
>>> issubclass(bool,str)
False >>> issubclass(bool,(str,int))
True

issubclass

hasattr:检查对象是否含有属性

# 定义类A
>>> class Student:
def __init__(self,name):
self.name = name >>> s = Student('Aim')
>>> hasattr(s,'name') # a含有name属性
True
>>> hasattr(s,'age') # a不含有age属性
False

hasattr

getattr:获取对象的属性值

# 定义类Student
>>> class Student:
def __init__(self,name):
self.name = name >>> getattr(s,'name') #存在属性name
'Aim' >>> getattr(s,'age',6) # 不存在属性age,但提供了默认值,返回默认值 >>> getattr(s,'age') # 不存在属性age,未提供默认值,调用报错
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
getattr(s,'age')
AttributeError: 'Stduent' object has no attribute 'age'

getattr

setattr:设置对象的属性值

>>> class Student:
def __init__(self,name):
self.name = name >>> a = Student('Kim')
>>> a.name
'Kim'
>>> setattr(a,'name','Bob')
>>> a.name
'Bob'

setattr

delattr:删除对象的属性

# 定义类A
>>> class A:
def __init__(self,name):
self.name = name
def sayHello(self):
print('hello',self.name) # 测试属性和方法
>>> a.name
'小麦'
>>> a.sayHello()
hello 小麦 #删除属性
>>> delattr(a,'name')
>>> a.name
Traceback (most recent call last):
File "<pyshell#47>", line 1, in <module>
a.name
AttributeError: 'A' object has no attribute 'name'

delattr

callable:检测对象是否可被调用

>>> class B: #定义类B
def __call__(self):
print('instances are callable now.') >>> callable(B) # 类B是可调用对象
True
>>> b = B() # 调用类B
>>> callable(b) # 实例b是可调用对象
True
>>> b() # 调用实例b成功
instances are callable now.

callable

变量操作

globals:返回当前作用域内的全局变量和其值组成的字典

>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>}
>>> a = 1
>>> globals() # 多了一个a
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': 1}

globals

locals:返回当前作用域内的局部变量和其值组成的字典

>>> locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': 1}

locals

交互操作

print:向标准输出对象打印输出

>>> print(1,2,3)
1 2 3
>>> print(1,2,3,sep = '+')
1+2+3
>>> print(1,2,3,sep = '+',end = '=?')
1+2+3=?

print

input:读取用户输入值

>>> s = input('please input your name:')
please input your name:qiuxi
>>> s
'qiuxi'

input

文件操作

open:使用指定的模式和编码打开文件,返回文件读写对象

>>> a = open('test.txt', 'rt', encoding='utf-8')
>>> a.read()
'some text'
>>> a.close()

open

编译执行

compile:将字符串编译为代码或者AST对象,使之能够通过exec语句来执行或者eval进行求值

>>> # 流程语句使用exec
>>> code1 = 'for i in range(0,10): print (i)'
>>> compile1 = compile(code1,'','exec')
>>> exec (compile1)
0
1
2
3
4
5
6
7
8
9 >>> # 简单求值表达式用eval
>>> code2 = '1 + 2 + 3 + 4'
>>> compile2 = compile(code2,'','eval')
>>> eval(compile2)
10

compile

eval:执行动态表达式求值

>>> eval('1+2+3+4')
10

eval

exec:执行动态语句块

>>> exec('a=1+2')     # 执行语句
>>> a
3

exec

repr:给解释器返回一个对象的字符串

>>> a = 'some text'
>>> str(a)
'some text'
>>> repr(a)
"'some text'"

repr

装饰器

property:标示属性的装饰器

>>> class C:
def __init__(self):
self._name = ''
@property
def name(self):
"""i'm the 'name' property."""
return self._name
@name.setter
def name(self,value):
if value is None:
raise RuntimeError('name can not be None')
else:
self._name = value >>> c = C() >>> c.name # 访问属性
''
>>> c.name = None # 设置属性时进行验证
Traceback (most recent call last):
File "<pyshell#84>", line 1, in <module>
c.name = None
File "<pyshell#81>", line 11, in name
raise RuntimeError('name can not be None')
RuntimeError: name can not be None >>> c.name = 'Kim' # 设置属性
>>> c.name # 访问属性
'Kim' >>> del c.name # 删除属性,不提供deleter则不能删除
Traceback (most recent call last):
File "<pyshell#87>", line 1, in <module>
del c.name
AttributeError: can't delete attribute
>>> c.name
'Kim'

property

classmethod:标示方法为类方法的装饰器

>>> class C:
@classmethod
def f(cls,arg1):
print(cls)
print(arg1) >>> C.f('类对象调用类方法')
<class '__main__.C'>
类对象调用类方法 >>> c = C()
>>> c.f('类实例对象调用类方法')
<class '__main__.C'>
类实例对象调用类方法

classmethod

staticmethod:标示方法为静态方法的装饰器

# 使用装饰器定义静态方法
>>> class Student(object):
def __init__(self,name):
self.name = name
@staticmethod
def sayHello(lang):
print(lang)
if lang == 'en':
print('Welcome!')
else:
print('你好!') >>> Student.sayHello('en') # 类调用,'en'传给了lang参数
en
Welcome! >>> b = Student('Kim')
>>> b.sayHello('zh') # 类实例对象调用,'zh'传给了lang参数
zh
你好

staticmethod

Learning-Python【15】:内置函数的更多相关文章

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

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

  2. python 基础篇 15 内置函数和匿名函数

    ------------------------>>>>>>>>>>>>>>>内置函数<<< ...

  3. python基础(15):内置函数(一)

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

  4. python常用内置函数(转载)

    1. 和数字相关 1.1 数据类型 1.2 进制转换 1.3 数学运算 2. 和数据结构相关 2.1 序列 2.2 数据集合 2.3 相关内置函数 3. 和作用域相关 4. 和迭代器生成器相关 5. ...

  5. python基础-内置函数详解

    一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highlight=built#ascii ...

  6. python基础——内置函数

    python基础--内置函数  一.内置函数(python3.x) 内置参数详解官方文档: https://docs.python.org/3/library/functions.html?highl ...

  7. 如何查看Python的内置函数

    经常调用的时候不知道python当前版本的内置函数是哪些,可以用下面的指令查看: C:\Users\Administrator>python Python 2.7.11 (v2.7.11:6d1 ...

  8. python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理

    python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...

  9. Python的内置函数

    python的内置函数一共有68个,下面将简单介绍各个函数的功能. abs() dict() help() min() setattr() all() dir() hex() next() slice ...

  10. python print()内置函数

    啦啦啦啦啦啦,我又来了,学习任何东西都得坚持,我一定的好好加油!!! 今天来说说print()函数,前边我们已经用过好好多次啦,现在来学习哈吧!!! Python的内置函数,print() print ...

随机推荐

  1. create database link

    如果本地的tnsnames.ora中未建立数据库连接,那么就是用1,否则就是用2 1:create database link geelyin96 connect to geelyin identif ...

  2. 26、jQuery

    一. jQuery简介 (一) jQuery是什么: 是一个javascript代码仓库 是一个快速的简洁的javascript框架,可以简化查询DOM对象.处理事件.制作动画.处理Ajax交互过程. ...

  3. 教你如何用笔记本设置超快WIFI

    以win7为例 1.在主菜单运行框输入  cmd------->以管理员的身份运行 2.命令提示符中输入:netsh wlan set hostednetwork mode=allow ssid ...

  4. vue中子传父,父传子的具体用法

    先说明下父组件Login,子组件signCon 子拿到父数据可以通过,在子组件里面设置props:['name']的方法拿到. 首先在父组件中定义数据了: data(){Englishname:'li ...

  5. ASP返回JQuery EasyUI树形要求的JSON格式

    根据http://blog.csdn.net/apollokk/article/details/41382479中提供的数据将结果格式化为JQuery EasyUI树形要求的JSON格式 <% ...

  6. day12 十二、开放封闭、装饰器

    一.nonlocal关键词 # global # num = # def fn(): # global num # L>G 将局部的名字与全局统一 # num = # fn() # print( ...

  7. linux 下的clock_gettime() 获取时间函数

    #include <time.h> int clock_gettime(clockid_t clk_id, struct timespec* tp); 可以根据需要,获取不同要求的精确时间 ...

  8. Elasticsearch学习笔记(二)Search API 与 Query DSL

    一. Search API eg: GET /mall/product/_search?q=name:productName&sort=price desc 特点:search的请求参数都是以 ...

  9. python frist lesson

    1.print("") 代表打印字符段 2.name2 = name ,然后改变name的赋值,name2的值还是以前name的值,说明name2指向的是内存中name的赋值. 3 ...

  10. tp 内置压缩文件zip

    一.解压缩zip文件 $zip = new ZipArchive;//新建一个ZipArchive的对象 /* 通过ZipArchive的对象处理zip文件 $zip->open这个方法的参数表 ...