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

      

      

      

  • 相关阅读:
    [Python] 网络
    [c++] 命令
    [DB] 关系型数据库
    [win] cmd 常用命令
    [linux] Git基本概念&操作
    [SQL] 常用命令
    redis(二十四):Redis分布式锁以及实现(python)
    redis(二十三):Redis 集群(proxy 型)二
    redis(二十二):Redis 集群(proxy 型)一
    redis(二十一):Redis 架构模式实现(哨兵)
  • 原文地址:https://www.cnblogs.com/l5623064/p/9127683.html
Copyright © 2011-2022 走看看