• python-内置函数


    内置:python自带
    def func():
        a = 1
        b = 2
        print(locals())
        print(globals())
    
    func()
    生成器函数range
    range(100)#[0,100)
    range(5,100)#[5,100)
    range(1,100,2)#2为步长
    range(100).__iter__()
    iterator=iter(range(100)) #拿到一个迭代器
    print(iterator.__next__())
    print(next(iterator))
    for i in range(100):
    print(i)
    # def itre():
    # return range(100).__iter__()
     
    查看内置属性:dir
    print(dir([]))
    调用相关的(可以调用):callable
    def func():pass
    print(callable(a))    #不可以调用
    print(callable(print))    #可以调用
    print(callable(func)) #可以调用
    帮助:help
    ctrl +左键点击:pycharm
    help
    dir
    模块:import 模块
    文件操作
    f = open()
    打开模式:r,w,a,rb,wb,ab
    编码 utf-8,gbk

    哈希(是一种算法)hash,返回的是一串数字
    应用:数据的存储和查找,

    模块:hashlib
    print(id(1))
    print(hash())
    hash([1,2,2])
    hash判断一个数据类型是否可以hash
    在一个程序执行的过程中,对同一个值得hash结果总是不变
    多次执行,对同一个值得hash结果可能改变
    输入输出input  print
    s = input('提示:')
    
    print(1,2,3,4,sep='*')    #sep是指定多个要打印的内容之间的分隔符
    print(1,2,sep=',')    #print ('%s,%s'%(1,2))
    print('abc
    ')
    print(1,end='
    ')
    print(2)
    f = open('a','w')
    print('abc', file=f)
    print('123
    ', file=f)
    print(555)
    字符串类型代码的执行:eval,exec,compile
    exec用于流程性代码的执行,exec没有返回值
    eval用于值计算的时候,有返回值,eval 可以以python代码的形式执行一个字符串,
    exec("print('123')")    #exec用于流程性代码的执行
    eval("print('123')")    #eval 可以以python代码的形式执行一个字符串,
    print(exec('1+2+3-4'))  #exec没有返回值
    print(eval('1+2+3-4'))     #eval用于值计算的时候,有返回值
    
    code1= 'for i in range(0,10):print(i)'
    compilel = compile(code1,'','exec')
    exec(compilel)

    简单求值表达式用eval
    code2 = '1+2+3+4'
    compile2 = compile(code2,'','eval')
    print(eval(compile2))
    商余divmod
    ret = divmod(10,2)
    print(ret)
    ret = divmod(3,2)
    print(ret)
    保留几位小数
    print(round(3.1415926,2))
    幂运算
    print(pow(2,3))
    print(pow(2,3,3))   #2的3次方,除以3取余数 x**y%z
    求和sum,sum接收一个可迭代对象
    print(sum([1+2+3+4+5+6],-2))    #逗号左边的加上逗号右边的
    print(sum([1+2+3]))
    min最小值
    print(min([1,2,3,0]))
    print(min([],default=0))    #元素为空时,会有报错,default设置一个默认值,如果没有元素就会返回default设置的默认值,这样就不会有报错了
    max求最大值
    s = (-25,1,3,6,8)
    print(max(s))
    print(max(s,key=abs))
    print(max((),default=100))
    返回值不同,reversed返回的是迭代器,不改变原来的列表的情况下生成一个新的序列的迭代器
    rever返回值为None,是在原来的列表的基础上修改的
    l = [2,3,5,0.1]
    ret = reversed(l)
    print(ret)
    print(list(ret)) #强转成列表
    #next
    # for
    l.reverse()
    print(l)
    print(l.reverse())  #返回值为None
    slice
    l = [2,3,5,0.1]
    sl = slice(1,5,2)       #实现了切片的函数,
    # print(l[sl])  #l[1,5,2]语法糖
    print(sl)
    formate的另类用法,但下面方法用的不多
    print(format('test','<20'))     #这里<是左对齐,20表示总字符是20,左对齐
    print(format('test','>20'))     #>表示右对齐
    print(format('test','^20'))     #^表示居中
    网络编程的时候:能在网络上传递的必须是字节
    ret = bytes('你好',encoding='utf-8')
    # # 中间是网络传输的过程
    print(ret.decode(encoding='utf-8'))
    对比较长的字符串做修改的时候,指定某一处进行修改,不会改变这个bytearry的内存地址
    ret = bytearray('alex',encoding='utf-8')
    print(id(ret))
    print(ret[0])
    ret[0] = 65
    print(ret)
    print(id(ret))
     repr
    print(repr(1))
    print(repr('1'))
    print(repr([1,2]))
    print('name:%s'%('金老板'))
    print('name:%r'%('金老板'))
    enumerate枚举
    l = ['1','2','3','4']
    for i in enumerate(l):
        print(i)
    all,any
    一个为假就为假
    print(all([1,2,3,4,0]))
    print(all([1,2,3,4]))
    print(all([1,2,3,4,None]))
    print(all([1,2,3,4,'']))
    一个为真就为真
    print(any([True,False]))
    
    
    拉链函数zip
    print(list(zip((1,2,3),(4,5,6),('a','b'))))
    筛选函数
    就是有一个可迭代对象,想要一个新的内容集,是从原来可迭代对象中筛选出来的
    新内容少于等于原内容的时候,才能用到filter.
    filter和map
    参数很相近,都是一个函数名+可迭代对象
    且返回值也很相近,都是返回可迭代对象
    区别:
    filter是做筛选的,结果还是原来就在可迭代对象中的项
    map是对可迭代对象中的每一项做操作的,结果不一定是原来就在可迭代对象中的项
    filter和map
    def func(x):
        return x and x.strip()
    
    l = ['test',None,'','str',' ','END']
    ret = filter(func,l)
    print(list(ret))
    
    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])
    
    新内容的个数等于原内容的个数
    L = [1,2,3,4,5,6,7,8]
    def a(x):
        return x*x
    ret = map(a, L)
    print(list(ret))
    
    ret = map(abs,[-1,-3,5,-7])
    print(list(ret))

     
    
    
     
     
     
    
    
     
     
     
    进度条
    import time
    for i in range(0,101,2):
         time.sleep(0.1)
         char_num = i//2      #打印多少个'*'
         per_str = '
    %s%% : %s
    ' % (i, '*' * char_num) if i == 100 else '
    %s%% : %s'%(i,'*'*char_num)
         #/r表示把光标返回到初始位置
         print(per_str,end='', flush=True)
    
    
    
     
     
     
     
     
     
  • 相关阅读:
    luoguP1919 A*B Problem升级版 ntt
    luogu[愚人节题目3]现代妖怪殖民地 NTT
    FFT 快速傅里叶变换 学习笔记
    十二省联考 爆0记
    # NOI.AC省选赛 第五场T1 子集,与&最大值
    2019.6.16完成classstack任务
    USACO-集合
    USACO-修理牛棚
    dij模板
    洛谷P1948 [USACO08JAN]电话线Telephone Lines
  • 原文地址:https://www.cnblogs.com/dwenwen/p/7818659.html
Copyright © 2020-2023  润新知