Python';在';带有';对于';循环并使用';如果';陈述

Python';在';带有';对于';循环并使用';如果';陈述,python,if-statement,for-in-loop,Python,If Statement,For In Loop,我正在使用pythonin操作符和for循环以及if语句。我的问题是在中是如何实现的,它在这两种情况下的行为不同:它在使用for循环时进行迭代,在使用if语句时检查是否存在某个元素?这是否取决于for和if的执行情况 for i in x: #iterates if i in x: #checks weather i in x or not 关键字中的通常是一个运算符: print(2 in [1, 2, 3]) # True if 3 i

我正在使用pythonin操作符和for循环以及if语句。我的问题是中是如何实现的,它在这两种情况下的行为不同:它在使用for循环时进行迭代,在使用if语句时检查是否存在某个元素?这是否取决于forif的执行情况

    for i in x:
        #iterates

    if i in x:
        #checks weather i in x or not 

关键字中的
通常是一个运算符:

print(2 in [1, 2, 3])  # True
if 3 in range(7, 20):
   print('3 in range!')
它对应于特殊方法。b
中的表达式
a对应于
类型(b)。\uuu包含\uuuu(a)
。请注意,
a
b
都是要查找的名称

for
语句中,
中的
不是运算符。它是..的
的一部分。。在..
语法中,将循环变量名与iterable分开

for thing in range(20):
    print(thing)  # thing is something else on each step
请注意,b中a的
b
是一个可查找的名称
a
是要绑定到的名称,类似于赋值语句


Python语法有几个结构,其中前导关键字定义以下关键字的含义。例如,
as
关键字在
import
with
中具有不同的含义:

# as aliases ExitStack
from contextlib import ExitStack as ContextStack

# as holds the result of ContextStack().__enter__()
with ContextStack() as stack:
    ...

这有助于思考这些关键字,不是通过实现,而是通过含义。例如,b
中的
a始终意味着“
a
包含在
b
中”

原因是
中的
中的
不同

y中x的
迭代
y


if-in-y
调用
y.\uu包含
python中的关键字“in”根据“for”和“if”解决了不同的问题。请查看以了解更多信息

中使用
的成员资格测试是通过方法
\uuuuuuu包含
实现的(请参阅)。不同的行为来自您案例中的关键字before、
for
if

使用
for
进行迭代,只要关键字
for
后的条件为真,就会调用方法
next
,并将其返回值写入迭代变量。一般来说,成员资格测试只是一个条件

代码

A in B
for A in B :
    # Body
执行

B.__contains__(A)  # returns boolean
A = B.next()
if B.__contains__(A) :
    # Body

A = B.next()
if B.__contains__(A) :
    # Body

# ...

A = B.next()
if B.__contains__(A) :
    # B.next() throws "StopIteration" if there is no more element

代码

A in B
for A in B :
    # Body
执行

B.__contains__(A)  # returns boolean
A = B.next()
if B.__contains__(A) :
    # Body

A = B.next()
if B.__contains__(A) :
    # Body

# ...

A = B.next()
if B.__contains__(A) :
    # B.next() throws "StopIteration" if there is no more element

在许多语言中,你会发现关键字有多种用途。这只是一个例子。从语句的角度思考可能比像操作符一样思考
中的
关键字更有帮助

y中的语句
x
是一个布尔值语句(假设
y
是某个适当的集合)
True
当且仅当
x
的值在集合
y
中。它是通过
\uu包含
y
的成员函数来实现的

语句
为y中的x:
启动一个循环,其中每个迭代
x
从集合
y
中获取不同的值。这是通过在生成的迭代器对象上使用
y
\uuuuuuuuuuuuuuuuuu下一个
成员函数来实现的


关键字中还可以出现其他语句,如列表理解或生成器理解

@Nane请投票选出对您有帮助的答案,并接受最能回答您问题的答案。如果
B.next()
返回
A
,则不需要
如果B.\uu包含\uuuu(A):
。如果我错了,请纠正我。