首頁 > 軟體

Python教學之基本運運算元的使用(下)

2022-09-08 18:04:30

運運算元的優先順序和關聯性

運運算元的優先順序和關聯性: 運運算元的優先順序和關聯性決定了運運算元的優先順序。

運運算元優先順序

這用於具有多個具有不同優先順序的運運算元的表示式中,以確定首先執行哪個操作。

範例:運運算元優先順序

# 運運算元優先順序範例

# '+' 和 '*' 的優先順序
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.

運運算元關聯性

如果一個表示式包含兩個或多個具有相同優先順序的運運算元,則使用運運算元關聯性來確定。它可以是從左到右或從右到左。

範例:運運算元關聯性

# 運運算元關聯性範例

# 左右關聯性 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 


512

Python 運運算元測驗

除法運運算元允許您將兩個數位相除並返回一個商,即左邊的第一個數位或數位除以右邊的第二個數位或數位並返回商。 

除法運運算元有兩種型別: 

浮動劃分

此運運算元返回的商始終是浮點數,無論兩個數位是否為整數。例如:

>>>5/5 
1.0 
>>>10/2 
5.0 
>>>-10/2 
-5.0 
>>>20.0/2 
10.0

整數除法(地板除法)

此運運算元返回的商取決於傳遞的引數。如果任何數位是浮點數,它以浮點數返回輸出。它也被稱為下限除法,因為如果任何數位為負數,則輸出將被下限。例如:

>>>5//5 
1 
>>>3//2 
1 
>>>10//3 
3

考慮 Python 中的以下語句。

# A Python program to demonstrate the use of
# "//" for integers
print (5//2)
print (-5//2)

輸出:


-3

第一個輸出很好,但如果我們來到 Java/C++ 世界,第二個可能會感到驚訝。在 Python 中,“//”運運算元用作整數和浮點引數的下除法。但是,除法運運算元“/”總是返回一個浮點值。

注意:  “//”運運算元用於返回小於或等於指定表示式或值的最接近的整數值。所以從上面的程式碼中,5//2 返回 2。你知道 5/2 是 2.5,小於或等於最接近的整數是 2[5//2]。(它與正常的數學相反,在正常數學中,該值為 3)。

例子

# 一個 Python 程式,用於演示使用「/」表示浮點數
print (5.0/2)
print (-5.0/2)

輸出

2.5 
-2.5

真正的樓層除法運運算元是“//”。它返回整數和浮點引數的下限值。

# 一個 Python 程式,用於演示整數和浮點數的「//」的使用
print (5//2)
print (-5//2)
print (5.0//2)
print (-5.0//2)

輸出


-3 
2.0 
-3.0

三元運運算元

三元運運算元也稱為條件表示式,是根據條件為真或假來評估某些內容的運運算元。它在2.5版本中被新增到 Python 中。 
它只是允許在單行中測試條件,替換多行 if-else,使程式碼緊湊。

語法 :

[on_true] 如果 [表示式] 否則 [on_false]

使用三元運運算元的簡單方法:

# 演示條件運運算元的程式
a, b = 10, 20

# 如果 a < b 則複製 a 的最小值,否則複製 b
min = a if a < b else b

print(min)

輸出: 

10

使用元組、字典和 lambda 的直接方法

# 演示三元運運算元的 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:

# 演示巢狀三元運運算元的 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")

上面的方法可以寫成:

# 演示巢狀三元運運算元的 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 中的較大數

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

要點

  • 首先評估給定條件 (a < b),然後根據條件返回的布林值返回 a 或 b
  • 運運算元中引數的順序與其他語言
  • 在所有 Python 操作中,條件表示式的優先順序最低。

當三元運運算元不存在 時,在 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]

例子 :

	
# 演示條件運運算元的程式
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 以給出整個表示式的最終結果。

到此這篇關於Python教學之基本運運算元的使用(下)的文章就介紹到這了,更多相關Python運運算元內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com