其實一直猶豫要不要寫這么基礎的文章,其實很多東西都是相通的,我主學的是 Java 語言,跟 Python 同樣是面向對象的語言,但是還是有些東西的使用 Python 是有區別的,擔心自己弄混,所以還是寫篇文章記錄一下,一來方便以后自己查閱,二來也是想鞏固一下所學的知識。下面就針對 Python 的運算符和控制流進行講解,這里只介紹 Python 中比較獨特的部分,和其他語言類似的東西,比如加減乘除運算符就不在介紹。由于這篇文章是入門級別的文章,高手可直接跳過。
Python 中的運算符
1 . 求冪運算符
在 Java
中如果我們想對一個數進行求冪運算,我們可能要借助于 Math
庫中的 pow()
函數,但是在 Python
中我們可以使用兩個連續的 *
表示求冪運算。
a = 5 ** 2
print a
2 . //
運算符
可能很多人要說了,這個我認識,我打注釋經常用雙斜杠,可是很尷尬, Python
中的單行注釋符號為 #
,多行注釋可以使用 '''
,那么 //
是用來干嘛呢?用來求兩數相除的整數部分。
a = 10.0 // 3
print a
這個時候就會輸出 3.0
,也就是相除的整數部分,余數被忽略。
3 . & ,
| 運算符
這兩個運算符大家都認識, &
按位與 , |
按位或,下面來講講這兩個運算符的運算原理,看一個數 7&18
等于多少呢? 放到編譯器里運行一下試試吧
a = 7 & 18
print a
打印的結果為 2
,為什么呢?很簡單,我們首先需要將 7
和 18
轉換為 二進制, 7-> 00000111
18->00010010
, 然后將這兩個二進制進行與運算,什么是與運算呢?只需要記住兩個數同一位置上都為 1
的時候結果為1
,其他都為 0
即可。運算過程如下
很明顯結果是 2
,|
運算符和 &
運算步驟一樣,不過 |
運算過程中,兩個數同一位置上只要有一個是 1
,則結果就是 1
,可以自己去運算一下,這里就不在贅述了。
4 . >>,<<
運算符
第一眼看到這個符號,我的第一反應是遠遠大于和遠遠小于,這是是右移和左移的意思,左移和右移?怎么移?同樣的需要將十進制數轉化為二進制形式,然后進行左移和右移,其實左移一次等于是讓一個數乘以 2
,左移n
次就是讓一個數乘以 2
的 n
次,右移則相反,是除以2
的 'n' 次方。
# coding=utf-8
# 左移2位
a = 5 << 2
print a
# 右移三位
b = 32 >> 3
print b
輸出結果為
20
4
5 . not, and, or
運算符
這三個是邏輯運算符,在其他的編程語言中如果你想表示或與非,你可能會使用這樣的格式 ||,&&,!
,但是在 Python
中需要使用 or,and,not
。
a = True
b = False
c = not a
d = a and b
e = a or b
print c
print d
print e
結果依次為 False False True
6 . 我們不在介紹運算符,來看看運算符的優先級,我做了個圖
越靠近魚頭,等級越高。
Python 控制流
所謂控制流,無非也就是 if..else,while,for
等。基本的使用大家都會,不過 Python
總有它特殊的地方,下面來看看。
1 . if...else
if
判斷語句有一個值得介紹的地方,如下所示
a = 10
if 5 <= a <= 10:
print a
在 Java
語言中,你恐怕要這么寫
int a = 10;
if(a >= 5 && a <= 10){
System.out.println(a);
}
2 . while , for
唯一需要記住的一點就是,在 Python
中,無論是 for
還是 while
,都可以像 if
一樣,在后面加 else
語句,else
語句在循環語句跳出來之后會執行。
a = False
while a:
print ("I am while")
else:
print ("I am else")
for i in range(1, 2):
print ("I am for")
else:
print ("I am else")
小提示: range() 函數可以設置步數間隔,什么意思?自己去試試吧~