python初體驗(1)——基礎篇

來源:互聯網
上載者:User

我為什麼學習python

首先我的工作第一語言是c/c++(物件導向子集)。選擇學習python一方面是因為看很多人都說python開發效率高,所以想驗證一下;另一方面,Eric S. Raymond在文章:如何成為一名駭客 中對python的推薦。還有一方面,python的設計哲學:用一種方法,最好是只有一種方法來做一件事,這一點我比較認同。

好了,我選擇的入門資料是python簡明教程。下面是我學習時的一些筆記和思考,上面有很明顯的c和C++的痕迹。
控制結構:

  1. 有c沒有的自然字串的概念。
  2. 不支援i++。我對此表示歡迎。++會誘導程式員新手犯錯誤。我在c中基本上拋棄了++。
  3. python沒有switch,可以使用if elif else來實現同樣的功能。
  4. while後可以跟一個else從句。
  5. for i in range(1,5):,從1迴圈到5,但是不包括5。
  6. break語句仍然可以停止迴圈,但是,停止後,不會執行else塊。
  7. continue和之前相同。
  8. 函數入參沒有類型,如果實參和形參不符合會有什麼後果,如何避免。如果類型不符合,會直接運行失敗。
  9. 通過global可以告訴函數,變數屬於函數之外。但是,不鼓勵使用全域變數。它可以同時聲明多個。
  10. 預設參數:和c++一樣,用”= value”來表示。統一,它只可以為最後一個參數設定預設參數。

資料結構:

字典:

字典類似於二叉樹,但是不知道字典內部使用的是什麼演算法。

索引值必須唯一,如果不唯一,添加的時候會發生什嗎?linux 二叉樹是覆蓋的。

答案:如果字典中已經有了一個key,這個時候再添加,它會覆蓋掉原先的value。對它來說是設定。這個和linux 二叉樹倒是一致。

和二叉樹類似,鍵是不允許改變的。如果改變會發生什麼後果。至少二叉樹改變後,這個數的結構會敗壞。而且,編譯器是無法檢測的。Python是否會檢查?

答案:是的,它在啟動並執行時候會提示錯誤。因為他沒有編譯的概念。所以。。。

是否可以弄一個變數作為關鍵字?

答案:這樣是可以的,運行也是沒有問題的。但是如果更改這個關鍵字那?

但是如果更改這個關鍵字那?

答案:更改後發現字典並沒有隨著改變,說明他只是使用了這個變數的值,取他的值做常量,作為關鍵字,而不是使用變數作為關鍵字。

字典的效率好不好,他的內部使用的是什麼演算法?二叉樹,hash,還是其他?

答案:雜湊表。

字典的健是否可以類型不同?

答案:是可以的。

字典是dict的對象,元組是tuple的對象,列表時list的對象。

序列:

序列的兩個特點是索引操作符和切片操作符。一個是擷取一個項目,一個是擷取子序列。

列表和元組都是序列。

序列是從零開始的,這是數組一樣。不過他居然可以是負數!?

答案:負數的時候表示去最後的元素,-1表示最後一個。

什麼是切片?

答案:就是在一個序列中擷取一個子序列。對於切片,冒號是必須的,而數字不是必須的,如果沒有數字,這表示從頭開始或到結尾。全部沒有數字表示整個序列。

是否通過切片來為一個新的序列賦值?

答案:可以的。

如果擷取元素超出範圍會怎樣?

答案:運行出錯。

如果切片時超出範圍會怎樣?

答案:本來以為會出錯,居然沒有,而只是顯示為空白。

列表,元組,字串都是序列,都可以用序列的方法來操作。

元組

和list唯一不同的是,他不可以改變。

和c++不一樣,元組和list裡面可以存放不同類型的值。

myempty = ()表示空的元組;

myempty = (2,)必須加‘,’才可以表示只有一個元組;否則是對象。

對象與引用

當你建立一個對象並給它賦一個變數的時候,這個變數僅僅 引用 那個對象,而不是表示這個對象本身!也就是說,變數名指向你電腦中儲存那個對象的記憶體。這被稱作名稱到對象的綁定。

C中的指標我比較熟悉,他應該相當於指標,但是,從外觀開不出什麼。我感覺這個特性和語言的初衷有些偏差:可能會導致程式員出錯。

 

總的感覺:文法確實比較簡單,比較容易入手。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.