& 是位运算符,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)]