在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ 運算符與表達式
備份腳本——版本四
使用 <strong>init</strong> 方法
控制流
異常
表 15.1 一些特殊的方法
如何創(chuàng)建你自己的模塊
使用字典
前言
使用默認參數值
表 5.1 運算符與它們的用法
解決問題——編寫一個 Python 腳本
使用 for 語句
使用 continue 語句
使用元組輸出
對象與參考
使用函數形參
使用默認參數值
使用 if 語句
如何引發(fā)異常
使用源文件
使用對象的方法
使用表達式
定義函數
使用局部變量
使用列表綜合
使用 sys.argv
使用 lambda 形式
使用 global 語句
備份腳本——版本二
使用列表
使用 while 語句
備份腳本——版本一
使用元組
輸入/輸出
使用類與對象的變量
使用 sys 模塊
表 5.2 運算符優(yōu)先級
處理異常
使用 break 語句
函數
基本概念
運算符與表達式
介紹
使用文件
使用序列
接下來學習什么?
使用帶提示符的 Python 解釋器
使用 DocStrings
使用字面意義上的語句
最初的步驟
數據結構
儲存與取儲存
使用 dir 函數
模塊
Python 標準庫
備份腳本——版本三(不工作?。?/span>
創(chuàng)建一個類
安裝 Python
面向對象的編程
使用模塊的<strong>name</strong>
使用變量和字面意義上的常量
使用繼承

運算符與表達式

簡介

你編寫的大多數語句(邏輯行)都包含表達式。一個簡單的表達式例子如 2 + 3。一個表達式可以分解為運算符和操作數。

運算符 的功能是完成某件事,它們由如+這樣的符號或者其他特定的關鍵字表示。運算符需要數據來進行運算,這樣的數據被稱為 操作數 。在這個例子中,2 和 3 是操作數。

運算符

我們將簡單瀏覽一下運算符和它們的用法:

技巧

你可以交互地使用解釋器來計算例子中給出的表達式。例如,為了測試表達式 2 + 3,使用交互式的帶提示符的 Python 解釋器:


    >>> 2 + 3
    5
    >>> 3 * 5
    15
    >>>

表 5.1 運算符與它們的用法

運算符 名稱 說明 例子
+ 兩個對象相加 3 + 5得到8。'a' + 'b'得到'ab'。
- 得到負數或是一個數減去另一個數 -5.2得到一個負數。50 - 24得到26。
* 兩個數相乘或是返回一個被重復若干次的字符串 2 * 3得到6。'la' * 3得到'lalala'。
** 返回x的y次冪 3 ** 4得到81(即3 * 3 * 3 * 3)
/ x除以y 4/3得到1(整數的除法得到整數結果)。4.0/3或4/3.0得到1.3333333333333333
// 取整除 返回商的整數部分 4 // 3.0得到1.0
% 取模 返回除法的余數 8%3得到2。-25.5%2.25得到1.5
<< 左移 把一個數的比特向左移一定數目(每個數在內存中都表示為比特或二進制數字,即0和1) 2 << 2得到8?!?按比特表示為10
>> 右移 把一個數的比特向右移一定數目 11 >> 1得到5?!?1按比特表示為1011,向右移動1比特后得到101,即十進制的5。
& 按位與 數的按位與 5 & 3得到1。
| 按位或 數的按位或 5 | 3得到7。
^ 按位異或 數的按位異或 5 ^ 3得到6
~ 按位翻轉 x的按位翻轉是-(x+1) ~5得到6。
< 小于 返回x是否小于y。所有比較運算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價。注意,這些變量名的大寫。 5 < 3返回0(即False)而3 < 5返回1(即True)。比較可以被任意連接:3 < 5 < 7返回True。
> 大于 返回x是否大于y 5 > 3返回True。如果兩個操作數都是數字,它們首先被轉換為一個共同的類型。否則,它總是返回False。
<= 小于等于 返回x是否小于等于y x = 3; y = 6; x <= y返回True。
>= 大于等于 返回x是否大于等于y x = 4; y = 3; x >= y返回True。
== 等于 比較對象是否相等 x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。
!= 不等于 比較兩個對象是否不相等 x = 2; y = 3; x != y返回True。
not 布爾“非” 如果x為True,返回False。如果x為False,它返回True。 x = True; not y返回False。
and 布爾“與” 如果x為False,x and y返回False,否則它返回y的計算值。 x = False; y = True; x and y,由于x是False,返回False。在這里,Python不會計算y,因為它知道這個表達式的值肯定是False(因為x是False)。這個現象稱為短路計算。
or 布爾“或” 如果x是True,它返回True,否則它返回y的計算值。 x = True; y = False; x or y返回True。短路計算在這里也適用。

運算符優(yōu)先級

如果你有一個如 2 + 3 * 4 那樣的表達式,是先做加法呢,還是先做乘法?我們的中學數學告訴我們應當先做乘法——這意味著乘法運算符的優(yōu)先級高于加法運算符。

下面這個表給出 Python 的運算符優(yōu)先級,從最低的優(yōu)先級(最松散地結合)到最高的優(yōu)先級(最緊密地結合)。這意味著在一個表達式中,Python 會首先計算表中較下面的運算符,然后在計算列在表上部的運算符。

下面這張表(與 Python 參考手冊中的那個表一模一樣)已經顧及了完整的需要。事實上,我建議你使用圓括號來分組運算符和操作數,以便能夠明確地指出運算的先后順序,使程序盡可能地易讀。例如,2 + (3 4)顯然比 2 + 3 4 清晰。與此同時,圓括號也應該正確使用,而不應該用得過濫(比如 2 + (3 + 4))。

表 5.2 運算符優(yōu)先級

運算符 描述
lambda Lambda表達式
or 布爾“或”
and 布爾“與”
not x 布爾“非”
in,not in 成員測試
is,is not 同一性測試
<,<=,>,>=,!=,== 比較
| 按位或
^ 按位異或
& 按位與
<<,>> 移位
+,- 加法與減法
*,/,% 乘法、除法與取余
+x,-x 正負號
~x 按位翻轉
** 指數
x.attribute 屬性參考
x[index] 下標
x[index:index] 尋址段
f(arguments...) 函數調用
(experession,...) 綁定或元組顯示
[expression,...] 列表顯示
{key:datum,...} 字典顯示
'expression,...' 字符串轉換

其中我們還沒有接觸過的運算符將在后面的章節(jié)中介紹。

在表中列在同一行的運算符具有 相同優(yōu)先級 。例如,+和-有相同的優(yōu)先級。

計算順序

默認地,運算符優(yōu)先級表決定了哪個運算符在別的運算符之前計算。然而,如果你想要改變它們的計算順序,你得使用圓括號。例如,你想要在一個表達式中讓加法在乘法之前計算,那么你就得寫成類似(2 + 3) * 4的樣子。

結合規(guī)律

運算符通常由左向右結合,即具有相同優(yōu)先級的運算符按照從左向右的順序計算。例如,2 + 3 + 4 被計算成(2 + 3) + 4。一些如賦值運算符那樣的運算符是由右向左結合的,即 a = b = c 被處理為 a = (b = c)。

表達式

使用表達式

例 5.1 使用表達式


    #!/usr/bin/python
    # Filename: expression.py

    length = 5
    breadth = 2
    area = length * breadth
    print 'Area is', area
    print 'Perimeter is', 2 * (length + breadth)

(源文件:code/expression.py

輸出


    $ python expression.py
    Area is 10
    Perimeter is 14

它如何工作

矩形的長度與寬度存儲在以它們命名的變量中。我們借助表達式使用它們計算矩形的面積和邊長。我們表達式 length breadth 的結果存儲在變量 area 中,然后用 print 語句打印。在另一個打印語句中,我們直接使用表達式 2 (length + breadth)的值。

另外,注意 Python 如何打印“漂亮的”輸出。盡管我們沒有在'Area is'和變量 area 之間指定空格,Python 自動在那里放了一個空格,這樣我們就可以得到一個清晰漂亮的輸出,而程序也變得更加易讀(因為我們不需要擔心輸出之間的空格問題)。這是 Python 如何使程序員的生活變得更加輕松的一個例子。

概括

我們已經學習了如何使用運算符、操作數和表達式——這些使任何程序的基本組成部分。接下來,我們將學習如何通過語句在我們的程序中使用這些部分。

上一篇:數據結構下一篇:使用字典