它們在許多情境下都是程式語言中重要的工具,用於進行條件判斷和控制流程
在日常中總會遇到有些需要思考判斷的問題,比如要買東西,就會考慮到CP值,東西要好且要便宜,就是and的概念,如果在一些比較複雜的狀況,例如想晚餐吃什麼,就會想火鍋或燒烤都行,這就是or的概念。
以下是Python中常見的邏輯運算子:
已變數X與Y來舉例。
and
: X與Y都要為True,輸出才會為True,否則都為Falseor
: X與Y其中一個為True,輸出就會為Truenot
: 使輸出結果相反,輸入為True,輸出則會為False以下用真值表來表示,X and Y
與X or Y
,在四種情況下的輸出結果:
由圖可知and就是且的概念,or就是或的概念。
a = True
b = False
result = a and b
print(result) # Output: False 印出False
這些邏輯運算子可以結合使用,並可以用於構建更複雜的條件表達式。例如:
跟數值運算的規則一樣,有括號的( )優先做。
當然,除了基本的邏輯運算子,Python還提供了一些進階的邏輯運算子和其他相關的功能。以下是一些進階用法:
==
(等於)、!=
(不等於)、<
(小於)、>
(大於)、<=
(小於或等於)、>=
(大於或等於)等比較運算符,這些也可以用於邏輯運算。
其中的result = a是否等於b ,等於將True賦予result,不等於將False賦予result
in
的用法就是檢查數字3是否存在my_list
這個list內,是就回傳True
,否就回傳False
my_list = [1, 2, 3, 4]
result = 3 in my_list #檢查3是否在my_list
not_result = 3 not in my_list
print(result) # Output: True
print(not_result) # Output: False
x = [1, 2, 3]
y = [1, 2, 3]
result = x is y
print(result) # Output: Fals
疑,這兩個數字不是都一樣,為什麼返回是False,哦,原來is運算子是比較兩個對象的身份,即它們是否引用相同的物件,而不僅僅是它們的值是否相等。這兩個運算子在特定的情況下非常有用:
檢查對象是否為 None
:
None
是Python中表示缺失或空值的特殊對象。你可以使用 is
運算子來檢查一個對象是否為 None
。any(iterable)
:如果iterable中的任何元素為True,則返回True。all(iterable)
:如果iterable中的所有元素都為True,則返回True。在程式語言中,「可迭代對象」(iterable)是指可以被迭代遍歷的對象。可迭代對象可以是一個集合,例如列表、元組、字串,也可以是其他一些對象,如字典、集合等。基本上,如果你可以使用 for
迴圈遍歷對象的元素,那麼該對象就是可迭代的。
any
函數:numbers = [-2, 0, 5, -8, 10]
result = any([num > 0 for num in numbers])
print(result) # Output: True
result_list = [num > 0 for num in numbers] #列表生成器
print(result_list)
其中[num > 0 for num in numbers]
是比較進階的用法,列表生成器的概念,後面有機會在其他章節介紹,這段意思就是會for 走過numbers每個一個數字去看是否大於0把結果(True或False)存在一個list內。
all
函數:all
函數用於檢查列表中的所有元素是否都大於 0。
numbers = [2, 4, 6, 8, 10]
result = all([num > 0 for num in numbers])
print(result) # Output: True