Built-in Functions
abs()  dict() help() min() setattr()
all() dir() hex() next() slice()
any() divmod() id() object() sorted()
ascii() enumerate() input() oct() staticmethod()
bin() eval() int() open() str()
bool() exec() isinstance() ord() sum()
bytearray() filter() insubclass() pow() super()
bytes() float() iter() print() tuple()
callable() format() len() property() type()
chr() frozenset() list() range() vars()
classmethod() getattr() locals() repr() zip()
compile() globals() map() reversed() _import_()
complex() hasattr() max() round()  
delattr() hash() memoryview() set()  
  • abs()  取绝对值
  • dict()  把一个数据转成字典
  • help()  帮助
  • min()  从列表中取出最小数
>>> a  = [1,4,5,-1,3]
>>> min(a)
-1
  • max()  从列表中取出最大数
>>> a  = [1,4,5,-1,3]
>>> max(a)
5
  • all()  如果bool(x)为True,即x中所有元素均为True,all(x)为True。如果x是可循环的(列表为可循环的),all(x)也返回True。

空列表或列表内元素全为True,all()为True。

#一种特殊情况
>>> bool([])
False
>>> all([])
True
  • any()
#和all相反,只要有列表中有一个元素为True,any即为True
>>> any([False,0])
False
>>> any([False,0,1])
True
>>> any([])
False
  • dir()  打印当前程序中存在的所有变量
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__'] #系统自带变量
>>> dir(__builtins__) #打印所有的内置模块
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
  • vars()  打印当前所有变量名及其对应的值
>>> vars()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 's': frozenset({2, 3, 4, 5}), 'f': <function f at 0x000002C11182F7B8>, 'lis': [1, 2, 3]}
  • locals()  在函数里面运行,打印函数里所有的局部变量名及其值
>>> def f():
... n = 3
... print(locals())
...
>>> f()
{'n': 3}
  • globals()  打印所有全局变量名及其值
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 's': frozenset({2, 3, 4, 5}), 'f': <function f at 0x000002C1118359D8>, 'lis': [1, 2, 3]}
  • hex()  将数字转换成十六进制
  • slice()  切片:相当于提前定义好切片要求
>>> l = list(range(10))
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> s = slice(1,7,2)
>>> s
slice(1, 7, 2)
>>> l[1:7:2]
[1, 3, 5]
>>> l[s]
[1, 3, 5]
  • divmod()  取整除和余数
>>> 10//3
3
>>> 10/3
3.3333333333333335
>>> 10%3
1
>>> divmod(10,3) #10除以3
(3, 1) #返回(商,余数)
  • id()  查内存地址
  • sorted()  排序,默认由小到大
#列表排序,和sort功能一致
>>> l = list(range(10))
>>> l[4] = 99
>>> l
[0, 1, 2, 3, 99, 5, 6, 7, 8, 9]
>>> sorted(l)
[0, 1, 2, 3, 5, 6, 7, 8, 9, 99]
>>> l
[0, 1, 2, 3, 99, 5, 6, 7, 8, 9]
>>> l.sort()
>>> l
[0, 1, 2, 3, 5, 6, 7, 8, 9, 99]
#字典排序
>>> d = {}
>>> for i in range(20):
... d[i] = i-50
...
>>> d #字典本身无序
{0: -50, 1: -49, 2: -48, 3: -47, 4: -46, 5: -45, 6: -44, 7: -43, 8: -42, 9: -41, 10: -40, 11: -39, 12: -38, 13: -37, 14: -36, 15: -35, 16: -34, 17: -33, 18: -32, 19: -31}
>>> d.items() #生成元组同样无序
dict_items([(0, -50), (1, -49), (2, -48), (3, -47), (4, -46), (5, -45), (6, -44), (7, -43), (8, -42), (9, -41), (10, -40), (11, -39), (12, -38), (13, -37), (14, -36), (15, -35), (16, -34), (17, -33), (18, -32), (19, -31)])
>>> sorted(d.items()) #默认从小到大排序
[(0, -50), (1, -49), (2, -48), (3, -47), (4, -46), (5, -45), (6, -44), (7, -43), (8, -42), (9, -41), (10, -40), (11, -39), (12, -38), (13, -37), (14, -36), (15, -35), (16, -34), (17, -33), (18, -32), (19, -31)]
>>> sorted(d.items(),key= lambda x:x[1]) #按照value值从小到大排序
[(0, -50), (1, -49), (2, -48), (3, -47), (4, -46), (5, -45), (6, -44), (7, -43), (8, -42), (9, -41), (10, -40), (11, -39), (12, -38), (13, -37), (14, -36), (15, -35), (16, -34), (17, -33), (18, -32), (19, -31)]
>>> d[0] = 399
>>> sorted(d.items(),key=lambda x:x[1]) #按照value值从小到大排序
[(1, -49), (2, -48), (3, -47), (4, -46), (5, -45), (6, -44), (7, -43), (8, -42), (9, -41), (10, -40), (11, -39), (12, -38), (13, -37), (14, -36), (15, -35), (16, -34), (17, -33), (18, -32), (19, -31), (0, 399)]
>>> sorted(d.items(),key=lambda x:x[1],reverse=True) #按照value值从大到小排序
[(0, 399), (19, -31), (18, -32), (17, -33), (16, -34), (15, -35), (14, -36), (13, -37), (12, -38), (11, -39), (10, -40), (9, -41), (8, -42), (7, -43), (6, -44), (5, -45), (4, -46), (3, -47), (2, -48), (1, -49)]
  • reversed()  和sorted()一样,不过是默认由大到小
  • ascii()  返回unico编码
