今天主要學習的是Basics剩余部分、Operators and Expressions、Control flow。
Basics
繼昨天后,基礎內容學習了變量以及變量的命名規則,Python的變量沒有C#復雜,不需要聲明或定義數據類型,要求首字母必須大小寫字母或者下劃線_,其他可用大小寫字母、下劃線、數字,并且區分大小寫。學習了數據類型對象概念,以及如何通過PyCharm寫程序。
邏輯行和物理行:前者是計算機看到的,后者是我們看到所輸入的,每一物理行都有相一致的邏輯行。Python里分號“;”(semicolon)表示一個分句,表明邏輯行的結束,但是作者大力推薦在每一個物理單行描述最大化的邏輯行,也就是永遠不用分號。如果一行代碼過長,可以分段成多行,用反斜線分割。當然也有隱性的行連接可不用反斜線,比如邏輯行是括號、方括號、花括號等開頭時。
s='This is a string.\
This continues the string.'
print(s)
縮進(Indentation):行首用whitespace是重要的,包括空格鍵和tab鍵。不正確的縮進會導致程序出錯,這些在控制流中會用的多。建議用4個空格或一個tab。
Operators and Expressions
1、operators
學習各種操作符包括:+(plus)、-(minus)、*(multiply)、**(power)、/(divide)、//(divide and floor)、%(modulo)、<<(left shift)、>>(right shift)、&(bit-wise AND)、|(bit-wise OR)、^(bit-wise XOR)、~(bit-wise invert)、<、>、<=、>=、==、!=、not、and、or
由于以前學過,這塊理解還是容易的。記得以前被這些搞的頭大了,尤其是二進制位移。
負數的二進制是反碼加碼。在不溢出的情況下,左移n位后的值等于原值乘以2的n次方。例如 4?<<2?就是16,二進制就是?00000100 <<00010000,-4<<2?就是-16 ,二進制就是 11111100 <<11110000。右移n位后的值等于原值除以2的n次方的商,例如 4?>>2?就是1,二進制就是?00000100 >>00000001,-4>>2?就是-1?,二進制就是 11111100 <<11111111
另外“//”的用法要注意,返回的值是比商小的那個整數,因此13//3=4,-13//4=-5,不知道這個實際運用中有什么用處。
2、shortcut for math operation and assignment
var=var operation expression 就相當于 var operation=expression
例如:a=a*3? 相當于 a*=3
3、Evaluation Order
計算順序優先級,最好用括號等簡單明了,但是不要redundant(多余的),同級計算從左到右。
Control Flow
Python里常用的有三個控制流,if、for、while,沒有switch。以if語句為例:
if 條件:
執行語句
elif 條件:
執行語句
else:
執行語句
break用于跳出for或者while循環,其他塊將不繼續執行。
continue用于跳出剩余,重新執行循環。
感覺時間不夠用,效率不夠高。