and和or的用法和区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了and和or的用法和区别相关的知识,希望对你有一定的参考价值。

如题

(1)c
解析:在逻辑关系中,and表示和,用在肯定句中;or在肯定句中,表示或者,在否定句中和not连用,表示不……和……。这里就表示不会说英语和法语,简而言之,就是and在否定句中要改用or。
(2)d
解析:and是不能用在疑问句中的,在疑问句中要用or;另外,some也不用在疑问句中,在疑问句和否定句中,都需要用any。
(3)b
解析:像(1)中说的,or在肯定句中表示或者,此句的意思肯定是,你可以吃面条、汉堡包或者苹果。
参考技术A and和or有时都表示“还”and用于肯定句 or用于否定句

or还用于选择疑问句上本回答被提问者采纳
参考技术B 1、so
+
形容词/副词
+
that
+
从句,如:
this
story
is
so
interesting
that
i
want
to
read
it
again.
(这个故事如此有趣以至我想再读一次。)
2、so+形容词/副词+(a/an)+(单数)复数可数名词/不可数名词+that+从句,如果句中的名词是单数可数名词,其前就要用不定冠词a或an,如果是复数可数名词或者不可数名词,前面就不用冠词,如:
she
is
so
lovely
a
girl
that
everyone
loves
he(这个故事如此有趣以至我想再读一次。)r.
(她是如此可爱的一个女孩,以至每个人都喜欢她。)
3、such+a/an+形容词+单数可数名词+that+从句,如:
she
is
such
a
lovely
girl
that
everyone
loves
her.(她是如此可爱的一个女孩,以至每个人都喜欢她。)
4、such+复数可数名词/不可数名词+that+从句,如:
he
showed
such
concern
that
people
took
him
to
be
a
relative.(他表现得如此关心以致于人们都把他当作亲戚了。)
简单说就是
so+形容词
the
girl
is
so
beautiful!

such+名词
such
a
beautiful
girl!
参考技术C 列:

(x=0 and y=0)

1、And : 两个都为真,结果为真,其余为假。

就是说x,y 两个变量都等于0 则, 整个表达式就为真

(x=0 or y=0)

2、Or : 只要其中一个为真,结果为真,其余为假。

就是说x,y 两个变量只要其中一个等于0 则, 整个表达式就为真
参考技术D 就是说x,其余为假:
(x=0
and
y=0)
1,其余为假、And

两个都为真,结果为真:
只要其中一个为真。
就是说x,
整个表达式就为真
(x=0
or
y=0)
2,结果为真,y
两个变量都等于0
则列,y
两个变量只要其中一个等于0
则、Or

无意学会了python中and和or的有趣用法

    今天看书,无意中看到了Python的and和or的一个有趣用法,最后在网上查找这种用法的机制,归根结底还是要仔细理解python中and和or的机制。

Python中if-else有多种写法。假设a=10,b=20,取较大者。

最常规的方法是:

if a > b:
    c = a
else:
    c = b

稍微高级一点的用法就是用表达式

c = a if a > b else b

我就是经常用这种方法。

再高级一点的用法就是用二维列表

c = [a,b][a<b]

这方法也很好理解,Python的比较运算符返回的是布尔值。

更高级的用法就是用and-or

c = (a > b and [a] or [b])[0]

这种方法如果你第一眼没看懂,那就是和我一样,基础知识不够扎实,如果你了解and和or的机制,瞬间会恍然大悟的,更重要的是这种用法代码不仅更Pythonic,而且效率更高


    在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值;而是,返回它们实际进行比较的值之一

        在布尔上下文中从左到右演算表达式的值,使用and的话,如果布尔上下文中的所有值都为真,那么 and 返回最后一个值;如果布尔上下文中的某个值为假,则 and 返回第一个假值

     使用or的话, 如果有一个值为真,or 立刻返回该值;如果所有的值都为假,or 返回最后一个假值


    注意 :or 在布尔上下文中会一直进行表达式演算直到找到第一个真值,然后就会忽略剩余的比较值,很多语言都支持这种机制。


这一点在学习Python时确实没太注意,一直以为返回的是布尔值。

下面看几个例子吧。

>>> ‘a‘ and ‘b‘
‘b‘
>>> ‘‘ and ‘b‘
‘‘
>>> ‘a‘ and ‘b‘ and ‘c‘
‘c‘
>>> ‘a‘ or ‘b‘
‘a‘
>>> ‘‘ or ‘b‘‘b‘
>>> ‘‘ or [] or {}
{}
>>> 0 or ‘a‘ or ‘c‘
‘a‘

>>> a=‘first‘
>>> b=‘second‘
>>> 1 and a or b
‘first‘
>>> (1 and a) or b
‘first‘
>>> 0 and a or b
‘second‘
>>> (0 and a) or b
‘second‘

按照演算规则进行演算,不难,有兴趣可以试试。

以上是关于and和or的用法和区别的主要内容,如果未能解决你的问题,请参考以下文章

英语中一般疑问句or和and的区别

Mac中Sleep和Hibernate的区别及用法

MySQL中INSERT,UPDATE和REPLACE的区别与用法

sql 中and 和or的用法,请指导,谢谢

or和union区别

Python中and和or运算符的高级用法