>>> s = 'abcd路飞'
>>> s
'abcd路飞'
>>> ascii(s) #返回s的Unicode编码
"'abcd\\u8def\\u98de'"
  • enumerate()  枚举,返回索引
  • input()  输入
  • oct()  转成八进制
  • bin()  转成二进制
  • eval()  按解释器的规则把单行字符串转成代码运行
#将字符串转换成公式进行运算
>>> s = '1+3/2'
>>> s
'1+3/2'
>>> eval(s)
2.5
#执行单行代码
>>> eval('print("hello world")')
hello world
#不能执行多行代码
>>> code = '''
... if 3>5 :
... print('3 is bigger than 5')
... else:
... print('dddd')
... '''
>>> code
"\nif 3>5 :\n\tprint('3 is bigger than 5')\nelse:\n\tprint('dddd')\n\n\n"
>>> eval(code)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 2
if 3>5 :
^
SyntaxError: invalid syntax
  • exec()  能运行多行代码,但是没有返回值
#exec()能运行多行代码但无返回值
>>> code = '''
... def foo():
... print('run foo')
... return 1234
... foo()
... '''
>>> res = exec(code)
run foo
>>> print('res',res)
res None
#运行单行代码与eval()对比
>> res1 = eval("1+3+3")
>>> res2 = exec("1+3+3")
>>> print('res',res1,res2)
res 7 None
  • int()  转换成整数类型
  • open()  打开文件open(file='', mode='',encoding='')
  • str()  转换成字符串类型
  • bool()  判断True or False,只有0是False
  • ord()  返回字符串在ASCII码里的值
>>> ord('a')
97
  • chr()  返回ASCII码值对应的字符串
>>> chr(97)
'a'
  • sum()
>>> a = [1,4,5,-1,3,0]
>>> a
[1, 4, 5, -1, 3, 0]
>>> sum(a) #将列表中所有元素加起来求和
12
  • bytearray()
    1. 一般用于修改长字符串,短字符串可改成列表然后进行修改。
    2. 可将字符串在原地址上修改,但字符串中修改的个别元素的地址会发生变化。
>>> s = 'abcd路飞'
>>> id(s)
1496733953552
>>> s = s.encode('gbk')
>>> s
b'abcd\xc2\xb7\xb7\xc9'
>>> s = bytearray(s) #字符串变成bytearray之后能修改
>>> s
bytearray(b'abcd\xc2\xb7\xb7\xc9')
>>> s[4]
194
>>> s[4] = 233
>>> s
bytearray(b'abcd\xe9\xb7\xb7\xc9')
>>> s = s.decode('gbk')
>>> s
'abcd榉飞'
>>> id(s) #在原地址上修改
1496733953552
  • map()
