好程式設計師Python教程系列分享之Python語言元素之運算子
好程式設計師 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Python教程系列分享之Python語言元素之變數程式設計師Python變數
- 好程式設計師Python教程分享python之變數程式設計師Python變數
- 好程式設計師Python培訓分享函數語言程式設計之匿名函式程式設計師Python函數函式
- 好程式設計師Python培訓分享Python系列之字串的使用程式設計師Python字串
- 好程式設計師Python培訓分享Python系列之迴圈結構程式設計師Python
- 好程式設計師大資料教程分享Scala系列之閉包程式設計師大資料
- 好程式設計師Java教程分享Java之設計模式程式設計師Java設計模式
- 好程式設計師web前端教程JavaScript系列之HTTP程式設計師Web前端JavaScriptHTTP
- Python之函數語言程式設計Python函數程式設計
- 好程式設計師分享DDL之運算元據庫程式設計師
- 好程式設計師Python教程分享Python常見面試問題程式設計師Python面試
- 好程式設計師Python教程分享常見的Python面試題程式設計師Python面試題
- 好程式設計師Python教程分享Python到底是什麼程式設計師Python
- 好程式設計師Java培訓分享MySQL算術運算子程式設計師JavaMySql
- 好程式設計師Python培訓分享Python程式設計師面試技巧程式設計師Python面試
- 好程式設計師Java教程系列之異常定義程式設計師Java
- 好程式設計師大資料教程Scala系列之類程式設計師大資料
- 好程式設計師Python培訓分享Python系列之分支結構程式設計師Python
- 好程式設計師分享MyBatis之動態SQL語句程式設計師MyBatisSQL
- 好程式設計師Java教程分享Java語法程式設計師Java
- 好程式設計師Python培訓分享Python面試寶典之基礎篇-03程式設計師Python面試
- 好程式設計師Java教程分享Vue外掛之Axios程式設計師JavaVueiOS
- 好程式設計師Java教程分享Java面試題之Hibernate程式設計師Java面試題
- 好程式設計師大資料教程Scala系列之繼承程式設計師大資料繼承
- 好程式設計師雲端計算教程分享Shell程式設計之for迴圈結構程式設計師
- Python學習之函數語言程式設計Python函數程式設計
- 好程式設計師Python教程系列第5講-分支結構程式設計師Python
- 好程式設計師大資料分享Scala系列之柯里化程式設計師大資料
- 好程式設計師Java教程分享Java難點解析之泛型程式設計師Java泛型
- 好程式設計師技術教程分享JavaScript運動框架程式設計師JavaScript框架
- python之運算子過載Python
- python學習之運算子Python
- 好程式設計師Java實用教程系列之物件的轉型程式設計師Java物件
- 好程式設計師大資料教程分享Scala系列之Option_偏函式_String程式設計師大資料函式
- 好程式設計師大資料教程分享Scala系列之檔案以及正規表示式程式設計師大資料
- 好程式設計師Python教程從零開始學Python系列-第2講程式設計師Python
- 好程式設計師Python培訓分享四款Python程式庫程式設計師Python
- 好程式設計師Python培訓之詳解eval好與壞程式設計師Python