python面试总结
1. python在讀取文件時,read(),readline()和readlines()有什么區(qū)別?
舉例說明:
1 with open('a.txt', 'r') as f: 2 result1 = f.read(n) # 表示讀取n個字節(jié)到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、編寫一個遞歸函數(shù)
# 編寫一個n的階乘 def factorial(n):if n < 2:return 1return n * factorial(n-1)if __name__ == "__main__":factorial(5)?4、簡述python的垃圾回收機制
1. python在內(nèi)存中存儲了每個對象的引用計數(shù),如果計數(shù)值變成0,那么相應的對象就會減小,分配給該對象的內(nèi)存就會自動釋放出來用作他用。
2. 偶爾也會出現(xiàn)循環(huán)引用。垃圾回收器會定時尋找這個循環(huán),并將其回收。例如
1 list1 = [] 2 list2 = [] 3 list1.append(list2) 4 list2.append(list1)list1和list2相互引用,如果不存在其他對象對他們的引用,list1和list2的引用計數(shù)也仍然為1,所占用的內(nèi)存永遠無法被收回。
??3. python中使用了某些啟發(fā)式算法來加速垃圾回收。例如,越晚創(chuàng)建的對象更有可能被回收,對象被創(chuàng)建之后,垃圾回收器會分配它們所屬的代,每個對象都會被分配一個代,而被分配更年輕的代會先被處理。原理:將系統(tǒng)中的所有內(nèi)存塊根據(jù)其存活時間劃分為不同的集合,每一個集合就成為一個“代”,垃圾收集的頻率隨著“代”的存活時間的增大而減小。也就是說,活得越長的對象,就越不可能是垃圾,就應該減少對它的垃圾收集頻率。那么如何來衡量這個存活時間:通常是利用幾次垃圾收集動作來衡量,如果一個對象經(jīng)過的垃圾收集次數(shù)越多,可以得出:該對象存活時間就越長
轉(zhuǎn)載于:https://www.cnblogs.com/l5623064/p/9127683.html
總結
以上是生活随笔為你收集整理的python面试总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解scss的继承、占位符和混合宏
- 下一篇: 浅读设计模式 - 1