>>> map(lambda x:x*x,[1,2,3,4,5])
<map object at 0x0000015C7C561080>
>>> list(map(lambda x:x*x,[1,2,3,4,5]))
[1, 4, 9, 16, 25]
  • filter()  过滤
>>> filter(lambda x:x>3,[1,2,3,4,5])  #筛选出满足lambda条件的元素
<filter object at 0x0000015C7C561048>
>>> list(filter(lambda x:x>3,[1,2,3,4,5]))
[4, 5]
  • reduce()
>>> import functools
>>> functools.reduce(lambda x,y:x+y,[1,2,3,4,5,6,7,8]) #求和
36
>>> functools.reduce(lambda x,y:x*y,[1,2,3,4,5,6,7,8]) #求乘积
40320
>>> functools.reduce(lambda x,y:x+y,[1,2,3,4,5,6,7,8],3) #求和加上最后一项
39
  • pow()  求次方   pow(a, b) = a**b
  • bytes()  换成byte类型
  • float()  换成浮点类型
  • print()  打印   print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)  flush以后会用到,这里先不讲
>>> s = 'hey, my name is alex\n, from Shanghai'
>>> print(s)
hey, my name is alex
, from Shanghai
>>> print(s,end='.')
hey, my name is alex
, from Shanghai.>>> #在最后会默认加一个\n
...
>>> print(s,end='|') #end是以什么结尾
hey, my name is alex
, from Shanghai|>>>
>>> print('haifeng','gangniang',sep='->') #sep是以什么连接两个字符串
haifeng->gangniang
#写入文件
msg = '又回到最初的原点'
f = open('print_tofile.txt', 'w')
print(msg, '记忆中你青涩的脸', sep='|', end='.', file=f)#不会在最后自带换行,重复本行命令,可连着写入
  • tuple()  变成元组
  • callable()  判断是否可调用
>>> def f():
... pass
...
>>> callable(f) #带(),即是函数,就可调用,其余不可调用
True
>>> lis = [1,2,3]
>>> callable(lis)
False
  • format()  格式化
  • len()  获取长度
  • type()  类型
  • frozenset()  冷冻的集合,即为不可变的集合
