内置函数
Posted ming-yuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内置函数相关的知识,希望对你有一定的参考价值。
globals()——获取全局变量的字典 locals()——获取执行本方法所在命名空间内的局部变量的字典 input() 输入 print() 输出 # file: 默认是输出到屏幕,如果设置为文件句柄,输出到文件,sep: 打印多个值之间的分隔符,默认为空格 end: 每一次打印的结尾,默认为换行符 ,flush: 立即把内容输出到流文件,不作缓存 type(o) 返回变量o的数据类型 id(o) o是参数,返回一个变量的内存地址 hash(o) o是参数,返回一个可hash变量的哈希值,不可hash的变量被hash之后会报错。hash函数会根据一个内部的算法对当前可hash变量进行处理,返回一个int数字。*每一次执行程序,内容相同的变量hash值在这一次执行过程中不会发生改变。 open() 打开一个文件,返回一个文件操作符(文件句柄) __import__导入一个模块 #os = __import__(‘os‘) help()进入帮助模式。可以随意输入变量或者变量的类型。输入q退出 callable(o),o是参数,看这个变量是不是可调用。 dir() 默认查看全局空间内的属性,也接受一个参数,查看这个参数内的方法或变量 eval() 将字符串类型的代码执行并返回结果 exec()将自字符串类型的代码执行 compile # compile1 = compile(code1,‘‘,‘exec‘) compile2 = compile(code2,‘‘,‘eval‘) compile3 = compile(code3,‘‘,‘single‘) #将字符串类型的代码编译。代码对象能够通过exec语句来执行或者eval()进行求值。1. 参数source:字符串或者AST(Abstract Syntax Trees)对象。即需要动态执行的代码段。 2. 参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。当传入了source参数时,filename参数传入空字符即可。 3. 参数model:指定编译代码的种类,可以指定为 ‘exec’,’eval’,’single’。当source中包含流程语句时,model应指定为‘exec’;当source中只包含一个简单的求值表达式,model应指定为‘eval’;当source中包含了交互式命令语句,model应指定为‘single‘。 数字——数据类型相关:bool,int,float,complex 数字——进制转换相关:bin,oct,hex 数字——数学运算:abs,divmod,min,max,sum,round,pow 序列——列表和元组相关的:list和tuple 序列——字符串相关的:str,format,bytes,bytearry,memoryview,ord,chr,ascii,repr 序列:reversed,slice 数据集合——字典和集合:dict,set,frozenset 数据集合:len,sorted,enumerate,all,any,zip,filter,map filter() # filter(lambda i:i%2==0, [1, 4, 6, 7, 9, 12, 17]) #函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。 map() # map(func,[])函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。 sort() sorted() # l2 = sorted(l1,key=abs) # iterable:是可迭代类型;key:传入一个函数名,函数的参数是可迭代类型中的每一项,根据函数的返回值大小排序;reverse:排序规则. reverse = True 降序 或者 reverse = False 升序,有默认值。返回值:有序列表 locals : 函数会以字典的类型返回当前位置的全部局部变量。 # print(locals()) globals: 函数以字典的类型返回全部全局变量。 # print(globals()) eval: 执行字符串类型的代码,并返回最终结果。 # eval("n + 4") # 85 exec: 执行字符串类型的代码。 # s = ‘‘‘for i in [1,2,3]:print(i)‘‘‘ exec(s) compile: 将字符串类型的代码编译。代码对象能够通过exec语句来执行或者eval()进行求值。 # >>> #流程语句使用exec #简单求值表达式用eval >>> #交互语句用single # >>> code3 = ‘name = input("please input your name:")‘ # >>> compile3 = compile(code3,‘‘,‘single‘) # 有返回值的字符串形式的代码用eval,没有返回值的字符串形式的代码用exec,一般不用compile。 input: 函数接受一个标准输入数据,返回为 string 类型。 # name = input(‘>>>name is ‘) print: 打印输出。 # print(value, ..., sep=‘ ‘, end=‘ ‘, file=sys.stdout, flush=False) # file: 默认是输出到屏幕,如果设置为文件句柄,输出到文件 # sep: 打印多个值之间的分隔符,默认为空格 # print(111,222,333,sep=‘*‘) # 111*222*333 # end: 每一次打印的结尾,默认为换行符 # print(111,end=‘‘) print(222) # 两行的结果 111222 # flush: 立即把内容输出到流文件,不作缓存 # print(‘写入文件‘,file=f,flush=True) hash: 获取一个对象(可哈希对象:int,str,Bool,tuple)的哈希值。 # print(hash(‘123‘)) # -2996001552409009098 id: 用于获取对象的内存地址。 # print(id(‘abc‘)) # 2033192957072 open: 函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。 __import__:函数用于动态加载类和函数 。 help: 函数用于查看函数或模块用途的详细说明。 # print(help(list)) callable: 函数用于检查一个对象是否是可调用的。 # callable("runoob") # False dir: # >>> dir([ ]) # 查看列表的方法 # 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。 range: 函数可创建一个整数对象,一般用在 for 循环中。 # for i in range(10) next: 内部实际使用了__next__方法,返回迭代器的下一个项目。# it = iter([1, 2, 3, 4, 5]) # next(it) iter: 函数用来生成迭代器(将一个可迭代对象,生成迭代器)。# it = iter([1, 2, 3, 4, 5]) bool : 用于将给定参数转换为布尔类型。 #数值0、空序列等值为False # bool(‘‘) False bool(3) True int: 函数用于将一个字符串或数字转换为整型。 # print(int(‘12‘)) # 12 float: 函数用于将整数和字符串转换成浮点数。 # print(float(‘4‘)) # 4.0 complex: 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。 bin: 将十进制转换成二进制并返回。 # print(bin(10),type(bin(10))) # 0b1010 <class ‘str‘> oct: 将十进制转化成八进制字符串并返回。 # print(oct(10),type(oct(10))) # 0o12 <class ‘str‘> hex: 将十进制转化成十六进制字符串并返回。 # print(hex(10),type(hex(10))) # 0xa <class ‘str‘> abs: 函数返回数字的绝对值。 # print(abs(-5)) # 5 divmod: 计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)。# print(divmod(7,2)) # (3, 1) round: 保留浮点数的小数位数,默认保留整数。 # print(round(3.32567,3)) # 3.326 pow: 求x**y次幂。(三个参数为x**y的结果对z取余) # print(pow(2,3)) # 两个参数为2**3次幂 # print(pow(2,3,3)) # 三个参数为2**3次幂,对3取余。 sum: 对可迭代对象(元素是数字)进行求和计算(可设置初始值)。 # print(sum([1,2,3])) # 6 # print(sum((1,2,3),100)) # 106 min: 返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值)。 # print(min([1,2,3])) # 返回此序列最小值 # min([1,2,-5,],key=abs) # 按照绝对值的大小,返回此序列最小值 max: 返回可迭代对象的最大值(可加key,key为函数名,通过函数的规则,返回最大值)。 # print(max([1,2,3])) # 返回此序列最大值 # max([1,2,-5,],key=abs) # 按照绝对值的大小,返回此序列最大值 list: 将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素)。 # l = list({1,2,3}) tuple: 将一个可迭代对象转化成元祖(如果是字典,默认将key作为元祖的元素)。 # tu = tuple([1,2,3]) reversed: 将一个序列翻转,并返回此翻转序列的迭代器。 # reversed([‘a‘,2,3,‘c‘,4,2]) slice: 构造一个切片对象,用于列表的切片。 # sli_obj = slice(0,7,2) print(li[sli_obj]) str: 将数据转化成字符串。 format: 与具体数据相关,用于计算各种小数,精算等。 # print(format(‘test‘, ‘<20‘)) # str,指定对齐方式,<是左对齐, >是右对齐,^是居中对齐 # 整形数值可以提供的参数有 ‘b‘ ‘c‘ ‘d‘ ‘o‘ ‘x‘ ‘X‘ ‘n‘ None # 浮点数可以提供的参数有 ‘e‘ ‘E‘ ‘f‘ ‘F‘ ‘g‘ ‘G‘ ‘n‘ ‘%‘ None bytes: 用于不同编码之间的转化。 # bytes(‘你好‘,encoding=‘utf-8‘) # ‘你好‘.encode(‘utf-8‘) # ‘你好‘.decode(‘utf-8‘) bytearry: 返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。 # ret = bytearray(‘alex‘,encoding=‘utf-8‘) ret[0] = 65 ord: 输入字符找该字符编码的位置 # print(ord(‘a‘)) chr: 输入位置数字找出其对应的字符 # print(chr(97)) ascii: 是ascii码中的返回该值,不是就返回/u... # print(ascii(‘a‘)) repr: 返回一个对象的string形式(原形毕露)。 # print(‘我叫%r‘%name) # %r 原封不动的写出来 # print(repr(‘{"name":"alex"}‘)) dict: 创建一个字典。 set: 创建一个集合。 frozenset: 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。 len: 返回一个对象中元素的个数。 sorted: 对所有可迭代的对象进行排序操作。 # sort 在原列表的基础上进行排序 # l.sort(key = abs) # 生成了一个新列表 不改变原列表 占内存 # sorted(L, key=lambda x:x[1],reverse=True) # 利用key# 按降序 enumerate: 枚举,传入可迭代对象,返回一个枚举对象。# for i in enumerate([1,2,3]):print(i) # (0, 1) (1, 2) (2, 3) all: 可迭代对象中,全都是True才是True # print(all([1,2,True,0])) any: 可迭代对象中,有一个True 就是True # print(any([1,‘‘,0])) zip: 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。 # l1 = [1,2,3,] # l2 = [‘a‘,‘b‘,‘c‘,5] #l3 = (‘*‘,‘**‘,(1,2,3)) for i in zip(l1,l2,l3):print(i) #最后一个值为 (3, ‘c‘, (1, 2, 3)) filter: 过滤。#filter只管筛选,不会改变原来的值 # ret = filter(func,[1,2,3,4,5,6,7]) # ret = filter(lambda dic:True if dic[‘price‘] > 100 else False,portfolio) map: 会根据提供的函数对指定序列做映射。 # map(lambda x, y: x + y, [1, 3,], [2, 4, 6, 8, 10]) # map(func, *iterables) # 提供了两个列表,对相同位置的列表数据进行相加,返回一个可迭代对象 函数名 = lambda 参数 :返回值 # 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数。通常与含有key的内置函数搭配使用:# res = filter(lambda x:x>10,[5,8,11,9,15]) # for i in res:print(i) isinstance: 判断对象是否是类或者类型元组中任意类元素的实例 # >>> isinstance(1,int) issubclass: 判断类是否是另外一个类或者类型元组中任意类元素的子类 # >>> issubclass(bool,int) hasattr: 检查对象是否含有属性 # >>> class Student:#self.name = name # >>> s = Student(‘Aim‘) # >>> hasattr(s,‘name‘) #a含有name属性 getattr: 获取对象的属性值 # getattr(s,‘name‘) #存在属性name # >>> getattr(s,‘age‘,6) # 不存在属性age,但提供了默认值,返回默认值 setattr: 设置对象的属性值 # >>> setattr(a,‘name‘,‘Bob‘) delattr: 删除对象的属性 # >>> delattr(a,‘name‘) callable: 检测对象是否可被调用 # callable(b) #实例b是可调用对象 # b() classmethod: 标示方法为类方法的装饰器 # >>> class C: @classmethod def f(cls,arg1): staticmethod: 标示方法为静态方法的装饰器 # >>> class Student(object): @staticmethod def sayHello(lang): property 内置装饰器函数 只在面向对象中使用
以上是关于内置函数的主要内容,如果未能解决你的问题,请参考以下文章
C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段