zoukankan      html  css  js  c++  java
  • python基础(2)

    1、lambda函数

      学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,函数同样有简单的表示方法

    # ###################### 普通函数 ######################
    # 定义函数(普通方式)
    def func(a):
        return a + 1
        
    # 执行函数
    result = func(123)
        
    # ###################### lambda ######################
        
    # 定义函数(lambda表达式)
    my_lambda = lambda a : a + 1
        
    # 执行函数
    result = my_lambda(123)

    2、python的部分内置函数

      abs,取绝对值

    i = abs(-152)
    print(i)
    152

      all,循环参数,如果所有元素的值都为真,返回真,否则假

    a = all([1,1,0])
    print(a)
    False

      any,只要有一个为真,则为真

    a = any([0,0,0,1])
    print(a)
    True

      ascii,去对象的类中找到__repr__方法并且获取其返回值

    class a:
        def __repr__(self):
            return "hello"
    b = a()
    c = ascii(b)
    print(c)
    hello

      bin(),oct(),int(),hex(),分别表示将十进制数字转换为二进制,八进制,十进制,十六进制,下边介绍一种16转10的写法

    i = int("b",base = 16)
    print(i)
    11

      chr(),传入一个数字,它会把数字转为二进制然后获取这个二进制数字在ASCII码中对应的字符或符号

    a = chr(77)
    print(a)
    M

      ord则是字母或字符对应的数字

    a = ord("c")
    print(a)
    99

       查看一个对象是否可执行,如果是返回真,否则假。

    def f1():
        return 123
    r = callable(f1)
    print(r)
    True

       求俩数字的商和余数

    r = divmod(10,3)
    print(r)
    (3, 1)

      eval,将字符串转为表达式,他是有返回值得

    i = eval("1+3")
    print(i)
    4

      exec是没有返回值的,用来执行比较复杂的字符串表达式

    exec("for i in range(10):print(i)")
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9

       filter,filter(函数,可迭代对象),以可迭代对象里的元素为函数的参数进行迭代运行,筛选为真的元素

    def f1(x):
        if x > 22:
            return True
        else:
            return False
    r = filter(f1,[11,22,33,44,55])
    for i in r:
        print(i)
    33
    44
    55

       可结合lambda,写法如下

    r = filter(lambda x: x > 22,[11,22,33,44,55])
    for i in r:
        print(i)

       map,用一个函数对后边的可迭代对象循环进行操作

    r = map(lambda x: x + 100,[11,22,33,44,55])
    for i in r:
        print(i)
    111
    122
    133
    144
    155

      globals()所有全局变量,locals()获取所有局部变量

      hash()把一个对象转换为哈希值,这样可以节省内存

    i = hash("ertt34rwef34tsefw4t3fwef34twefwegt4te4t")
    print(i)
    6916591429187914356

      iter(),创建一个可迭代对象,然后用next()一个个循环取值,

    i = iter([11,22,33,44,55])
    r = next(i)
    print(r)
    r = next(i)
    print(r)
    r = next(i)
    print(r)
    11
    22
    33

      取最大值和最小值的方法

    i = [11,22,33,44,55,66,77,88,]
    a = max(i)
    b = min(i)
    print(a,b)
    88 11

      求一个数的多少次方

    i = pow(2,5)
    print(i)
    32

       

    reversed,把有序 的数据倒序迭代
    i = reversed([11,22,33])
    for a in i:
        print(a)
    33
    22
    11

      round,四舍五入一个数字

    i = round(2.3)
    print(i)
    2

    3、文件的操作

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

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

    • 打开文件
    • 操作文件

    一、打开文件

    1
    文件句柄 = open('文件路径''模式')

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

    打开文件的模式有:

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

    "+" 表示可以同时读写某个文件

    • r+, 读写【可读,可写】
    • w+,写读【可读,可写】
    • x+ ,写读【可读,可写】
    • a+, 写读【可读,可写】

     "b"表示以字节的方式操作

    • rb  或 r+b
    • wb 或 w+b
    • xb 或 w+b
    • ab 或 a+b

     注:以b方式打开时,读不需要提供编码参数,写则需要,下边是写入的示例

     = open("hehe","wb")
    f.write(bytes("zhongg",encoding = "utf-8"))
    f.close()

      文件操作的常用方法说明

      def close(self, *args, **kwargs): # real signature unknown
            关闭文件
            pass
    
        def fileno(self, *args, **kwargs): # real signature unknown
            文件描述符  
            pass
    
        def flush(self, *args, **kwargs): # real signature unknown
            刷新文件内部缓冲区
            pass
    
        def isatty(self, *args, **kwargs): # real signature unknown
            判断文件是否是同意tty设备
            pass
    
        def read(self, *args, **kwargs): # real signature unknown
            读取指定字节数据,如果打开方式为二进制方式就是字节数,如果不是就是字符数。
            pass
    
        def readable(self, *args, **kwargs): # real signature unknown
            是否可读
            pass
    
        def readline(self, *args, **kwargs): # real signature unknown
            仅读取一行数据
            pass
    
        def seek(self, *args, **kwargs): # real signature unknown
            指定文件中指针位置
            pass
    
        def seekable(self, *args, **kwargs): # real signature unknown
            指针是否可操作
            pass
    
        def tell(self, *args, **kwargs): # real signature unknown
            获取指针位置
            pass
    
        def truncate(self, *args, **kwargs): # real signature unknown
            截断数据,仅保留指定之前数据
            pass
    
        def writable(self, *args, **kwargs): # real signature unknown
            是否可写
            pass
    
        def write(self, *args, **kwargs): # real signature unknown
            写内容
            pass
    
        def __getstate__(self, *args, **kwargs): # real signature unknown
            pass
    
        def __init__(self, *args, **kwargs): # real signature unknown
            pass
    
        @staticmethod # known case of __new__
        def __new__(*args, **kwargs): # real signature unknown
            """ Create and return a new object.  See help(type) for accurate signature. """
            pass
    
        def __next__(self, *args, **kwargs): # real signature unknown
            """ Implement next(self). """
            pass
    
        def __repr__(self, *args, **kwargs): # real signature unknown
            """ Return repr(self). """
            pass

      读写都会修改指针,关闭文件指针归零。

      可以以迭代的方式去取读比较大的文件,(因为读文件要先读到内存,如果直接read,文件过大会撑爆内存)。

    f = open("hehe","r")
    for i in f:
        print(i)
    D:UsersAdministratorAppDataLocalProgramsPythonPython35python3.exe D:/Users/Administrator/PycharmProjects/txt/123.py
    sferf
    
    sfsf
    
    sfsf
    
    sfwsf

      循环文件内的每个元素

    f = open("hehe","r")
    a = f.read()
    f.seek(0)
    for i in a:
        print(i)
    s
    f
    e
    r
    f

      with open的用法

    f = open("hehe","r")
    with open("hehe","r") as f:
    #第二行等同于第一行,区别在于第二行执行完,会自动关闭文件,而第一行则需要f.cloes,with还支持同时打开两个文件。#
  • 相关阅读:
    替换内容里面的图片
    mysql字符串拼接
    判断字符串中中是否有手机号
    验证身份证号码的真伪
    m端访问pc端 让跳到对应m端
    百度编辑器实现页面关闭再次打开内容处在已编辑状态
    如何实现 antd table 自动调整可视高度(纵向滚动条,scrollY)
    Flink 1.12.1 NoClassDefFoundError SourceFunction
    Java8 常用时间转换工具类
    Jenkins脚本清理构建历史
  • 原文地址:https://www.cnblogs.com/kading/p/5549297.html
Copyright © 2011-2022 走看看