内置函数

内置函数补充


 all: 所有iterable类型,包含的元素要全为真才返回真

>>> all([0,-1,5])
False
>>> all([-1,5])
True

any:有iterable类型,非空且包含任一为真element就返回true

>>> any([])
False
>>> any([0])
False
>>> any([0,12])
True

ascii:

>>> a = ascii([1,2,"中文"])
>>> print(type(a),[a])
<class 'str'> ["[1, 2, '\\u4e2d\\u6587']"]
>>> #把内存的数据转换为可打印的字符串格式

bin:

>>> bin(2)  #把十进制转换为二进制
'0b10'
>>> #convert an integer number to a binary string ,需要整数才能转
#二进制转十进制
>>> int('0b10',2) #如果前面有标识进制数,后面不用加 base
2
>>> int('',base=2)
2
>>> int('0x10',16)
16
>>> int('0o657',8)
431
>>> int('',base=8)
431
>>> bin(431)
'0b110101111'
>>> oct(431)
'0o657'
>>> hex(431)
'0x1af'
>>>

2,8,16,10进制互转

bool:判断真假

>>> bool([])
False
>>> bool(0)
False
>>> bool([0,1])
True

bytes:转换为二进制格式

>>> a = bytes("abcde",encoding='utf-8')
>>> print(a.capitalize(),a)
b'Abcde' b'abcde'
>>> a[0]
97
>>> a[0] = 100 #当想修改它时会报错
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
a[0] = 100
TypeError: 'bytes' object does not support item assignment
>>>

bytearray:

>>> b = bytearray("abcde",encoding='utf-8')
>>> b[0]
97
>>> b[0] = 102
>>> print(b)
bytearray(b'fbcde')
>>> #bytearray变成变成二进制列表的形式,并可以修改,很少用到

callable:

>>> print(callable([]))
False
>>> #判断是否可以调用,后面能加括号的就是能调用的,比如函数
>>> def sayhi():
pass
>>> callable(sayhi()) #此时为函数运行结果,不能调用
False
>>> callable(sayhi) #注意此时函数为内存地址,可以调用
True

chr:

>>> chr(87) #把Unicode中的数字对应的元素返回出来
'W'

ord:

>> ord('a') #把元素返回为Unicode中对应的数字号码
97

compile:#compile(str,'err.log','exec or eval') 把字符串编译为可运行的代码

>>> code = 'for i in range(2):print(i)'
>>> compile(code,'','exec')
<code object <module> at 0x000001C8899C89C0, file "", line 1>
>>> exec(code) #相当于import了这个模块,然后执行
>>>>
0
1
2

dict:

>>>dict() # 创建空字典 {} 
>>> dict(a='a', b='b', t='t')             # 传入关键字 {'a': 'a', 'b': 'b', 't': 't'}
>>> dict(zip(['one', 'two', 'three'], [1, 2, 3])) # 映射函数方式来构造字典 {'three': 3, 'two': 2, 'one': 1}
>>> dict([('one', 1), ('two', 2), ('three', 3)]) # 可迭代对象方式来构造字典 {'three': 3, 'two': 2, 'one': 1} >>>

delattr :

很重要,先跳过

dir:

>>> a = {}
>>> dir(a) #查可用方法
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
>>>

divmod:

divmod(5,2)  # 5除以2 并返回商和余数
(2, 1)

lambda: 匿名函数

>>> x = lambda n:3 if n<3 else n
>>> x(7) #>>> x(2) 输出为 3
7 >>>aaa = lambda x,y:x+y
>>>print(aaa(1,2)) #定义了几个参数就传几个参数和函数一样
3

format:

实例
>>>"{} {}".format("hello", "world") # 不设置指定位置,按默认顺序
'hello world' >>> "{0} {1}".format("hello", "world") # 设置指定位置
'hello world' >>> "{1} {0} {1}".format("hello", "world") # 设置指定位置
'world hello world'
也可以设置参数: 实例
#!/usr/bin/python
# -*- coding: UTF-8 -*- print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com")) # 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site)) # 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必须的

format

filter:过滤

>>> res = filter(lambda n:n>5,range(10))     #filter(function,iterable),参数1为条件,参数2为可迭代类型
>>> for i in res:
print(i) 6
7
8
9
>>> #在range(10)中过滤出大于5的元素

map:   map(function,iterable),按照function的功能,对iterable进行操作

>>> res2 = map(lambda n:n*n,range(3))
>>> for i in res2:
print(i) 0
1
4
>>> #map(function,iterable),按照function的功能,对iterable进行操作
>>> #是个迭代器,要用for循环输出
>>> #和列表生成式一样,区别是map是迭代器

