好程式設計師Python教程系列分享之Python語言元素之運算子

好程式設計師發表於2020-04-24

  好程式設計師 Python教程系列分享之 Python語言元素之運算子 Python支援多種運算子,我們先用一個表格為大家列出幾乎所有的運算子,然後再選擇一些比較重要的運算子為大家進行講解。

說明:   上面這個表格實際上是按照運算子的優先順序從上到下列出了各種運算子。所謂優先順序就是在一個運算的表示式中,如果出現了多個運算子,應該先執行哪個運算再執行哪個運算的順序。在實際開發中,如果搞不清楚運算子的優先順序,可以使用圓括號來確保運算的執行順序。

算術運算子

Python中的算術運算子非常豐富,除了大家最為熟悉的加減乘除之外,還有整除運算子、求模(求餘數)運算子和求冪運算子。下面的例子為大家展示了算術運算子的使用。

"""

算術運算子

 

Version: 0.1

Author: 駱昊

"""

print(321 + 123)     # 加法運算

print(321 - 123)     # 減法運算

print(321 * 123)     # 乘法運算

print(321 / 123)     # 除法運算

print(321 % 123)     # 求模運算

print(321 // 123)    # 整除運算

print(321 ** 123)    # 求冪運算

賦值運算子

賦值運算子應該是最為常見的運算子,它的作用是將右邊的值賦給左邊的變數。下面的例子演示了賦值運算子和複合賦值運算子的使用。

"""

賦值運算子和複合賦值運算子

 

Version: 0.1

Author: 駱昊

"""

a = 10

b = 3

a += b        # 相當於:a = a + b

a *= a + 2    # 相當於:a = a * (a + 2)

print(a)      # 算一下這裡會輸出什麼

比較運算子和邏輯運算子

比較運算子有的地方也稱為關係運算子,包括 == != < > <= >= ,我相信沒有什麼好解釋的,大家一看就能懂,唯一需要提醒的是比較相等用的是 == ,請注意這個地方是兩個等號,因為 = 是賦值運算子,我們在上面剛剛講到過, == 才是比較相等的比較運算子。比較運算子會產生布林值,要麼是 True 要麼是 False

邏輯運算子有三個,分別是 and or not and 字面意思是“而且”,所以 and 運算子會連線兩個布林值,如果兩個布林值都是 True ,那麼運算的結果就是 True ;左右兩邊的布林值有一個是 False ,最終的運算結果就是 False 。相信大家已經想到了,如果 and 左邊的布林值是 False ,不管右邊的布林值是什麼,最終的結果都是 False ,所以在做運算的時候右邊的值會被跳過(短路處理),這也就意味著在 and 運算子左邊為 False 的情況下,右邊的表示式根本不會執行。 or 字面意思是“或者”,所以 or 運算子也會連線兩個布林值,如果兩個布林值有任意一個是 True ,那麼最終的結果就是 True 。當然, or 運算子也是有短路功能的,在它左邊的布林值為 True 的情況下,右邊的表示式根本不會執行。 not 運算子的後面會跟上一個布林值,它的作用是得到與該布林值相反的值,也就是說,後面的布林值如果是 True 運算結果就是 False ,而後面的布林值如果是 False 則運算結果就是 True

"""

比較運算子和邏輯運算子的使用

 

Version: 0.1

Author: 駱昊

"""

flag0 = 1 == 1

flag1 = 3 > 2

flag2 = 2 < 1

flag3 = flag1 and flag2

flag4 = flag1 or flag2

flag5 = not (1 != 2)

print('flag0 =', flag0)    # flag0 = True

print('flag1 =', flag1)    # flag1 = True

print('flag2 =', flag2)    # flag2 = False

print('flag3 =', flag3)    # flag3 = False

print('flag4 =', flag4)    # flag4 = True

print('flag5 =', flag5)    # flag5 = False

說明 :比較運算子的優先順序高於賦值運算子,所以 flag0 = 1 == 1 先做 1 == 1 產生布林值 True ,再將這個值賦值給變數 flag0 print 函式可以輸出多個值,多個值之間可以用 , 進行分隔,輸出的內容之間預設以空格分開。

運算子的例子

例子1:華氏溫度轉換為攝氏溫度。

提示 :華氏溫度到攝氏溫度的轉換公式為:$C=(F - 32) \div 1.8$。

"""

將華氏溫度轉換為攝氏溫度

 

Version: 0.1

Author: 駱昊

"""

f = float(input('請輸入華氏溫度: '))

c = (f - 32) / 1.8

print('%.1f華氏度 = %.1f攝氏度' % (f, c))

說明 :在使用 print 函式輸出時,也可以對字串內容進行格式化處理,上面 print 函式中的字串 %1.f 是一個佔位符,稍後會由一個 float 型別的變數值替換掉它。同理,如果字串中有 %d ,後面可以用一個 int 型別的變數值替換掉它,而 %s 會被字串的值替換掉。除了這種格式化字串的方式外,還可以用下面的方式來格式化字串,其中 {f:.1f} {c:.1f} 可以先看成是 {f} {c} ,表示輸出時會用變數 f 和變數 c 的值替換掉這兩個佔位符,後面的 :.1f 表示這是一個浮點數,小數點後保留1位有效數字。

print(f'{f:.1f}華氏度 = {c:.1f}攝氏度')

例子2:輸入圓的半徑計算計算周長和麵積。

"""

輸入半徑計算圓的周長和麵積

 

Version: 0.1

Author: 駱昊

"""

import math

 

radius = float(input('請輸入圓的半徑: '))

perimeter = 2 * math.pi * radius

area = math.pi * radius * radius

print('周長: %.2f' % perimeter)

print('面積: %.2f' % area)

例子3:輸入年份判斷是不是閏年。

"""

輸入年份 如果是閏年輸出True 否則輸出False

 

Version: 0.1

Author: 駱昊

"""

year = int(input('請輸入年份: '))

is_leap = year % 4 == 0 and year % 100 != 0 or year % 400 == 0

print(is_leap)

說明 :比較運算子會產生布林值,而邏輯運算子 and or 會對這些布林值進行組合,最終也是得到一個布林值,閏年輸出 True ,平年輸出 False

總結

學會了Python程式中可以使用的運算子,就能幫助我們解決很多很實際的問題,就像我們可以寫出各種單位轉換的程式,也可以輕鬆的去實現閏年判斷那樣。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2688116/,如需轉載,請註明出處,否則將追究法律責任。

相關文章