内置函数

作用域相关:

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

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

 

迭代器相关:

  range()    生成数据

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

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

 

字符串类型代码的执行

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

print(eval("2+2")) # 4
n = 8
print(eval("2+n")) # 10
def func():
    print(666)
eval("func()") # 666

  

  exec()     执行字符串类型的代码,不返回值

exec("""
lst = []
for i in range(10):
  lst.append(i)
print(lst)
""")
# 结果:[0,1,2,3,4,5,6,7,8,9]

exec("""
def func():
  print("我是周杰伦")
func()
""")
# 结果:我是周杰伦

  

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

'''
    参数说明:
        1.resource要执行的代码,动态代码片段
        2.文件名,代码存放的文件名,当传入了第一个参数的时候,这个参数给空就可以了
        3.模式,取值有3个
            1.exec: 一般放一些流程语句的时候
            2.eval: resource只存放一个求值表达式
            3.single:resource存放的代码有交互的时候,mode应为single
'''
code1 = 'for i in range(10):print(i)'
c1 = compile(code1,'',mode='exec')
exec(c1)

code2 = "1+2+3"
c2 = compile(code2, "", mode="eval")
a = eval(c2)
print(a)

code3 = "name = input('请输⼊你的名字:')"
c3 = compile(code3, "", mode="single")
exec(c3)
print(name)   

  有返回值的字符串形式的代码用eval(). 没有返回值的字符串形式的代码用exec(). 一般很少用

到compile()

  

  输入和输出相关:

  input()   获取用户输入的内容

  print()   打印输出

 

  内存相关:

  hash()   获取到对象的哈希值

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

  

  文件操作相关:

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

  

  模块相关:

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

 

  帮助:
  help() 函数用于查看函数或模块用途的详细说明

 

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

 

  查看内置属性:

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

 

  数字相关:
  bool() 将给定的数据转换成bool值. 如果不给值. 返回False
  int() 将给定的数据转换成int值. 如果不给值, 返回0
  float() 将给定的数据转换成float值. 也就是小数
  complex() 创建一个复数. 第一个参数为实部, 第二个参数为虚部. 或者第一个参数直接
  用户字符串来描述复数

 

  

  进制转换:
  bin() 将给的参数转换成二进制
  otc() 将给的参数转换成八进制
  hex() 将给的参数转换成十六进制

 

  数学运算:
  abs() 返回绝对值
  divmode() 返回商和余数
  round() 四舍五入
  pow(a, b) 求a的b次幂, 如果有三个参数. 则求完次幂后对第三个数取余
  sum() 求和
  min() 求最小值
  max() 求最大值

 

  

  和数据结构相关:
  列表和元组:
  list() 将一个可迭代对象转换成列表
  tuple() 将一个可迭代对象转换成元组
  reversed() 将一个序列翻转, 返回翻转序列的迭代器
  slice() 列表的切片

 

  字符串相关:
  str() 将数据转化成字符串
  format() 与具体数据相关, 用于计算各种小数, 精算等

  

# 字符串
print(format('test', '<20')) # 左对齐
print(format('test', '>20')) # 右对齐
print(format('test', '^20')) # 居中

# 数值
print(format(3, 'b')) # ⼆进制
print(format(97, 'c')) # 转换成unicode字符
print(format(11, 'd')) # ⼗进制
print(format(11, 'o')) # ⼋进制
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+10000, 'F')) # ⼩数点计数法.

  bytes() 把字符串转化成bytes类型

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

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

ret = bytearray('alex',encoding='utf-8')
print(ret[0])
print(ret)

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

  

s = memoryview("麻花藤".encode("utf-8"))
print(s)

  

  ord() 输入字符找带字符编码的位置
  chr() 输入位置数字找出对应的字符
  ascii() 是ascii码中的返回该值 不是就返回\u...

# 找到对应字符的编码位置
print(ord('a'))
print(ord(''))
# 找到对应编码位置的字符
print(chr(97))
print(chr(20013))
# 在ascii中就返回这个值. 如果不在就返回\u...
print(ascii('a'))
print(ascii(''))

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

# repr 就是原封不动的输出, 引号和转义字符都不起作用
print(repr('大家好,\n \t我叫周杰伦'))  # '大家好,\n \t我叫周杰伦'
print('大家好我叫周杰伦')  # 大家好我叫周杰伦
# %r 原封不动的写出来
name = 'taibai'
print('我叫%r' % name)  # 我叫'taibai'

 

  数据集合:
  dict() 创建一个字典
  set() 创建一个集合
  frozenset() 创建一个冻结的集合. 冻结的集合不能进行添加和删除操作
  其他相关:
  len() 返回一个对象中的元素的个数
  sorted() 对可迭代对象进行排序操作(讲完lamda后再讲这个)
  enumerate() 获取集合的枚举对象

  all() 可迭代对象中全部是True, 结果才是True
  any() 可迭代对象中有一个是True, 结果就是True

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

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

  filter()    过滤

  map()    会根据提供的函数对指定序列做映射

posted on 2019-05-09 19:41  Little_Raccoon  阅读(228)  评论(0编辑  收藏  举报