• python面试总结


    1. python在读取文件时,read(),readline()和readlines()有什么区别?

    举例说明:

    1 with open('a.txt', 'r') as f:
    2     result1 = f.read(n)    # 表示读取n个字节到result1中
    3     result2 = f.readline()    # 表示读取下一行到result2中
    4     result3 = f.readlines()    # 表示读取整个文件到result3中

    2、使用一行代码输出[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

    result = [i ** 2 for i in range(1, 11)]
    print(result)

    3、编写一个递归函数

    # 编写一个n的阶乘
    def factorial(n):
        if n < 2:
            return 1
        return n * factorial(n-1)
    
    if __name__ == "__main__":
        factorial(5)

     4、简述python的垃圾回收机制

    1. python在内存中存储了每个对象的引用计数,如果计数值变成0,那么相应的对象就会减小,分配给该对象的内存就会自动释放出来用作他用。

    2. 偶尔也会出现循环引用。垃圾回收器会定时寻找这个循环,并将其回收。例如

    1 list1 = []
    2 list2 = []
    3 list1.append(list2)
    4 list2.append(list1)

    list1和list2相互引用,如果不存在其他对象对他们的引用,list1和list2的引用计数也仍然为1,所占用的内存永远无法被收回。

      3. python中使用了某些启发式算法来加速垃圾回收。例如,越晚创建的对象更有可能被回收,对象被创建之后,垃圾回收器会分配它们所属的代,每个对象都会被分配一个代,而被分配更年轻的代会先被处理。原理:将系统中的所有内存块根据其存活时间划分为不同的集合,每一个集合就成为一个“代”,垃圾收集的频率随着“代”的存活时间的增大而减小。也就是说,活得越长的对象,就越不可能是垃圾,就应该减少对它的垃圾收集频率。那么如何来衡量这个存活时间:通常是利用几次垃圾收集动作来衡量,如果一个对象经过的垃圾收集次数越多,可以得出:该对象存活时间就越长

      

      

      

  • 相关阅读:
    第48天-shell(2013.09.25)
    嵌入式Linux gdb core dump快速定位程序crash问题
    va_arg va_start va_end 获取函数参数内容
    Ubunut apache2 服务器 搭建 文件下载
    CRC16 串口校验
    Linux 处理中文字符串 :/区分中文和英文的方法
    LINUX 工具移植:scp 快速拷贝文件到开发板
    打印内存变量定位 程序出现内存方面的问题
    Linux C 调用 ping命令 检测网络状态
    Ubuntu Gitlab 备份代码服务器
  • 原文地址:https://www.cnblogs.com/l5623064/p/9127683.html
Copyright © 2020-2023  润新知