Python—内置函数
内置函数
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—内置函数的更多相关文章
- python内置函数
python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...
- python 内置函数和函数装饰器
python内置函数 1.数学相关 abs(x) 取x绝对值 divmode(x,y) 取x除以y的商和余数,常用做分页,返回商和余数组成一个元组 pow(x,y[,z]) 取x的y次方 ,等同于x ...
- Python基础篇【第2篇】: Python内置函数(一)
Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位 ...
- [python基础知识]python内置函数map/reduce/filter
python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法) ...
- Python内置函数进制转换的用法
使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Convert an integer numb ...
- Python内置函数(12)——str
英文文档: class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string ...
- Python内置函数(61)——str
英文文档: class str(object='') class str(object=b'', encoding='utf-8', errors='strict') Return a string ...
- 那些年,很多人没看懂的Python内置函数
Python之所以特别的简单就是因为有很多的内置函数是在你的程序"运行之前"就已经帮你运行好了,所以,可以用这个的特性简化很多的步骤.这也是让Python语言变得特别的简单的原因之 ...
- Python 内置函数笔记
其中有几个方法没怎么用过, 所以没整理到 Python内置函数 abs(a) 返回a的绝对值.该参数可以是整数或浮点数.如果参数是一个复数,则返回其大小 all(a) 如果元组.列表里面的所有元素都非 ...
- 【转】实习小记-python 内置函数__eq__函数引发的探索
[转]实习小记-python 内置函数__eq__函数引发的探索 乱写__eq__会发生啥?请看代码.. >>> class A: ... def __eq__(self, othe ...
随机推荐
- Intellij Idea debug 模式如果发现异常,即添加异常断点在发生异常处
以前用eclipse的时候,可以根据所抛出的异常进行调试,比如:出现了空指针异常,我想知道是哪一行抛出的,在eclipse中我只需在debug模式下把空指针异常这个名字设置进去,当遇到空指针异常时,e ...
- android studio相关配置
启动出现:Unable to access Android SDK add-on list 解决: Android Studio First Run 检测 Android SDK 及更新,由于众所周知 ...
- phpstorm----------phpstorm2017基本使用
1.关闭2017版本的,函数参数提示.关闭方式如下: 2.如何设置代码里面的变量等号对齐,和key => value 对齐 ctrl+alt+l 3.修改PHP文件类创建的默认注释 4. ...
- [转][访谈] Olivier Grisel谈scikit-learn和机器学习技术的未来
原文:http://www.csdn.net/article/2015-10-11/2825882 几周前,我们的Florian Douetteau (FD)对Olivier Grisel(OG)进行 ...
- keepalived 工作原理
keepalived主要通过vrrp协议为基础进行通信 所以先从VRRP协议说起: VRRP: 英文全称 Virtual Router Redundancy Protocol, .中文:虚拟路由冗余协 ...
- mysql 终止 存储过程
[1]如下图所示 有时候,存储过程执行语句中有循环,且已启动.但出于某种原因,我们突然不想让其再继续执行,需要终止其线程. Good Good Study, Day Day UP. 顺序 选择 循环 ...
- 2019/4/12 wen 常用类3
- Centos7 升级 Ruby
Centos7通过yum 安装的Ruby 是2.0版本.版本较低,需要升级到2.5以上版本. #yum 安装ruby yum install ruby #查看ruby版本 ruby -v 以下开始升级 ...
- yii2 使用多个数据库的案例
配置: 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=ip; ...
- ( 转) Awesome Image Captioning
Awesome Image Captioning 2018-12-03 19:19:56 From: https://github.com/zhjohnchan/awesome-image-capti ...