python中的内置函数(一)

内置函数:内置函数就是python提供的,可以拿来直接用的函数

作用域相关

locals():返回当前作用域中的名字
globals():返回全局作用域中的内容

 1 def  func():
 2     print('我早晨吃了一个苹果')
 3     def func1():
 4         print('我下午吃了一个桃')
 5         def func2():
 6             print('都挺好吃')
 7         func2()
 8     print(globals())#'func': <function func at 0x000001BA3E9F2EA0>
 9     print(locals())#func1 at 0x000001BA3EBC08C8>
10     func1()
11 func()

迭代器相关

range():生成数据
1 print(list(range(5)))
2 [0, 1, 2, 3, 4]
next():迭代器向下执行一次,内部实际使用了__next__()方法
iter():获取迭代器,内部其实是使用了__iter__()方法来获取迭代器
1 lis=[1,2,3,4,5]
2 it=iter(lis)#获取迭代器
3 print(next(it))#迭代器向下执行一次
4 print(next(it))
5 print(next(it))

字符串相关

eval():执行字符串类型的代码,并返回结果,是求值
1 a="{'你':'是','我':'的','大':'猪','蹄':'子儿'}"
2 print(eval(a)[''])
exec():执行字符串类型的代码,如果是多行,注意缩进,是执行,没有返回结果
1 exec('''for i in range(5):
2     print(i)
3 ''')
4 
5 eval('''for i in range(5):
6     print(i)
7 ''')  #invalid syntax(语法错误)
compile(),将字符串中代码编译,代码能够通过exec()执行,或者通过eval()进行求值
(有返回值形式的字符串用eval(),没有返回值类型的字符串用exec())
语法:compile(source, filename, mode[, flags[, dont_inherit]])
source -- 字符串或者AST(Abstract Syntax Trees)对象。。
filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
mode -- 指定编译代码的种类。可以指定为 exec, eval, single
 1 code='''for i in range(6):
 2     print(i)
 3 '''
 4 c1=compile(code,'',mode='exec')  #如果是编译字符串,第二个文件的位置要''
 5 exec(c1)
 6 0
 7 1
 8 2
 9 3
10 4
11 5
12 
13 code='1+2+3'
14 c=compile(code,'',mode='eval')
15 print(eval(c))#6
16 
17 有用户交户的mode用single
18 code='content=input("请输入想吃的?")'
19 a=compile(code,'',mode='single')  #有用户交户的用single
20 exec(a)
21 print(content)   #pycharm里的报错信息,不一定是对的
22 请输入想吃的?太撑了,不想吃
23 太撑了,不想吃

输入输出相关

input():获取用户输入的内容
print():打印输出
1 content=input('今天喝了多少水?')
2 print(content)
3 "C:\Program Files\Python36\python.exe"
4 今天喝了多少水?三杯
5 三杯

内存相关

hash():获取到对象的hash值
1 lis=(1,2,3,4,5)
2 print(hash(lis)) #8315274433719620810
哈希计算之后是一串数字,可能很大,也可能很小还有可能是复数,哈希的目的是为了存储,
但有一个缺点就是耗内存,是在以空间换取时间,哈希值尽量不要重复(在某些特定的环境下可能会重复)
id():获取到对象的内存地址
1 lis=[1,2,3,4,5,6]
2 print(id(lis))#1964303088776

文件操作相关

1 open():用于打开一个文件,创建一个文件句柄
2 f=open('daily.txt',mode='r',encoding='utf-8')

模块相关

__import__():用于动态加载类和函数.import里面封装的__import__()

帮助

help():用于查看函数或模块用途的详细说明
dir():查看内置属性,方法,访问的是对象中的__dir__()方法
dir()和help()的区别:
help(list) #help除了方法属性外还有介绍
print(dir(list)) #dir出来的是含有的方法属性

调用相关

callable()用于检查一个对象是否可用,如果返回true,object有可能调用失败,
如果返回的是False,一定不会调用成功
1 lis=[1,2,3,4,55,6]
2 a=1
3 def func():
4     b=a+1
5     print(a)
6 func()
7 print(callable(func))

基础数据类型相关

数字相关:
bool():将给定的值转换bool型,如果不给值返回False
int():将给定的值转换int型,如果不给值返回False
float():将给定的值转换int型,也就是小数
 1 a='1'
 2 print(type(a))
 3 print(type(int(a)))
 4 print(type(bool(a)))
 5 print(type(float(a)))
 6 <class 'str'>
 7 <class 'int'>
 8 <class 'bool'>
 9 <class 'float'>
10 print(float(1))  #1.0
complex():创建一个复数,第一个参数为实部,第二个参数为虚部,或者第一个参数直接用字符串来描述复数(与数学中不同的是复数用a+bj而不是a+bi)
1 print(complex(1,2))  #(1+2j)
进制转换:
bin():将给的参数转换成二进制
otc():将给的参数转换成八进制
hex():将给的参数转换成十六进制 # 0 1 2 3 4 5 6 7 8 9 a b c d e f
1 a=10
2 print(bin(a))
3 print(oct(a))
4 print(hex(a))
5 0b1010
6 0o12
7 0xa
数学运算:
abs():返回绝对值
1 a=-5
2 print(abs(a))  #5
divmod():返回商和余数
1 print(divmod(6,3))#(2, 0)
round():四舍五入(这台机器是五舍六入)
1  print(round(4.5))
pow(a,b):求a的b次幂,如果输入三个数,则求完次幂后对第三个数取余
1 print(pow(2,3))  #8
2 print(pow(2,3,2))  #0
sum():求和sum中放的必须是可迭代对象
1 print(sum(1,2))  #'int' object is not iterable
2 print(sum([1,2,3,4,5,6]))   #21
min():最小值
max():最大值
1 lis=[1,2,3,4,5,6]
2 print(min(lis),max(lis))  #1 6

