当前位置: 首页 > 知识库问答 >
问题:

在python中使用多个逻辑运算符[重复]

壤驷睿
2023-03-14

我有点好奇下面的代码中是否有我遗漏的东西,

我希望用户输入"Y""H""E"的逻辑,我想使用返回语句将其转移到另一个类。如果不是这样,我使用ster部分返回布尔值False

有一个while循环,将控件发送回同一个函数,直到用户输入所需的值。

在运行程序时,无论接收到什么输入,它都不会进入其他部分。

def getUserIngameOption(self):

    userIngameOption=raw_input("Please Enter Y -> for Turn | H -> Hint | E -> to End")        
    userDesc=userIngameOption.upper()


     if not ( userDesc==("Y") or ("H") or ("E")):

         print "Mate PLEASE JUST TYPE WHATTTT is asked for !! not this",userDesc
         return False
     else:
         self.userOpt=userDesc
         print "This is detail that you got>>>",self.userOpt
         return self.userOpt

共有3个答案

钱宇
2023-03-14

这是正确的方法:

if not ( userDesc=="Y" or userDesc=="H" or userDesc=="E")

或者这个:

if  userDesc  not in ("H","Y","E").
郜卓君
2023-03-14

正在发生的是,每个值都是单独计算的,您需要显式地比较每个值。

if not ( userDesc=="Y" or userDesc=="H" or userDesc=="E")

"E"和"H"将在当前代码中求值为True。

亢奇
2023-03-14

你没有正确地进行比较。您正在将第一次比较的结果与布尔值“H”和“E”进行ORing。由于“H”和“E”的布尔值为True,因此IF语句将始终为False(因为您正在使用而不是反转条件的结果)。

更改此项:

if not (userDesc==("Y") or ("H") or ("E"))

到:

if userDesc not in ("Y","H","E"):

 类似资料:
  • 主要内容:打脸某些 Python 教程,逻辑运算符的本质高中数学中我们就学过逻辑运算,例如 p 为真命题,q 为假命题,那么“p且q”为假,“p或q”为真,“非q”为真。 Python 也有类似的逻辑运算,请看下表: 表 1 Python 逻辑运算符及功能 逻辑运算符 含义 基本格式 说明 and 逻辑与运算,等价于数学中的“且” a and b 当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假。 or 逻辑或运算,等价于数学

  • 问题内容: 在阅读python中的逻辑运算符时,我遇到了一些表达式: 输出1 输出:5 谁能解释这是如何工作的? 我知道, 操作数 的的 逻辑 运算符是 布尔 问题答案: 有据可查: 两者都短路(例如,如果为 真,则不会评估)。 __ 该文档还指出了被认为 falsy (,,,空序列/映射,…) -一切被认为是 truthy 。 一些例子: 请注意,最后两个如何显示短路行为:不执行第二个语句(将引

  • 我已经尝试了所有的方法,如果你不选择“ST”,它会不断地在while循环中循环。我不知道该怎么办,如果有人能告诉我,那将非常有帮助。我在顶部添加了一些上下文代码;我只需要while循环的帮助。我正在使用循环,因此如果他们没有选择给定的位置,他们必须重新选择。 这是我的密码:

  • 本文向大家介绍总结Python中逻辑运算符的使用,包括了总结Python中逻辑运算符的使用的使用技巧和注意事项,需要的朋友参考一下 下表列出了所有Python语言支持的逻辑运算符。假设变量a持有10和变量b持有20,则:  示例: 试试下面的例子就明白了所有的Python编程语言提供了逻辑运算符: 当执行上面的程序它会产生以下结果:

  • JavaScript 中有三个逻辑运算符:||(或),&&(与),!(非)。 虽然它们被称为“逻辑”运算符,但这些运算符却可以被应用于任意类型的值,而不仅仅是布尔值。它们的结果也同样可以是任意类型。 让我们来详细看一下。 ||(或) 两个竖线符号表示“或”运算符: result = a || b; 在传统的编程中,逻辑或仅能够操作布尔值。如果参与运算的任意一个参数为 true,返回的结果就为 tr

  • 问题内容: 我对使用Python中的逻辑运算符获得的结果感到有些困惑。我是一个初学者,正在学习一些书籍,但是它们并没有像我所希望的那样详尽地解释。 这是我自己的代码: 似乎只是输出两个变量。 因此,我添加了另一个变量整数。然后我打印并得到以下输出: 后台Python到底是怎么回事?为什么输出的不是7或5、2之类的。 问题答案: Python布尔运算符返回最后计算的值,而不是True / False