課程重點:分支、條件和循環
一、基礎數據類型:數字、字符串(Numbers and strings)
數據值和數據類型(Value and type)
表達式(combine things in expressions)
表達式由運算對象和運算符組成
簡單的運算舉例:
3 * 'ab'= ' ababab ' 正確表達式
'a' + 'bcd'= 'abcd' 正確表達式
3 + 'ab' 錯誤表達式 靜態語義錯誤,不符合運算符要求的特定結構
Str(3) + 'ab' =3ab 正確表達式 類型轉換(type conversion),表示將數字3轉換爲字符串的類型
程序在運算前做了類型檢測,檢測到錯誤的運算對象類型,所以就會報錯
'a' < 3 返回結果 False 字符串與數字無法進行比較
4 < '3' 返回結果 True
'4' < '3' 返回結果 False
9/5 返回結果 1 整數做除法
9%5 返回結果 4 取餘數
3+4*5 返回結果 23 運算優先級,先乘後加(指數運算優於乘除,乘除優於加減)
(3+4)* 5 返回結果 35
以上例子就是表達式的概念
二、變量的概念(可以理解爲指針,將某個變量指向某個值)
變量可以有自己的值,這通過賦值語句來實現
例子 X=3 取變量名X,將等號後表達式的值綁定給該變量,也可以 X=3*5
表達式不僅僅是數,還可以是任意表達式
給變量賦值就相當於取某個變量名,然後創建一個變量名與值之間的連接或指針,將它理解爲指針
Y=15 給變量Y賦一個值是15
Z=X 變量語句將Z與X的值綁定 Z的指針將指向X的值,而不是X
變量的類型是什麼?
變量的類型繼承於其值 X=3 當前X的類型是整數
變量的類型隨着當前值的類型而改變
如是後面出現這樣的語句 X='abc' X的類型又變爲字符串
建議養成好的編程風格,不要隨意改變變量類型,以免跟自己製造不必要的麻煩
變量用在哪裏呢?
任何可以合法使用數據值的時候,都可以用變量
三、語句的概念
語句就是可以解釋的合法命令,例如 Print語名、賦值語句都是
#後的內容代表註釋信息,幫助看代碼的人理解代碼,編程時加入註釋信息是好的編程習慣
另一個好的編程習慣是:變量名選擇,變量名也相當於一種很好的註釋,儘量選擇有意義的
變量名是記錄數據的重要途徑,但有些是不能用的,如Print是保留命令
四、分支式程序(branching programs)
,
執行過程中,可以根據某差別結果改變指令順序,而判別通常是對某變量值進行的
例:判別X的奇偶性(下面的代碼可以看到條件語法)
X = 15
if (x/2) * 2 == X:
print 'Even'
else print 'Odd'
賦值語句,給X賦了一個值15,由於單個=號做爲賦值的給變量使用,所以下面的表達式中使用兩個=號來比較兩邊的值是否相等
冒號很重要,它定義“指令塊”的開始,表示將下面幾條指令看成一整塊,冒號表示開始,而回車表示結束,If將計算表達式的值
如果值爲真,它會計算一些語句,這些被執行的語句,表示在一個縮進的語句塊中,縮進取消,表示語句塊結束
如果差別爲假,程序會跳過上面的語句,執行這一條語句,冒號後面是判別爲假時執行的語句
If < 某種特定的判別式 > :
指令塊
else: 另一個指令塊
例:比較兩者的大小
Z = 'b'
If 'x'<z:
Print 'Hello'
Print 'Mom'
由於判斷的結果爲假,所以什麼都不執行了,返回結果爲空
Z = 'b'
If 'x'<z:
Print 'Hello'
Print 'Mom'
由於判斷的結果爲假,所以跳過了下面縮進的指令塊,跳到下一行與if同一層的指令塊並執行,所以返回結果爲‘Mom’
例:打印三個數中的最小值
X = 15
y = 5
Z = 11
Print X,Y,Z
If X < Y:
if X < Z : Print ' X is least'
else : Print ' Z is least '
else: 'y is least '
最後返回結果爲y是最小值,但是程序差別不夠完整,如果將Y=13,最後還是輸出Y爲最小值