#!/usr/bin/env python
# -*- coding:utf-8 -*-
#abs() 括号内 取绝对值
print(abs(-3))
#all() 括号内全为真是,则为真
print(all([0,1,-3])) #非 0 就是真 有0则假
#any() 括号内 任意数据有一个为真,返回真
print(any([0,1,-3])) #有一个真则,返回真
#ascii() 括号内 变成字符串 卵用
a=ascii([1,2])
print('显示类型',type(a),[a]) #变成字符串
#bin() 括号内的整数 转换成二进制
print(bin(4)) #0b是字符的开头
#bool() 布尔 判断括号内 是否为真。 0为假,空为假
print(bool(1))
print(' bytes用法输出')
#bytes() 括号内 转换成二进制的字节模式 用的少
print(bytes('abc 天',encoding='utf-8'))
a=bytearray('abc 天',encoding='utf-8') #变成ASCII码形式
print(a[0]) #a的ASCII码是97
a[0]=51 #把ASCII码51的值3给 a第一个字符
print(a) #显示3
#callable() 判断括号内 是否可调用
print(callable([])) #列表不可调用 函数可调用
#chr() 括号内的 把数字对的ASCII码 返回成字符
print(chr(119))
#ord() 括号内的 把字符对的ASCII码 返回数字
print(ord('w'))
print('- - - - - - -')
#compile() 把括号内 程序 执行成代码 远程执行代码
a='1+2+3' #表达式
aa=compile(a,'','eval') #用eval来执行表达式
print(aa) #内存地址
print(eval(aa))
b='for i in range(3):print(i)' #循环函数
bb=compile(b,'','exec') #函数/程序,报错存文件名,执行方式 用exec来执行函数
print(bb) # 内存地址
print(exec(bb)) #函数运行结果 ecec(b)也能执行
#dict() 生成字典
a=dict();print(a)
#divmod() 返回2数相除的值 和余数
print(divmod(5,2))
#exec() 执行括号内的函数/程序
#eval() 计算 + - * /
#匿名函数 用一次 不能处理for 只能写三元运算运算 lambda a:3 if n<3 else n
# lambda n:print(n) <3 返回3. >3返回之前的数
#filter() 过滤出要的值
abc = filter(lambda n:n>5,range(9)) #过虑出>5的值 这是迭代器 for显示
for i in abc:
print(i)
#map() 处理传入的值
abc=map(lambda n:n*2,range(5))
for i in abc:
print(i)
#functools.reduce
import functools
abc=functools.reduce(lambda x,y:x+y,range(11)) #累加 从0+到10
print(abc)
#frozenset() 冻结 不可变 (列表)
#globals() 获取程序中所有的变量 显示全局变量 不显示函数内的变量
print(globals().get('abc')) #查找程序中是否有变量abc
#哈希 算法 折中找 (折中接哈希找 数据对数据)(散列)
#hash() ()内的字串变序号转换成数字(查找方便) md5是哈希的一种
#hex() ()数字转换成16进制
#hex(15) 显示0xf
#python中 一切皆对象 每个对象都有属性 .命令 调用功能
#oct() ()数字转成8进制
pow(2,3) #2的3次方
#repr() #把括号里的数字/变量转换成字符串
round(1.1234,2) #把括号里的小字保留2位
a={1:66,3:88,5:99,2:77}
print(sorted(a.items())) #把括号里的字典 排序
#print(sorted(a.items().key=lambda x:x[1])) #字典内容排.
#type(变量) 查看变量数据类型
#zip(a,b)组合
a=[1,2,3];b=['a','b','c']
zip(a,b) #组合是迭代器 如果有多有少,按少的计算
for i in zip(a,b): #查看组合
print(i)
#引用
__import__('decorator')