内置函数

内置函数补充


 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. 关于mysql处理百万级以上的数据时如何提高其查询速度的方法

    1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉 ...

  2. Python记录12:迭代器+生成器+生成式

    '''1. 什么是迭代器 什么是迭代:迭代就是一个重复的过程,但是每一次重复都是基于上一次的结果而进行的 单纯的重复不是迭代: while True: print(1) 迭代的过程 l=['a','b ...

  3. mongodb 安装遇到问题:the domain,user name and/or password are incorrect.remember to use"." for the domain if the account is on the local machine

    安装mongoDB遇到如下问题:the domain,user name  and/or password are incorrect.remember to use"." for ...

  4. Eclipse Decompiler不生效解决办法

    如下图,解决方案,Preferences->General->Editors->File Associations->*.class->Decompiler->De ...

  5. AARRR海盗模型简介

    整理下AARRR模型的概念.实际应用场景等问题,初步感觉这个模型主要应用在APP应用分析中. 1.什么是AARRR模型 AARRR是Acquisition.Activation.Retention.R ...

  6. Python+OpenCV图像处理(十四)—— 直线检测

    简介: 1.霍夫变换(Hough Transform) 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法.主要用来从图像中分离出具有某种相同特征的几何形状(如,直线 ...

  7. Maven Web Project设置Webcontent路径

    1,新建maven-archetype-webapp 2,右键项目-->Properties-->选中Project Facets中的Runtimes标签,然后Java版本改为1.8,Dy ...

  8. Docker Swarm 介绍 or 工作原理

    Docker Swarm 介绍 Swarm 简介 Swarm是Docker公司自研发的容器集群管理系统,Swarm在早期是作为一个独立服务存在,在Docker Engine v1.12中集成了Swar ...

  9. 获取从库Seconds_Behind_Master监控主从同步

    #!/bin/bash now_date=`date "+%Y-%m-%d,%H:%M:%S"` flag_old=`cat /home/oracle/scripts/flag.t ...

  10. SVN冲突以及解决办法

    1.冲突原因: 假设 A.B 两个用户都在版本号为 100 的时候,更新了 kingtuns.txt 这个文件,A 用户在修改完成之后提交 kingtuns.txt 到服务器, 这个时候提交成功,这个 ...