好程式員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) # 求幂運算
指派運算符
指派運算符應該是最為常見的運算符,它的作用是将右邊的值賦給左邊的變量。下面的例子示範了指派運算符和複合指派運算符的使用。
指派運算符和複合指派運算符
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。
比較運算符和邏輯運算符的使用
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$。
将華氏溫度轉換為攝氏溫度
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:輸入圓的半徑計算計算周長和面積。
輸入半徑計算圓的周長和面積
import math
radius = float(input('請輸入圓的半徑: '))
perimeter = 2 math.pi radius
area = math.pi radius radius
print('周長: %.2f' % perimeter)
print('面積: %.2f' % area)
例子3:輸入年份判斷是不是閏年。
輸入年份 如果是閏年輸出True 否則輸出False
year = int(input('請輸入年份: '))
is_leap = year % 4 == 0 and year % 100 != 0 or year % 400 == 0
print(is_leap)
說明:比較運算符會産生布爾值,而邏輯運算符and和or會對這些布爾值進行組合,最終也是得到一個布爾值,閏年輸出True,平年輸出False。
總結
學會了Python程式中可以使用的運算符,就能幫助我們解決很多很實際的問題,就像我們可以寫出各種機關轉換的程式,也可以輕松的去實作閏年判斷那樣。