内置函数

作用域相关:
基于字典的形式获取局部变量和全局变量
globals()——获取全局变量的字典
locals()——获取执行本方法所在命名空间内的局部变量的字典
# def func():
#     a = 1
#     b = 2
#     print(locals())   #根据所在的位置不同,打印的内容不同
#     print(globals())  #不管在哪儿,打印的内容都一样
# func()

迭代器,生成器相关
# range(100).__iter__()
# iterator = iter(range(100))  #拿到一个迭代器  更优秀的方法
# print(iterator.__next__())
# print(next(iterator))        #打印更优秀的方法

# for i in range(100):
#     print(i)

查看内置属性:
# print(dir([]))
# print(dir(5))

调用相关:
callable:查看能否调用
# a = 1
# def func():pass
# print(callable(a))      #不可以调用
# print(callable(print))  #可以调用
# print(callable(func))   #可以调用

帮助:
#help:包含所有方法名以及他的使用方法 —— 不知道用法

#ctrl + 左键单击 :pycharm
#help:包含所有方法名以及他的使用方法 —— 不知道用法
#dir:只包含方法名 —— 想查看某方法是否在这个数据类型中

模块相关:
import 后面跟的是模块
import time   #时间
import os     #操作系统

文件操作相关:
# f = open('文件名','w',encoding='utf-8')
#打开模式:r、w、a、rb、wb,ab
#编码 utf-8/GBK

内存相关:
# print(id(1))
# print(id(2))
# print(hash('sajghfj;eyrwodnvjnz,.jifupwk'))  #算法
# print(hash(125342))
# print(hash((1,2,3,4)))

# hash([1,2,3,4,5,6,])
#hash 判断一个数据类型是否可以hash
#在一个程序执行的过程中,对同一个值hash的结果总是不变
#多次执行,对同一个值的hash结果可能改变

输入输出相关:
input:
# s = input('提示:')

print# print(1,2,3,4,5,sep='*')  #sep是指定多个要打印的内容之间的分隔符
# print(1,2,3,4,5)  #多个要打印的内容之间的分隔符默认为空

# print(1,2,sep=',')   #print('%s,%s'%(1,2))   #这两种是一样的

# f = open('a','w')
# print('abc
',file=f)指定往文件里写内容
# print('abc
')默认打印到屏幕,本质也是写到文件里输出
# print(2)


打印进度条:
# import time
# for i in range(0,101,2):  #[0,2,4,6,8...100]
#      time.sleep(0.2)
#      char_num = i//2      #打印多少个'*'    8/2 = 4
#      if i == 100:
#           per_str = '
%s%% : %s
' % (i, '|' * char_num)  #
 :把光标移到文件最开始
#      else:
#           per_str = '
%s%% : %s'%(i,'|'*char_num)
#      print(per_str,end='', flush=True)
带颜色输出:
# print("33[31;1mHello world,how are you 33[0m")
格式:
# print('33[4;32;41m金老师')
# print('egon')
# print('alex 33[0m')


字符串类型的代码的执行:(exec,eval,compile非常危险的函数执行)
# exec("print('12345')")
# eval("print('12345')")
exec,eval都是内置函数,都可以以Python代码的形式执行一个字符串,括号中必须是一串合法的代码。

# print(exec('1+2+3-4'))  #exec 没有返回值,用于流程性代码的执行
# print(eval('1+2+3-4'))  #eval 有返回值,用于值计算的时候(有结果的)

compile  将字符串类型的代码编译。代码对象能够通过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'

# code1 = 'for i in range(0,10): print (i)'
# compile1 = compile(code1,'','exec')
# exec(compile1)

#简单求值表达式用eval
# code2 = '1 + 2 + 3 + 4'
# compile2 = compile(code2,'','eval')
# print(eval(compile2)

# code3 = 'name = input("please input your name:")'
# compile3 = compile(code3,'','single')
# # name #执行前name变量不存在
# exec(compile3)
# print(name)

基础数据类型相关:
数学运算:
abs:取绝对值
# print(abs(5))

divmod:取商余
# ret = divmod(10,2)
# print(ret)
# ret = divmod(3,2)
# print(ret)
# ret = divmod(7,2)
# print(ret)

round:保留几位小数
# print(round(3.14159,2))

pow:幂运算,括号里三个参数,先取幂运算,再取余运算
# print(pow(2,3.5))   #幂运算
# print(pow(3,2))
# print(pow(2,3,2))
# print(pow(2,3,3))  #x**y%z

sum:括号内接受一个迭代对象
# print(sum([1,2,3,4,5,6],-2))
# print(sum(range(100)))

