DAY13 内置函数
Posted hebbhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DAY13 内置函数相关的知识,希望对你有一定的参考价值。
内置函数
内置函数就是python提供给我们的函数,可以随时拿来使用。截止到python3.6.2,一共有68种内置函数。按照功能,可以分为以下几类:
作用域相关的:2种。 迭代器/生成器相关的:3种。 基础数据类型相关的:38种。 反射相关:4种。 面向对象相关的:9种。 其他:12种。
作用域相关
globals():以字典的形式返回当前位置的所有全局变量。
name = ‘he‘ print(globals()) >>> {‘__name__‘: ‘__main__‘, ‘__doc__‘: ‘locals():以字典的形式返回当前位置的局部变量‘, ‘__package__‘: None, ‘__loader__‘: <_frozen_importlib_external.SourceFileLoader object at 0x00000244F0078630>, ‘__spec__‘: None, ‘__annotations__‘: {}, ‘__builtins__‘: <module ‘builtins‘ (built-in)>, ‘__file__‘: ‘E:/python_training_s1/day13/builtin_func.py‘, ‘__cached__‘: None, ‘name‘: ‘he‘}
locals():以字典的形式返回当前位置的所有局部变量。
b =2 def func(): x = 1 #函数中的变量才是局部变量 print(locals()) func() >>> {‘x‘: 1}
其他相关
字符串类型代码的执行:不建议使用。
eval():执行字符串类型的代码,并返回结果。
exec():执行字符串类型的代码,但是没有返回值。
compile():编译字符串类型的代码,使得其能够exec来执行或者可以通过eval来取值。
#eval() s1 = ‘1+2+3‘ print(eval(s1),type(eval(s1))) >>> 6 <class ‘int‘> #处理字符串类型的代码,并返回结果,而且还会转换成结果对应的数据类型。 #eval()例子二 s2 = "{‘name‘:‘he‘}" print(eval(s2),type(eval(s2))) >>> {‘name‘: ‘he‘} <class ‘dict‘> #exec():执行字符串类型的代码,但是没有返回值。主要用于处理代码流 s1 = ‘1+2+3‘ print(exec(s1)) >>> None #exec()无返回值,所以为None s3 = ‘‘‘for i in range(3):print(i) ‘‘‘ exec(s3) >>> 0 1 2
输入输出相关:
input():用户输入,内容都转换为字符串类型。
print() : 输出命令
#input() name = input(‘请输入你的姓名:‘) #用户输入的内容都被赋值给name print(name) # 变量的类型都是字符串类型 #print(self, *args, sep=‘ ‘, end=‘ ‘, file=None) ‘‘‘ sep: 打印多个值之间的分隔符,默认为空格 end: 每一次打印的结尾,默认为换行符 file: 默认是输出到屏幕,如果设置为文件句柄,重定向输出到文件中 ‘‘‘ print(666,end=‘‘) #默认print有一个换行换行符 print(777) >>> 666777 print(1,2,3,4,5,sep=‘|‘) #seq定义连接符,默认是空格 >>> 1|2|3|4|5 f = open(‘log.txt‘,‘w‘,encoding=‘utf-8‘) print(‘i love python‘,file=f) #类似重定向功能,把内容重定入文件 f.close()
内存相关:
hash():返回一个可哈希变量的哈希值,不可哈希的变量使用会报错。
id():返回一个对象的内存地址。
# id():返回一个对象的内存地址 s1 = ‘he‘ print(id(s1)) >>> 2096407672512 #hash() print(hash(‘name‘)) print(hash(‘name1‘)) #无论字符串长度多长,都是返回一定长度的哈希值 print(hash(1)) #对于数值类型,哈希值就等于数值本身 print(hash(100)) print(hash(1000)) >>> -5080043217602082193 -8127996159439637239 1 100 1000
文件操作类型:
open():打开文件,返回一个文件句柄。
模块操作相关:
__import__ : 用于动态加载模块和类。
#导入模块 import time #使用__import__导入模块 os = __import__(‘os‘) print(os.path.abspath(‘.‘)) >>> E:python_training_s1day13
调用相关:
callable():判断一个对象是否可调用
name = ‘he‘ def func(): pass print(callable(name)) #普通变量不可调用 print(callable(func)) #截止到目前的学习中,函数是可以被调用的 >>> False True
查看内置属性:
dir():查看对象的所有方法
s1 = ‘abc‘ print(dir(s1)) #查找字符串的所有方法 >>> [‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__getnewargs__‘,
‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__init_subclass__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mod__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘,
‘__repr__‘, ‘__rmod__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘capitalize‘, ‘casefold‘, ‘center‘, ‘count‘, ‘encode‘, ‘endswith‘, ‘expandtabs‘,
‘find‘, ‘format‘, ‘format_map‘, ‘index‘, ‘isalnum‘, ‘isalpha‘, ‘isdecimal‘, ‘isdigit‘, ‘isidentifier‘, ‘islower‘, ‘isnumeric‘, ‘isprintable‘, ‘isspace‘, ‘istitle‘, ‘isupper‘, ‘
join‘, ‘ljust‘, ‘lower‘, ‘lstrip‘, ‘maketrans‘, ‘partition‘, ‘replace‘, ‘rfind‘, ‘rindex‘, ‘rjust‘, ‘rpartition‘, ‘rsplit‘, ‘rstrip‘, ‘split‘, ‘splitlines‘, ‘startswith‘, ‘strip‘, ‘swapcase‘,
‘title‘, ‘translate‘, ‘upper‘, ‘zfill‘]
迭代器/生成器相关
range():可创建一个整数对象,一般用在 for 循环中。python2.x中直接返回列表,python3.x中返回的是range对象。
next():内部调用的是__next__()方法,返回迭代器的下一个对象。
iter():内部调用的是__iter__()方法,用来将一个可迭代对象转换为迭代器。
#range() for i in range(1,10): print(i) #next():返回迭代器的下一个元素 g1 = (i for i in range(1,10)) print(next(g1)) print(next(g1)) >>> 1 2 #iter():把一个可迭代对象转换为迭代器。 from collections import Iterable,Iterator l1 = [1,2,3] print(isinstance(l1,Iterable)) iter_l1 = iter(l1) print(isinstance(iter_l1,Iterator))
基础数据类型相关
数据类型:
bool(): 用于将给定的参数转换为布尔型,如果没有参数,则返回False.
int(): 用于将一个字符串或数字转化为整型。
float():用于将字符串或者整数转化为浮点型。
complex():复数。
数字之进制转换相关:
bin():把十进制转换为二进制。
oct():把十进制转换为八进制
hex():把十进制转换为十六进制。
数据运算相关:
abs():返回绝对值.
print(abs(100)) print(abs(-100)) >>> 100 100
divmod():计算除数与被除数的商和余数,把(商,余数)作为一个元组返回。
print(divmod(10,3)) >>> (3, 1)
round():保留浮点数的小数位,四舍五入,默认取整。
print(round(3.1415926,4)) print(round(3.1415926)) >>> 3.1416 3
pow():求x的y次幂,如果有第三个参数就是,为x的y次幂对z的取余。
print(pow(2,5)) #求2的5次方 print(pow(2,5,5)) #求2的5次方对5求余 >>> 32 0
sum(): 对可迭代对象进行求和。可以传入第二个参数,当做起始值。
l1 = [1,2,3,4,5] print(sum(l1)) #对l1进行求和,默认从0开始 print(sum(l1,100)) #对l1进行求和,从100开始 >>> 15 115
min():返回可迭代对象中的最小值。可以传入key值,按照函数规则,返回最小值。
#min返回可迭代对象的最小值 l1 = [2,1,3,4,5] print(min(l1)) >>> 1 #传入key参数,按照自定义的函数规则,返回最小值。 # 第一步:先将iterable的每一个元素都当做函数的参数传进去。 # 第二步:按照返回值去比较大小。 l1 = [(‘alex‘,1000),(‘taibai‘,18),(‘wusir‘,500)] def func(x): return x[1] print(min(l1,key=func)) >>> (‘taibai‘,18)
max():同上,返回可迭代对象中的最大值。可以传入key值,按照函数规则,返回最大值。
以上是关于DAY13 内置函数的主要内容,如果未能解决你的问题,请参考以下文章