1. 程式人生 > >Python 面試題整理1

Python 面試題整理1

歸並 遞歸函數 color 算術 div microsoft 變量 ldp 路徑

參考網頁:15 Essential Python Interview Questions

1. 什麽是Python?

  可以在回答中與其他技術作對比(鼓勵這麽做);如果應聘的是一個Python開發崗位,就應知道這是門什麽樣的語言以及它為什麽這麽酷,以及它哪裏不好。

  參考答案:

  • Python是一種解釋型語言。這就是說,與C語言和C的衍生語言不同,Python代碼在運行之前不需要編譯。其他解釋型語言還包括PHP和Ruby。
  • Python是動態類型語言,指的是你在聲明變量時,不需要說明變量的類型。你可以直接編寫類似x=111x="I‘m a string"這樣的代碼,程序不會報錯。
  • Python非常適合面向對象的編程(OOP),因為它支持通過組合(composition)與繼承(inheritance)的方式定義類(class)。Python中沒有訪問說明符(access specifier,類似C++中的public
    private),這麽設計的依據是“大家都是成年人了”。
  • 在Python語言中,函數是第一類對象(first-class objects)。這指的是它們可以被指定給變量,函數既能返回函數類型,也可以接受函數作為輸入。類(class)也是第一類對象。
  • Python代碼編寫快,但是運行速度比編譯語言通常要慢。好在Python允許加入基於C語言編寫的擴展,因此我們能夠優化代碼,消除瓶頸,這點通常是可以實現的。numpy就是一個很好地例子,它的運行速度真的非常快,因為很多算術運算其實並不是通過Python實現的。
  • Python用途非常廣泛——網絡應用,自動化,科學建模,大數據應用,等等。它也常被用作“膠水語言”,幫助其他語言和組件改善運行狀況。
  • Python讓困難的事情變得容易,因此程序員可以專註於算法和數據結構的設計,而不用處理底層的細節

2. 補充缺失的代碼: 函數的定義

def print_directory_contents(sPath):
    """
    這個函數接受文件夾的名稱作為輸入參數,
    返回該文件夾中文件的路徑,
    以及其包含文件夾中文件的路徑。
    """
    # 補充代碼

  註意點:

  • 命名規範要統一。如果樣本代碼中能夠看出命名規範,遵循其已有的規範。
  • 遞歸函數需要遞歸並終止。確保你明白其中的原理,否則你將面臨無休無止的調用棧(callstack)。
  • 我們使用os模塊與操作系統進行交互,同時做到交互方式是可以跨平臺的。你可以把代碼寫成sChildPath = sPath + ‘/‘ + sChild
    ,但是這個在Windows系統上會出錯。
  • 熟悉基礎模塊是非常有價值的,但是別想破腦袋都背下來,記住Google是你工作中的良師益友。
  • 如果你不明白代碼的預期功能,就大膽提問。
  • 堅持KISS原則!保持簡單,不過腦子就能懂!

草考答案:

  def print_directory_contents(sPath):
      import os                                       
      for sChild in os.listdir(sPath):                
          sChildPath = os.path.join(sPath,sChild)
          if os.path.isdir(sChildPath):
              print_directory_contents(sChildPath)
          else:
              print sChildPath
3. 列表問題:

  閱讀下面的代碼,寫出A0,A1至An的最終值

  A0 = dict(zip((‘a‘,‘b‘,‘c‘,‘d‘,‘e‘),(1,2,3,4,5))) 
  A1 = range(10)
  A2 = sorted([i for i in A1 if i in A0])
  A3 = sorted([A0[s] for s in A0])
  A4 = [i for i in A1 if i in A3]
  A5 = {i:i*i for i in A1}
  A6 = [[i,i*i] for i in A1]

參考結果:  技術分享


 

  

Python 面試題整理1