zoukankan      html  css  js  c++  java
  • Learn_Day6 lambda表达式、内置函数、open 函数

    上节内容补充
    1、if isinstance(变量名, 数据类型)   判断变量为什么数据类型
    2、在函数中,传递参数的时候传递的是引用
    3、在函数中,一旦遇到等号,重新在内存中创建

    lambda表达式:
    可以写简单的函数,f1 = f2, f3 = f4
     1 # 1
     2 def f1():
     3     return 123
     4 print(f1, f1())
     5 # <function f1 at 0x10217c950> 123
     6 f2 = lambda: 123
     7 print(f2, f2())
     8 # <function <lambda> at 0x10217c9d8> 123
     9 
    10 # 2
    11 def f3(a1, a2):
    12     return a1 + a2
    13 print(f3, f3(1, 2))
    14 # <function f3 at 0x10217ca60> 3
    15 f4 = lambda a1, a2: a1 + a2
    16 print(f4, f4(1, 2))
    17 # <function <lambda> at 0x10217cae8> 3
    lambda 表达式

    内置函数:
    abs   绝对值
    # 绝对值
    a = abs(-1)
    print("1.abs ==>> ", a)
    # 1.abs ==>>  1
    all    循环参数,若每一个都为真,返回True,否则返回False(0,None,False,””,[],()都是假)
    # 循环参数,若每一个都为真,返回True,否则返回False
    a = all(["", 11, "jksf"])
    print("2.all ==>> ", a)
    # 2.all ==>>  False
    any    循环参数,若有一个都为真,返回True,否则返回False(0,None,False,””,[],()都是假)
    # 循环参数,若有一个都为真,返回True,否则返回False
    a = any(["", 11, "jksf"])
    print("3.any ==>> ", a)
    # 3.any ==>>  True
    ascii(对象)    到对象的类中寻找__repr__方法,获取返回值
    # 到对象的类中寻找__repr__方法,获取返回值
    class Foo():
        def __repr__(self):
            return "hello"
    obj = Foo()
    r = ascii(obj)
    print("4.obj ==>> ", r)
    # 4.obj ==>>  hello
    bin    二进制
    # 二进制
    a = bin(10)
    print("5.bin ==>> ", a)
    # 5.bin ==>>  0b1010
    oct    八进制
    # 八进制
    a = oct(10)
    print("6.oct ==>> ", a)
    # 6.oct ==>>  0o12
    int    十进制
    # 十进制
    a = int(10)
    print("7.int ==>> ", a)
    # 7.int ==>>  10
    hex    十六进制
    # 十六进制
    a = hex(10)
    print("8.hex ==>> ", a)
    # 8.hex ==>>  0xa
    bool    布尔值,判断真假
    # 布尔值,判断真假
    a = bool("")
    b = bool(" ")
    print("9.bool ==>> ", "a:", a, "b:", b)
    # 9.bool ==>>  a: False b: True
    bytearray    字节列表
    #  字节列表
    a = bytearray("一个", encoding="utf-8")
    print("11.bytearray ==>> ", a)
    # 11.bytearray ==>>  bytearray(b'xe4xb8x80xe4xb8xaa')
    bytes    字节
    # 字节
    a = bytes("一个", encoding="utf-8")
    print("10.bytes ==>> ", a)
    # 10.bytes ==>>  b'xe4xb8x80xe4xb8xaa'
    chr();ord():    在ASCIIA码表中字符与十进制互相转换chr():十进制(数字转换为字母);ord():字符(字母转换为数字)
    a = chr(65)
    b = ord("F")
    print(a,b) # A 70
    
    # 实例:随机验证码
    import random
    
    temp = ""
    
    for i in range(6):
        # 生成0-9的随机数
        num = random.randrange(0, 10)
        # 生成的数字为3或者7的时候
        if num == 3 or num == 7:
            # 生成0 - 9的随机数
            rad1 = random.randrange(0, 10)
            # 将随机数转换成字符串
            c1 = str(rad1)
            temp += c1
        else:  # 否则
            # 生成65-90的随机数
            rad2 = random.randrange(65, 91)
            # 将随机数转换成大写字母
            c2 = chr(rad2)
            temp += c2
    
    print(temp)
    callable    检查能否被执行,调用
    # 检测能否被执行,调用
    def f1():
        pass
    f2 = 1223
    a = callable(f1)
    b = callable(f2)
    print("12.callable ==>> ", "a:", a, "b:", b)
    # 12.callable ==>>  a: True b: False
    compile    编译
    exec    执行Python代码或字符串,接受代码或者表达式,无返回值
    eval    执行表达式病获取结果,有返回值
     1 # compile()  # 编译
     2 exec()  # 执行Python代码或字符串,接受代码或表达式,无返值
     3 s = "print(123)"
     4 r = compile(s,"<string>","exec")  # 第三位为编译模式,single:单行;eval:表达式;exec:与python一样的代码
     5 print(r)  # <code object <module> at 0x101337ed0, file "<string>", line 1>
     6 # 执行python代码
     7 exec(r)
     8 
     9 # eval()  # 执行表达式并获取结果,有返回值,
    10 s = "8*8"
    11 ret = eval(s)
    12 print(ret)  # 64
    13 """
    # compile(),# exec(),# eval()
    dict    字典
    dir    快速查看对象提供了哪些功能
    help    快速查看对象的帮助信息 
    divmod    计算用于得出商,余(多用于分页)
    # 计算用于得出商,余
    a = divmod(10, 3)
    print("13.divmod ==>> ", a)
    # 13.divmod ==>>  (3, 1)
    filter    循环第二个参数里面的每一个元素并执行函数,如果返回值为True,表示元素合法(用作筛选,过滤)# 返回值为true,将元素添加到结果中
    def f2(a):
        if a > 22:
            return True
    list_1 = [11, 22, 33, 44, 55]
    ret = filter(f2, list_1)
    print(list(ret))
    # [33, 44, 55]
    
    # 上述可写成lambda表达式为:
    list_1 = [11, 22, 33, 44, 55]
    result = filter(lambda a: a > 22, list_1)
    print(list(result))
    # [33, 44, 55]
    map    (函数,可迭代的对象(即可以for循环的东西))  # 数据等批量处理 # 将函数返回值添加到结果中
    li = [11, 22, 33, 44, 55]
    def f1(a):
        return a + 100
    result = map(f1,li)
    print(list(result))
    # [111, 122, 133, 144, 155]
    
    # 上述可写成lambda表达式为:
    li = [11, 22, 33, 44, 55]
    result = map(lambda a: a + 100, li)
    print(list(result))
    # [111, 122, 133, 144, 155] 
    frozenset    等同于冻结的set
    globals    获取全局变量
    locals    获取局部变量
    hash    用于Python内部,获取字典key的hash值,可以快速找到,占用内存小
    id    查看内存地址
    input    等待用户输入
    int    强制转换为整数(默认十进制)
    isinstance    查看某一个对象是否为另一个对象的实例
    issubclass    查看某一个类是否为另一个类的派生类(子类)
    iter    创建一个可以被迭代的对象
    next    取迭代的值
    1 # iter,# next
    2 obj = iter([11, 22, 33, 44])
    3 print("14.iter ==>> ", obj)
    4 # 14.iter ==>>  <list_iterator object at 0x102079c50>
    5 
    6 r = next(obj)
    7 print("15.next ==>> ", r)
    8 # 15.next ==>>  11
    # iter,# next
    len    查看长度:Python2+中按照字节计算;Python3+中按照字符计算
    list    返回列表
    max    求最大值
    min    求最小值
    sum()  # 求和
    memoryview    类:与内存地址相关
    object    类:所有类的副类
    open    对文件进行操作
    ord    把一个字符串表示的字符转换为字符相对应的整数,适用于UNICODE字符
    pow     求指数:平方,次方等
    print    输出结果
    range    范围
    repr    执行类中的__repr__方法
    reversed    反转
    round    四舍五入
    set    集合
    slice     切片
    sorted     排序(执行类内部的sort方法)
    str    字符串
    tuple    元组
    type    类型
    vars    获取当前模块可使用变量
    zip    #
    # 1
    l1 = ["I", 11, 22, 33]
    l2 = ["am", 44, 55, 66]
    l3 = ["R.H", 77, 88, 99]
    r = zip(l1, l2, l3)
    temp = list(r)[0]
    ret = " ".join(temp)
    print("16.zip ==>> ", "r:", r, "ret:", ret)
    # 16.zip ==>>  I am R.H
    # 2
    l1 = ["I", 11, 22, 33]
    l2 = ["am", 44, 55, 66]
    l3 = ["R.H", 77, 88, 99]
    r = zip(l1, l2, l3)
    l = []
    for i in r:
        l.append(i)
    print("16.zip ==>> ", l)
    # 16.zip ==>>  [('I', 'am', 'R.H'), (11, 44, 77), (22, 55, 88), (33, 66, 99)]
    __import__()  # 倒入模块
    loads()  # 将字符串转换成Python的基本数据类型

    open函数:
    一、打开文件:(两种方式)
        1、f = open("文件名", '打开方式')
        2、with open("文件名", '打开方式', encoding="uttf-8") as f:
        打开模式:
            # 'r'只读文件
            # 'w'只写文件(文件不存在创建文件,文件存在清空后写入,不进行额外操作只打开也清空)
            # 'a'追加(文件最后)
            # 'x'创建(文件存在报错,不存在创建并写入内容)
            # 'r+'可读可写,默认从最后一位写入 ==>> 读写(win默认打开方式为gbk)
            # 'w+'可写可读(清空后写入) ==>> 写读
            # 'a+'可写可读(文件最后追加) ==>> 写读
            # 'x+'可写可读,文件存在报错,不存在创建并写入内容 ==>> 写读
            # 'rb'按字节读取文件
            # 'wb'按字节写文件(清空后写入)
            # 'ab'按字节追加(文件最后)
            # 'xb'文件存在报错,不存在创建并按字节写入内容
            # 'r+b' , 'w+b' , 'a+b' ,  'x+b' 用法同'r+'等一样,只是按字节读取、写入
         注:用with可以一次打开多个文件
        with open("文件名", '打开方式', encoding="uttf-8") as f1, open("文件名", '打开方式', encoding="uttf-8") as f2:
    1 # 1-1
    2 f = open("ha.txt")  # 打开文件 ==>> 打开方式默认"只读"
    3 data = f.read()  # 读取文件
    4 f.close()  # 关闭文件
    5 print(data)  # 输出
    6 # 1-2
    7 f = open("ha2.txt", "w")
    8 f.write("121111111111")
    9 f.close()
    View Code
    二、操作文件:
        read()  # 无参数,读全部,有参数:b按字节;无b按字符
        tell()  # 获取当前指针位置(字节)
        seek()  # 指针跳转到指定位置(字节)
        write()  # 写数据:有b按字节,无b按字符
        close()  # 关闭
        fileno  # 文件描述符
        flush  # 强刷
        readbale  # 判断是否可读
        readline  # 仅读取一行
        truncate  # 截断数据(指针后内容清空)
        for line in **: #循环每一行
    三、关闭文件:
        1、f.close
        2、用with打开操作完成自动关闭
     
  • 相关阅读:
    【BZOJ】4011: [HNOI2015]落忆枫音
    【BZOJ】1187: [HNOI2007]神奇游乐园
    【CERC2007】机器排序
    【NOI2004】郁闷的出纳员
    【USACO】奶牛跑步2
    【HNOI2004】宠物收养所
    【NOI2009】植物大战僵尸
    Xn数列
    骨牌覆盖
    【JSOI2008】球形空间产生器
  • 原文地址:https://www.cnblogs.com/grissom/p/6376216.html
Copyright © 2011-2022 走看看