使用逻辑运算符“ not”的While循环说明

时间:2018-08-17 22:06:11

标签: python python-3.x while-loop logical-operators

“像计算机科学家一样思考:Python”中的代码

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

我已经通过CodeLens在not的所有位置变化和found的原始值中进行了此操作,但是无法绕过Python处理这种形式的条件的方式。请指出我的思路出了哪些问题或我错过了什么:

如果found = False,则not found = Truefound = True。 条件设置为not found,因此循环将迭代。 (我将条件设置为found,并且它不会迭代。因此,while循环必须仅针对True值进行迭代)。在achar中找到astring后,found = True。闭环背后的逻辑是什么?我对使用not的误解在哪里?

1 个答案:

答案 0 :(得分:2)

我认为您应该将Not运算符视为逆变器。逻辑表将是:

  • A |不是
  • T | F
  • F | T

因此,当“发现”为False时,它实际上为True,而当为True时,它为False。

while循环的条件语句与while True一样工作-执行代码,而false退出代码。

看条件,它是and操作,两个操作都必须为True才能为True,如果您查找and Gate真值表,则可以了解更多信息。

基本上,“ ix

希望这会有所帮助