内置函数

内置函数补充


 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. 家庭记账本之微信小程序(三)

    继上篇注册阶段后,经过查阅资料学习后,以下介绍开发阶段 1.登录微信公众平台就能在菜单“开发”---“基本配置”中看到小程序的AppID了. 小程序的 AppID 相当于小程序平台的一个身份证,后续你 ...

  2. Kestrel:Net Core的跨平台服务器

    概述 Kestrel是一个基于libuv的跨平台ASP.NET Core web服务器,libuv是一个跨平台的异步I/O库.ASP.NET Core项目默认使用Kestrel作为web服务器. 用户 ...

  3. windows下cmd无法使用telnet命令解决方法 (原)

    telnet不是内部或者外部命令,也不是可运行程序-----解决办法: (win7为例) 控制面板 --- > 程序(小图标下直接到[程序和功能]) --- >程序和功能 --- > ...

  4. C语言进阶之路(二)----字符串操作常见模型

    1.while模型 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #includ ...

  5. windows程序设计 Unicode和多字节

    Unicode和多字节 Unicode是宽字符 多字节是窄字符 类型 变量类型 初始化方式 Unicode LPWSTR L"string" 多字节 LPSTR "str ...

  6. uwsgi和nginx的故事

    要谈uwsgi,当然要先谈谈wsgi,wsgi是理论家牛顿,uwsgi就是工程家特斯拉. wsgi是缩写,全称为web server gateway interface,中文意思就是服务器的网关接口. ...

  7. Linux 配置SSH 无密钥登陆

    根据SSH 协议,每次登陆必须输入密码,比较麻烦,SSH还提供了公钥登陆,可以省去输入密码的步骤. 公钥登陆:用户将自己的公钥存储在远程主机上,登陆的时候,远程主机会向用户发送一串随机字符串,用户用自 ...

  8. Porsche Piwis Tester II V14.000 with CF30 Laptop at autonumen.com

    Porsche piwis tester ii is the latest professional tester for Porshe,the most poweful diagnose and o ...

  9. 提交SR的一些小技巧

    在平时的时候,遇到一些问题总会在metalink上提交SR(Service Request,SR,过去也叫Technical Assistance Request,TAR ),我们提交sr的时候,总是 ...

  10. Echarts整合spring boot进行开发

    一.开始前的准备 Echarts官网下载: https://echarts.baidu.com/download.html