min:
# print(min([1,4,0,9,6]))
# print(min([],default=0))  #防止报错,加一个default值
#print(min([-9,1,23,5],key=abs))  #可以附加函数

max:
# t = (-25,1,3,6,8)
# print(max(t))
# print(max(t,key = abs))
# print(max((),default=100))

数据结构相关的:
reversed:求反序
# l = [3,4,2,5,7,1,5]    
# ret = reversed(l)
# print(ret)
# print(list(ret))
reversed:返回迭代器,生成一个新的序列迭代器

# l.reverse()
# print(l)
reverse:返回None,是在原本的列表的基础上修改的

sli:切片
# l = (1,2,23,213,5612,342,43)
# sli = slice(1,5,2)   #实现了切片的函数  等于l[1:5:2]
# print(l[sli])

format:
# print(format('test', '<20'))      #左对齐
# print(format('test', '>20'))      #右对齐
# print(format('test', '^20'))      #居中


bytes:
#网络编程的时候:能在网络上传递的必须是字节
# ret = bytes('你好,哈哈哈,再见',encoding='utf-8')
# #中间是网络传输的过程
# print(ret.decode(encoding='utf-8'))


bytearray:
# ret = bytearray('alex',encoding='utf-8')  #对比较长的字符串做修改的时候,指定某一处进行修改,不会改变这个bytearry的内存地址
# print(id(ret))
# print(ret[0])  #打印“alex”中的a的ASCII码数值
# ret[0] = 65    #改变a的ASCII数值,改变了它的大小写
# print(ret)
# print(id(ret))

ord:字符按照Unicode转数字
# print(ord('a'))

chr:数字按照Unicode转字符
# print(chr(97))

repr:查看数据类型
# print(repr(1))
# print(repr('1'))
# print('name : %r'%('金老板'))  #   %r 打印内容跟括号里完全一致

enumerate:
# l = ['笔记本','phone','apple','banana']
# for i,j in enumerate(l,1):
#     print(i,j)

# l = ['笔记本','phone','apple','banana']
# for i in enumerate(l,1):
#     print(i[0],i[1])

all:接收一个可迭代对象,对象中有一个是False,整体的结果就是False
# print(all([1,2,3,4,0]))
# print(all([1,2,3,4]))
# print(all([1,2,3,None]))
# print(all([1,2,3,'']))

any;接收一个可迭代对象,对象中有一个是True,整体的结果就是True
# print(any([True,None,False]))
# print(any([False,None,False]))

拉链函数:
zip:
# print(list(zip([0,1,2,3,4],[5,6,7,8],['a','b'])))


filter:过滤函数,就是有一个可迭代对象,想要一个新的内容集,是从原可迭代对象中筛选出来的,#新内容少于等于原内容的时候,才能用到filter
# def is_odd(x):
#     if x>10:
#         return True
# ret = filter(is_odd, [1, 4, 6, 7, 9, 12, 17])
# print(list(ret))

# def is_odd(x):
#     if x%2 == 0:
#         return True
# ret = filter(is_odd, [1, 4, 6, 7, 9, 12, 17])
# print(list(ret))

# def func(x):
#     return x and x.strip() 
#去掉所有的空内容和字符串中的空格
# l = ['test', None, '', 'str', '  ', 'END']
# ret = filter(func,l)
# print(list(ret))

map:
# ret = map(abs,[-1,-5,6,-7])   #abs(-1) = 1   abs(-5) = 5
# print(list(ret)

面试真题:
#有一个list, L = [1,2,3,4,5,6,7,8],我们要将f(x)=x^2作用于这个list上,那么我们可以使用map函数处理
# def func(x):
#     return x*x
# ret = map(func,[1,2,3,4,5,6,7,8])
# print(list(ret))


ilter和map
#参数很相近:都是一个函数名+可迭代对象
#且返回值页很相近:都是返回迭代器
#区别
#filter是做筛选的,结果还是原来就在可迭代对象中的项
#map是对可迭代对象中的每一项做操作的,结果不一定是原来就在可迭代对象中的项

#sort 是直接修改原列表的顺序,节省内存
#sorted 是生成一个新列表,不改变原来的列表
#key = func  #key参数,接收一个函数名
# print(sorted([-5,3,-4,2,-1],reverse=True))
# print(sorted([-5,3,-4,2,-1],key=abs))

# l2 = ['ajkhs',(1,2),'a',[1,2,3,4]]
# print(sorted(l2,key=len,reverse=True))


ascii:只要是ascii码中的内容,就打印出来,不是就转成

# print(ascii('a'))
# print(ascii(1))
原文地址:https://www.cnblogs.com/biluo/p/7824738.html