Fay

内置函数

file:///C:/Users/Administrator/Desktop/Evernote.enex.html

作用域相关
locals()   # 全局名称空间中石油的变量放在一个字典中
globals()  # 局部名称空间所有变量放在一个字典中
 
a = 2
b = 3
def func1():
    c = 5
    d = 6
    print(globals())  #返回; {'a': 2, 'b': 3,}
    print(locals())   #返回:  {'d': 6, 'c': 5}
func1()
 
其他相关
字符串类型代码的执行
 
1.***eval: 执行字符串类型的代码, 并返回结果.(抛开字符串的俩边, 进行操作计算, 并返回)
 
print(eval('3+4'))   #返回: 7
简单求值表达式用eval
 
 
2.***exec: 执行字符串类型的代码, 流程语句 < 写一段代码放入字符串里, 发给别人, 别人用exec一下就可以得到里面的代码 >
 
ret1 = '''
li = [1, 2, 3]
for i in li:
    print(i)
'''
print(exec(ret1))  #返回:1, 2,3,None
流程语句使用exec
 
总结:有返回值的字符串形式的代码用eval,没有返回值的字符串形式的代码用exec,一般不用compile。
 
  1. compire: 将字符串的代码, 代码对象能够通过exec语句来执行或者eval()进行求值
 
 
输入输出相关 
 
 1.input:函数接受一个标准输入数据,返回为 string 类型。
   2.***print:打印输出。
    
源码分析:def print(self, *args, sep=' ', end='\n', file=None)
 
print(333,end = '**')  #理解:上下的内容以*拼接起来.默认是以空格
print(666)
返;333**666:
每一次打印的结尾,默认为换行符
 
print('dddsd','hgg','hfgh',sep ='|') #每一个元素通过这个连接符(|)链接起来
 
 
with open ('log',encoding = 'utf-8',mode = 'w') as f1
 print('656546',file = f1)  #将这个文件直接写入,能写能追加
 
内存相关
 
id:用于获取对象的内存地址
* hash:获取一个对象(可哈希对象:int,str,Bool,tuple)的哈希值。
print(hash(123456)) #数字不变
print(hash('dsfff'))
print(hash('fdsfdsf')) 
#字符串是任意的,执行一次hash值变一次,位数是一样的.
 
文件操作相关
 
            open:函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。
:
 
 
模块相关__import__ 
 
          __import__:函数用于动态加载类和函数 。
 
帮助
 
  *help:函数用于查看函数或模块用途的详细说明
 
 
调用相关
 
  ***callable:函数用于检查一个对象是否是可调用的。
如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。
def func1():
    print(555)
a = 3
f = func1
print( callable(f)) #返回: True
print( callable(a)) #返回: False
#理解:用callable这个内置函数去检测变量是不是函数名,是就返回: True,不是就返回: False
 
查看内置属性,
*** dir 查找你这个对象的所有方法
print(dir(list))
 
迭代器生成器相关
     1 .range:函数可创建一个整数对象,一般用在 for 循环中。
 
  1.   *next:内部实际使用了__next__方法,返回迭代器的下一个项目。
li =iter( [1, 2, 3, 4, 5, 6, 7 ])
while True:
    try:
        # 获得下一个值
        x = next(li) #页可以这样写 x = li.__next__(),用法不一样,但都是在求他的下一个值
        print(x)
    except StopIteration:
        遇到except StopIteration就退出循环,这里的next 就是一根内置函数,封装了__next__的功能,所以可以这样用
        break
 
  1.  *iter:函数用来生成迭代器(讲一个可迭代对象,生成迭代器)
iter这里为内置函数,封装了一下,跟__iter__的功能一样,同next与__next__一样.
 
 
基础数据类型相关
 
数字相关
数据类型
bool :用于将给定参数转换为布尔类型,如果没有参数,返回 False。
 
*int:函数用于将一个字符串或数字
print(int())  # 0
 
print(int('12'))  # 12
 
print(int(3.6))  # 3  #保留整数
 
print(int('0100',base=2))  # 将2进制的 0100 转化成十进制。结果为 4
 
float:函数用于将整数和字符串转换成浮点数
print(type(3.14))   #返回: <class 'float'> #保留整数
print(float(3))     #返回;3.0
 
complex:函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。。
 
 
进制转换:
 
    *bin:将十进制转换成二进制并返回。 用0b表示
print(bin(5)) # 0b101
   * oct:将十进制转化成八进制字符串并返回。用0o表示
print(oct(7)) #0o7
    *hex:将十进制转化成十六进制字符串并返回。用0x表示
 
print(hex(19))  #0x13
 
 
 
数学运算(7):
 
    *abs:函数返回数字的绝对值。
print(abs(-20))  #20
 
 
    *divmod:计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)。
print(divmod(10, 3))  # (3, 1)  #应用到网页分页
 
 round:保留浮点数的小数位数,默认保留整数。
 
print(round(3.1415926)) # 3
print(round(3.1415926,3)) # 3.142 保留3位数
 
 pow:求x**y次幂。(三个参数为x**y的结果对z取余)
 
print(pow(2, 3))  # 8
print(pow(2, 3, 5))  # 3 先将2*3的次幂算出来为8,然后用8除5,商1余3,得到的余数为3,就是结果
 
 ***sum:对可迭代对象进行求和计算(可设置初始值)。
