學習目標:
- 使用math模塊中的函數解決數學問題
- 表示和處理字符串和字符
- 使用ASCII和Unicode對字符編碼
- 使用ord函數獲取一個字符的數值編碼以及使用chr函數將一個數值編碼轉換成一個字符
- 使用轉義序列表示特殊字符
- 調用帶參數end的print函數
- 使用str函數將數字轉換成字符串
- 使用運算符+來連接字符串
- 從鍵盤讀取字符串
- 介紹對象和方法
- 使用format函數格式化數字和字符串
- 繪制各種不同的圖形
- 繪制帶顏色和字體的圖形
一、常見的Python函數
關鍵點:Python提供了許多有用的用于解決常見程序設計任務的函數。
????????函數是完成一個特殊任務的一組語句。Python 語言和其他程序設計語言一樣,都提供了一個函數庫。前面已經介紹過eval、input、 print 和int函數。這些都是內置函數并且在Python解釋器里均可用。所以使用這些函數你不用導入任何模塊。除此之外,你還可以使用abs、max、min、pow和round等內置函數,如表所示。
我們常常為解決數學問題創建一些程序。Python的math模塊提供了許多數學函數:
兩個數學常量pi和e也定義在math模塊中。我們可以通過使用math.pi和math.e來訪問它們。
????????你可以使用數學函數解決許多計算問題。例如:已知三角形的三條邊,你可以使用下面的公式計算出三角形的三個角。
二、字符串和字符
關鍵點: 字符串是一連串的字符。 Python處理字符和字符串的方式是一樣的 。
在Python里,你除了可以處理數值,還可以處理字符串。一個字符串就是一串包括文本和數字的字符。字符串必須被括在一對單引號(')或者雙引號( " )里。Python沒有字符數據類型。一個字符的字符串代表一個字符。例如:
letter = 'A' # Same as Tetter = "A"
numChar = '4' # Same as numChar = "4"
message = "Good morning" # Same as message = 'Good morning'
????????第一條語句將只有字符A的字符串賦值給變量letter。第二條語句將只有數字字符4的字符串賦值給變量number。第三條語句將字符串“goodmorning”賦值給變量message。
2.1、?ASCII 碼
????????計算機在內部是使用二進制數的。在計算機里,一個字符被存儲為一連串的0和1。把一個字符映射成它對應的二進制被稱為字符編碼。對字符編碼的方式有很多。編碼表定義編碼字符的方式。流行的編碼標準是ASCII (美國信息交換標準代碼),它是一個比特的編碼表,足以表示所有的大小寫字母、數字、標點符號以及控制字符。ASCII 碼使用0到127來表示字符。
2.2、統一碼
????????Python也支持統一碼。統一碼是一種編碼表,它能表示國際字符。ASCII 碼表是統一碼的子集。統一碼由統一碼協會( Unicode Consortium)建立,支持世界上各種語言所寫的文本進行交換、處理和展示。一個統一碼以“\u” 開始,后面緊跟四個十六進制數字,它們從“\u0000到\uFFFF"。例如,“welcome”被翻譯成中文后就是兩個字符:“歡”和“迎”。這兩個字符的統一碼表示是“\u6B22\u8FCE"。
2.3、函數ord和chr
????????Python提供ord ( ch)函數來返回字符ch的ASCII碼,用chr ( code)函數返回code所代表的字符。例如:
ch = 'a'
ord(ch) # 97
chr(98) # b
????????a的ASCII碼值是97,比A (65)的編碼值要大。小寫字母的ASCII碼是從a開始,然后是b、c依次類推直到z的連續整數。大寫字母也是一樣的。任何小寫字母的ASCII碼與它對應的大寫字母的ASCII碼的差值都一樣:32。這是一個很有用的處理字符的特性。
2.4、轉義序列
????????Python 使用一種特殊的符號來表示特殊的字符,如表3-3所示。這種由反斜杠“\”和其后緊接著的字母或數字組合構成的特殊符號被稱為轉義序列。
?2.5、不換行打印
當使用print函數時,它會自動打印一個換行符,這會導致輸出提前進入下一行。如果你并不想在使用print函數后換行,可以使用下面的語法在調用print函數時傳遞一個特殊的參數end=“anyendingstring”:
print(item, end = "anyendingstring")
例如,下面的代碼:
print("AAA", end = ' ')
print("BBB", end = '')
print("CCC",end = '***')
print("DDD", end = '***')
顯示:
AAA BBBCCC***DDD***
2.6、函數str
????????str函數可以將一個數字轉換成一個字符串。
s = str(3.4)
s = str(3)
2.7、字符串連接操作
你可以使用運算符+來對兩個數字做加法。你也可以使用+運算符來連接兩個字符串。
msg = "Hello" + "Python"
2.8、從控制臺讀取字符串
為了從控制臺讀取一個字符串,可以使用input函數。例如:下面的代碼從鍵盤讀取了三個字符串:
s1 = input("Enter a string: ")
s2 = input("Enter a string: ")
s3 = input("Enter a string: ")print("s1?is" + s1)
print("s2 is" + s2)
print("s3 is" + s3)
三、對象和方法簡介
關鍵點:在Python中,所有的數據(包括數字和字符串)實際都是對象。
????????在Python中,一個數字是一個對象,一個字符串是一個對象,每個數據都是對象。同一類型的對象都有相同的類型。你可以使用id函數和type函數來獲取關于對象的一些信息。
n = 3
id(n)
type(n)輸出:
2596503748912
<class 'int'>
????????當執行程序的時候,Python 會自動為對象的id賦一個獨特的整數。在程序的執行過程中,對象的id不會改變。然而,每當執行程序時,Python 都可能會賦一個不同的id。Python 按照對象的值決定對象的類型。顯示數字對象n的id,輸出的第1行顯示的是Python已經被賦值給對象的id,而第2行顯示它的類型。
????????在Python中,一個對象的類型由類決定。例如:字符串的類是str ,整數的類是int ,浮點數的類是float。術語“class”來自面向對象程序設計。在Python中,類(class) 和類型(type)是一樣的意思。
注意:?id和type函數在程序設計里很少用到,但是它們是學習更多有關對象的好工具。
Python中的變量實際上是一個對象的引用。
圖3-2顯示前面的代碼中變量和對象之間的關系。
????????第1行的語句“n=3”是將3賦值給了n,實際上是將3賦值給了一個int對象,這個對象是由變量n引用的。
注意:對于n=3,我們可以說n是一個整型變量,其值為3。嚴格說來,n是一個引用了int對象的變量,而這個int對象的值為3。簡單講,說n是一個值為3的整型變量也可以。
????????你可以在一個對象上執行操作。操作是用函數定義的。Python 中對象所用的函數被稱為方法。方法只能從一個特定的對象里調用。例如:字符串類型里有像lower()和upper()這樣的方法,它們返回大寫字母或小寫字母寫成的新字符串。
????????注意:如果你在Eclipse 上使用Python, Eclipse會自動在input函數輸入的字符串后追加\r。因此,你應該用strip() 方法移除字符\r,如:
s = input("Enter a string").strip()
四、格式化數字和字符串
關鍵點:你可以使用format函數返回格式化的字符串。
????????調用這個函數的語法是:
format(item,format-specifier)
????????上面的item是數字或者字符串,而格式說明符( format-specifier) 指定條目item的格式。此函數返回一個字符串。