>>> s = {1,2,3,4,5}
>>> s.discard(1)
>>> s
{2, 3, 4, 5}
>>> s = frozenset(s)
>>> s.discard(3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'frozenset' object has no attribute 'discard'
  • list()  列表
  • range()  循环
  • repr()   把变量值显示成字符串形式
>>> s
frozenset({2, 3, 4, 5})
>>> repr(s)
'frozenset({2, 3, 4, 5})'
  • zip()  将两个列表元素一一对应生成元组,无对应元素的多余部分被舍弃
>>> a = [1,2,3,4,5]
>>> b = ['a','b','c']
>>> a
[1, 2, 3, 4, 5]
>>> b
['a', 'b', 'c']
>>> zip(a,b)
<zip object at 0x000002C1118C4FC8>
>>> list(zip(a,b))
[(1, 'a'), (2, 'b'), (3, 'c')]
  • complex()  把数字变成复数
>>> complex(3,5)
(3+5j)
  • round()  保留几位小数,默认不保留小数部分
>>> round(1.234567)
1
>>> round(1.234567,2)
1.23
  • hash()  把字符串变成数字
#只要不重启,数字不会重复
>>> hash('abcd')
6166213067681790707
>>> hash('abcd')
6166213067681790707
  • set()  把列表变成集合
>>> set([1,2,3,4])
{1, 2, 3, 4}

后面讲模块会讲到:_import_()

后面面向对象再讲:next()  object()  staticmethod()  isinstance()  property()  classmethod()

delattr()  hasattr()  getattr()  setattr()  四剑客放在后面一起讲

memoryview()  基本用不到,用于大数据处理

compile()  编译代码用,现在用不到,讲模板引擎的时候可能会用到

Python全栈之路----函数----内置方法的更多相关文章

  1. Python全栈之路----函数----返回值

    函数外部的代码想要获取函数的执行结果,就可以在函数里用return语句,把结果返回. def stu_register(name,age,course='PY',country='CN'): prin ...

  2. Python全栈之路----函数----高阶函数

    变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一函数作为参数,这种函数就称之为高阶函数. 只需满足以下任意一个条件,即是高阶函数: 接收一个或多个函数作为输入 def func(x, ...

  3. Python全栈之路----函数进阶----名称空间

    又名name space,顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的=地方 名称空间共3种,分别如下 ...

  4. Python全栈之路----函数----局部变量

    全局变量是定义在函数外部以及代码的变量,全局能用. 局部变量就是定义在函数里的变量,只能在局部生效. 在函数内部,可以引用全局变量. 如果全局和局部都有一个名字相同的变量,在函数内会优先调用函数内的局 ...

  5. Python全栈之路----函数进阶----作用域的查找空间

    n = 10 def func(): n = 20 print('func:',n) def func2(): n = 30 print('func2:',n) def func3(): print( ...

  6. Python全栈之路----函数进阶----装饰器

    Python之路,Day4 - Python基础4 (new版) 装饰器 user_status = False #用户登录后改为True def login(func): #传入想调用的函数名 de ...

  7. Python全栈之路----函数----作用域

    Python中,一个函数就是一个作用域. 局部变量放置在其作用域中,根据作用域来区分,函数属于你,函数属于我. 定义完成后,作用域已经生成,使用时顺着作用域链向上查找. 函数定义完成后,不管被在哪儿被 ...

  8. Python全栈之路----函数进阶----迭代器

    我们已经知道,可以直接作用于 for 循环的数据类型有以下几种: 一类是集合数据类型,如 list , tuple , dict , set ,str 等: 一类是 generator ,包括生成器和 ...

  9. Python全栈之路----函数

    基本介绍 定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 编程中的函数在英文中有很多不同的叫法:在BASIC中叫做subroutine(子过程或 ...

随机推荐

  1. Ubuntu 16.04下vsftpd 安装配置实例

    从https://www.linuxidc.com/Linux/2017-06/144807.htm转载 第一步:安装VSFTPD sudo apt-get install vsftpd 安装完成后启 ...

  2. luogu3426 [POI2005]SZA-Template 后缀树

    链接 bzoj不能auto https://www.luogu.org/problemnew/show/P3426 思路 这个要求的串一定是S的前缀和S的后缀. 转化一下 建立出来fail树(fail ...

  3. Character Encoding in .NET

    https://docs.microsoft.com/en-us/dotnet/standard/base-types/character-encoding#Encodings Characters ...

  4. 【C#数据结构系列】图

    一:图 图状结构简称图,是另一种非线性结构,它比树形结构更复杂.树形结构中的结点是一对多的关系,结点间具有明显的层次和分支关系.每一层的结点可以和下一层的多个结点相关,但只能和上一层的一个结点相关.而 ...

  5. Intellj IDEA光标问题

    Intellj IDEA光标为insert状态,无法删除内容以前用得是社区版的IDEA,今天装了14版本的,结果导入项目后,发现打开java文件的光标是win系统下按了insert键后的那种宽的光标, ...

  6. burpsuit 无法导入证书,抓取https的解决办法

    想用burpsuit中转https流量,需要安装证书: 确保浏览器能访问http 后,访问:http://burp/ 点击右上角下载证书. 然后导入,这些网上都有方法. 但如果你试了后: ①提示导入失 ...

  7. _quick_response

    在线答题,抢答 `question` 题库 `correctAnswer` 正确答案(A,B,C,D) `answerA` 选项显示 `answerB`选项显示 `answerC` 选项显示 `ans ...

  8. Roslyn

    Roslyn 是以 API 为驱动的下一代编译器,集成在最新版的 Visual Studio 上.它开放 C# 和 Visual Basic 编译器的 API,使得开发者可以借助编译器进行解析代码文件 ...

  9. nodejs点滴

    1.exports与module.exports http://cnodejs.org/topic/5231a630101e574521e45ef8 因为require指向了module.export ...

  10. Confluence 6 示例 - https://confluence.atlassian.com/

    这里是有关存储空间和内存使用的情况,数据更新于 2013年04月: 数据库大小 2827 MB Home 目录占用空间大小 116 GB 平均内存消耗 1.9 GB 选择实例的数据库表格 数据(Dat ...