别被and/or坑哭了!Python逻辑运算符,90%新手都踩过这雷
逻辑运算符全解析
在编程里头, 逻辑运算符可是相当重要的工具, 它们被用来组合以及操作布尔值, 布尔值也就是True或者False, 其能帮我们构建极为复杂的条件判断。本文会详细地介绍逻辑运算符的基础概念, 还会介绍其使用方法, 也会介绍常见实践以及最佳实践, 目的在于帮助读者深入去理解并且高效地使用这些运算符。
目录基础概念使用方法常见实践最佳实践小结参考资料基础概念
中有三种主要的逻辑运算符:
以下是逻辑运算符的真值表:
使用方法and 运算符
# 示例 1 x = 5 y = 10 result = (x > 3) and (y < 15) print(result) # 输出: True # 示例 2 a = 2 b = 1 result2 = (a < 1) and (b > 0) print(result2) # 输出: False於示例1裡, (x大於3)之中(x超過3)的這一表述是True, (y小於15)同樣是True, 因而(x大於3)且(y小於15)得出的結果是True。在示例2裡, (a小於1)為False, 按照and運算符的規則, 只要存在一個操作符為False, 那結果即為False, 所以(a小於1)以及(b大於0)最終返回的是False。
or 运算符
# 示例 3 m = 3 n = 7 result3 = (m > 5) or (n < 10) print(result3) # 输出: True # 示例 4 p = 1 q = 0 result4 = (p < 0) or (q < 0) print(result4) # 输出: False在示例3里头, (m大于5)这件事是假的, 然而(n小于10)这件事是真的, 按照or运算符的规定, 只要其中有一个操作数是真的, 那么结果便是真的, 既然如此, (m大于5)或者(n小于10)返回了真。在示例4当中, (p小于0)以及(q小于0)都是假的, 所以(p小于0)或者(q小于0)返回了假。
not 运算符
# 示例 5 r = True result5 = not r print(result5) # 输出: False # 示例 6 s = False result6 = not s print(result6) # 输出: True于示例5里, r呈现为True, not r针对其实施取反操作, 因而返回False。于示例6中, s是False, not s经取反之后返回True。
常见实践条件判断
逻辑运算符常用于 if 语句中,进行复杂的条件判断。
age = 25 is_student = True if (age > 18) and is_student: print("你是一名成年学生。") else: print("你不符合条件。")这个例子里, 仅当age大于18是真的, 并且某个条件也要同时是真的, 这种情况下, 才会给出“你是一名成年学生。”这样一个语词内容被输出, 不然的话, 就会输出“你不符合条件。”。
过滤列表元素
可以使用逻辑运算符过滤列表中的元素。
numbers = [1, 5, 10, 15, 20] filtered_numbers = [num for num in numbers if (num > 5) and (num < 15)] print(filtered_numbers) # 输出: [10]在这个例子里头, 运用列表推导式去筛选出, 列表当中大于5的元素, 并且是小于15的元素。
最佳实践短路求值
逻辑运算符取用的是那样一种短路求值的策略, 对于该 and 这个运算符而言, 要是第一个操作的数是 False 的状况, 那就绝不进去计算那第二个操作数;针对于 or 这个运算符来讲, 要是第一个操作的数是 True 这样一种情况, 那就不会再去计算第二个操作数。靠利用这一特别的特性, 能够达成避免那种没有必要的计算。
# 避免除零错误 numerator = 10 denominator = 0 if denominator != 0 and (numerator / denominator) > 2: print("结果大于 2。") else: print("无法计算或结果不大于 2。")在这个例子当中, 因为!= 0 的结果是 False, 按照短路求值的相关规则, ( / ) > 2 不会被计算, 进而避免了除零错误事件的发生。
保持表达式简洁
竭尽全力地去防止编写太过繁杂的逻辑表达式, 以此来避免对代码的可读性造成影响。能够把繁杂的表达式分解成多个简单的表达式, 并且运用变量来存储中间结果。
# 复杂表达式 if (x > 3) and (y < 10) and ((z % 2 == 0) or (w > 5)): pass # 拆分成多个简单表达式 condition1 = x > 3 condition2 = y < 10 condition3 = z % 2 == 0 condition4 = w > 5 final_condition = condition1 and condition2 and (condition3 or condition4) if final_condition: pass这样拆分后,代码的可读性明显提高。
小结
本文对逻辑运算符的基础概念, 进行了详细介绍, 还阐述了其使用方法, 以及常见实践与最佳实践。逻辑运算符属于编程里不可缺少的工具, 经由合理运用它们, 可以构造起复杂的条件判断还有逻辑控制。在使用这些逻辑运算符的过程当中, 要留意其短路求值的特性, 并且要维持表达式的简洁性, 以此提高代码可读性和性能。
