Python自动化开发-Day5

1、内置函数:

    https://www.runoob.com/python/python-built-in-functions.html 菜鸟教程

    https://docs.python.org/3/library/functions.html?highlight=built#ascii 官方原档Python3.7

   1.1 数学运算:     

#abs:求数值的绝对值
abs(-2)

#divmod:返回两个数值的商和余数
divmod(10,3)

#max:返回可迭代对象的元素中的最大值或者所有参数的最大值
max(-1,1,2,3,4)     #传入多个参数 取其中较大者
max('1245657')     #传入1个可迭代对象,取其最大元素值
max(-1,0,key=abs)    #传入了求绝对值函数,则参数都会进行求绝对值后再取较大者 -1

#min:返回可迭代对象的元素中的最小值或者所有参数的最小值
min(-1,12,3,4,5)#-1
min('1234545')#'1'
min(-1,0,key=abs)#0

#pow:取两个值的幂运算值,或与其他
pow(2,3)#8
pow(2,3,5)       #取(2**3)%5  取模就是余数
pow(2,3,4)#0

#round:对浮点数进行四舍五入求值
round(1.456778888)#1
round(1.4567787888,2)#1.46

#sum:对元素类型是数值的可迭代对象中的每个元素求和
sum((1,2,3,4))#10
sum([1,2,3,4])#10
sum((1.1,1.2,1.3))#3.5999999999999996
sum((1,2,3,4),3)#13
View Code

  1.2 类型转换:

#bool:根据传入的参数的逻辑值创建一个新的布尔值
print(bool(0))#False
print(bool([]))#False
print(bool('str'))#True

'''
int:根据传入的参数创建一个新的整数
float:根据传入的参数创建一个新的浮点数
str:返回一个对象的字符串表现形式(给用户)
complex:根据传入参数创建一个新的复数
ord:返回ASCII符对应的整数
chr:返回整数所对应的ASCII字符
bin:将整数转换成2进制字符串
oct:将整数转化成8进制数字符串
hex:将整数转换成16进制字符
tuple:根据传入的参数创建一个新的元组
list:根据传入的参数创建一个新的列表
dict:根据传入的参数创建一个新的字典
set:根据传入的参数创建一个新的集合
'''
print(complex(1))#(1+0j)
print(complex('1+2j'))#(1+2j)
print(ord('a'))
print(chr(98))

'''
bytearray:根据传入的参数创建一个新的字节数组
bytes:根据传入的参数创建一个新的不可变字节数组
'''
print(bytearray([3]))#bytearray(b'\x03')
print(bytes('小明',encoding='utf-8'))#b'\xe5\xb0\x8f\xe6\x98\x8e'

#memoryview() 函数返回给定参数的内存查看对象(Momory view)。
#所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问。

v = memoryview(bytearray('akrge',encoding='utf-8'))
print(v)#<memory at 0x001ECC60>
print(v[0])#返回对应的ASCII值
print(v[1:4])#<memory at 0x001ACC60>返回的内存地址
print(v[1:4].tobytes())#b'krg'

#frozenset:根据传入的参数创建一个新的不可变集合
v = frozenset(range(7))
print(v)#frozenset({0, 1, 2, 3, 4, 5, 6})

#enumerate:根据可迭代对象创建枚举对象
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
for i in enumerate(seasons):
    print(i)
#(0, 'Spring')(1, 'Summer')(2, 'Fall')(3, 'Winter')
print(list(enumerate(seasons)))#[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
print(list(enumerate(seasons,start=1)))#[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

#range:根据传入的参数创建一个新的range对象
#iter:根据传入的参数创建一个新的可迭代对象
v = iter('abc')
print(v)#<str_iterator object at 0x00667050>
for i in v:
    print(i)

#slice:根据传入的参数创建一个新的切片对象
v = slice(2)
print(v)#slice(None, 2, None)
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
print(seasons[v])#['Spring', 'Summer']


'''
super() 函数是用于调用父类(超类)的一个方法。
super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。
MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。
语法
    以下是 super() 方法的语法:
    super(type[, object-or-type])
参数
    type -- 类。
    object-or-type -- 类,一般是 self
    Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :   
'''

#object:创建一个新的object对象
View Code

   1.3序列操作 

'''1、all(iterable)
如果iterable的所有元素不为0、''、False或者iterable为空,all(iterable)返回True,否则返回False;
注意:空元组、空列表返回值为True,这里要特别注意。'''
print(all([]))#True
print(all([0,1,2]))#False

'''2、any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,
如果有一个为 True,则返回 True。元素除了是 0、空、FALSE 外都算 TRUE。
注意:空元组、空列表返回值为False'''
print(any([]))#False
print(any([0,1,2]))#True

'''3、next:返回可迭代对象中的下一个元素值'''

