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

    # 1.locals()和globals()
    def func():
        x = 1
        y = 2
        print(locals())   # 查看局部变量
        # {'y': 2, 'x': 1}
        print(globals())  # 查看当前程序所有全局变量
        '''
    {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000002BD48798128>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '1.py', '__cached__': None, 'func': <function func at 0x000002BD48331E18>}
        '''
    
    func()
    
    # 2.eval,exec,和compile
    print(123)
    "print(456)"  # 字符串
    eval("print(456)")  # 吧字符串转换成python代码去执行(有返回值)
    exec("print(7889)")  # 吧字符串转换成python代码去执行(无返回值)
    num = eval('4+5+6')  # 执行了,有返回值  15
    print(num)
    
    num = exec('4+5+6')  # 执行了,没有返回值 None
    print(num)
    compile  # 做编译
    com = compile('1+2+3', '', mode='eval')  # 节省时间   6
    print(eval(com))
    print(eval('1+2+3'))  # 这句效果和上面的compile()效果一样   6
    
    
    
    # 3.print
    print('123', end='')  # 不换行
    print('456', end='')
    
    print(1, 2, 3)
    print(1, 2, 3, 4, 5, 6, sep=',')  # 默认空格替换为 ,
    '''
    1234561 2 3
    1,2,3,4,5,6
    '''
    
    # print()函数的小例子
    import time
    import sys
    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)
        print(per_str, end='', file=sys.stdout, flush=True)
    
    '''
    100% : **************************************************
    '''
    
    import sys
    for i in range(0, 101, 2):
        time.sleep(0.1)
        char_num = i // 2
        per_str = '
    %s%% : %s' % (i, '*' * char_num)
        print(per_str, file=sys.stdout, flush=True)
    '''
    0% :
    2% : *
    4% : **
    6% : ***
    8% : ****
    10% : *****
    12% : ******
    14% : *******
    16% : ********
    18% : *********
    '''
    
    
    # 4.input()
    # 5.type()
    # 6.hash
    print(hash('asdsffd'))  # 一开始几个都是不变的,,然后重新运行一次就变了
    print(hash('asdsffd'))
    print(hash('asdsffd'))
    print(hash((1, 2, 3, 4)))
    '''
    -3561845232680097346
    -3561845232680097346
    -3561845232680097346
    485696759010151909
    '''
    
    
    # 7.open
    # r,w,a,r+,w+,a+(都可以加b)
    f=open('tmp','r+')#r+打开文件
    print(f.read(3))#如果读了在写,追加
    f.seek(5)#如果seek指定了光标的位置,就从该位置开始覆盖这写
    f.write('aaaaaa')#如果直接写,从头覆盖
    f.close()
    
    
    # 8.__import__()
    import os
    import sys
    import time
    
    # 9.callable:查看能不能调用
    print(callable(123))  # 数字不能调用结果就是False
    print(callable(open))  # 函数可以调用就返回True
    
    # 10.dir  查看数据类型的方法
    print(dir(__builtins__))  # 看着报错,,但其实不报错
    print(dir(int))
    print(dir(list))
    print(dir(0))  # 和int一样
    print(set(dir(list))-set(dir(tuple)))
    
    # 11.int
    num1 = int(123)
    num2 = int(12.3)  # 强制转换成int类型
    print(num1, num2)   # 123 12
    
    # 12.取商/余
    print(divmod(7, 3))  # (2, 1)
    
    # 13.计算最小值
    print(min(1, 2, 3, 4))
    print(min([5, 6]))
    #
    # 13.计算最大值
    print(max(1, 2, 3, 4))
    print(max([5, 6])) 
    
    # 14.sum求和
    print(sum(1, 2, 3, 4))  # 出错了,参数是序列,散列不行
    print(sum([5, 6]))
    print(sum((1, 2, 3, 4)))
    
    # 以下的两个方式是一样的
    print(1+2)
    print(int(1).__add__(2))
    
    # 15.round精确度
    print(round(3.1415926, 2))  # 保留两位 3.14
    
    
    # 16.pow()幂运算
    print(pow(2, 3)) # 8
    print(2**3)  # 8
    
    
    # 17.和数据结构相关的
    # 1.reversed()顺序的反转
    l = [1, 2, 3, 4]
    # 是生成了一个新的列表,没有改变原来的列表(以后能不用reversed就不用reversed,用reverse)
    print(list(reversed(l)))
    # l.reverse()  # 在现在的列表的基础上修改了,修改的是原来的列表
    print(l)
    
    # 2.slice切片(没卵用)
    # 3.format()#除了格式化以外的作业
    print(format('test', '<20')) # 长20,test居左
    print(format('test', '>40')) # 长40,test居右
    print(format('test', '^40')) # 长40,test居中
    
    
    # 4.bytes
    s = '你好'
    sb = bytes(s, encoding='utf-8')
    print(sb)  # b'xe4xbdxa0xe5xa5xbd'
    print(sb.decode('utf-8')) # 你好
    
    # 字符串是不可变,这个方法是对里面某个字符的元内存进行修改,整体内存还是不变的
    sb2 = bytearray(s, encoding='utf-8') 
    sb2[0] = 229  # 修改   了解就好
    print(sb2.decode('utf-8'))
    print(sb2)
    print(sb2[0])
    
    
    # 5.repr
    print(repr('1234'))
    print(repr(1234))
    print('name:%r' % ('egon'))  # 你怎么传进去的就按什么格式打印出来了 name:'egon'
    
    # 6.set和frozenset(不可变的集合)就像list和tuple
    
    # 7.enumerate 枚举
    l = ['a', 'b']
    for i in enumerate(l):
        print(i)
    '''
    (0, 'a')
    (1, 'b')
    '''
    for i, j in enumerate(l):
        print(i, j)
    '''
    0 a
    1 b
    '''
    
    # 8.all和any
    print(all([1, 2, 3]))  # 只要里面全部为 True,就返回 true
    print(all([0, 2, 3]))  # 因为0是False
    
    print(any([1, 2, 3]))  #
    print(any([0, 2, 3]))  #
    
    
    # 9.zip()
    l = [1, 2, 3]
    l2 = [4, 5, 6, 7, 8]
    print(zip(l, l2))  # zip 对象
    print(list(zip(l, l2)))  # [(1, 4), (2, 5), (3, 6)]
    l3 = {'k': 'v'}
    print(list(zip(l, l3)))  # [(1, 'k')]
    
    
    # 10.sort和sorted
    l = [1, 3, 5, -2, -6]
    l.sort()
    print(l)
    l2 = [1, 3, 5, -2, -6]
    print(sorted(l2))
    print(sorted(l2, key=abs))
    print(sorted(l2, key=abs, reverse=True))  # 默认从小到大排序,修改为True,则从大到小排序
    '''
    [-6, -2, 1, 3, 5]
    [-6, -2, 1, 3, 5]
    [1, -2, 3, 5, -6]
    [-6, 5, 3, -2, 1]
    '''
    
    
    # 11.map():我要对我的列表当中的每一个值去做函数里面的操作
    l = [1, 2, 3, 4, 5]
    
    def pow2(x):
        return x*x
    
    print(list(map(pow2, l))) # [1, 4, 9, 16, 25]
    
    
    # 12.filter():从一个列表当中找到所有符合筛选条件的,在组成一个新列表
    def aaa(x):
        return x % 2 == 1
    
    ret = list(filter(aaa, [1, 2, 54, 3, 6, 8, 17, 9]))
    print(ret) # [1, 3, 17, 9]
    
    
    # 13.reduce:合并
    # 格式:reduc:e(函数,序列)
    from functools import reduce
    
    def add1(x, y):
        return x + y
    
    # 把 1 2 传递给 x y,return 得到的结果作为一个 x 的参数,3 作为 y 参数,类推
    print(reduce(add1, [1, 2, 3, 4, 4, 5, 6]))  # 25
    # reduce 的结果就是一个值
  • 相关阅读:
    20180925-5 代码规范,结对要求
    20180925-6 四则运算试题生成
    20180925-7 规格说明书-吉林市2日游
    第二周例行报告
    第二周博客作业
    【杨老师粉丝群】第一周立会报告第四次
    20180925-1 每周例行报告
    规格说明书——吉林市两日游
    效能分析
    四则运算试题生成
  • 原文地址:https://www.cnblogs.com/tootooman/p/8994635.html
Copyright © 2011-2022 走看看