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

    1.作用域相关 locals、globals                                                                     

    def func():
        a = 1
        b = 2
        print(locals())
        print(globals())
    # 全局命名空间中的名字
    print(locals())   # 本地的命名空间
    print(globals())  # 全局的命名空间
    func()

     2.输入输出相关input、print                                                                       

    # input
    inp = input('>>>')
    # 出现术语:阻塞
    
    # print
    # 99乘法表
    for i in range(1, 10):
        for j in range(1, i+1):
            print('%s * %s == %s'% (i, j, i*j), end=' ')
        print()
    # 1 * 1 == 1
    # 2 * 1 == 2 2 * 2 == 4
    # 3 * 1 == 3 3 * 2 == 6 3 * 3 == 9
    # 4 * 1 == 4 4 * 2 == 8 4 * 3 == 12 4 * 4 == 16
    # 5 * 1 == 5 5 * 2 == 10 5 * 3 == 15 5 * 4 == 20 5 * 5 == 25
    # 6 * 1 == 6 6 * 2 == 12 6 * 3 == 18 6 * 4 == 24 6 * 5 == 30 6 * 6 == 36
    # 7 * 1 == 7 7 * 2 == 14 7 * 3 == 21 7 * 4 == 28 7 * 5 == 35 7 * 6 == 42 7 * 7 == 49
    # 8 * 1 == 8 8 * 2 == 16 8 * 3 == 24 8 * 4 == 32 8 * 5 == 40 8 * 6 == 48 8 * 7 == 56 8 * 8 == 64
    # 9 * 1 == 9 9 * 2 == 18 9 * 3 == 27 9 * 4 == 36 9 * 5 == 45 9 * 6 == 54 9 * 7 == 63 9 * 8 == 72 9 * 9 == 81

    # 结束不换行 print(1,2,3,4,5,sep=';',end=' ') print(1,2,3,4,5,sep=';',end='') # 1;2;3;4;5 1;2;3;4;5 # 滚动条例子 import time for i in range(0,101,2): time.sleep(0.1) char_num = i//2 #打印多少个'*' if i == 100: per_str = ' %s%% : %s ' % (i, '*' * char_num) else: per_str = ' %s%% : %s' % (i, '*' * char_num) print(per_str,end='', flush=True) # print(per_str, flush=True) #小越越 : 可以把光标移动到行首但不换行 相当于文件中的seek(0),只能 # 对越写越长的操作 # print() 写文件 # python 能直接操作文件 ------ 需要发起系统调用才能操作文件 # flush 立即写 # seq 分隔符 # end 结束分隔符

    3.内存相关hash、id                                                                                    

    print(hash('12341723894'))
    # 1550914739143308370
    # 对可hash的数据类型进行hash之后会得到一个数字
    # 在一次程序的执行过程中,对相同的可哈希变量,哈希之后的结果永远相同的
    # 在一次程序的执行过程中,对不相同的可哈希变量,哈希之后的结果几乎总是不相同的
    # hash 字典底层的存储 和 set 集合的去重机制都相关
    
    # id() 查询内存地址
    print(id(1))
    # 1773891040

    4.杂项                                                                                                          

    # 1- 引用模块
    # import
    # 2- 帮助 # help
    #
    3- 判断函数是否可调用 # callable def func():pass a = 1 print(callable(func)) # True print(callable(a)) # False
    #
    4- 查看内置属性 # dir() print(dir('1')) #查看一个变量所用于的所有名
    #
    5- 文件操作 # open

    5.基础数据类型相关                                                                                     

    1.数字相关

    数据类型
    int 整型 bool bool类型 float 浮点型 complex 复数
    # 进制转换
    print(bin(10)) # 0b1010
    print(oct(10)) # 0o12
    print(hex(10)) # 0xa #0123456789abcdef
    # 数学运算
    # abs() # 绝对值
    # divmod # 商余函数
    print(divmod(10, 2))
    print(divmod(7, 3))
    print(divmod(9, 7))
    # 返回一个数组,分页的时候会用到
    # (5, 0)
    # (2, 1)
    # (1, 2)
    
    # round() # 默认取整,小数精确,会四舍五入
    print(round(3.14151926, 2))
    # 3.14
    
    # pow()# 平方
    print(pow(2,3))
    print(pow(3,2))
    # 8
    # 9
    # print(pow(2, 3, 5)) #(2**3)%5 先平方,在取余
    
    # sum求和
    # print(sum(1,2,3))
    #     print(sum(1,2,3))
    # TypeError: sum expected at most 2 arguments, got 3
    # sum(iterable)
    # print(sum([1,2,3,4,5]))
    # print(sum([1,2,3,4,5]), start=0)
    # print(sum([1,2,3,4,5]), start=20)
    # print(sum(range(6))) # 省内存
    
    # min最小值
    print(min([1,2,3]))
    # 1
    print(min(1,2,3,4))
    # 1
    print(min(1,-2,3,-4,key=abs))
    # 1 
    # 先计算绝对值,在取最小绝对值的原数值
    
    # **************面试的时候最容易出最小值的时候
    # 当出现两个最小值的时候,打印头一个
    # def func(num):
    #     return num%2
    # print(min(-2,3,-4,key=func))
    
    # max最大值
    print(max([1,2,3]))
    # 3

    2.数据结构相关

    # 创建列表元组
    # list
    # tuple
    # 反序、切片
    # reverse
    # list.reverse() # 在原列表中改
    # reversed(object) # 不改变原对象,可倒序元组等,返回一个迭代器
    ret = [1, 2, 3, 4, 5]
    # ret.reverse() # 列表的一个方法
    # print(ret)
    
    ret1 = reversed(ret)
    ret2 = reversed((1,2,3,4,5))
    print(ret)
    # [1, 2, 3, 4, 5]
    print(ret1)
    # <list_reverseiterator object at 0x0000026B700C0B00>
    print(ret2)
    # <reversed object at 0x0000026B700C0B38>
    
    # slice切片,用得不多
    # 字符串相关
    # str 转化成字符串
    # format 格式化输出
    # ord返回ascii码
    # print(ord('a')) # 小写的a-z 97+26 A-Z 65+26
    # chr ascii码对应的值
    # print(chr(97))
    
    # repr 让一个对象原形毕露
    print(1)
    print('1')
    print(repr(1))
    print(repr('1'))
    # 1
    # 1
    # 1
    # '1'
    # 数据集合
    # dict 字典
    # set 集合
    # frozenset 不可变集合
    # 相关操作
    # 1- enumerate() #枚举函数,接收两个参数,一个容器类型,一个序号起始值
    l = [1, 2, 3, 4, 5, 6]
    ret = enumerate(l)
    print(ret)
    # <enumerate object at 0x00000227537F0360>
    for item in ret:
        print(item)
    # (0, 1)
    # (1, 2)
    # (2, 3)
    # (3, 4)
    # (4, 5)
    # (5, 6)
    ret = enumerate(l,1)
    print(ret)
    # <enumerate object at 0x000001F9DD0B03A8>
    lst = ['apple', 'pear']
    for num,product in enumerate(lst, 1):
        print(num, product)
    # 1 apple
    # 2 pear
    
    # 2- all 全部为真则True
    print(all([1,2,3,4,5]))
    print(all([0,1,2,3,4,5]))
    print(all(['a',1,2,3,4,5]))
    print(all(['',1,2,3,4,5]))
    # True
    # False
    # True
    # False
    
    # 3- any 有一个为真则为True
    print(any([1,2,3,4,5]))
    print(any([]))
    print(any(''))
    # True
    # False
    # False
    
    # 4- {i:j} for i,j in zip(t1,t2) 拉链方法,返回可迭代的对象,以最短的方式打印
    ret = zip([1,2,3,4],('a', 'b', 'c', 'd'))
    print(ret)
    # <zip object at 0x00000146D7317848>
    for i in ret:
        print(i)
    # (1, 'a')
    # (2, 'b')
    # (3, 'c')
    # (4, 'd')
    ret = zip([1,2,3,4],('a', 'b', 'c', 'd'),(4,5,6,7))
    for i in ret:
        print(i)
    # (1, 'a', 4)
    # (2, 'b', 5)
    # (3, 'c', 6)
    # (4, 'd', 7)
    
    # filter() map()
    # 5- filter把可迭代的对象的每一个值,给func,根据func的返回值,留取结果
    lst = [1,4 ,6, 7, 9 ]
    def func(num):
        if num % 2 == 0:return True
    filter(func, lst)
    # for i in filter(func, lst):
    #     print(i)
    # 4
    # 6
    g = (i for i in lst if i%2==0)
    
    l = ['test', None, '', 'str', '  ', 'END']
    # 利用filter()打印非空
    def func(obj):
        if obj and obj.strip(): return True
    for i in filter(func,l):
        print(i)
    # test
    # str
    # END
    
    # 6- map()
    # [i**2 for i in range(10)]
    def func(num):
        return num**2
    for i in map(func,range(10)):
        print(i)
    # 0
    # 1
    # 4
    # 9
    # 16
    # 25
    # 36
    # 49
    # 64
    # 81
    
    # 7- sorted:列表的sorted改变原列表,sorted()函数不改变原对象
    l = [1,4,2,3,5,6,5]
    l.sort()
    print(l)
    # [1, 2, 3, 4, 5, 5, 6]
    
    l = [1,4,-2,3,-5,6,5]
    l.sort(key=abs)
    print(l)
    # [1, -2, 3, 4, -5, 5, 6]
    
    l = [1,4,-2,3,-5,6,5]
    new_1 = sorted(l, key=abs)
    print(new_1)
    # [1, -2, 3, 4, -5, 5, 6]
    new_1 = sorted(l, key=abs, reverse=True)
    print(new_1)
    # [6, -5, 5, 4, 3, -2, 1]
    
    l = [[1,2],[3,4,5,6],(7,),'123']
    print(sorted(l,key=len))
    # [(7,), [1, 2], '123', [3, 4, 5, 6]]
    
    # 8- len计算长度
    print(len([1, 2, 3, 4, 5, 6]))

    6.执行字符串eval、exec                                                                              

    # eval() # 执行可执行的字符串
    # eval() 以字符串的形式执行代码,返回执行结果
    # exec() 以字符串的形式执行代码,没有返回值
    eval('print(1234)')
    exec('print(1234)')
    # 1234
    # 1234
    
    # eval()
    print(eval('1+2'))
    # 3
    print(exec('1+2'))
    # None
    一鼓作气,再而衰,三而竭。
  • 相关阅读:
    SQL Server 调优系列基础篇
    SQL Server 调优系列基础篇
    SQL Server 调优系列基础篇
    企业应用架构 客户端 / 服务器
    SQL Server 调优系列基础篇
    SQL Server 调优系列基础篇
    SQL Server 调优系列基础篇
    HL7 2.6 解析(XML)
    .Net程序调试与追踪的一些方法
    实现算法2.17的程序
  • 原文地址:https://www.cnblogs.com/gongniue/p/8993944.html
Copyright © 2011-2022 走看看