如何在 Python 中正确使用 'not()' 运算符

How to properly use the 'not()' operator in Python

学习如何在 Python(再次)中编写代码,为此我正在开发这个简单的猜词游戏。代码(写在下面)来自我一直关注的 YouTube 视频(freeCodeCamp 的学习 Python - 初学者完整课程 [教程])。

我不明白的是 not(guesses_complete) 在这段代码中的逻辑意义。

根据我的理解,代码暗示 while 循环执行并继续,只要玩家的猜测不是秘密单词并且 guesses_complete 的布尔值是 True(因为初始guesses_complete 的值为 False,因此 not() 表示该值必须为 True 才能执行)。

但是 guesses_complete 的初始值设置为 False,所以 while 循环根本不应该执行。

# The player gets 3 chances to guess the secret word
# If guessed correctly within the given chances, the player wins
# If guessed incorrectly and there are no more chances, the player loses

secret_word = "Red"
guess = ""
counter = 0
guess_limit = 3
guesses_complete = False

while guess != secret_word and not(guesses_complete):
    if counter < guess_limit:
        guess = input("Enter guess: ")
        counter += 1
    else:
        guesses_complete = True

if guesses_complete:
    print("Loser")
else:
    print("Winner")

代码按原样运行,但我不知道为什么。我很确定这只是我对 not() 运算符的理解很薄弱。如果有人帮我解决这个问题,我将不胜感激。

我相信 not() 运算符的计算结果相反。因此,如果它设置为 false,它会将变量切换为 true,如果初始变量值为 true,则 not() 将其设置为 false。我认为它是相反的日期功能。

not 关键字反转布尔值(真值或假值),将 True 变为 False。这意味着如果你想要一段代码 运行 如果变量为假而不是使用 not 你可以使 运行。帮助示例:

finished_game = False
while not finished_game:#While the game isn't finished
    #run game code

这有意义吗?根据我的经验,not 关键字意味着您可以将 False 用作 True

希望有所帮助。

not()的工作方式确实与您的想法相反。 not(guesses_complete) 在这种情况下与使用 guesses_complete == False 相同。如果 guesses_complete == False,则此语句将 return True,这意味着应该执行 while 循环。当 guesses_complete 的值设置为 False.

时,not(guesses_complete) 也会发生同样的情况

not 关键字是逻辑运算符。如果语句不为真,return 值为真,如果语句不为假,return 值为假。 Source。在上面的代码中,我们希望用户一直玩下去,直到他还剩下一些猜测,即,如果 guesses_complete 为 False,我们希望循环执行。