天天看點

python表達式_Python的表達式寫法

Python的表達式寫法與C/C++類似。隻是在某些寫法有所差别。主要的算術運算符與C/C++類似。+表示加法或者取正,-表示減法或者取負, * 表示乘法,/表示除法,//表示整除, * * 乘方, ~表示取補, %表示取模。>>, <<表示右移和左移。&, |, ^表示二進制的AND, OR, XOR運算。>, <, ==, !=, <=, >=用于比較兩個表達式的值,分别表示大于、小于、等于、不等于、小于等于、大于等于。在這些運算符裡面,~, |, ^, &, <<, >>必須應用于整數。

Python使用and, or, not表示邏輯運算。

is, is not用于比較兩個變量是否是同一個對象。in, not in用于判斷一個對象是否屬于另外一個對象。

Python支援“清單推導式”(list comprehension),比如計算0-9的平方和:

>>> sum(x * x for x in range(10))

285

Python使用lambda表示匿名函數。匿名函數體隻能是表達式。比如:

>>> add=lambda x, y : x + y

>>> add(3,2)

5

Python使用y if cond else x表示條件表達式。意思是當cond為真時,表達式的值為y,否則表達式的值為x。相當于C++和Java裡的cond?y:x。

Python區分清單(list)和元組兩種類型。 list的寫法是[1,2,3],而tuple的寫法是(1,2,3)。可以改變list中的元素,而不能改變tuple。在某些情況下,tuple的括号可以省略。tuple對于指派語句有特殊的處理。

Python使用'(單引号)和"(雙引号)來表示字元串。與Perl、 Unix Shell語言或者Ruby、Groovy等語言不一樣,兩種符号作用相同。一般地,如果字元串中出現了雙引号,就使用單引号來表示字元串;反之則使用雙引号。如果都沒有出現,就依個人喜好選擇。出現在字元串中的(反斜杠)被解釋為特殊字元,比如\n表示換行符。表達式前加r訓示Python不解釋字元 串中出現的\。這種寫法通常用于編寫正規表達式或者Windows檔案路徑。

Python支援清單切割(list slices),可以取得完整清單的一部分。支援切割操作的類型有str, bytes, list, tuple等。它的文法是...[left:right]或者...[left:right:stride]。

假定nums變量的值是[1, 3, 5, 7, 8, 13, 20],那麼下面幾個語句為真:

nums[2:5] == [5, 7, 8] 從下标為2的元素切割到下标為5的元素,但不包含下标為5的元素。

nums[1:] == [3, 5, 7, 8, 13, 20] 切割到最後一個元素。

nums[:-3] == [1, 3, 5, 7] 從最開始的元素一直切割到倒數第3個元素。

nums[:] == [1, 3, 5, 7, 8, 13, 20] 傳回所有元素。改變新的清單不會影響到nums。

nums[1:5:2] == [3, 7] 從下标為1的元素切割到下标為5的元素但不包含下标為5的元素,且步長為2。

繼續閱讀