print(sum([1, 2, 3, 5 ,6]))  #17
print(sum([1, 2, 3, 5 ,6],100)) #117  这后面不能再加上一个参数了
必须是可迭代对象,且参数最多为俩个,
 
 
    ***max:返回可迭代对象的最大值(可加key,key为函数名,通过函数的规则,返回最大值)。
ret = (max([1, 2, -5],key = abs)) #按照绝对值的大小,返回序列最大值
print(ret)
 
dic = {'a':3,'b':2,'c':1}
print(max(dic,key=lambda x:dic[x]))
# x为dic的key,lambda的返回值(即dic的值进行比较)返回最小的值对应的键
 
***min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值)。
print(min([1,2,3]))  # 返回此序列最小值
 
ret = min([1,2,-5,],key=abs)  # 按照绝对值的大小,返回此序列最小值
print(ret)
 
ic = {'a':3,'b':2,'c':1}
print(min(dic,key=lambda x:dic[x]))
x为dic的key,lambda的返回值(即dic的值进行比较)返回最大的值对应的键
 
 
 
和数据结构相关(24)
 
  列表和元祖(2)
 
    list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素)。
 
    tuple:将一个可迭代对象转化成元祖(如果是字典,默认将key作为元祖的元素)。
 
 
 
 
相关内置函数
 
    ***reversed:将一个序列翻转,并返回此翻转序列的迭代器。
ite = reversed(['a',2,3,'c',4,2]) 
print(ite) # 直接打印出来的是一个可迭代器.
for i in ite:
    print(i)#迭代器的取值方法next,for循环着俩种
 #内部过程是,先将列表里面的元素,进行翻转,然后再返回一个迭代器,最后用迭代器的方式去取值
 
    slice:构造一个切片对象,用于列表的切片。
 
li = ['a','b','c','d','e','f','g']
sli_obj = slice(3)
print(li[sli_obj])
 
 字符串相关(9)
 
    str:将数据转化成字符串。
 
format:与具体数据相关,用于计算各种小数,精算等。
#字符串可以提供的参数,指定对齐方式,<是左对齐, >是右对齐,^是居中对齐
print(format('test', '<20'))
print(format('test', '>20'))
print(format('test', '^20'))
 
 
* bytes:只能编码,不能解码. 将unicode---> 非unicode
 
 
bs = '老男孩'
bs1 = bytes(bs,encoding='utf-8' )
print(bs1)
 
 
 
 
 
 bytearry:返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。
 
memoryview
 
*ord:输入字符找该字符编码的位置,按unicode找
print(ord('中'))  #通过字符找出ascii的位置
*chr:输入位置数字找出其对应的字符,,按unicode找
print(chr(20013))  #通过数字找出ascii的位置
 
 
ascii:是ascii码中的返回该值,不是就返回\u.....
print(ascii('a'))
print(ascii('中'))  #'\u4e2d'
 
 
 
***repr:返回一个对象的string形式(原形毕露)。
 
print(repr('{"name":"alex"}'))
  # 返回: '{"name":"alex"}'
 
数据集合(3)
 
    dict:创建一个字典。
 
    set:创建一个集合。
 
    frozenset:返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
 
  相关内置函数(8)
 
    len:返回一个对象中元素的个数。
 
***sorted:对所有可迭代的对象进行排序操作。
li = [1, -2, 2, -4, -5, 9, 7]
print(sorted(li)) #从小到大排序
print(sorted(li,reverse=True,key=abs)) #翻转排序
 
***enumerate:枚举,返回一个枚举对象。
li = ['老男孩','alex','wusir','taibai']
print(enumerate(li))
print('__iter__'in dir (enumerate(li)))
print('__next__'in dir (enumerate(li))) # True 说明这是一个迭代器
for k, v in enumerate(li):
    print(k,v) #打印出序列号,加上对应的元素
 
 
for k, v in enumerate(li,2):
    print(k, v) #可以选择从哪里开始打印
 
 
 
 
 
*all:可迭代对象中,全都是True才是True
print(all([1,2,True,0]))  # False
 
 
 
*any:可迭代对象中,有一个True 就是True
print(any([1,"",0]))   #True
 
 
zip:函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
*** zip 拉链方法,形成元祖的个数与最短的课迭代对象的长度一样
l1 = [1, 2, 3]
l2 = ['a', 'b', 'c', 5]
l3 = ('*', '**', (1,2,3),777)
l4 = ('0', '99',(1,2,3),666)
for i in zip(l1,l2,l3,l4):
    print(i)
 
print('__iter__' in dir(zip(l1,l2,l3,l4)))
print('__next__' in dir(zip(l1,l2,l3,l4))) # 说明他的返回值也是一个迭代器
 
*** filter:过滤·
 
filter 过滤 通过你的函数,过滤一个可迭代对象,返回的是True
类似于[i for i in range(10) if i > 3]
def func(x):
    return  x  %  2 == 0
ret = filter(func,[1,2,3,4,5,6,7])
print(ret)
for i in ret:
    print(i)
 
filter 一个函数名,你想进行说明操作就进行说明操作,
把[1,2,3,4,5,6,7]当成一个参数,
传递给x,传进去,x = [1,2,3,4,5,6,7]
满足 x % 2 == 0的留下来
 
***map  map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。
 
def square(x):
    return x ** 2
for i in map (square,([1,2,3,4])):
    print(i)
print(map(square,([1,2,3,4,5])))
 
 
 
 
 

posted on 2018-06-25 01:59  sunny7  阅读(135)  评论(0编辑  收藏  举报

导航