python--内置函数

内置函数

现在python一共为我们提供了68个内置函数,讲述过程:

一、其他中的12个

(一)执行   字符串     类型代码的执行
1  eval执行有意义的字符串 ,有返回值
 print(eval('1+2'))
 print(eval("print('美丽')"))    #美丽
2  exec执行 有意义 的字符串,简单的  流程控制  ,没有返回值
 exec('for i in range(5):print(i)')    #0,1,2,3,4

注释:

# exec和eval都可以执行 字符串类型的代码
# eval有返回值 —— 有结果的简单计算
# exec没有返回值 —— 简单流程控制
# eval只能用在你明确知道你要执行的代码是什么

3 compile字符串执行 :编译
ret='for i in range(5):print(i)'
c=compile(ret,'','exec')        #用exec执行,有返回值
exec(c)
ret='1+2+3+4'
c=compile(ret,'','eval') #''引号原本的功能是放
print(eval(c)) # 用eval执行,没有返回值,所以需要打印
(二)输入输出
1   input
input('提示:')
2   print()
l='a'
print(l)                 #a
print(l,end='%%')     #  a%%    end是print中默认的以换行做结尾,这里可以改为%%结尾
print(l,end='%%')    #a%%a%%
print(l,2,3,5,6,sep='%%')     #a%%2%%3%%5%%6      sep是print中元素之间默认用空格隔开,这里可以改成%%
print(l,2,3,5,6)    #a 2 3 5 6
f=open('上课',mode='w',encoding='utf-8')     #打开文件夹,之后通过句柄操作文件
l='mmmm'
print(l,file=f)     #print中file默认在控制台打印,可以把file=f文件句柄,改成在文件中打印
f.close()
(三)内存相关
1    hash()   #在程序的一次执行中,hash值只有一个,但是再次执行时,hash值就会改变
print(hash((0,2,3))) #-19文件执行的操作43780824

2 id()就是内存地址
print(id(1))
(四)文件操作相关(1)
1    open
f=open('上课')
print(f.writable())    #False
print(f.readable())    #True
print(f.readline())    #把上课文件中的内容读出来了:mmmm
(五)调用相关
1    callable  判断是否可以被调用
print(callable(a))    #Flase
print(callable(print))  #True
print(callable(globals))   #globals 加上s
(六)模块相关
1  import
import time
print(time.time())   #1515230362.92395
等同于以下例子
t=__import__('time')
print(t.time())   #1515230362.92395
# 某个方法属于某个数据类型的变量,就用.调用
# 如果某个方法不依赖于任何数据类型,就直接调用 —— 内置函数 和 自定义函数
(七)帮助
1   help    查看方法运用
# help(str)

(八)查看内置属性
1 dir 查看变量的方法
print(dir([1,2]))

二、 基础数据类型相关   38个
(一)和数据结构相关(24)
 
 1.1和数字相关
1    数据类型
bool
int       整形
float   # 浮点数(有限循环小数,无限循环小数)  != 小数 :有限循环小数,无限循环小数,无限不循环小数
complex 复数,不能比较大小  实部+虚部   两个部分都是浮点数
1+2j
4+5j
2   进制转换
bin   二进制
print(bin(2))   #0b10
oct   八进制
print(oct(2))   #0o2
hex   十六进制
print(hex(2))   #0x2
3  数学运算
abs  取绝对值

print(abs(-1))

divmod  除余
print(divmod(9,6))    #(1, 3)  商1  余3

round  小数精确
print(round(2,445))     #2
print(round(2,56))    #2

sum   求和   q求和对象是可迭代的  sum(iterable,start)   start开始加的值
错误写法  print(sum(1,2))
print(sum([1,2,3,4]))    #10
print(sum([1,2,3,4],10))     #   第一个数从10 开始加

min   求最小值
print(min(2,5,6,8))   #2
print(min(2,5,6,8,-0.5,key=abs))   #-0.5

max
print(max(2,5,6,8,-1,-8,key=abs))   #8

