内置函数

1.range(起始位置,终止位置,步长)

  range(终止位置)      #range(5)=>  [0,1,2,3,4]

  range(起始,终止位置)    #range(1,5)=>  [1,2,3,4]

  range(起始,终止,步长)    #range(1,10,2)=>  [1,3,5,7,9]

2.next(迭代器) 是内置函数

  __next__ 是迭代器的方法

  g.__next__()  带双下划线的魔术方法一般情况下不直接用

  next(g)  之前所有的__next__都应该替换成next(g)

  *带双下划线的所有的办法都可能和内置的函数有关系

3.iter(可迭代的)

  __iter__

  迭代器= 可迭代的.__iter__()

  迭代器=iter(可迭代的)

4.open('文件名') 跟着操作系统走的

  打开模式 默认是r

  编码 默认是操作系统的默认编码

  打开模式:  r w a rb wb ab 

  编码:utf-8(100%)

5.input('字符串数据类型的参数,提醒用户你要输入的内容')

  Python2 

    input() 还原你输入的值的数据类型

    raw_input=py3.input

  Python3

    input()输入的所有内容都是数据类型

    阻塞:等待某件事情发生,如果不发生一直等待

  input的返回值就是用户输入的内容

    输入的内容=input("提示")

6 print(要打印的内容1,要打印的内容2,要打印的内容3,sep='分隔符',end='结束符')

  print('123','abc','aaa',sep="|")    #123|abc|aaa   

  print(123,'abc','aaa',end = '@')    #123 abc aaa@

  

  f=open('file','w')

  print(123,'abc',file=f)    print的本质就是写文件 这个文件是pycharm的屏幕

  f.close()

7.hash函数

  哈希 可哈希(不可变数据类型) 不可哈希(可变数据类型)

  哈希是一个算法,导致了字典的快速寻址

  所有的数据要想得到不变的hash值,必须是一个不可变的数据类型

8.eval() 可以将字符串数据类型的Python代码执行.通过拼接字符串的方式来执行不同的代码--简化代码

  evalexec 这个函数 不能直接操作文件当中读进来的 网络上传进来的 用户输入的

eval('print(1+2+3+4)')     #10   #有返回值 能接收
ret = eval('1+2/3*4')    #3.666666666666
print(ret)

9.exec() 

exec('print(1+2+3+4)')         #10 # 没有返回值
ret = exec('1+2/3*4')
print(ret)            # None

10.compile 编译   能够节省时间工具

11.help() 帮助你了解Python

  方式一

    输入help()进入帮助页面,输入数据类型,帮组我们打印具体的帮组信息

    输入q退出帮助

  方式二

print(help(str))
print(help('abc'))

12.callable()  判断某一个变量是否可调用

13.complex 复数

  实数(有理数和无理数):世界还是那个存在的数

  虚数:j

  某一个数的平方是-1,那么这个数就是一个虚数的基础单位  j

  复数=实数+虚数=a+bj

面试题:

    复数不能比较大小

    共轭复数:a+bj和a-bj是一对共轭复数

    a+bj和a+bJ都是复数

数据类型:boolintflostcomplex

14.locals 本地作用域局部作用域 会随着位置的改变而改变

15.globals 全局作用域    永远不变 永远是全局

16.bin  oct  hex

a=256    十进制

  print(bin(a))    0b100000000  0b代表二进制 
      print(oct(a))    0o400                0o代表八进制
      print(hex(a))    0x100               0x代表十六进制

17.abs 求绝对值,正数的绝对值是正数,负数的绝对值也是正数

18.divmod  商余函数(应用在  实现翻页功能)

print(divmod(10,3))        #(3,1)
print(divmod(7,4))        #(1,3)
print(divmod(8,3))        #(2,2)

19.round(小数,保留几位小数) 小数精确

Python 2.x中(完全的四舍五入)

Python 3.x中(更精准的计算方式)

20.pow(x,y,z)  幂运算幂余运算   x的y次方%z

print(pow(5,3,2))        #1    => 5**3%2=1

21.sum(可迭代的数字集,start),start是从哪个数开始加

print(sum((1,2,3,4),10))         #20
print(sum(1,2,3,4))        #10

22.minmax(iterable*args,key)    可以是一个函数的内存地址,key所做的事情就是根据你对每一项数据大小的需求来排序

print(min((1,2,3),(4,5,6)))        #(1,2,3)
print(min((7,2,3),(4,5,6)))        #(4,5,6)



def func(n):
    return n%6
ret=min(2,3,4,7,key=func)
print(ret)                #7
l = [{'name1':10},{'name2':500}]
# # max函数 找到股价最高的那个字典,

def func(dic):
    for k in dic:
        return dic[k]
print(max(l,key = func))                #{'name2': 500}

l中的每一项都会作为参数传给func
max/min的求值会根据func的返回值来排序

23.reversed(list/tuple) 返回一个迭代器,为了节省内存

