• python 内置函数 lamda表达式。 open 文件方法


    lamda 表达式

    lambda表达式

    学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即:
    普通的条件语句
    if 1 == 1:
        name = 'kaixin'
    else:
        name = 'gege'
    print(name)
    
    三元运算表示方法
    
    name = 'kaixin' if 1 == 1 else 'gege'
    print(name)
    
    
    对于简单的函数,也存在一种简便的表示方式,即:lambda表达式
    
    lambda  表达式  简单函数的简单表示方式
    创建形式参数   创建函数内容 并把结果 a+1 return
    func = lambda a:a+1  #定义函数  冒号前边是参数,后边是函数体,函数内部执行的代码只能是一行
    ret = func(32)        
    print(ret)






    abs 绝对值 i = abs(123) print(i) bool,判断真假,把一个对象转换成布尔值,None,"" [] {} () # all 循环序列参数,如果每个元素都为真,那么all的返回值则为真 #如果列表里有一个元素是假的就是Fales r = all([123,345,None]) print(r) # any 只有一个真 则为真 整体的返回值就是真 i = any([None,'',[],{},(),1]) print(i) ascii() #对象的类中找类型的功能获取其返回值 #自动执行int类型里的repe方法把返回值赋给 ret ret = ascii(8) ==int.__repr__() class Foo: def __repr__(self): return 'bbbb43fdsffdb' f = Foo() ret = ascii(f) print(ret) #二进制 0b1010 就是二进制 r = bin(11) print(r) r1 = oct(8) #八进制 print(r1) r = int(10) #十进制 print(r) r = hex(10) #十六进制 print(r) #二进制转换十进制 int(10) i = int('0b11',base=2) print(i) #八进制转十进制 i = int ('11',base=8) print(i) #十六进制转十进制 i = int ('0xe',base=16) print(i) str #字符串 list #列表 bytearray 汉字转换字节数组 p = bytearray('郭凯欣',encoding='utf-8') print(p) bytes 字节转换字符串 bytes('xxxx',encoding='utf-8')
    callable() 是否可执行 f = lambda x:x+1 print (f(5)) callable(f) #返回True chr() #把数字转换成ascii码字符 ord() #把ascii码字符转换成数字 一个字节,8位, 2**8,256: A B c( 只限于ascii码 #把数字转换成字符 c = chr(66) print(c) #把字符转换成数字 i = ord('t') print(i) eval() 可以执行一个字符串的表达式 .得 8 赋给返回值 i = eval('3+5') print(i) map #接收两个参数 (函数。可以迭代的对象) li = [11,22,33,] new_li = map(lambda x:x+100,li)  lamda表达式添加序号 def func(x): return x+100 new_li = map(func,li) print(list(new_li)) l = list(new_li) print(l) for i in new_li: print(i) filter 过滤 循环可以迭代的对象,获取每一个参数函数(参数) li = [123,234,345,456] def func(x): if x>33: return True else: return False print(li) print(filter(func,li)) n = filter(func,li) print(list(n)) max() #取最大值 i = max(11,22,33,456) print(i) min() #取最小值 i = min(11,22,33,456) print(i) i = round(2.7) #四舍五入 print(i)

    li =[1,2,3]
    print(help(li)) #显示所有变量或类的介绍
    print(dir(li))  #查看变量或者类型,可以使用的函数,属性,如果是类必须用引号
    print(type(li)) #查看类型
    print(id(li))   #  查看id地址
    
    locals  当前的局部变量
    globals 当前的全局量。
    
     

     

    divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数,返回结果类型为tuple
    # a = 10 / 3 
    # print(a) 
    D:python3.5python.exe D:/untitled/python2/denglu.py
    3.3333333333333335
    a = divmod(10,3)
    print(a)
    D:python3.5python.exe D:/untitled/python2/denglu.py
    (3, 1)
    eval 执行字符串形式的表达是
    a = eval('1 + 3')
    print(a)
    D:python3.5python.exe D:/untitled/python2/denglu.py
    4
    isinstance()判断某个对象是否是某一个类创建的,如果是返回True,否则False
    li = [11,'wqwq']
    q = isinstance(li,int) 
    print(q)
    D:python3.5python.exe D:/untitled/python2/denglu.py
    False
    li = [11,'wqwq']
    q = isinstance(li,list)
    print(q)
    D:python3.5python.exe D:/untitled/python2/denglu.py
    True
    
    pow()指数
    a = pow(2,30) 
    print(a)
    D:python3.5python.exe D:/untitled/python2/denglu.py
    1073741824
    sum求和
    a =sum([1,2,3,4,4,5,4,]) 
    print(a)
    D:python3.5python.exe D:/untitled/python2/denglu.py
    23
    
    zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。
    li = [1,2,3,4] 
    qi = ['a','b'] 
    a = zip(li,qi) 
    for i in a:     
      print(i)
    D:python3.5python.exe D:/untitled/python2/denglu.py
    (1, 'a')
    (2, 'b')
    

    random验证码

    # import random 导入  随机模块,
     #验证码的操作
    random.randint(1,99)   #随机数字
    temp = ''   定义一个空字付串
    for i in range(6):  循环6次
        q = random.randrange(0,4)  自动生成一个0-4的随机数
        if q == 3 or q == 1:    如果随机数等于3 或 1就生成小写字母
            c2 = random.randrange(0,10)  生成 0--10内的随机数
            temp = temp + str(c2)   向变量中添加当前数字对应的ascii码的字符
        else:
            c = random.randrange(65,91) 生成 65-91内的随机数
            z = chr(c)
            temp = temp + z  向变量中添加当前数字对应的ascii码的字符
    print(temp)
    

    open函数,该函数用于文件处理

    操作文件时,一般需要经历如下步骤:

    • 打开文件
    • 操作文件
    • 关闭文件
    • open(文件名,模式,编码)
      
      先创建一个ha.log文件
      
      f = open('ha.log')  #打开文件
      data = f.read()     #读取文件
      f.close()          #关闭文件
      print(data)       #打印文件内容
      

     打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。

    打开文件的模式有:
    •r ,只读模式【默认】
    •w,只写模式【不可读;不存在则创建;存在则清空内容;】
    •x, 只写模式【不可读;不存在则创建,存在则报错】
    •a, 追加模式【可读;   不存在则创建;存在则只追加内容;】

    #默认的是只读模式  默认的utf-8编码模式
    f = open('da','r')
    z = f.read()
    f.close()
    print(z)
    
    # 只写模式  不加编码会乱码
    f = open('da','w',encoding='utf-8')
    f.write('世界')
    f.close()
    
    # 只写 不存在创建 存在则报错
    f = open('da','x',encoding='utf-8')
    f.write('世界')
    f.close()
    
    # 追加 a
    f = open('da','a')
    f.write('456')
    f.close()
    

     
    "+" 表示可以同时读写某个文件
    •r+, 读写【可读,可写】
    •w+,写读【可读,可写】
    •x+ ,写读【可读,可写】
    •a+, 写读【可读,可写】

    #带r+号,即可读可写
    # w 写的时候,默认在末尾追加 指针到最后
    f = open('ha2.log','r+',encoding='utf-8')
    print(f.tell())  # 指针为零 ,起始位置
    data = f.read(3)
    print(type(data),data)
    print(f.tell())
    f.write('萨比‘)
    data = f.read()
    print(type(data),data)
    f.write('日本人')
    f.seek(0)
    f.close()
    
    #  w+ 会先情空,写完之后才可以读了,写 ,指针到最后
    f = open('ha.log','w+',encoding='utf-8')
    f.write('别傻了老弟')
    data = f.read()
    f.close()
    print(data)
    #x+跟w+一样,唯一不同的是如果文件存在则报错
    
    # a+  打开的同时,指针就在最后
    f = open('ha.log','a+',encoding='utf-8')
    print(f.tell())
    data = f.read()
    print(data)
    f.seek(0)
    data = f.read()
    print(data)
    f.close()
    


     "b"表示以字节的方式操作
    •rb  或 r+b
    •wb 或 w+b
    •xb 或 w+b
    •ab 或 a+b

    注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型

    f = open('da','rb')
    data =f.read()
    f.close()
    print((data))
    str_data = str(data,encoding='utf-8')
    print(str_data)
    
    f = open('da','wb')
    str_data = '世界'
    bytes_data = bytes(str_data,encoding='utf-8')
    f.write(bytes_data)
    f.close()

    f = open('da','wb')
    f.write(bytes('中国',encoding='utf-8'))
    f.close()
    str_data = '世界'
    bytes_data = bytes(str_data,encoding='utf-8')
    f.write(bytes_data)
    f.close()
    
    f = open('da','r+',encoding='utf-8')   #打开文件
    s = f.read()  #读取内容 
    s = f.read(1)  #读取内容后的第一个字节
    f.close          # 关闭文件
    print(s)
    
    
    f = open('da','w+',encoding='utf-8')
    f.write('beicui')     #写入内容
        
    
    f = open('da','r+',encoding='utf-8')
    s = f.tell()        # 查看指针当前位置
    print(s)
    a = f.seek(2)   #调整指针的位置
    print(a)
    
    f = open('da','r+',encoding='utf-8')
    s = f.fileno()   #文件描述符
    print(s)
    
    f = open('da','r+',encoding='utf-8')
    f.write('1去玩儿童体验与西欧')
    s = f.flush()   #强制刷入内存
    print(s)
    
    f = open('da','r+',encoding='utf-8')
    print(f.readline())  #读取一行内容
    
    f = open('da','r+',encoding='utf-8')
    f.seek(5)
    s = f.truncate()  #截取位置前的字符
    print(s)
    
    f = open('da','r+',encoding='utf-8')
    s = f.readlines()  #以列表的形式显示
    print(s)
    
    with open('da',"r") as f:  #打开方式
    
    py2.7之后支持同时打开两个文件:
    with open("da1","r") as f1,open("da","r") as f2:
    
  • 相关阅读:
    洛谷P1175 表达式的转换
    洛谷P1725 琪露诺
    bzoj1047 [HAOI2007]理想的正方形
    洛谷P1886 滑动窗口
    最大数的和
    bzoj1087 [SCOI2005]互不侵犯King
    bzoj1051 [HAOI2006]受欢迎的牛
    Android(java)学习笔记41:Map集合功能概述
    Android(java)学习笔记40:WindowManager 中LayoutParams的各种属性
    Android(java)学习笔记39:Android 修改字体
  • 原文地址:https://www.cnblogs.com/guokaixin/p/5477476.html
Copyright © 2020-2023  润新知