1. 程式人生 > >Python全棧之路——第1話

Python全棧之路——第1話

-- 都是 tin pos 解釋型 error a long 反斜杠 約定

  python作為一門解釋型的編程語言,和c/c++等其他語言都或多或少有相通的地方,所以有語言基礎的話,學起來還是方便一些。所以我的筆記對於相對簡單的概念可能會選擇放過,但對自己記錄的東西我會力求完備。學習所用的系統為Ubuntu的Linux。

數和表達式

  除法運算有兩種,單斜杠和雙斜杠。

  a/b運算結果是浮點數。

1 >>>1/2
2 0
3 >>>1/1
4 1.0

  a//b執行整除運算,舍棄小數部分。

1 >>>1//2
2 0
3 >>>1//1
4 1
5 >>>5.0//2.4
6 2.0

  python與其他語言在除法運算和求模運算中有一個重要的區別,其整除運算無論正負都是向下圓整結果。因此在結果為負數的情況下,圓整後將離0更遠。

1 >>>10//3
2 3
3 >>>-10//3
4 -4
5 >>>10//-3
6 -4
7 >>>-10//-3
8 3

  求模運算與除法運算類似,也是向下圓整的機制。

1 >>>10%3
2 3
3 >>>-10%3
4 -2
5 >>>10%-3
6 2
7 >>>-10%-3
8 -1

不同於c/c++,Python中是沒有自增自減操作符的,例如i++,j--。但Python是有+=和-=的。

變量

  與其他一些語言不同,Python變量是沒有默認值的,因此使用變量前必須進行賦值。

  Python中所有變量都是可變的,沒有特定的“常量”類型,所以通過約定將變量名的所有字母大寫來表示“常量”,但其本質上依然是變量,可改變,所以在實際編程時需要多加註意才是。

cmath和復數

  Python標準庫提供了cmath來支持復數計算。

1 >>>import cmath
2 >>>cmath.sqrt(-1)
3 1j

  Python本身默認提供了對復數的支持。在表示復數時,只能用j,且j前必須有數字,即使是1,也需要標出。

1 >>>(1+3j)*(9+4j)
2 (-3+31j)

單引號、雙引號、三引號以及字符串轉義

  單引號與雙引號 其實是沒有差別的。同時支持單引號和雙引號一個方便的用處是,包含單引號的字符串可以用雙引號括起或是包含雙引號的字符串可以用單引號括起。

  更特殊的就是字符串中既有單引號,又有雙引號的情況,這是就需要用到三引號(既可以是三個單引號也可以是三個雙引號)。三引號支持跨越多行的字符串。

1 >>> print(‘‘‘This is a long string.It continues here.
2 ... And it‘s not over yet."hello,world"
3 ... Still here‘‘‘)
4 This is a long string.It continues here.
5 And its not over yet."hello,world"
6 Still here
7 >>> 

原始字符串

  原始字符串不以特殊方式處理反斜杠,用前綴r表示。

1 >>>print(rC:\nowhere)
2 C:\nowhere

  原始字符雖然在某些情況下很有用(如正則表達式)。但這也意味著用於執行轉義的反斜杠也將包含在最終的字符串中。

  另外,原始字符串不能以單個反斜杠結尾。但可以通過其他方法解決,如將反斜杠分開打印。

1 >>> print(r"This is illegal!\")
2   File "<stdin>", line 1
3     print(r"This is illegal!\")
4                               ^
5 SyntaxError: EOL while scanning string literal
6 >>> print(r‘C:\Program files\foo\bar‘‘\\)
7 C:\Program files\foo\bar\

Python全棧之路——第1話