基本概念:html
1,常量python
2,數,web
3,字符串express
使用單引號(')數據結構
你能夠用單引號指示字符串,就如同'Quote me on this'
這樣。全部的空白,即空格和製表符都照原樣保留。編輯器
使用雙引號(")函數
在雙引號中的字符串與單引號中的字符串的使用徹底相同,例如"What's your name?"
。工具
使用三引號('''或""")oop
利用三引號,你能夠指示一個多行的字符串。你能夠在三引號中自由的使用單引號和雙引號。例如:學習
#!/user/bin/python # -*- coding: utf8 -*- print '''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." '''
輸出結果爲:
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?'
來指示它,由於Python會弄不明白這個字符串從何處開始,何處結束。那麼此時你能夠選用雙引號號,"What's your name?"表示,同時也能夠經過轉義符來完成這個任務。你用\'
來指示單引號——注意這個反斜槓。如今你能夠把字符串表示爲'What\'s your name?'
。
相似地,要在雙引號字符串中使用雙引號自己的時候,也能夠藉助於轉義符。另外,你能夠用轉義符\\
來指示反斜槓自己。
值得注意的一件事是,在一個字符串中,行末的單獨一個反斜槓表示字符串在下一行繼續,而不是開始一個新的行。例如:
print "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"
。
print "Newlines are indicated by \n"
輸出:
Newlines are indicated by
print r"Newlines are indicated by \n"
輸出:
Newlines are indicated by \n
Unicode字符串
Unicode是書寫國際文本的標準方法。若是你想要用你的母語如北印度語或阿拉伯語寫文本,那麼你須要有一個支持Unicode的編輯器。相似地,Python容許你處理Unicode文本——你只須要在字符串前加上前綴u
或U
。例如,u"This is a Unicode string."
。
記住,在你處理文本文件的時候使用Unicode字符串,特別是當你知道這個文件含有用非英語的語言寫的文本。
字符串是不可變的
這意味着一旦你創造了一個字符串,你就不能再改變它了。雖然這看起來像是一件壞事,但實際上它不是。咱們將會在後面的程序中看到爲何咱們說它不是一個缺點。
按字面意義級連字符串
若是你把兩個字符串按字面意義相鄰放着,他們會被Python自動級連。例如,'What\'s' 'your name?'
會被自動轉爲"What's your name?"
。
4,變量
5,標示符的命名
變量是標識符的例子。標識符是用來標識某樣東西的名字。在命名標識符的時候,你要遵循這些規則:
標識符的第一個字符必須是字母表中的字母(大寫或小寫)或者一個下劃線(‘ _ ’)。
標識符名稱的其餘部分能夠由字母(大寫或小寫)、下劃線(‘ _ ’)或數字(0-9)組成。
標識符名稱是對大小寫敏感的。例如,myname
和myName
不是一個標識符。注意前者中的小寫n和後者中的大寫N。
有效標識符名稱的例子有i
、__my_name
、name_23
和a1b2_c3
。
無效標識符名稱的例子有2things
、this is spaced out
和my-name
。,
9,縮進
空白在Python中是重要的。事實上行首的空白是重要的。它稱爲縮進。在邏輯行首的空白(空格和製表符)用來決定邏輯行的縮進層次,從而用來決定語句的分組。
這意味着同一層次的語句必須有相同的縮進。每一組這樣的語句稱爲一個塊。
如何縮進
不要混合使用製表符和空格來縮進,由於這在跨越不一樣的平臺的時候,沒法正常工做。我強烈建議你在每一個縮進層次使用單個製表符或兩個或四個空格。
選擇這三種縮進風格之一。更加劇要的是,選擇一種風格,而後一向地使用它,即只使用這一種風格。
運算符與表達式:
1,簡介
2,運算符
運算符 | 名稱 | 說明 | 例子 |
---|---|---|---|
+ | 加 | 兩個對象相加 | 3 + 5獲得8。'a' + 'b'獲得'ab'。 |
- | 減 | 獲得負數或是一個數減去另外一個數 | -5.2獲得一個負數。50 - 24獲得26。 |
* | 乘 | 兩個數相乘或是返回一個被重複若干次的字符串 | 2 * 3獲得6。'la' * 3獲得'lalala'。 |
** | 冪 | 返回x的y次冪 |
3 ** 4獲得81(即3 * 3 * 3 * 3) |
/ | 除 | x除以y | 4/3獲得1(整數的除法獲得整數結果)。4.0/3或4/3.0獲得1.3333333333333333 |
// | 取整除 | 返回商的整數部分 | 4 // 3.0獲得1.0 |
% | 取模 | 返回除法的餘數 | 8%3獲得2。-25.5%2.25獲得1.5 |
<< | 左移 | 把一個數的比特向左移必定數目(每一個數在內存中都表示爲比特或二進制數字,即0和1) | 2 << 2獲得8。——2按比特表示爲10 |
>> | 右移 | 把一個數的比特向右移必定數目 | 11 >> 1獲得5。——11按比特表示爲1011,向右移動1比特後獲得101,即十進制的5。 |
& | 按位與 | 數的按位與 | 5 & 3獲得1。 |
| | 按位或 | 數的按位或 | 5 | 3獲得7。 |
^ | 按位異或 | 數的按位異或 | 5 ^ 3獲得6 |
~ | 按位翻轉 | x的按位翻轉是-(x+1) | ~5獲得-6。 |
< | 小於 | 返回x是否小於y。全部比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意,這些變量名的大寫。 | 5 < 3返回0(即False)而3 < 5返回1(即True)。比較能夠被任意鏈接:3 < 5 < 7返回True。 |
> | 大於 | 返回x是否大於y | 5 > 3返回True。若是兩個操做數都是數字,它們首先被轉換爲一個共同的類型。不然,它老是返回False。 |
<= | 小於等於 | 返回x是否小於等於y | x = 3; y = 6; x <= y返回True。 |
>= | 大於等於 | 返回x是否大於等於y | x = 4; y = 3; x >= y返回True。 |
== | 等於 | 比較對象是否相等 | x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。 |
!= | 不等於 | 比較兩個對象是否不相等 | x = 2; y = 3; x != y返回True。 |
not | 布爾「非」 | 若是x爲True,返回False。若是x爲False,它返回True。 | x = True; not x返回False。 |
and | 布爾「與」 | 若是x爲False,x and y返回False,不然它返回y的計算值。 | x = False; y = True; x and y,因爲x是False,返回False。在這裏,Python不會計算y,由於它知道這個表達式的值確定是False(由於x是False)。這個現象稱爲短路計算。 |
or | 布爾「或」 | 若是x是True,它返回True,不然它返回y的計算值。 | x = True; y = False; x or y返回True。短路計算在這裏也適用。 |
3,運算符優先級
下面這張表(與Python參考手冊中的那個表如出一轍)已經顧及了完整的須要。事實上,我建議你使用圓括號來分組運算符和操做數,以便可以明確地指出運算的前後順序,使程序儘量地易讀。例如,2 + (3 * 4)
顯然比2 + 3 * 4
清晰。與此同時,圓括號也應該正確使用,而不該該用得過濫(好比2 + (3 + 4)
)。
運算符 | 描述 |
---|---|
lambda | Lambda表達式 |
or | 布爾「或」 |
and | 布爾「與」 |
not x | 布爾「非」 |
in,not in | 成員測試 |
is,is not | 同一性測試 |
<,<=,>,>=,!=,== | 比較 |
| | 按位或 |
^ | 按位異或 |
& | 按位與 |
<<,>> | 移位 |
+,- | 加法與減法 |
*,/,% | 乘法、除法與取餘 |
+x,-x | 正負號 |
~x | 按位翻轉 |
** | 指數 |
x.attribute | 屬性參考 |
x[index] | 下標 |
x[index:index] | 尋址段 |
f(arguments...) | 函數調用 |
(experession,...) | 綁定或元組顯示 |
[expression,...] | 列表顯示 |
{key:datum,...} | 字典顯示 |
'expression,...' | 字符串轉換 |
其中咱們尚未接觸過的運算符將在後面的章節中介紹。
在表中列在同一行的運算符具備相同優先級。例如,+
和-
有相同的優先級。
計算順序
默認地,運算符優先級表決定了哪一個運算符在別的運算符以前計算。然而,若是你想要改變它們的計算順序,你得使用圓括號。例如,你想要在一個表達式中讓加法在乘法以前計算,那麼你就得寫成相似(2 + 3) * 4
的樣子。
結合規律
運算符一般由左向右結合,即具備相同優先級的運算符按照從左向右的順序計算。例如,2 + 3 + 4
被計算成(2 + 3) + 4
。一些如賦值運算符那樣的運算符是由右向左結合的,即a = b = c
被處理爲a = (b = c)
。
控制流:
1,簡介
2,if語句
使用if語句
#!/user/bin/python # -*- coding: utf8 -*- number = 23 guess = int(raw_input('Enter an integer : ')) if guess == number: print 'Congratulations, you guessed it.' # New block starts here print "(but you do not win any prizes!)" # New block ends here elif guess < number: print 'No, it is a little higher than that' # Another block # You can do whatever you want in a block ... else: print 'No, it is a little lower than that' # you must have guess > number to reach here print 'Done' # This last statement is always executed, after the if statement is executed
輸出結果:(每執行一次只會有一次結果,我整合到一起了)
$ python if.py Enter an integer : 50 No, it is a little lower than that Done $ python if.py Enter an integer : 22 No, it is a little higher than that Done $ python if.py Enter an integer : 23 Congratulations, you guessed it. (but you do not win any prizes!) Done
3,while語句
使用while語句
只要在一個條件爲真的狀況下,while
語句容許你重複執行一塊語句。while
語句是所謂循環語句的一個例子。while
語句有一個可選的else
從句。
#!/user/bin/python # -*- coding: utf8 -*- number = 23 running = True while running: guess = int(raw_input('Enter an integer : ')) if guess == number: print 'Congratulations, you guessed it.' running = False # this causes the while loop to stop elif guess < number: print 'No, it is a little higher than that' else: print 'No, it is a little lower than that' else: print 'The while loop is over.' # Do anything else you want to do here print 'Done'
輸出結果:
Enter an integer : 50 No, it is a little lower than that Enter an integer : 22 No, it is a little higher than that Enter an integer : 23 Congratulations, you guessed it. The while loop is over. Done
在這個程序中,咱們仍然使用了猜數遊戲做爲例子,可是這個例子的優點在於用戶能夠不斷的猜數,直到他猜對爲止——這樣就不須要像前面那個例子那樣爲每次猜想重複執行一遍程序。這個例子恰當地說明了while
語句的使用。
咱們把raw_input
和if
語句移到了while
循環內,而且在while循環開始前把running
變量設置爲True
。首先,咱們檢驗變量running
是否爲True
,而後執行後面的while-塊。在執行了這塊程序以後,再次檢驗條件,在這個例子中,條件是running
變量。若是它是真的,咱們再次執行while-塊,不然,咱們繼續執行可選的else-塊,並接着執行下一個語句。
當while
循環條件變爲False
的時候,else
塊才被執行——這甚至也多是在條件第一次被檢驗的時候。若是while
循環有一個else
從句,它將始終被執行,除非你的while
循環將永遠循環下去不會結束!
True
和False
被稱爲布爾類型。你能夠分別把它們等效地理解爲值1
和0
。在檢驗重要條件的時候,布爾類型十分重要,它們並非真實的值1
。
else塊事實上是多餘的,由於你能夠把其中的語句放在同一塊(與while
相同)中,跟在while
語句以後,這樣能夠取得相同的效果。
去除else:
#!/user/bin/python # -*- coding: utf8 -*- number = 23 running = True while running: guess = int(raw_input('Enter an integer : ')) if guess == number: print 'Congratulations, you guessed it.' running = False # this causes the while loop to stop elif guess < number: print 'No, it is a little higher than that' else: print 'No, it is a little lower than that' print 'The while loop is over.' print 'Done'
結果:
Enter an integer : 50 No, it is a little lower than that Enter an integer : 22 No, it is a little higher than that Enter an integer : 23 Congratulations, you guessed it. The while loop is over. Done
或者:
number = 23 running = True while running: guess = int(raw_input('Enter an integer : ')) if guess == number: print 'Congratulations, you guessed it.' running = False # this causes the while loop to stop elif guess < number: print 'No, it is a little higher than that' else: print 'No, it is a little lower than that' print 'The while loop is over.' # Do anything else you want to do here print 'Done'
結果:
Enter an integer : 50 No, it is a little lower than that The while loop is over. Enter an integer : 22 No, it is a little higher than that The while loop is over. Enter an integer : 23 Congratulations, you guessed it. The while loop is over. Done
不一樣的縮進,不一樣的結果:
number = 23 running = True while running: guess = int(raw_input('Enter an integer : ')) if guess == number: print 'Congratulations, you guessed it.' running = False # this causes the while loop to stop elif guess < number: print 'No, it is a little higher than that' else: print 'No, it is a little lower than that' print 'The while loop is over.' # Do anything else you want to do here print 'Done'
結果:
Enter an integer : 50 No, it is a little lower than that The while loop is over. Enter an integer : 22 No, it is a little higher than that Enter an integer : 23 Congratulations, you guessed it. Done
4,for循環
使用for語句
for..in
是另一個循環語句,它在一序列的對象上遞歸即逐一使用隊列中的每一個項目。咱們會在後面的章節中更加詳細地學習序列。
for i in range(1, 5): print i else: print 'The for loop is over'
輸出:
1 2 3 4 The for loop is over
在這個程序中,咱們打印了一個序列的數。咱們使用內建的range
函數生成這個數的序列。
咱們所作的只是提供兩個數,range
返回一個序列的數。這個序列從第一個數開始到第二個數爲止。例如,range(1,5)
給出序列[1, 2, 3, 4],不包括5
。默認地,range
的步長爲1。若是咱們爲range
提供第三個數,那麼它將成爲步長。例如,range(1,5,2)
給出[1,3]
。記住,range向上延伸到第二個數,即它不包含第二個數。
for
循環在這個範圍內遞歸——for i in range(1,5)
等價於for i in [1, 2, 3, 4]
,這就如同把序列中的每一個數(或對象)賦值給i,一次一個,而後以每一個i
的值執行這個程序塊。在這個例子中,咱們只是打印i的值。
記住,else
部分是可選的。若是包含else,它老是在for
循環結束後執行一次,除非遇到break語句。
記住,for..in
循環對於任何序列都適用。這裏咱們使用的是一個由內建range
函數生成的數的列表,可是廣義說來咱們可使用任何種類的由任何對象組成的序列!咱們會在後面的章節中詳細探索這個觀點。
5,break語句
break
語句是用來終止循環語句的,即哪怕循環條件沒有稱爲False
或序列尚未被徹底遞歸,也中止執行循環語句。
一個重要的註釋是,若是你從for
或while
循環中終止,任何對應的循環else
塊將不執行。
使用break語句
while True: s = raw_input('Enter something : ') if s == 'quit': break print 'Length of the string is', len(s) print 'Done'
輸出結果:
Enter something : fs Length of the string is 2 Enter something : dafdfasfsa Length of the string is 10 Enter something : quit Done
6,continue語句
continue
語句被用來告訴Python跳過當前循環塊中的剩餘語句,而後繼續進行下一輪循環。
使用continue語句
while True: s = raw_input('Enter something : ') if s == 'quit': break if len(s) < 3: continue print 'Input is of sufficient length' # Do other kinds of processing here...
結果:
Enter something : a Enter something : 12 Enter something : abb Input is of sufficient length Enter something : quit
在這個程序中,咱們從用戶處取得輸入,可是咱們僅僅當它們有至少3個字符長的時候才處理它們。因此,咱們使用內建的len
函數來取得長度。若是長度小於3,咱們將使用continue
語句忽略塊中的剩餘的語句。不然,這個循環中的剩餘語句將被執行,咱們能夠在這裏作咱們但願的任何處理。
注意,continue
語句對於for
循環也有效。
七,函數
簡介
函數是重用的程序段。它們容許你給一塊語句一個名稱,而後你能夠在你的程序的任何地方使用這個名稱任意屢次地運行這個語句塊。這被稱爲調用函數。咱們已經使用了許多內建的函數,好比len
和range
。
函數經過def
關鍵字定義。def關鍵字後跟一個函數的標識符名稱,而後跟一對圓括號。圓括號之中能夠包括一些變量名,該行以冒號結尾。接下來是一塊語句,它們是函數體。下面這個例子將說明這事實上是十分簡單的:
定義函數
def sayHello(): print 'Hello World!' # block belonging to the function sayHello() # call the function
輸出:
Hello World!
咱們使用上面解釋的語法定義了一個稱爲sayHello
的函數。這個函數不使用任何參數,所以在圓括號中沒有聲明任何變量。參數對於函數而言,只是給函數的輸入,以便於咱們能夠傳遞不一樣的值給函數,而後獲得相應的結果。
函數形參
函數取得的參數是你提供給函數的值,這樣函數就能夠利用這些值作一些事情。這些參數就像變量同樣,只不過它們的值是在咱們調用函數的時候定義的,而非在函數自己內賦值。
參數在函數定義的圓括號對內指定,用逗號分割。當咱們調用函數的時候,咱們以一樣的方式提供值。注意咱們使用過的術語——函數中的參數名稱爲形參而你提供給函數調用的值稱爲實參。
使用參數形參
def printMax(a, b): if a > b: print a, 'is maximum' else: print b, 'is maximum' printMax(3, 4) # directly give literal values x = 5 y = 7 printMax(x, y) # give variables as arguments
結果爲:
4 is maximum 7 is maximum
這裏,咱們定義了一個稱爲printMax
的函數,這個函數須要兩個形參,叫作a
和b
。咱們使用if..else
語句找出二者之中較大的一個數,而且打印較大的那個數。
在第一個printMax
使用中,咱們直接把數,即實參,提供給函數。在第二個使用中,咱們使用變量調用函數。printMax(x, y)
使實參x
的值賦給形參a
,實參y
的值賦給形參b
。在兩次調用中,printMax函數的工做徹底相同。
局部變量
當你在函數定義內聲明變量的時候,它們與函數外具備相同名稱的其餘變量沒有任何關係,即變量名稱對於函數來講是局部的。這稱爲變量的做用域。全部變量的做用域是它們被定義的塊,從它們的名稱被定義的那點開始。
使用局部變量
def func(x): print 'x is', x x = 2 print 'Changed local x to', x x = 50 func(x) print 'x is still', x
結果:
x is 50 Changed local x to 2 x is still 50
在函數中,咱們第一次使用x
的值的時候,Python使用函數聲明的形參的值。
接下來,咱們把值2
賦給x
。x
是函數的局部變量。因此,當咱們在函數內改變x
的值的時候,在主塊中定義的x
不受影響。
在最後一個print
語句中,咱們證實了主塊中的x
的值確實沒有受到影響。
使用global語句
若是你想要爲一個定義在函數外的變量賦值,那麼你就得告訴Python這個變量名不是局部的,而是全局的。咱們使用global
語句完成這一功能。沒有global
語句,是不可能爲定義在函數外的變量賦值的。
你可使用定義在函數外的變量的值(假設在函數內沒有同名的變量)。然而,我並不鼓勵你這樣作,而且你應該儘可能避免這樣作,由於這使得程序的讀者會不清楚這個變量是在哪裏定義的。使用global
語句能夠清楚地代表變量是在外面的塊定義的。
def func(): global x print 'x is', x x = 2 print 'Changed local x to', x x = 50 func() print 'Value of x is', x
結果:
x is 50 Changed local x to 2 Value of x is 2
global
語句被用來聲明x
是全局的——所以,當咱們在函數內把值賦給x
的時候,這個變化也反映在咱們在主塊中使用x
的值的時候。
你可使用同一個global
語句指定多個全局變量。例如global x, y, z
。
默認參數值
使用默認參數值
def say(message, times = 1): print message * times say('Hello') say('World', 5)
輸出結果爲:
Hello WorldWorldWorldWorldWorld
DocStrings
Python有一個很奇妙的特性,稱爲 文檔字符串 ,它一般被簡稱爲 docstrings
使用DocStrings
def printMax(x, y): '''Prints the maximum of two numbers. The two values must be integers.''' x = int(x) # convert to integers, if possible y = int(y) if x > y: print x, 'is maximum' else: print y, 'is maximum' printMax(2.3,3.5) print printMax.__doc__
輸出結果:
3 is maximum Prints the maximum of two numbers. The two values must be integers.
在函數的第一個邏輯行的字符串是這個函數的 文檔字符串 。注意,DocStrings也適用於模塊和類,咱們會在後面相應的章節學習它們。
文檔字符串的慣例是一個多行字符串,它的首行以大寫字母開始,句號結尾。第二行是空行,從第三行開始是詳細的描述。 強烈建議 你在你的函數中使用文檔字符串時遵循這個慣例。
你可使用__doc__
(注意雙下劃線)調用printMax
函數的文檔字符串屬性(屬於函數的名稱)。請記住Python把 每同樣東西 都做爲對象,包括這個函數。咱們會在後面的類一章學習更多關於對象的知識。
若是你已經在Python中使用過help()
,那麼你已經看到過DocStings的使用了!它所作的只是抓取函數的__doc__
屬性,而後整潔地展現給你。你能夠對上面這個函數嘗試一下——只是在你的程序中包括help(printMax)
。記住按q退出help
。
自動化工具也能夠以一樣的方式從你的程序中提取文檔。所以,我 強烈建議 你對你所寫的任何正式函數編寫文檔字符串。隨你的Python發行版附帶的pydoc命令,與help()
相似地使用DocStrings。
第9章 數據結構
含有0個或1個項目的元組。
一個空的元組由一對空的圓括號組成,如myempty = ()
。然而,含有單個元素的元組就不那麼簡單了。你必須在第一個(惟一一個)項目後跟一個逗號,這樣Python才能區分元組和表達式中一個帶圓括號的對象。即若是你想要的是一個包含項目2
的元組的時候,你應該指明singleton = (2 , )
。
注意,你只能使用不可變的對象(好比字符串)來做爲字典的鍵,可是你能夠不可變或可變的對象做爲字典的值。基本說來就是,你應該只使用簡單的對象做爲鍵。
鍵值對在字典中以這樣的方式標記:d = {key1 : value1, key2 : value2 }
。注意它們的鍵/值對用冒號分割,而各個對用逗號分割,全部這些都包括在花括號中。
記住字典中的鍵/值對是沒有順序的。若是你想要一個特定的順序,那麼你應該在使用前本身對它們排序。
字典是dict
類的實例/對象
序列的兩個主要特色是索引操做符和切片操做符。索引操做符讓咱們能夠從序列中抓取一個特定項目。切片操做符讓咱們可以獲取序列的一個切片,即一部分序列。
索引一樣能夠是負數,在那樣的狀況下,位置是從序列尾開始計算的。所以,shoplist[-1]
表示序列的最後一個元素而shoplist[-2]
抓取序列的倒數第二個項目。
切片操做符是序列名後跟一個方括號,方括號中有一對可選的數字,並用冒號分割。注意這與你使用的索引操做符十分類似。記住數是可選的,而冒號是必須的。
切片操做符中的第一個數(冒號以前)表示切片開始的位置,第二個數(冒號以後)表示切片到哪裏結束。若是不指定第一個數,Python就從序列首開始。若是沒有指定第二個數,則Python會中止在序列尾。注意,返回的序列從開始位置 開始 ,恰好在 結束 位置以前結束。即開始位置是包含在序列切片中的,而結束位置被排斥在切片外。
這樣,shoplist[1:3]
返回從位置1開始,包括位置2,可是中止在位置3的一個序列切片,所以返回一個含有兩個項目的切片。相似地,shoplist[:]
返回整個序列的拷貝。
你能夠用負數作切片。負數用在從序列尾開始計算的位置。例如,shoplist[:-1]
會返回除了最後一個項目外包含全部項目的序列切片。
使用Python解釋器交互地嘗試不一樣切片指定組合,即在提示符下你可以立刻看到結果。序列的神奇之處在於你能夠用相同的方法訪問元組、列表和字符串。
startwith方法是用來測試字符串是否以給定字符串開始
in操做符用來檢驗一個給定字符串是否爲另外一個字符串的一部分
find方法用來找出給定字符串在另外一個字符串中的位置,或者返回-1以表示找不到子字符串
str類也有以一個做爲分隔符的字符串join
序列的項目的整潔的方法,它返回一個生成的大字符串。
rjust方法來獲得一個按必定寬度右對齊的字符串
你能夠經過建立一個file
類的對象來打開一個文件,分別使用file
類的read
、readline
或write
方法來恰當地讀寫文件。對文件的讀寫能力依賴於你在打開文件時指定的模式。最後,當你完成對文件的操做的時候,你調用close
方法來告訴Python咱們完成了對文件的使用。
模式能夠爲讀模式('r'
)、寫模式('w'
)或追加模式('a'
)。事實上還有多得多的模式可使用,你可使用help(file)
來了解它們的詳情。
注意,由於從文件讀到的內容已經以換行符結尾,因此咱們在print
語句上使用逗號來消除自動換行。最後,咱們用close
關閉這個文件
儲存器
Python提供一個標準的模塊,稱爲pickle
。使用它你能夠在一個文件中儲存任何Python對象,以後你又能夠把它完好無損地取出來。這被稱爲 持久地 儲存對象。
還有另外一個模塊稱爲cPickle
,它的功能和pickle
模塊徹底相同,只不過它是用C語言編寫的,所以要快得多(比pickle
快1000倍)。你可使用它們中的任一個,而咱們在這裏將使用cPickle
模塊。記住,咱們把這兩個模塊都簡稱爲pickle
模塊。
爲了在文件裏儲存一個對象,首先以寫模式打開一個file
對象,而後調用儲存器模塊的dump
函數,把對象儲存到打開的文件中。這個過程稱爲 儲存 。
接下來,咱們使用pickle
模塊的load
函數的返回來取回對象。這個過程稱爲 取儲存 。
異常處理方法
try..except
引起異常raise
try..finally
exec語句用來執行儲存在字符串或文件中的Python語句。例如,咱們能夠在運行時生成一個包含Python代碼的字符串,而後使用exec
語句執行這些語句
eval語句用來計算存儲在字符串中的有效Python表達式
pop是刪除最後一個元素