python中的位运算符(& ||)与逻辑运算符(and or)

& 是位运算符,and 是逻辑运算符

举例1: 设a和b是两个整数,a=1,b=2

a&b     a以二进制表示就是01,b以二进制表示就是10,故&的运算结果就是00,即十进制的0

a and b    1是真,2也是真,故a and b是真

举例2:

2&3     10&11,结果就是10 即十进制的2

0 and 2   0是假,2是真,结果就是假

在逻辑判断中,必须用and或or

比如leetcode第一题中的代码:

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        l = len(nums)
        for i in range(l):
            num1 = nums[i]
            num2 = target - num1
            if num2 in nums:
                if nums.count(num1) == 1 and num2 == num1: # not nums.count(num1) > 1:
                    continue
                return [i, nums.index(num2, i+1)]


 

你可能感兴趣的:(python)