码迷,mamicode.com
首页 > 其他好文 > 详细

14 内置函数

时间:2018-07-20 00:23:05      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:文件句柄   index   compile   hash   name   失败   ice   默认   个数   

主要内容:

内置函数:就是python给你提供,拿来直接使用的函数.

1. 作用域相关:

  locals()    返回当前作用域中的名字.

  globals()  返回全局作用域中的名字.

def fn():
    a = 10
    print(locals())       #当前作用域中的内容,如果在全局作用域中,则显示全局作用域的内容.
    print(globals())      #全局作用域中的内容
    print("今天内容很简单")
fn()

2. 迭代器相关:

  range()    生成数据

for i in range(20,15,-3):
    print(i)

  next()       迭代器向下执行一次,内部实际使用了__next__()方法返回迭代器的下一个项目

  iter()   获取迭代器,内部实际使用的是__iter__()方法来获取迭代器.

lst = [‘高圆圆‘,‘马伊琍‘,‘袁泉‘,‘林依晨‘]
it = lst.__iter__()         #it = iter(lst) 取迭代器
print(it.__next__())        #从迭代器中取值    和next(it)效果一样
print(next(it))

3. 字符串类型代码的执行

  eval() 执行字符串类型的代码,并返回最终结果

s = ‘24*5‘
a = eval(s)       #eval(obj)  obj必须为a string, bytes or code object
print(a)          #结果120

  exec() 执行字符串类型的代码

s = "for i in range(10): print(i)"
a = exec(s) # exec 执行代码不返回任何内容
print(a)
# 动态执行代码
exec("""
def func():
    print(" 我是周杰伦")
func()
""" )

  compile() 将字符串类型的代码编译,代码对象能够通过exec语句或者eval()进行求值.

    参数说明:1,resource  ,要执行的代码,动态代码片段.

         2,文件名:代码存放的文件名,当传入第一个参数的时候,这个参数给空就可以了.

         3,模式:取值有三个:

           exec:     一般放一些流程语句的时候

code1 = ‘for i in range(10):print(i)‘
com = compile(code1,‘‘,mode=‘exec‘)      #compile并不会执行你的代码,只是编译
exec(com)   #执行编译的结果

           eval:      resource只存放一个求值表达式的时候

code2 = ‘3+4+5‘
com = compile(code2,‘‘,mode=‘eval‘)
print(eval(com))

           single:   resource存放的代码有交互的时候,mode应为single

code3 = ‘name = input("请输入名字")‘
com = compile(code3,‘‘,mode=‘single‘)       #用single说明resource中用了交互.
exec(com)                                    #执行代码.
print(name)

    注意:有返回值的字符串形式的代码用eval(),没有返回值字符串形式的代码用exec(),一般很少用到compile()

4. 输入和输出相关的函数

  input(): 获取用户输入得内容

  print(): 打印输出

print(‘李嘉诚‘,‘黄花菜‘,‘马云‘,sep=‘*‘,end=‘taiyang‘)   #seperator:分隔符(分离器,净油机)
# 结果是:李嘉诚*黄花菜*马云taiyang

5. 内存相关:

  hash():   获取到对象的哈希值(int bool str tuple)

  哈希算法:目的具有唯一性,dict 查找效率非常高, hash表.用空间换的时间 比较耗费内存

s = ‘林依晨‘
a = 12
lst = [1,2,3,4,5,7]
print(hash(s))      #结果3588732593406966857
print(hash(a))      #结果12,int型的哈希值就是本身
print(hash(lst))     #列表是不可哈希的

  id():  获取到对象的内存地址.

s = ‘美好的一天‘
print(id(s))           #结果1337093092208
#除了特殊的字符,字符串获取的地址是一样的。int 和 bool是一样的地址
s = ‘美好的一天‘
s1 = ‘美好的一天‘
print(id(s))           #结果133709309220
print(id(s1))          #结果133709309220

6. 文件操作相关;

  open(): 用于打开一个文件,创建文件句柄

7. 模块相关:

  __import__()  用于动态加载类和函数

8. 帮助

  help()函数用于查看函数或模块用途的详细说明   print(help(str)) 

9. 调用相关:

  callable() 用于检查一个对象是否可调用的,如果返回ture,object有可能调用失败,但如果返回false,那绝对不会调用成功.

a = 10
print(callable(a))        #不可以被调用,返回false
def func():
    print(‘mam‘)
print(callable(func))       #函数是可以被调用的,返回ture

10. 查看内置属性:

  dir() 查看对象的内置属性,方法,访问的是对象中的__dir__()方法

li = [‘tiantina‘,‘poppy‘,‘enheng‘,‘jasper‘]
print(li.__dir__())

11. 基础数据类型相关:

  数字相关:

    bool():将给定的数据转换成bool值,如果不给值,返回false

    int():将给定的数据转换成int值,如果不给值,返回0

    float():将给定的数据转换成float值,也就是小数

    complex()创建一个复数,第一个参数是实部,二个参数是虚部

  进制转换:

    bin():将给的参数转换成二进制

    otc():将给定的参数转换成八进制

    hex():将给定的参数转换成16进制.

print(bin(10))   #结果是0b1010
print(oct(20))   #结果是0o24
print(hex(12))   #结果是0xc

  数字运算:

    abs(): 返回绝对值

    divmode():返回商和余数

    round():四舍五入

    pow(a,b):求a的b次幂,如果有三个参数,则求完次幂后对第三个数取余

    sum():求和

    min():最小值

    max():最大值  