'''4、sorted:对可迭代对象进行排序,返回一个新的列表
        reverse:对列表的元素进行反向排序'''

a = ['a','b','d','c','B','A']
sorted(a)
print(a)
b=[1,4,65,3,1,5,6,]
b.reverse()
print(b)

'''5、zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,
然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。'''

a =[1,2,3,4,5,6]
b =[5,3,2,1]
c=[1,3]
zipped = zip(a,b)
print(zipped)#<zip object at 0x02343468>
print(list(zipped))#[(1, 5), (2, 3), (3, 2), (4, 1)]
x,y = zip(*zip(a,b))
print(list(x))
print(list(y))


'''6、map()会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
语法:map(function, iterable, ...)
'''
v = [1,4,5,6,7]
x  = map(lambda x:x*2,v)
print(x)#<map object at 0x009FF9F0>
print(list(x))#[2, 8, 10, 12, 14]
# for i in x:
#     print(i)

'''6、描述
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
语法
以下是 filter() 方法的语法:
filter(function, iterable)
参数
function -- 判断函数。
iterable -- 可迭代对象。
返回值
返回一个迭代器对象'''

def add(i):
    return i%2==1
v = filter(add,range(1,100))
print(v)#<filter object at 0x0063FF10>
print(list(v))
View Code

   1.4对象操作

'''
help:返回对象的帮助信息
dir:返回对象或者当前作用域内的属性列表
id:返回对象的唯一标识符
hash:获取对象的哈希值
type:返回对象的类型,或者根据传入的参数创建一个新的类型
len:返回对象的长度
ascii:返回对象的可打印表字符串表现方式
format:格式化显示值
vars:返回当前作用域内的局部变量和其值组成的字典,或者返回对象的属性列表
    
'''
x = 1
y = vars()
print(y['x'])#1
View Code

  1.5变量操作

'''
globals:返回当前作用域内的全局变量和其值组成的字典

locals:返回当前作用域内的局部变量和其值组成的字典
locals() 函数会以字典类型返回当前位置的全部局部变量。
对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。
'''

a = 1
print(globals())
def add(arg):
    b = 3
    print(locals())
add(4) #{'arg': 4, 'b': 3}
View Code

  1.6交互&文件 

'''
print:向标准输出对象打印输出
input:读取用户输入值
 open:使用指定的模式和编码打开文件,返回文件读写对象
'''
View Code

  1.7编译

'''
exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。
语法
以下是 exec 的语法:
exec(object[, globals[, locals]])
参数
object:必选参数,表示需要被指定的Python代码。它必须是字符串或code对象。如果object是一个字符串,该字符串会先被解析为一组Python语句,然后在执行(除非发生语法错误)。如果object是一个code对象,那么它只是被简单的执行。
globals:可选参数,表示全局命名空间(存放全局变量),如果被提供,则必须是一个字典对象。
locals:可选参数,表示当前局部命名空间(存放局部变量),如果被提供,可以是任何映射对象。如果该参数被忽略,那么它将会取与globals相同的值。
返回值
exec 返回值永远为 None。
'''
exec('print("hello world")')#hello world
exec('''for i in range(10):print ("iter time: %d" % i)''')

'''repr() 函数将对象转化为供解释器读取的形式。
语法
以下是 repr() 方法的语法:
repr(object)
参数
object -- 对象。
返回值
返回一个对象的 string 格式。'''
list01= [1,3,54]
print(type(list01))
list02 =repr(list01)
print(type(list02))
print(repr(list01))

'''eval() 函数用来执行一个字符串表达式,并返回表达式的值。
语法
以下是 eval() 方法的语法:
eval(expression[, globals[, locals]])
参数
expression -- 表达式。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
返回值
返回表达式计算结果。
'''
print(eval('2+4'))#6

'''
compile() 函数将一个字符串编译为字节代码。
语法
以下是 compile() 方法的语法:
compile(source, filename, mode[, flags[, dont_inherit]])
参数
source -- 字符串或者AST(Abstract Syntax Trees)对象。。
filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
mode -- 指定编译代码的种类。可以指定为 exec, eval, single。
flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
flags和dont_inherit是用来控制编译源码时的标志
返回值
返回表达式执行结果。
'''

v = "2+4+4"
print(type(v))
s = compile(v,'','eval')
print(s)#<code object <module> at 0x00F5D758, file "", line 1>
print(eval(s))#10
View Code

  1.8反射操作  

#__import__:动态导入模块
#isinstance:判断对象是否是类或者类型元组中任意类元素的实例
'''
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。
isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。
语法:isinstance(object, classinfo)
参数:object -- 实例对象。
classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
返回值
如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。
'''
a = 2
print(isinstance(a,int))
print(isinstance(a,str))
View Code

  

 

猜你喜欢

转载自www.cnblogs.com/Dashuang/p/9497138.html