reduce : 在python3中不是内置函数,需要import  functools调用

>>> import functools
>>> res3 = functools.reduce(lambda x,y:x+y,range(10))
>>> print(res3)
45
>>> #x为返回值,y为第一个数,执行x+y后,x变为x+y,y变为下一个数,从而得到从1加到10的值
>>> #在python2.7中 reduce为内置函数,现在要用functools导入调用

float:  将数字或者字符串,返回为浮点数

>>> float(3)
3.0
>>> float('3.4')
3.4

 globals(): 只打印全局变量   locals():打印局部变量

>>> a = [1]
>>> globals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': [1]}
>>> globals().get('a')
[1]
>>> #golbals 变量名是key,变量值是value,返回当前程序所有的变量

frozenset():

>>> set1 = frozenset([1,4,4,3])
>>> 不可变集合,用这个定义集合后,set1
SyntaxError: invalid character in identifier
>>> #不可变集合,用这个定义集合后,set1就不可变,pop,clear方法都没了

hash():

>>> hash('gkx')  #返回对象的哈希值
-3746276222014687951
>>> #可以应用于数字、字符串和对象,不能直接应用于 list、set、dictionary。

help(),hex(),int(),isinstance(),len(),list(),iter()

>>> help(a.append)   #返回帮助信息
Help on built-in function append:
append(...) method of builtins.list instance
L.append(object) -> None -- append object to end >>> hex(66)
'0x42'
>>> #转十六机制 bin()#转二进制 oct() #转八进制 >>> id(a)
1960805134216
>>> #返回内存地址 >>> int(3.4)
3
>>> int('') #返回整数,注意'3.4'字符串如果时小数,返回会报错
3 >>> iter([]) #变为iterator
<list_iterator object at 0x000001C889A4C908> >>> a = 'abc'
>>> len(a) #查询变量长度
3
>>> a = list()
>>> #定义一个列表

 max()  min() : #1,比较的元素是可迭代对象,用for循环原理,如果第一个元素分出大小,后面就不会继续比较了。2.根据ASCII码值的大小比较

>>> max([2,3,45])  #求最大值
45
>>> min([2,3,45]) #求最小值
2

next():

>>> next(iter([1,2,3]))
1
>>> #返回迭代器的下一个元素

pow():

>>> pow(3,3)
27
>>> #返回3的3次方

repr():

>>> a = [1,2,3]
>>> repr(a)
'[1, 2, 3]'
>>> #类似ascii,转为str

round():

>>> round(1.33333,2)
1.33
>>> #保留小数位,根据参数2. 默认是保留整数位

slice(起始位置,终止位置,间距):  list的切片方法 【:】一模一样

>>> d = 'abcde'
>>> c = [1,2,3,4,5]
>>> d[slice(1,2)]
'b'
>>> d[slice(4)]
'abcd'
>>> #切片
>>> d = range(10)
>>> d[slice(2,5)]
range(2, 5)
>>> #slice(起始位置,结束位置,间距)
>>> d[2:5]
range(2, 5)
>>>

sorted():

>>> a = {1:2,3:6,7:11,-1:6}
>>> sorted(a.items()) #默认用key排序
[(-1, 6), (1, 2), (3, 6), (7, 11)]
>>> sorted(a.items(),key=lambda x:x[1]) #用value排序,用到匿名函数
[(1, 2), (3, 6), (-1, 6), (7, 11)]
>>>

sum():求和

>>> sum([1,2,3,4])
10

tuple(): 定义一个元组

>>> a = tuple()
>>> a
()

zip():

>>> cc = ['gkx','lion','cat']
>>> dd = [1,2,3]
>>> for i in zip(cc,dd): #因为是一个迭代器,所以要用循环
print(i) ('gkx', 1)
('lion', 2)
('cat', 3)
>>>
>>> dd = [1,2,3,4,5]
>>> for i in zip(cc,dd):
print(i) ('gkx', 1)
('lion', 2)
('cat', 3)
>>> #按最小的拼接
>>>dict()                        # 创建空字典
{}
>>> dict(a='a', b='b', t='t') # 传入关键字
{'a': 'a', 'b': 'b', 't': 't'}
>>> dict(zip(['one', 'two', 'three'], [1, 2, 3])) # 映射函数方式来构造字典
{'three': 3, 'two': 2, 'one': 1}
>>> dict([('one', 1), ('two', 2), ('three', 3)]) # 可迭代对象方式来构造字典
{'three': 3, 'two': 2, 'one': 1}
>>>

