MIT計算機科學及編程導論02課學習筆記

 

課程重點:分支、條件和循環
一、基礎數據類型:數字、字符串(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爲最小值

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章