Python3.6的作用是什么;如果a和;意思是

Python3.6的作用是什么;如果a和;意思是,python,Python,我试图理解另一个人的Python 3.6代码。这个代码应该在一个数字列表中找到局部最小值和最大值的数目 input() a = b = s = 0 for c in map(int, input().split()): if a and (a > b < c or a < b > c): s += 1 a, b = b, c print(s) input() a=b=s=0 对于映射中的c(int,input().split()): 如果a和(

我试图理解另一个人的Python 3.6代码。这个代码应该在一个数字列表中找到局部最小值和最大值的数目

input()

a = b = s = 0

for c in map(int, input().split()):

    if a and (a > b < c or a < b > c): s += 1

    a, b = b, c

print(s)
input()
a=b=s=0
对于映射中的c(int,input().split()):
如果a和(a>bc):s+=1
a、 b=b,c
印刷品
第一个输入行包含一个整数,即列表中元素的数量
n
。 第二个输入行包含作为列表元素的
n
整数

例如,如果输入为:

四,

1 5 2 4

输出应该是2


有人能解释一下“和”部分的
含义吗?我理解
if(a>bc):
的意思是“如果这是真的,那么做下面的事情”,但是
如果a和
做什么呢

在python中,0等于False,1等于True。因此,如果条件的值为1,则条件将有效。

if()
如果条件的计算结果为true,则在其之后运行代码块

表达式
a和
的工作方式如下。它计算
a
,如果该计算结果可以解释为true,则返回
的值。否则它将返回
a

一个例子

>>> 1 and 3
3
>>> 0 and 3
0

这意味着如果
a
不是零,并且
(a>bc)
的计算结果为true,则将运行if块。

括号放错了。Python将其解释为:
if(a和(a>bc)):
..
a和
if
正在测试的表达式的一部分。如果使用and
语法,则没有特殊的
if
之后和
之前的所有内容:
都是要测试的表达式。任何非零数也是真的。他们是不平等的,因为“evaled”是一个错误的词。布尔值
True
False
是从整数中派生出来的。您可以使用
isinstance(True,int)
@Matthias检查这一点,这无关紧要,因为2!=True@YaroslavSurzhikov:对<代码>2
不是
True
。如果是这样使用的话,那就更真实了:
if 2:
@Matthias,我不反对这个,这就是我所说的“evaled”的意思