On 26Sep2017 15:23, Cai Gengyang <gengyang...@gmail.com> wrote:

I'm trying to understand the logic behind AND. I looked up Python logic tables

False and False gives False
False and True gives False
True and False gives False
True and True gives True.

So does that mean that the way 'and' works in Python is that both terms must be 
True (1) for the entire expression to be True ?

Yes.

Why is it defined that way, weird ? I was always under the impression that 'and' means that when you have both terms the same, ie either True and True or False and False , then it gives True

I would have called this "not the same". You are describing "or".

"and" means "both true". "or" means "either true".

An "and" expression is true if the left half is true _and_ the right half is true. Therefore both must be true, otherwise the whole result is false.

An "or" expression is true if the left half is true _or_ the right half is true, therefore only one half needs to be true. You only get 'false" is both halves are false.

Think of "and" a little like multiplication with values or 0 (false) and 1 (true). Think of "or" a little like addition with values of 0 (false) and 1 (true).

And:
1 * 1 => nonzero/true
1 * 0 => zero/false
0 * 1 => zero/false
0 * 0 => zero/false

Or:
1 + 1 => nonzero/true
1 + 0 => nonzero/true
0 + 1 => nonzero/true
0 + 0 => zero/false

If all this seems confusing I wonder about your understanding of the plain English words "and" and "or", but your English seems otherwise perfectly fine to me, so that would be very surprising.

Can you write some plain English sentences where "and" or "or" lead you to misinterpret a similar Python expression? Then we can see where the differences lie.

Cheers,
Cameron Simpson <c...@cskk.id.au> (formerly c...@zip.com.au)
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to