Python 使用逻辑运算符“While循环”的说明;不是";
来自“像计算机科学家一样思考:Python”的代码Python 使用逻辑运算符“While循环”的说明;不是";,python,python-3.x,while-loop,logical-operators,Python,Python 3.x,While Loop,Logical Operators,来自“像计算机科学家一样思考:Python”的代码 def find(astring,achar): ix=0 发现=错误 当ix的误解在哪里? 我认为你应该把非操作符看作一个反相器。逻辑表将是: A |不是A T | F F | T 所以,当发现是假的,它实际上是真的,当它是真的,它是假的 while循环的条件语句与while True-execute代码和while false退出代码一样工作 看看条件,这是一个and操作,其中两个操作都必须为True才能为True,如果您查找and门真
def find(astring,achar):
ix=0
发现=错误
当ix
我已经通过CodeLens在not
的位置和found
的原始值的所有变体中运行了这一过程,但我无法理解Python以这种形式处理其条件的方式。请指出我的思路哪里出错或我错过了什么:
如果found=False
,则当found=True
时notfound=True
。
条件设置为
未找到
,因此循环将迭代。(我将条件设置为found
,它不进行迭代。因此while循环必须只对True
值进行迭代)。一旦在astring
中找到achar
,found=True
。关闭循环背后的逻辑是什么?我对使用<代码>不是< /代码>的误解在哪里? 我认为你应该把非操作符看作一个反相器。逻辑表将是:
- A |不是A
- T | F
- F | T
希望这有帮助“如果发现=错误,那么当发现=正确时,则未发现=正确”-见鬼?一旦在
astring
中找到achar
,您希望停止查找,从而停止循环,不是吗?因此,您设置found=True
以结束循环。这就是你要问的吗?对用户:我的逻辑哪里错了?将变量设置为True或False。然后对其使用not运算符。检查条件时不使用not运算符,但您想要相反的结果吗?jwodder,是的,这就是我要问的。但具体来说,我想问的是,当found=True
时停止的逻辑是什么,因为对我来说,notfound=True
,那么条件的变化发生在哪里呢?关于not
操作符,我遗漏了什么?@Tyler\P:我相信user2357112是对您编写的“if found=False…when found=True”这一事实做出反应的,这毫无意义。这正是我们需要的。非常感谢Not接线员的“啊哈”时刻。
def find(astring, achar):
ix = 0
found = False
while ix < len(astring) and not found:
if astring[ix] == achar:
found = True
else:
ix = ix + 1
if found:
return ix
else:
return -1