pow  求幂运算pow(x,y,z)
print(pow(2,3))    2的3次方
print(pow(2,3,3)) #幂运算之后再取余2
(三)列表和元组   可以强转
t=(1,2,3,4)
print(list(t))    #[1, 2, 3, 4]
print(tuple(t)    #再转回元组(1, 2, 3, 4)
1.2相关内置函数
1.  reversed  反转
reverse  反转
l=[1,3,6,4]
l.reverse()    #反转l
print(l)
reversed 保留原列表,得到一个反向迭代器 l2
=reversed(l) #生成器 print(l2) #<list_reverseiterator object at 0x018539D0> for i in l2: print(i) #4,6,3,1
2  slice   切片
t = (1,2,23,213,5612,342,43)
t1=slice(0,5,2) 
print(t1)    #slice(0, 5, 2)    切片
print(t[t1])  # (1, 23, 5612)     把l从索引0到5开始切片按照每隔2个值切片
化简:
print(t[slice(0,5,2)])   # (1, 23, 5612)

1.3字符串

3 format #格式化输出
print('今天很{},我很{},是个{}'.format('美好','美丽','美女'))
print(format('美丽','>20'))    #把字符串以20个长度为标准,左靠齐
print(format('美丽','<20'))     #把字符串以20个长度为标准,右靠齐
print(format('美丽','^20'))    #把字符串以20个长度为标准,居中
4   bytes
需求把gbk编码的转换为utf-8,python是unicode编码,需要先把'你好'转为gbk 形式
print(bytes('美丽',encoding='GBK'))                                    #等价于==print('美丽'.encode('gbk')) #  #b'xc4xe3xbaxc3'把unicode转换为gbk的bytes类型
print((bytes('美丽',encoding='gbk')).decode('gbk').encode('utf-8'))    #转换成功
注释:
网页编程是二进制存储 照片视频也是二进制 html网页爬取也是二进制
5.bytearray   bytearray(s,encoding='utf-8')  转换编码,特点是可以根据字节码改内容,但是你要提前 知道要改内容的号码
b_bytes=bytearray('你好',encoding='utf-8')
print(b_bytes)    #'xe4xbdxa0xe5xa5xbd')
print(b_bytes[0])   #228
print(b_bytes[1])   #189
6.memoryview 视觉展示,只是给我们看,不占用内存,但是要调用是时候还是会占用内存,用处比较少
memoryview(bytes('hello,eva',encoding='utf-8')
 7.ord字符按照unicode转数字
print(ord(''))    #20320
print(ord('1'))    #49
print(ord('A'))    #65
print(ord(''))    #10084
8、chr数字按照unicode转字符,  但是从65(A的数字对应65)开始才能转换
print(chr(97))    #a
print(chr(98))    #
print(chr(65))    #A


9、ascii   字符在ascii码中的内容就打印出来,不是就转换成u
print(ascii('')     #'u4f60'
print(ascii('A') )    #'A'
10、repr 用于%r格式化输出    ,不同于print的是:会将打印内容的数据类型也一起打印出来
name='egg'
print('你好%s'%name)   #你好egg
print('你好%r'%name)   #你好'egg'
print(repr('1'))     #'1'
print('1')       #1
print(repr(1))   #1
1.4字符串

11.dict

12、set、
13、frozenset

14、len

15、enumerate枚举
dic={'a':'b','c':'d'}
for k,i in enumerate(dic,1):
    print(k,i)
 
1.5相关内置函数(8)
 
16、all 判断是否有bool值是Flase的值,---一假均假---用中括号写进要判断的值,
print(all([' ','ni','你']))    #True
print(all(['','ni','你'])) #Flase
特殊情况 : print(all([])) #Ture
print(all([''])) #Flase
 
 17、any 判断bool值是否有True的值-----一真均真
print(any([' ','ni','']))    #True
print(any(['','ni','']))    #True
print(all(['']))    #Flase
 18、zip  返回一个迭代器,拉链功能
 
a=['a','b']  #列表
b=['c','d']
ret=zip(a,b)
for i in ret:    #('a', 'c')('b', 'd')
    print(i)
a
={'a','b'} #字典 b={'c','d'} ret=zip(a,b) for i in ret: print(i) ##('a', 'c')('b', 'd')和上面效果一样 #简化: a=['a','b'] b=['c','d'] c=['e','f'] for i in zip(a,b,c): #('a', 'c', 'e')('b', 'd', 'f') print(i) #字典、列表、元祖混用拉链 a=['a','b','g'] #不是一一对应的话,自动去除多余的 b={'c','d']} #dict list tuple 都可以用zip 来拉链 c=('e','f']) for i in zip(a,b,c): #('a', 'c', 'e')('b', 'd', 'f') print(i)


19、filter  filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,

filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
 
def f(x):
    return x%2==0
g=filter(f,[1,3,5,6,7,8])    #filter 得到是一个迭代器
for i in g:
    print(i)               #6 8
filter过滤的功能
def a(z): return z%2==1 #函数返回值为Ture,则放到新的迭代器中 ret=filter(a,[1,2,3,4,5,6]) #函数名不加括号,因为前面filter要来调用函数名,得到的ret是一个迭代器 for i in ret: #不调用不打印 print(i) 功能解析:把可迭代的值传给某个函数,函数来执行
def a(z): return z%2==0 ret=filter(a,[1,2,3,4,5,6]) for i in ret: print(i) 上面那个filter方法等于这个列表推导式的功能 c=[i for i in [1,2,3,4,5,6] if i%2==1] for i in c: print(i)

取出0到100中能够开方的整数
from math import sqrt def num(s): if sqrt(s)%1==0: return True ret=filter(num,range(0,101)) for i in ret: print(i)


20、map
Python中的map函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,
map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,
map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
 
#例题L = [1, 2, 3, 4, 5, 6, 7, 8]def l(a):     return a**2g=map(l,L)                #map后得到的也是迭代器print(list(g))              #[1, 4, 9, 16, 25, 36, 49, 64]
或者用for
for i in g: print(i)
注释:

# 结论:filter()之后元素个数会发生改变,map()之后元素个数不会改变
# #filter只管筛选,不会改变原来的值 map值会改变

21、sorted   排序,有key,默认Flse  从小到大排序   reverse=True  从大到小排序
iterable:是可迭代类型;
key:传入一个函数名,函数的参数是可迭代类型中的每一项,根据函数的返回值大小排序;
reverse:排序规则.reverse = True降序或者reverse = False升序,有默认值。
返回值:有序列表:
例
l=[2,1,5,7,-10]
print(sorted(l,key=abs,reverse=True))     #[-10, 7, 5, 2, 1]
等同于sort
l=[2,1,5,7,-10]
l.sort(key=abs,reverse=True)
print(l)          #[-10, 7, 5, 2, 1]

sort使用方法
l=[2,1,5,7,-10]
l.sort()
print(l)   #[-10, 1, 2, 5, 7]
 三、匿名函数

 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数

#这段代码
def calc(n):
    return n**n
print(calc(10))
 
#换成匿名函数
calc = lambda n:n**n
print(calc(10))
 







 
 
 
原文地址:https://www.cnblogs.com/zzy-9318/p/8228139.html