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

问题描述

学习如何在 Python 中编码(再次),我正在研究这个简单的单词猜谜游戏。代码(写在下面)来自我一直关注的 YouTube 视频(freeCodeCamp 的 Learn Python - Full Course for Beginners [教程])。

我不明白 --detectOpenHandles 在这代码中如何在逻辑上有意义。

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

但是 guesses_complete 的初始值设置为 False,因此根本不应执行 not() 循环。

guesses_complete

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

解决方法

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

,

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

,

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

,

not 关键字反转布尔值(真或假值),将 True 变成 False。这意味着,如果您希望在变量为假的情况下运行一段代码,而不是使用 not,那么您可以运行该代码。帮助示例:

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

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

希望有所帮助。