時間:2022-09-12來源:www.ship-models.net作者:電腦系統城
運算符的優先級和關聯性: 運算符的優先級和關聯性決定了運算符的優先級。
這用于具有多個具有不同優先級的運算符的表達式中,以確定首先執行哪個操作。
示例:運算符優先級
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 運算符優先級示例 # '+' 和 '*' 的優先級 expr = 10 + 20 * 30 print (expr) # 'or' 和 'and' 的優先級 name = "Alex" age = 0 if name = = "Alex" or name = = "John" and age > = 2 : print ( "Hello! Welcome." ) else : print ( "Good Bye!!" ) |
輸出
610
Hello! Welcome.
如果一個表達式包含兩個或多個具有相同優先級的運算符,則使用運算符關聯性來確定。它可以是從左到右或從右到左。
示例:運算符關聯性
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# 運算符關聯性示例 # 左右關聯性 100 / 10 * 10 計算為 (100 / 10) * 10 而不是 100 / (10 * 10) print ( 100 / 10 * 10 ) # 左右關聯性 5 - 2 + 3 計算為 (5 - 2) + 3 而不是 5 - (2 + 3) print ( 5 - 2 + 3 ) # 左右結合性 print ( 5 - ( 2 + 3 )) # 左右關聯性 2 ** 3 ** 2 計算為 2 ** (3 ** 2) 而不是 (2 ** 3) ** 2 print ( 2 * * 3 * * 2 ) |
輸出
100.0
6
0
512
除法運算符允許您將兩個數字相除并返回一個商,即左邊的第一個數字或數字除以右邊的第二個數字或數字并返回商。
除法運算符有兩種類型:
此運算符返回的商始終是浮點數,無論兩個數字是否為整數。例如:
1 2 3 4 5 6 7 8 |
>>> 5 / 5 1.0 >>> 10 / 2 5.0 >>> - 10 / 2 - 5.0 >>> 20.0 / 2 10.0 |
此運算符返回的商取決于傳遞的參數。如果任何數字是浮點數,它以浮點數返回輸出。它也被稱為下限除法,因為如果任何數字為負數,則輸出將被下限。例如:
1 2 3 4 5 6 |
>>> 5 / / 5 1 >>> 3 / / 2 1 >>> 10 / / 3 3 |
考慮 Python 中的以下語句。
1 2 3 4 |
# A Python program to demonstrate the use of # "//" for integers print ( 5 / / 2 ) print ( - 5 / / 2 ) |
輸出:
2
-3
第一個輸出很好,但如果我們來到 Java/C++ 世界,第二個可能會感到驚訝。在 Python 中,“//”運算符用作整數和浮點參數的下除法。但是,除法運算符“/”總是返回一個浮點值。
注意: “//”運算符用于返回小于或等于指定表達式或值的最接近的整數值。所以從上面的代碼中,5//2 返回 2。你知道 5/2 是 2.5,小于或等于最接近的整數是 2[5//2]。(它與正常的數學相反,在正常數學中,該值為 3)。
例子
1 2 3 |
# 一個 Python 程序,用于演示使用“/”表示浮點數 print ( 5.0 / 2 ) print ( - 5.0 / 2 ) |
輸出
2.5
-2.5
真正的樓層除法運算符是“//”。它返回整數和浮點參數的下限值。
1 2 3 4 5 |
# 一個 Python 程序,用于演示整數和浮點數的“//”的使用 print ( 5 / / 2 ) print ( - 5 / / 2 ) print ( 5.0 / / 2 ) print ( - 5.0 / / 2 ) |
輸出
2
-3
2.0
-3.0
三元運算符
三元運算符也稱為條件表達式,是根據條件為真或假來評估某些內容的運算符。它在2.5版本中被添加到 Python 中。
它只是允許在單行中測試條件,替換多行 if-else,使代碼緊湊。
語法 :
[on_true] 如果 [表達式] 否則 [on_false]
使用三元運算符的簡單方法:
1 2 3 4 5 6 7 |
# 演示條件運算符的程序 a, b = 10 , 20 # 如果 a < b 則復制 a 的最小值,否則復制 b min = a if a < b else b print ( min ) |
輸出:
10
使用元組、字典和 lambda 的直接方法
1 2 3 4 5 6 7 8 9 10 11 |
# 演示三元運算符的 Python 程序 a, b = 10 , 20 # 使用元組選擇一個項目 (if_test_false,if_test_true)[test] 如果 [a<b] 為真則返回 1,因此索引為 1 的元素將打印,否則如果 [a<b] 為假則返回 0,因此元素為 0 索引將打印 print ( (b, a) [a < b] ) # 如果 [a < b] 為真,則使用 Dictionary 選擇項目,然后打印 True 鍵的值,否則,如果 [a<b] 為假,則打印 False 鍵的值 print ({ True : a, False : b} [a < b]) # lambda 比上述兩種方法更有效,因為在 lambda 中,我們確保只評估一個表達式,這與 tuple 和 Dictionary 不同 print (( lambda : b, lambda : a)[a < b]()) |
輸出:
10
10
10
三元運算符可以寫成嵌套的 if-else:
1 2 3 4 5 |
# 演示嵌套三元運算符的 Python 程序 a, b = 10 , 20 print ( "Both a and b are equal" if a = = b else "a is greater than b" if a > b else "b is greater than a" ) |
上面的方法可以寫成:
1 2 3 4 5 6 7 8 9 10 |
# 演示嵌套三元運算符的 Python 程序 a, b = 10 , 20 if a ! = b: if a > b: print ( "a is greater than b" ) else : print ( "b is greater than a" ) else : print ( "Both a and b are equal" ) |
輸出:
b is greater than a
要在三元運算符中使用打印功能,例如:-
示例:在 python3 中使用三元運算符查找 2 中的較大數
1 2 3 4 5 6 |
a = 5 b = 7 # [statement_on_True] if [condition] else [statement_on_false] print (a, "is greater" ) if (a>b) else print (b, "is Greater" ) |
輸出:
7 is Greater
當三元運算符不存在 時,在 2.5 之前使用的方法在如下給出的表達式中,解釋器檢查表達式是否為真,然后評估 on_true,否則評估 on_false。
語法 :
'''條件為真時,不執行表達式[on_false],返回“True and [on_true]”的值。 返回“False or [on_false]”的其他值。注意“True and x”等于x。 “假或 x”等于 x。 '''
[表達式] 和 [on_true] 或 [on_false]
例子 :
1 2 3 4 5 6 7 8 |
# 演示條件運算符的程序 a, b = 10 , 20 # 如果 a 小于 b,則分配 a,否則分配 b(注意:如果 a 為 0,則它不起作用)。 min = a < b and a or b print ( min ) |
輸出:
10
注意: 此方法的唯一缺點是on_true 不能為零或 False。如果發生這種情況,將始終評估 on_false。原因是如果表達式為真,解釋器將檢查 on_true,如果它為零或假,這將迫使解釋器檢查 on_false 以給出整個表達式的最終結果。
2022-09-12
Python遺傳算法Geatpy工具箱使用介紹2022-09-12
Python實現K-近鄰算法的示例代碼2022-09-12
Flask框架debug與配置項的開啟與設置詳解很多的編程工作者們應該都會使用到python,昨天我在用python的時候看到很多的代碼里面都會有range()這個函數,但是不知道這個到底是什么意思,也去網上查了一下,下文小編就給大家總結了python中range()函數的用法以及其意思...
2022-06-25