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 的结果就是一个值
  • 相关阅读:
    Ext JS学习第三天 我们所熟悉的javascript(二)
    Ext JS学习第二天 我们所熟悉的javascript(一)
    Ext JS学习第十七天 事件机制event(二)
    Ext JS学习第十六天 事件机制event(一)
    Ext JS学习第十五天 Ext基础之 Ext.DomQuery
    Ext JS学习第十四天 Ext基础之 Ext.DomHelper
    Ext JS学习第十三天 Ext基础之 Ext.Element
    Ext JS学习第十天 Ext基础之 扩展原生的javascript对象(二)
    针对错误 “服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF” 的原因分析
    C# 使用HttpWebRequest通过PHP接口 上传文件
  • 原文地址:https://www.cnblogs.com/tootooman/p/8994635.html
Copyright © 2011-2022 走看看