最近忙著做Unity3D,Python的學習筆記落下不少,現在慢慢補上。
說到基本概念,熟悉編程的同學應該都不陌生,但是作為筆記的一部分,還是慢慢介紹一下吧。
字串
先來說說:字串String
字串,字面解釋就是一串字元。
嚴格意義上來講,字串是 字元的序列 。
大致分為以下三種情況:
1.使用單引號(')
你可以用單引號指示字串,就如同'Quote me on this'這樣。所有的空白,即空格和定位字元都照原樣保留。
2.使用雙引號(")
在雙引號中的字串與單引號中的字串的使用完全相同,例如"What's your name?"。
3.使用三引號('''或""")
利用三引號,你可以指示一個多行的字串。你可以在三引號中自由的使用單引號和雙引號。例如:
'''This is a multi-line string. This is the first line.
This is the second line.
"What's your name?," I asked.
He said "Bond, James Bond."
'''
轉義符
再談談轉義符的概念吧。
假設你想要在一個字串中包含一個單引號('),那麼你該怎麼指示這個字串?
例如,這個字串是:What's your name?你肯定不會用'What's your name?'來指示它,因為Python會弄不明白這個字串從何處開始,何處結束。所以,你需要指明單引號而不是字串的結尾。可以通過 轉義符 來完成這個任務。你用\'來指示單引號——注意這個反斜線。現在你可以把字串表示為'What\'s your name?'。
另一個表示這個特別的字串的方法是"What's your name?",即用雙引號。類似地,要在雙引號字串中使用雙引號本身的時候,也可以藉助於轉義符。另外,你可以用轉義符\\來指示反斜線本身。
值得注意的一件事是,在一個字串中,行末的單獨一個反斜線表示字串在下一行繼續,而不是開始一個新的行。例如:
"This is the first sentence.\
This is the second sentence."
等價於"This is the first sentence. This is the second sentence."
自然字串
那麼不用轉義符是否可以?當然,下面來看一下:自然字串
如果你想要指示某些不需要如轉義符那樣的特別處理的字串,那麼你需要指定一個自然字串。自然字串通過給字串加上首碼r或R來指定。例如r"Newlines are indicated by \n"。
Unicode字串
Unicode是書寫國際文本的標準方法。如果你想要用你的母語如北印度語或阿拉伯語寫文本,那麼你需要有一個支援Unicode的編輯器,比如EditPlus就是我的菜。
類似地,Python允許你處理Unicode文本——你只需要在字串前加上首碼u或U。
例如,u"This is a Unicode string."
在你處理文字檔的時候使用Unicode字串,特別是當你知道這個檔案含有用非英語的語言寫的文本。
在Python中注意以下幾點特別的地方:
1.字串是不可變的
這意味著一旦你創造了一個字串,你就不能再改變它了。雖然這看起來像是一件壞事,但實際上它不是。
2.按字面意義級連字號串
如果你把兩個字串按字面意義相鄰放著,他們會被Python自動級連。例如,'What\'s' 'your name?'會被自動轉為"What's your name?"。
3.給JAVA/C++程式員的注釋
在Python中沒有專門的char資料類型。
4.給Perl/PHP程式員的注釋
記住,單引號和雙引號字串是完全相同的——它們沒有在任何方面有不同。
5.給Regex使用者的注釋
一定要用自然字串處理Regex。否則會需要使用很多的反斜線。例如,後向引用符可以寫成'\\1'或r'\1'。
下面再來看下標識符命名的問題。
標識符 是用來標識 某樣東西 的名字。在命名標識符的時候,你要遵循這些規則:
標識符的第一個字元必須是字母表中的字母(大寫或小寫)或者一個底線(‘ _ ’)。
標識符名稱的其他部分可以由字母(大寫或小寫)、底線(‘ _ ’)或數字(0-9)組成。
標識符名稱是對大小寫敏感的。例如,myname和myName不是一個標識符。注意前者中的小寫n和後者中的大寫N。
有效 標識符名稱的例子有i、__my_name、name_23和a1b2_c3。
無效 標識符名稱的例子有2things、this is spaced out和my-name。
對象
Python把在程式中用到的任何東西都稱為 對象 。
給物件導向編程使用者的注釋
就每一個東西包括數、字串甚至函數都是對象這一點來說,Python是極其完全地物件導向的。
為了進一步解釋對象的概念,先來看下如何編寫Python程式
下面是儲存和運行Python程式的標準流程。
1. 開啟你最喜歡的編輯器。
2. 輸入例子中的程式碼。
3. 用注釋中給出的檔案名稱把它儲存為一個檔案。我按照慣例把所有的Python程式都以副檔名.py儲存。
4. 運行解譯器命令python program.py或者使用IDLE運行程式。你也可以使用先前介紹的可執行檔方法。
我們將看一下如何使用變數和字面意義上的常量。儲存下面這個例子,然後運行程式。
例4.1 使用變數和字面意義上的常量(源檔案:02.var_test.py)
# Filename : var.pyi = 5print(i)i = i + 1print(i)s = '''This is a multi-line string.This is the second line.'''print(s)
輸出
5
6
This is a multi-line string.
This is the second line.
和C++或java不同,使用變數時只需要給它們賦一個值。不需要聲明或定義資料類型。這點有點像PHP和JS,但是也沒有var的概念。
再說一個和JAVA與C++大不相同的地方:縮排。
空白在Python中是重要的。事實上行首的空白是重要的。它稱為縮排。在邏輯行首的空白(空格和定位字元)用來決定邏輯行的縮排層次,從而用來決定語句的分組。
這意味著同一層次的語句必須有相同的縮排。每一組這樣的語句稱為一個塊。我們將在後面的章節中看到有關塊的用處的例子。
你需要記住的一樣東西是錯誤的縮排會引發錯誤。例如:
i = 5 print('Value is', i # Error! Notice a single space at the start of the line)print( 'I repeat, the value is', i )
當你運行這個程式的時候,你會得到下面的錯誤:
File "whitespace.py", line 4
print 'Value is', i # Error! Notice a single space at the start of the line
^
SyntaxError: invalid syntax
注意,在第二行的行首有一個空格。Python指示的這個錯誤告訴我們程式的文法是無效的,即程式沒有正確地編寫。它告訴你, 你不能隨意地開始新的語句塊 (當然除了你一直在使用的主塊)。何時你能夠使用新塊,將會在後面的章節,如控制流程中詳細介紹。
如何縮排
不要混合使用定位字元和空格來縮排,因為這在跨越不同的平台的時候,無法正常工作。我 強烈建議 你在每個縮排層次使用 單個定位字元 或 兩個或四個空格 。
選擇這三種縮排風格之一。更加重要的是,選擇一種風格,然後一貫地使用它,即只使用這一種風格。