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

    1.复习

    # 迭代器和生成器
    # 迭代器
        # 可迭代协议 —— 含有iter方法的都是可迭代的
        # 迭代器协议 —— 含有next和iter的都是迭代器
        # 特点
            # 节省内存空间
            # 方便逐个取值,一个迭代器只能取一次。
    # 生成器 —— 迭代器
        # 生成器函数
            # 含有yield关键字的函数都是生成器函数
            # 生成器函数的特点
                #调用之后函数内的代码不执行,返回生成器
                #每从生成器中取一个值就会执行一段代码,遇见yield就停止。
                #如何从生成器中取值:
                    # for :如果没有break会一直取直到取完
                    # next :每次只取一个
                    # send :不能用在第一个,取下一个值的时候给上个位置传一个新的值
                    # 数据类型强制转换 :会一次性把所有数据都读到内存里
        # 生成器表达式
            # (条件成立想放在生成器中的值 for i in 可迭代的 if 条件)
    View Code

    2.作业

    # 3.处理文件,用户指定要查找的文件和内容,将文件中包含要查找内容的每一行都输出到屏幕
    # def check_file(filename,aim):
    #     with open(filename,encoding='utf-8') as f:   #句柄 : handler,文件操作符,文件句柄
    #         for i in f:
    #             if aim in i:
    #                 yield i
    #
    # g = check_file('1.复习.py','生成器')
    # for i in g:
    #     print(i.strip())
    
    # 4.写生成器,从文件中读取内容,在每一次读取到的内容之前加上‘***’之后再返回给用户。
    # def check_file(filename):
    #     with open(filename,encoding='utf-8') as f:   #句柄 : handler,文件操作符,文件句柄
    #         for i in f:
    #             yield '***'+i
    #
    # for i in check_file('1.复习.py'):
    #     print(i.strip())
    View Code

    3.面试题

    # def demo():
    #     for i in range(4):
    #         yield i
    #
    # g=demo()
    #
    # g1=(i for i in g)
    # g2=(i for i in g1)
    #
    # print(list(g))
    # print(list(g1))
    # print(list(g2))
    
    def add(n,i):
        return n+i
    
    def test():
        for i in range(4):
            yield i
    
    g=test()
    # for n in [1,10,5]:
    #     g=(add(n,i) for i in g)
    n = 1
    g=(add(n,i) for i in test())
    n = 10
    g=(add(n,i) for i in (add(n,i) for i in test()))
    n = 5
    g=(15,16,17,18)
    
    
    print(list(g))
    View Code

    4.内置函数

    # print()
    # input()
    # len()
    # type()
    # open()
    # tuple()
    # list()
    # int()
    # bool()
    # set()
    # dir()
    # id()
    # str()
    
    
    # print(locals())  #返回本地作用域中的所有名字
    # print(globals()) #返回全局作用域中的所有名字
    # global 变量
    # nonlocal 变量
    
    #迭代器.__next__()
    # next(迭代器)
    # 迭代器 = iter(可迭代的)
    # 迭代器 = 可迭代的.__iter__()
    
    # range(10)
    # range(1,11)
    # print('__next__' in dir(range(1,11,2)))
    
    # dir 查看一个变量拥有的方法
    # print(dir([]))
    # print(dir(1))
    
    # help
    # help(str)
    
    # 变量
    # print(callable(print))
    # a = 1
    # print(callable(a))
    # print(callable(globals))
    # def func():pass
    # print(callable(func))
    
    import time
    # t = __import__('time')
    # print(t.time())
    
    # 某个方法属于某个数据类型的变量,就用.调用
    # 如果某个方法不依赖于任何数据类型,就直接调用  —— 内置函数 和 自定义函数
    
    # f = open('1.复习.py')
    # print(f.writable())
    # print(f.readable())
    
    #id
    #hash - 对于相同可hash数据的hash值在一次程序的执行过程中总是不变的
    #     - 字典的寻址方式
    # print(hash(12345))
    # print(hash('hsgda不想你走,nklgkds'))
    # print(hash(('1','aaa')))
    # print(hash([]))
    
    # ret = input('提示 : ')
    # print(ret)
    
    # print('我们的祖国是花园',end='')  #指定输出的结束符
    # print('我们的祖国是花园',end='')
    # print(1,2,3,4,5,sep='|') #指定输出多个值之间的分隔符
    # f = open('file','w')
    # print('aaaa',file=f)
    # f.close()
    
    # 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)
    #      print(per_str,end='', flush=True)
    #progress Bar
    
    # exec('print(123)')
    # eval('print(123)')
    # print(eval('1+2+3+4'))   # 有返回值
    # print(exec('1+2+3+4'))   #没有返回值
    # exec和eval都可以执行 字符串类型的代码
    # eval有返回值  —— 有结果的简单计算
    # exec没有返回值   —— 简单流程控制
    # eval只能用在你明确知道你要执行的代码是什么
    
    # code = '''for i in range(10):
    #     print(i*'*')
    # '''
    # exec(code)
    
    # code1 = 'for i in range(0,10): print (i)'
    # compile1 = compile(code1,'','exec')
    # exec(compile1)
    
    # code2 = '1 + 2 + 3 + 4'
    # compile2 = compile(code2,'','eval')
    # print(eval(compile2))
    
    # code3 = 'name = input("please input your name:")'
    # compile3 = compile(code3,'','single')
    # exec(compile3) #执行时显示交互命令,提示输入
    # print(name)
    # name #执行后name变量有值
    # "'pythoner'"
    
    
    # 复数 —— complex
    # 实数 : 有理数
    #         无理数
    # 虚数 :虚无缥缈的数
    # 5 + 12j  === 复合的数 === 复数
    # 6 + 15j
    
    # 浮点数(有限循环小数,无限循环小数)  != 小数 :有限循环小数,无限循环小数,无限不循环小数
    # 浮点数
        #354.123 = 3.54123*10**2 = 35.4123 * 10
    # f = 1.781326913750135970
    # print(f)
    
    # print(bin(10))
    # print(oct(10))
    # print(hex(10))
    
    # print(abs(-5))
    # print(abs(5))
    
    # print(divmod(7,2))   # div出发 mod取余
    # print(divmod(9,5))   # 除余
    
    # print(round(3.14159,3))
    # print(pow(2,3))   #pow幂运算  == 2**3
    # print(pow(3,2))
    # print(pow(2,3,3)) #幂运算之后再取余
    # print(pow(3,2,1))
    
    # ret = sum([1,2,3,4,5,6])
    # print(ret)
    
    # ret = sum([1,2,3,4,5,6,10],)
    # print(ret)
    
    # print(min([1,2,3,4]))
    # print(min(1,2,3,4))
    # print(min(1,2,3,-4))
    # print(min(1,2,3,-4,key = abs))
    
    print(max([1,2,3,4]))
    print(max(1,2,3,4))
    print(max(1,2,3,-4))
    print(max(1,2,3,-4,key = abs))
    View Code
  • 相关阅读:
    [MySQL优化案例]系列 — 分页优化
    [MySQL优化案例]系列 — RAND()优化
    CSS模块化思想-----命名是个技术活
    php curl选项列表(超详细)
    CURL使用介绍
    HTTP头信息
    git常用命令
    Git .gitignore文件说明
    yield(),wait(),sleep(),join()
    Java对象序列化和返序列化
  • 原文地址:https://www.cnblogs.com/xingqisan/p/10712590.html
Copyright © 2011-2022 走看看