12. 和数据结构相关:

  列表和元祖:

    list():将一个可迭代对象转换成列表

lst = ‘你好啊‘
it = list(lst)    #将一个可迭代对象转换成列表
print(it)

    tuple():将一个可迭代对象转换成元祖

    reversed():将一个序列翻转,返回翻转序列的迭代器

lst = ‘你好啊‘
it = reversed(lst)   #不会改变原列表,返回一个迭代器,设计上的一个原则
print(list(it))

    slice():列表的切片

lst = [1,2,3,4,5,6,7]
s = slice(1,3,1)     #切片用的
print(lst[s])

  字符串相关:

    str():将数据转化成字符串

    format():与具体的数据相关,用于计算各种小数 

s = "我叫王尼玛"
print(format(s, "^20"))     #居中
print(format(s, "<20"))     #左对齐
print(format(s, ">20"))     #右对齐

        进制之间的转换:

print(format(3, ‘b‘ ))   # ?进制
print(format(97, ‘c‘ ))   # 转换成unicode字符
print(format(11, ‘d‘ ))   # ?进制 %d
print(format(11, ‘o‘ ))   # ?进制  8
print(format(11, ‘x‘ ))   # ?六进制(?写字?)
print(format(11, ‘X‘ ))   # ?六进制(?写字?)
print(format(11, ‘n‘ ))   # 和d?样
print(format(11))   # 和d?样

        科学计算法:

print(format(123456789, ‘e‘ ))   # 科学计数法. 默认保留6位小数
print(format(123456789, ‘0.2e‘ ))   # 科学计数法. 保留2位小数(小写)
print(format(123456789, ‘0.2E‘ ))   # 科学计数法. 保留2位小数(大写)
print(format(1.23456789, ‘f‘ ))   # 小数点计数法. 保留6位小数
print(format(1.23456789, ‘0.2f‘ ))   # 小数点计数法. 保留2位小数
print(format(1.23456789, ‘0.10f‘))   # 小数点计数法. 保留10位小数
print(format(1.23456789e+3, ‘F‘))   # 小数点计数法. 很大的时候输出 INF

  bytes() 把字符串转换成byte类型

s = ‘你好‘
bs = s.encode("utf-8")
print(bs)
bss= bs.decode(‘utf-8‘)
print(bss)
bs = bytes(s,encoding=‘utf-8‘)        #把字符串编码成utf-8
print(bs)

  bytearray() 返回一个新字节数组,这个数字里的元素是可变的,并且每个元素的值得范围是(0,256)

ret =  bytearray("alex" ,encoding =‘utf-8‘)
print(ret[0])           #结果是97
print(ret)              #结果是bytearray(b‘alex‘)

  

ret = bytearray(‘alex‘,encoding=‘utf-8‘)
print(ret[0])                  #97
ret[0] = 65
print(str(ret))                #bytearray(b‘Alex‘)

  memoryview() 查看bytes在内存中的情况

s = memoryview(‘马化腾‘.encode(‘utf-8‘))
print(s)                #结果是<memory at 0x000001269C0DE048>

  ord():输入字符找带字符编码的位置

print(ord(‘a‘)) # 97, 返回字母a在编码表中的码位
print(ord(‘中‘)) # 20013 中国的中字在编码表中的位置

  chr():输入位置数字找出对应的字符

print(chr(65)) # 已知码位. 计算字符
print(chr(20018))

  ascii():是ascii码中的返回该值,不是就返回/u

print(ascii(‘中‘))      #‘\u4e2d‘
print(ascii(‘a‘))       #‘a‘

  repr():返回一个对象的string形式:

    repr():就是原封不动的输出,引号和转义字符都不起作用

print(repr(‘大家好,\t \n我叫住结论‘))#‘大家好,\t \n我叫住结论‘
print(‘大家哈,我是周杰伦‘)# 大家哈,我是周杰伦

    %s 原封不动的写出来

name = ‘taibai‘
print(‘我叫%s‘ % name)        #我叫taibai

  数据相关:

    dict():创建一个字典

    set():创建一个集合

    frozenset():创建一个冻结的集合,冻结的集合不能进行添加和删除操作

13. 其他相关:

  len():返回一个对象中的元素个数

  sorted():对可迭代对象进行排序操作

  enumerated():获取结合的枚举对象.

lst= [‘alex‘,‘wusir‘,‘taiai‘]
for index, el in enumerate(lst):
    print(str(index)+el)

  all():可迭代对象中全部是ture,结果才是ture

  any():可迭代对象中有一个是ture,结果就是ture

print(all([1,2,True,0]))   #false
print(any([1,2,True,0]))   #ture

  zip():函数用于将可迭代的对象作为参数,将对像中对应的元素打包成一个个元祖,然后返回有这些元祖组成的开了表,如果各个迭代器的元素个数不一致则返回的列表长度与最短的相同.

lst = [1,2,3]
l2 = [‘a‘,‘b‘,‘c‘,5]
l3 = [‘*‘,‘**‘,(1,2,3)]
for i in zip(lst,l2,l3):
    print(i)
‘‘‘
(1, ‘a‘, ‘*‘)
(2, ‘b‘, ‘**‘)
(3, ‘c‘, (1, 2, 3))

  

 

 

 

 

 

 

 

 

  

  

 

14 内置函数

标签:文件句柄   index   compile   hash   name   失败   ice   默认   个数   

原文地址:https://www.cnblogs.com/gyh412724/p/9338645.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!