__import__():

import sys
__import__('a') # 导入 a.py 模块

Python—内置函数的更多相关文章

  1. python内置函数

    python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...

  2. python 内置函数和函数装饰器

    python内置函数 1.数学相关 abs(x) 取x绝对值 divmode(x,y) 取x除以y的商和余数,常用做分页,返回商和余数组成一个元组 pow(x,y[,z]) 取x的y次方 ,等同于x ...

  3. Python基础篇【第2篇】: Python内置函数(一)

    Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位 ...

  4. [python基础知识]python内置函数map/reduce/filter

    python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法) ...

  5. Python内置函数进制转换的用法

    使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Convert an integer numb ...

  6. Python内置函数(12)——str

    英文文档: class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string  ...

  7. Python内置函数(61)——str

    英文文档: class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string ...

  8. 那些年,很多人没看懂的Python内置函数

    Python之所以特别的简单就是因为有很多的内置函数是在你的程序"运行之前"就已经帮你运行好了,所以,可以用这个的特性简化很多的步骤.这也是让Python语言变得特别的简单的原因之 ...

  9. Python 内置函数笔记

    其中有几个方法没怎么用过, 所以没整理到 Python内置函数 abs(a) 返回a的绝对值.该参数可以是整数或浮点数.如果参数是一个复数,则返回其大小 all(a) 如果元组.列表里面的所有元素都非 ...

  10. 【转】实习小记-python 内置函数__eq__函数引发的探索

    [转]实习小记-python 内置函数__eq__函数引发的探索 乱写__eq__会发生啥?请看代码.. >>> class A: ... def __eq__(self, othe ...

随机推荐

  1. Vue使用Typescript开发编译时提示“ERROR in ./src/main.ts Module build failed: TypeError: Cannot read property 'afterCompile' of undefined”的解决方法

    使用Typescript开发Vue,一切准备就绪.但npm start 时,提示“ ERROR in ./src/main.tsModule build failed: TypeError: Cann ...

  2. vue深入响应式原理

    vue深入响应式原理 深入响应式原理 — Vue.jshttps://cn.vuejs.org/v2/guide/reactivity.html 注意:这里说的响应式不是bootsharp那种前端UI ...

  3. qt 实现的电视遥控系统,如何让qt响应来自遥控器的按键信息?

    结帖率 60% 如题:目前在做一个项目,使用qt实现一个类似于机顶盒的遥控系统,那么关键的问题来了,如何让qt响应遥控器的按键信息呢? 应该分两步吧:1.搭载qt的终端接收来自遥控器的按键信息,并解析 ...

  4. 在Qt Quick中一个简单Hello World加载过程

    Qt5基本类图: QQmlEngine    QQmlEngine类提供了一个QML引擎,用于管理由QML文档定义的对象层次架构,QML提供了一个默认的QML上下文(根上下文,获取函数QQmlEngi ...

  5. 专题8:javascript中事件

    一.事件流 1.1 事件冒泡 冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标的顺序逐一触发: 注意:各个浏览器在处理<html>标记级别的事件时顺序有出入,因此无论任何情况,都 ...

  6. 数据库oracle 目录结构

    Oracle_Home主目录位于D:\dev\oracle\product\10.2.0(oracle安装路径)下,它包含Oracle软件运行有关的子目录和网络文件以及选定的组件等:若在主机上第一次且 ...

  7. C#异步编程基础入门总结

    1.前言 *.NET Framework提供了执行异步操作的三种模式: 异步编程模型(APM)模式(也称为IAsyncResult的模式),其中异步操作要求Begin和End方法(例如,BeginWr ...

  8. linux中make的有关规则的特性

    我过去认为 makefile 只是一种将一组组的 shell 命令列出来的简便方法:过了一段时间我了解到它们是有多么的强大.灵活以及功能齐全.这篇文章带你领略其中一些有关规则的特性. 规则 规则是指示 ...

  9. window安装ab压力测试并使用

    ab是Apache HTTP server benchmarking tool的缩写,可以用以测试HTTP请求的服务器性能,也是业界比较流行和简单易用的一种压力测试工具包 1.下载ab工具 进入apa ...

  10. Python socket实现处理多个连接

       socket实现处理多个连接 实现处理多个连接 使用whlie循环实现多个客户端,排队请求服务端 循环监听端口发送信息(windos,Linux) 1.Linux 系统如果客户端断开连接,会循环 ...