01 數據類型
在 Python 中,能夠直接處理的數據類型有以下幾種:
整數
Python 可以直接處理任意大小的整數,包含負整數。 十進制表示整數和數學上一樣;十六進制表示整數需要在前面加 0x , 后面用十六進制表示。
浮點數
浮點數即小數,之所以叫浮點數,是因為按照科學計數法表示時,一個浮點數的小數點位置是可變的。 整數和浮點數在計算機內部的儲存方式是不同的,整數運算永遠是精確的( 除法也是精確的!) ,而浮點數可能會有四舍五入的誤差。
字符串
字符串是以 ' ' ," " , 括起來的任意文本。
布爾值
布爾值和布爾代數的表示完全一致,一個布爾值只有 True、False 兩種值;Python 中可以直接使用 True、False 表示布爾值(注意大小寫),也可以通過布爾運算計算出來,布爾值可以用 and (與) 、or (或)、not(非)運算 。
空值
空值是 Python 里一個特殊的值,用 None 表示。 None 不能理解為 0 ,因為 0 是有意義的,而 None 是一個特殊的空值。
此外, Python 還提供了列表、字典、等多種數據類型; 還允許創建自己定義的數據類型, 后面繼續學習。
練習:
1.計算十進制整數和十六進制整數之和, 自己隨便相加。 (Python 可以直接進行操作!)
2.用字符串表示一串字符。 例如: Learn Python in 2017.6
3.計算表達式的布爾值。例如: 99>100, 0xff == 255 。
使用 print 命令打印
02 print 語句
print語句可以向屏幕上輸出指定的文字。比如輸出'hello, world',用代碼實現如下:
>>> print 'Hello,World'
- 在 Python 交互式環境下編寫代碼時, >>> 是 Python 解釋器的提示符,而不是代碼。
- 在自己寫的時候不要加 >>> 。
print 語句也可以跟多個字符串, 用逗號隔開,就可以連成一串輸出:
>>> print 'one', 'two', 'three'
print 會一次打印每個字符串,遇到逗號 '','' 會輸出一個空格。 從而輸出:
one two three
03 Python 的注釋
Python 中使用 # 來注釋代碼。
04 Python 中什么是變量
Python 程序中的變量, 是用一個變量名表示,變量名必須是 大小寫英文、數字和下劃線(_)的組合,且不能用數字開頭。
在 Python 中 = 號是賦值語句,可以把任意數據類型賦值給變量,同一個變量可以反復賦值, 而且可以是不同類型的變量。例如:
x = 100 # x 是整數
print x
x = 'learn python' # x 為字符串
print x
這種變量本身類型不固定的語言稱為動態語言,與之對應的是靜態語言;靜態語言在定義變量時必須指定變量類型,否則在賦值的時候就會出錯、像Java、C/C++ 這樣的靜態語言在賦值前都要指定變量類型。
練習:
等差數列可以定義為每一項與它的前一項的差等于一個常數,可以用變量 a1 表示等差數列的第一項, 用 d 表示公差,請計算數列 1 4 7 10 13 16 19 ...
前 100 項的和。
a1 = 1
d = 3
n = 100
an = a1 + (n-1) * d
s = n * a1 + n * (n-1) * d/2
print s
05 Python 中定義字符串
當然字符串都知道是怎么定義的了。 這里主要提及到 ' ' 和 '' '' 在某些時候互相包含,或者同時存在的情況。如果同時存在, 那么就要用轉義字符 \ 來表示一個普通的字符,不代表字符串的起始。
'Jane said \" I\' m OK\"!'
其他轉義字符:
\n 表示換行
\t 表示一個制表符
\\ 表示 \ 字符本身
等等......
06 Python 中 raw 字符串與多行字符串
為了避免一個字符串里包含了很多需要轉義的字符, 對每一個都進行轉義那么就很麻煩, Python 中, 可以在前面加一個 r , 表示這是一個 raw 字符串,里面需要轉義的字符就不用轉義了; 但是 r'...' 表示法不能表示多行字符串, 也不能表示包含 ' 和 '' 的字符串 !
如果要表示多行, 就用 '''......''' 來表示。( 也可以在多行字符串前面加 r , 把這個多行變成一個 raw 字符串。 )
07 Python 中的 Unicode 字符串
當然字符串還會涉及一個編碼的問題。 一些關于 Unicode 的歷史,這里就不說了。
在 Python 中后來添加了對 Unicode 的支持, 以 Unicode 表示的字符串用 u'...'
表示, 例如 :
print u'我的世界'
注意: 不加 u 中文就不能正常顯示。 所以 Unicode 字符串除了多了一個 u
之外,與普通的字符串沒什么區別。 轉義字符和多行字符串表示法,raw + 多行 仍然有效。
如果中文字符串在 Python 環境下遇到 UnicodeDecodeError, 這是因為 .py 文件保存的格式有問題。可以在第一行添加注釋。
# -*- coding: utf-8 -*-
這樣的作用就是告訴 Python 解釋器,用 UTF-8 編碼讀取的源代碼,然后用 Notepad++ 或者其他 另存為...并選擇 UTF-8 格式保存。
07 Python 中整數和浮點數
Python 中對整數和浮點數的運算跟數學中的四則運算規則完全一致, 但和數學運算不同的地方是, Python 的整數運算結果仍然是整數, 浮點數運算結果仍然是浮點數。但整數和浮點數的運算結果就變成了浮點數。
為什么要區分整數和浮點數?
計算機的無法表示無限循環小數。
小練習:
請計算 2.5 + 10 / 4 ,并解釋計算結果為什么不是期望的 5.0 ?
請修復上述運算,使得計算結果是 5.0
print 2.5 + 10.0 / 4
08 Python 中的布爾類型
布爾值只有 2 種: True & False 。但是在布爾類型運算有以下幾種:
與運算:
兩個布爾值都為 True 時, 計算結果才為 True。
True and True # ==> True
True and False # ==> False
False and True # ==> False
False and False # ==> False
或運算:
一個布爾值為 True 時, 計算結果才為 True。
True or True # ==> True
True or False # ==> True
False or True # ==> True
False or False # ==> False
非運算:
把 True 變為 False, 或者把 False 變為 True。
not True # ==> False
not False # ==> True
在 Python 中把 0
、 空字符串''
和 None
看成是 False,其他數值和非空字符串都看成是 True。
Python解釋器在做布爾運算時,只要能提前確定計算結果,它就不會往后算了,直接返回結果; 這涉及到 Python 中 and 和 or 運算的一條重要法則短路計算。