zoukankan      html  css  js  c++  java
  • python 列表推导式和生成式,部分内置函数

    可迭代对象: str,list,dict,tuple,set,range

    文件句柄:是迭代器

    with open('01 今日内容大纲', encoding='utf-8') as f1:
    #     f1.read()
    #     print('__iter__' in dir(f1))
    #     print('__next__' in dir(f1))
    # l1 = [1, 2, 3]
    # from collections import Iterable
    # from collections import Iterator
    # print(isinstance(l1,Iterable))
    # print(isinstance(l1,Iterator))
    # print(isinstance(l1,list))
    

      列表推导式

    l1 = []
    # for i in range(1,14):
    #     l1.append(i)
    # print(l1)
    # l1 = []
    # for i in range(1,14):
    #     l1.append('python%d期' % i)
    # print(l1)
    # 列表推导式
    # l2 = [i for i in range(1, 14)]
    # [变量(加工后的变量) for 变量 in iterable] 循环模式
    # print(l2)
    # l3 = [ 'python%s期' % i for i in range(1, 14)]
    # print(l3)
    

      

    优点:
    # 1,节省代码,一行搞定.
    # 2,看着高大上.
    # 缺点:
    # ,不好排错.
    #整体:
    # 凡是用列表推导式构造的列表对象,用其他方式都可构建.,非常复杂的列表,列表推导式是构建不出的,
    # 列表推导式比较有魔性.

    分类:
    # [变量(加工后的变量) for 变量 in iterable] 循环模式
    # [变量(加工后的变量) for 变量 in iterable if 条件] 筛选模式

    l1 = [i for i in range(1, 31) if i % 3 == 0]
    # print(l1)
    # 10以内所有数的平方
    # print([i*i for i in range(11)])
    # 30以内所有能被3整除的数的平方
    # print([i**2 for i in range(31) if i % 3 == 0])
    # 100 以内所有的奇数.
    # print([i for i in range(1,101,2)])
    # print([i for i in range(101) if i % 2 == 1])
    

     生成表达式

    l1 = ['python%s期' % i for i in range(1,14)]
    # print(l1)
    # g_obj = ('python%s期' % i for i in range(1,14)) # 循环模式
    # g_obj1 = ('python%s期' % i for i in range(1,14) if i % 2 == 0) # 循环模式
    # print(g_obj)
    # print(g_obj.__next__())
    # print(g_obj.__next__())
    # print(g_obj.__next__())
    # print(g_obj.__next__())
    # for i in g_obj1:
    #     print(i)
    

     

    生成器:两种方式:
    # 生成器函数. yield
    # 生成器表达式
    # 为什么有生成器:
    # 生成器本身是自己用python代码构建的,这样就满足了个性化需求,满足以后你工作中需要

     

     

    names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
    #          ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
    # l2 = [name for i in names for name in i if name.count('e') == 2]
    # l1 = []
    # for i in names:
    #     for name in i:
    #         if name.count('e') == 2:
    #             l1.append(name)
    # print(l1)
    # print(l2)
    

      这是字典的

    mcase = {'a': 10, 'b': 34}
    # print({mcase[i]: i for i in mcase})
    

      内置函数

    1.1作用域相关

    globals()永远是全局的.

    locals()当前位置的所有变量以及函数名等数据.

    def func1():
    #     a1 = 2
    #     b1 = 3
    #     # print(globals())
    #     def func2():
    #         c = 666
    #         print('*****',locals())
    #     func2()
    #     print(locals())
    # func1()
    # print(locals())
    # print(globals())
    

    1.2其他相关

    eval  执行的是字符串,可以执行字符串的内容比如数字的相加和字典

    exec  执行的是字符串,可以执行字符串的循环

    complie  

    print('1 + 3')
    # print(eval('1+3'))
    # print(eval('3 * 3'))
    # dic = eval("{'name': 'alex'}")
    # print(dic,type(dic))
    

      

    code = '''
    for i in range(1, 11):
        print(i)
    '''
    # exec(code)
    # compile:将字符串类型的代码编译。代码对象能够通过exec语句来执行或者eval()进行求值。
    

      

    输入相关的操作

    input

    print 操作较多

    input:函数接受一个标准输入数据,返回为 string 类型。
    

      

    print:打印输出。
    # print(1,2,3,sep='|') # 设置每个元素的连接符 sep='|'
    # print(666,end='')  # end='
    ' 默认换行
    # print(555)
    # f1 = open('log', encoding='utf-8', mode='w')
    # print('随便写的内容',file=f1)
    # f1.close()
    

     内存相关操作

    hash  获取一个对象(可哈希对象:int,str,Bool,tuple)的哈希值。

    rint(hash('name'))
    # print(hash(7117817419752622577))
    # print(hash('name1'))
    # print(hash('name2'))
    # print(hash('name3'))
    # print(hash(100))
    

      

    id用于获取对象的内存地址。

    1.2.3

    文件操作相关

    open:函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。

    1.2.4

    模块相关__import__ 
    #
    # __import__:函数用于动态加载类和函数 。

    1.2.5

    help 函数用于查看函数或模块用途的详细说明。

    1.2.6

    callable:函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。

    def func1():
        print(111)
    a = 666
    print(callable(a))
    print(callable(func1))
    

      

  • 相关阅读:
    JS 这一次彻底理解选择排序
    JS 这一次彻底理解冒泡排序
    JS script脚本async和defer的区别
    精读JavaScript模式(九),JS类式继承与现代继承模式其二
    google recaptcha 谷歌人机身份验证超详细使用教程,前端/后端集成说明
    JS 究竟是先有鸡还是有蛋,Object与Function究竟谁出现的更早,Function算不算Function的实例等问题杂谈
    NetFramework 专栏总集篇
    详解 服务发现 的基本实现
    CF150E Freezing with Style(点分治)
    LOJ6032.「雅礼集训 2017 Day2」水箱
  • 原文地址:https://www.cnblogs.com/lnrick/p/9203753.html
Copyright © 2011-2022 走看看