zoukankan      html  css  js  c++  java
  • 内置函数

    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]
    

      

      

      

  • 相关阅读:
    洛谷P1762 偶数
    复习1
    zoj3329 One Person Game
    poj2096 Collecting Bugs
    hdu4035 Maze
    Cogs 2856. [洛谷U14475]部落冲突
    洛谷P2474 [SCOI2008]天平
    洛谷P3802 小魔女帕琪
    清北刷题冲刺 11-03 p.m
    清北刷题冲刺 11-03 a.m
  • 原文地址:https://www.cnblogs.com/z1115230598/p/9923837.html
Copyright © 2011-2022 走看看