and与&& 意思是相同的,只是前者优先级很低
alien = true
speaks_english = false
alien and speaks_english => false
alien && speaks_english => false
alien and speaks_english ? 1 : 0 => 0
alien && speaks_english ? 1 : 0 => 0
speaks_english and alien ? 1 : 0 => false # 由于and优先级极低,所以先计算右边的alien ? 1 : 0 => false的值,这样它最终返回false speaks_english && alien ? 1 : 0 => 0 #它先计算speaks_english && alien
or与||,类似
不同之处在于,对于or来说,由于它优先级很低,所以两边语句都会执行,而||则不同,如果左边的为true,右边的语句不会执行