# Auther: Aaron Fan
print(abs(-10)) #取绝对值
print(all([0,'a',3])) #如果参数中有一个不为真,就返回False。(非0即真)
print(any([0,'a',3])) #如果参数中有一个为真,就返回True
#返回一个可打印的对象字符串方式表示,如果是非ascii字符就会输出x,u或U等字符来表示。与python2版本里的repr()是等效的函数
print(ascii('中文')) #中文非ascii字符,什么是ascii字符呢?前面已经讲过了的!
"""
print(bin(255)) #把10进制转换成2进制
print(bin(0xFF)) #把16进制转换成2进制
print(bin(0o77)) #把8进制转换成2进制
print(bool(0)) #判断布尔值
b = bytearray('abcde',encoding='utf-8')
b[1] = 100 #此时字符串'abcde'可以像一个列表一样被修改,但是必须使用ascii码的位置值去修改
print(b) #比如100对应着ascii的d,那么abcde的第二个b就被修改成了d,真个字符串就变成了adcde
bytes() #返回值为一个新的不可修改字节数组,每个数字元素都必须在0 - 255范围内
#当source参数为字符串时,encoding参数也必须提供,函数将字符串使用str.encode方法转换成字节数组
#是bytearray函数的具有相同的行为,差别仅仅是返回的字节数组不可修改。
print(callable(abs)) #判断一个对象,是否可以被调用。比如函数
print(chr(100)) #返回ascii位置那里提供的字符,比如ascii码的第100位置存的是d,就返回d
print(ord('d')) #跟chr的功能刚好相反,这里返回的是100
classmethod #一个类的方法
#compile() #把一段类似代码的字符串,转换成代码,转换成代码后就可以直接执行了
#exec() 和 eval() 也可以实现类似功能,用的时候要好好查一下,测试下
#exec() #通常用在字符串的格式是一堆语句表达式的字转换
#eval() #通常用在把字符串转换成字典
complex() #复数,相关的函数
#delattr() #一个类的方法
dict() #生成一个默认字典
#dir(name) #查看name这个对象,都包含了哪些方法
print(divmod(5,2)) #求余数,比如这里表示的是:求5/2的余数,结果为(2,1)
#filter() #按照需求把一个数列中的内容取出来。
#比如我们取一个列表中,大于5的值:
res = filter(lambda n: n>5, range(10))
for i in res: #上面那个生成的其实只是一个生成器,所以需要用循环去打印出来
print(i)
#map() #按照需求对一个数列中的每一个值进行处理
res = map(lambda n: n*5, range(10)) #这里也可以写成 res = [lambda n:i*5 for i in range(10)]
for i in res:
print(i)
"""
#把一个数列中的元素,从头到尾依次处理,这里列举的是把列表中的元素从头到尾依次相加,然后返回一个最终的值
import functools
res = functools.reduce(lambda x,y:x+y, range(10))
print(res)
#float() #与浮点数相关的函数
#format() #字符串格式化相关的函数,前面有示例
#frozenset() #把列表或者集合变成一个不可变的数列
#getattr() #一个类的方法
print(globals()) #返回当前程序文件的,所有的变量的key:value格式。
#hasattr() #待研究
hash('aaron') #生成一段哈希值
#help() #查看帮助
print(hex(255)) #把十进制转换成十六进制
print(hex(0b1001)) #把二进制转换成十六进制
print(hex(0o77)) #把八进制转换成十六进制
#id() #返回内存地址
#input() #等待用户输入
#int() #转换成整型
#isinstance() #迭代器相关函数
#issubclass() #一个类的函数
#iter() #迭代器相关函数
#locals() #待研究
#max() #返回一个最大值
#min() #返回一个最小值
#memoryview() #待研究
#next() 和 __next__() 一个生成器的方法
print(oct(255)) #把十进制转换成八进制
print(oct(0xff)) #把十六进制转换成八进制
print(oct(0b1110011)) #把二进制转换成八进制
#open() #打开文件
pow(2,8) #返回2的8次方
print() #打印
#property() #一个类方法
range(10) #生成一个0-9之间的列表
#repr() #待研究
#reversed() #跟列表里面的反转函数,reverse()类似
round(1.3345, 3) #以四舍五入的方式,保留三位小数
#setattr() #非常重要,后续补充
#slice() #好像跟切片差不多,没什么用
#sorted() #临时排序
#sum() #求和
#tuple() #元组
#vars() #返回一个对象的所有的属性名
#zip(a, b) #把两个列表一一对应的来打印,还是比较有用的
#__import__('str') #以字符串的方式导入一个模块