l = [1,2]
l.reverse()
print(l)      #[2,1]
ret = reversed([1,2,3])  # iterator
print(ret)

  reverse 是在原基础上修改:2000项的列表 不会产生额外的内存

  reversed不修改原基础:不直接返回列表而返回迭代器,为了不占用更多的内存

24.slice 切片

l = [1,2,3,4,5,]
print(l[1:4])            #[2,3,4]

25.format

print(format('test', '<20'),'alex')
print(format('test', '>20'),'alex')
print(format('test', '^20'),'alex')


test                 alex
                test alex
        test         alex

26.bytes 字节

# str --> bytes
print('abc'.encode('utf-8'))        #b'abc'
print('你好'.encode('utf-8'))        #b'xe4xbdxa0xe5xa5xbd'


# bytes --> str
b = b'xe4xbdxa0xe5xa5xbd'
print(b.decode('utf-8'))                #你好

网络上传输的数据:bytes

文件的传输:wb写字节  rb读字节    图片和视屏都是字节

27.bytearray 把一个字符串编成一个字节数组,较长的字符串的修改节省内存,修改行为必须依靠编码

ret = bytearray('abc'*10,encoding='utf-8')  # 字节数组
print(ret)
ret[0] = 102   # asc码  65A 97abcdef 你好 您好
print(ret)



      #  bytearray(b'abcabcabcabcabcabcabcabcabcabc')
      #  bytearray(b'fbcabcabcabcabcabcabcabcabcabc')            

28.mrmoryview  

29.ord/chr   字符和编码之间的转换

print(ord('a'))         #97   
print(chr(97))         #a  

  A  在65位

  a 在97位

30.repr() 打印的时候输出这个变量的数据类型

31.len 计算长度

32.enumerate 枚举函数

for i in enumerate(['a','b','c'],1):
    print(i)

#(1, 'a')
  (2, 'b')
  (3, 'c')


goods_lst= [
    {'name':'电脑','price':1999},
    {'name':'鼠标','price':20},
    {'name':'美女','price':20},
]
for good in goods_lst:
    print(goods_lst.index(good)+1,good['name'],good['price'])
#1 电脑 1999
  2 鼠标 20
  3 美女 20


for good in goods_lst:
    print(good)

#{'name': '电脑', 'price': 1999}
  {'name': '鼠标', 'price': 20}
  {'name': '美女', 'price': 20}

33.all参数iterable 只要有一个为假返回Flase

print(all((1,2,3,True)))        #True
print(all((1,2,3,0,True)))        #False
print(all((1,2,3,True,[])))
print(all((1,2,3,True,'')))    

34.any参数iterbale 只要有一个为真返回True

print(any((1,2,3,True)))            #True
print(any((1,2,3,0,True)))         #True
print(any((1,2,3,True,[])))         #True
print(any(({},False,0,[],'')))        #False

35.zip 拉链函数  返回迭代器-节省内存

a = (1,2,3,4)
b = ('a','b','c')
c = ['111','222']
d = {'k1':'v1','k2':'v2'}
ret = zip(a,b,c,d)
print(ret)         #迭代器
for i in ret:
    print(i)          #(1, 'a', '111', 'k1')
                          (2, 'b', '222', 'k2')

36.filter 筛选

ret = filter(None,[1,2,3,0,False])  # 只保留真的
print(ret)               #<filter object at 0x0000019EA0C08240>
for i in ret:
    print(i)         #1
                         2
                         3

 

def func(i):
    if i % 2 != 0:
        return True
l = [1, 4, 6, 7, 9, 12, 17]
for i in filter(func,l):  # 迭代l,每一个元素作为参数传给func,如果func的返回值为True,那么l中的这个元素就保留
    print(list(i))                  #1
                                         7
                                         9
                                        17

  

def func(i):
    return type(i) is not dict

l = ['sjkdhf',[1,2,3],{},()]  # 去掉列表中的字典,用filter
ret = filter(func,l)
print(list(ret))         #['sjkdhf', [1, 2, 3], ()]

    

filter 就像 带着if条件的列表推导式
l = ['sjkdhf',[1,2,3],{},()]
print([i for i in l if type(i) is not dict])

37.sorted()  排序  根据key对应的函数的返回值的大小来排序的

由于必须要知道后面的值是谁 才能排出顺序 所以结果就是排序后的结果而不是可迭代的

l = [{'name':'电脑','price':1999},{'name':'鼠标','price':2000}]
#按照每一个字典中商品的价格从高到低排列
def func(dic):
    return dic['price']
l.sort(key=func,reverse=True)
print(l)            #[{'name': '鼠标', 'price': 2000}, {'name': '电脑', 'price': 1999}]

new_l = sorted(l,key = func,reverse= True)
print(new_l)      #[{'name': '鼠标', 'price': 2000}, {'name': '电脑', 'price': 1999}]

38.map 一个迭代器中的每一个元素都需要去做同一个操作并返回一个结果组成一个新列表的时候map来处理

range(10)#内部的每一个值的平方组成的新列表
def func(num):
    return num**2
ret = map(func,range(10))
print(list(ret))               #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

  

  

  

原文地址:https://www.cnblogs.com/z1115230598/p/9923837.html