数据结构相关

列表和元组:
list() 将一个可迭代对象转换成列表
tuple() 将一个可迭代对象转换成元组
1 a='asdfghj'
2 print(list(a))  #['a', 's', 'd', 'f', 'g', 'h', 'j']
3 print(tuple(a))   #('a', 's', 'd', 'f', 'g', 'h', 'j')
reversed():将一个序列翻转,返回翻转序列的迭代器
1 a='asdfghjkl'
2 it=reversed(a)
3 print(it.__next__())   #l
slice():列表的切片
1 a=[1,2,3,4,5,6]
2 s=slice(0,4,2)
3 print(a[s])  #[1, 3]  值得注意的是打印的时候要用print(a[s])这种写法

字符串相关

str():将数据转化成字符串
1 a=12
2 print(type(str(a)))  #<class 'str'>
format():与具体数据相关,用于计算小数精算等,format还可以用来格式化
 1 字符串:
 2 print(format('test','<20'))   #test                扩展为20个字符,并将test左对齐
 3 print(format('test','>20'))   #                test扩展为20个字符,并将test右对齐
 4 print(format('test','^20'))   #        test        扩展为20个字符,并将test居中
 5 数值:
 6 print(format(3,'b'))   #将三转换成二进制  #11
 7 print(format(97,'c'))  #把97转换成97对应的Unicode字符   #a
 8 print(format(11,'d'))   #将11转换成十进制  #11
 9 print(format(111122348542,'o'))  #转换成八进制  #1473732074776
10 print(format(465456461,'x'))   #转换成16进制,用小写字母表示  #1bbe4d4d
11 print(format(465456461,'X'))   #转换成16进制,用大写字母表示   #1BBE4D4D
12 print(format(11,'n'))       #十进制
13 print(format(11))   #11
14 浮点数
15 print(format(123456789,'e'))   #1.234568e+08科学计数法,默认保留六位小数
16 print(format(123456789,'0.2e'))  #1.23e+08  科学计数法,默认保留两位小数(e小写)
17 print(format(123456789,'0.2E'))  #1.23E+08  #科学计数法,默认保留两位小数(e大写)
18 print(format(123456789,'f'))    #123456789.000000   小数点计数法,默认保留六位小数
19 print(format(123456789,'0.2f'))    #123456789.00   #小数点计数法,默认保留两位小数
20 print(format(123456789,'0.10f'))   #123456789.0000000000  小数点计数法,默认保留10位小数
21 print(format(1.23456789e+10000,'F'))  #INF 小数点计数法
bytes();把字符串转换成某某类型,后面要加上编码类型
1 s='你好!'
2 print(bytes(s,encoding='utf-8'))
bytearry()
1 ret=bytearray('你好',encoding='utf-8')
2 print(ret)  #bytearray(b'\xe4\xbd\xa0\xe5\xa5\xbd')
memoryview():查看bytes在内存中的情况
1 s=memoryview('李小龙'.encode('utf-8'))
2 print(s)  #<memory at 0x0000014E41955F48>
ord()输入字符,查找字符编码的位置
chr()输入位置查找对应的字符
ascii()是ascii码中的就有返回值,否则就返回\u
1 print(ord('a'))   #97
2 print(ord(''))  #20013
3 
4 print(chr(97))   #a
5 print(chr(20013))   #
6 
7 print(ascii('a'))   #'a'
8 print(ascii(''))   '\u4e2d'
repr():返回正式的官方的字符串
 1 print(repr('大家好,我叫周杰伦'))
 2 print(repr('大家好/n,我叫周杰伦'))
 3 print(repr('大家好\n,我叫周杰伦'))
 4 print(repr('大家好\t,我叫周杰伦'))
 5 print(repr('大家好\\,我叫周杰伦'))
 6 print(repr('大家好\\\,我叫周杰伦'))
 7 print(repr('大家好\\\\,我叫周杰伦'))
 8 print(repr('周杰伦说"大家好,我叫周杰伦"'))
 9 print(repr("周杰伦说'大家好,我叫周杰伦'"))
10 
11 '大家好,我叫周杰伦'
12 '大家好/n,我叫周杰伦'
13 '大家好\n,我叫周杰伦'
14 '大家好\t,我叫周杰伦'
15 '大家好\\,我叫周杰伦'
16 '大家好\\\\,我叫周杰伦'
17 '大家好\\\\,我叫周杰伦'
18 '周杰伦说"大家好,我叫周杰伦"'
19 "周杰伦说'大家好,我叫周杰伦'"
dict{}创建一个字典
1 dict={}
2 print(dict)
set():创建一个集合
1 s=set()
2 print(type(s))  #<class 'set'>
frozenset():创建一个冻结的集合,冻结的集合不能进行增加和删除操作
1 frozenset={}
2 print(frozenset)
len():返回一个对象中元素的个数
enumerate():获取集合的枚举对象
1 lis=[1,2,3,4]
2 for i, j  in enumerate(lis):
3     print(i,j)
4 0 1
5 1 2
6 2 3
7 3 4
all()可迭代对象中 全部是true才是true:
any()可迭代对象中有一个是true就是true
1 print(all([1,2,3,4,5]))  #True
2 print(all([1,2,3,4,5,0]))  #False
3 print(any([1,2,3,4,5]))  #True
4 print(any([1,2,3,4,5,0]))   #True
posted @ 2018-08-15 15:21  ★行者尚★  阅读(306)  评论(0编辑  收藏  举报