相关疑难解决方法(0)

如何针对值测试多个变量?

我正在尝试创建一个函数,将多个变量与一个整数进行比较,并输出一个由三个字母组成的字符串.我想知道是否有办法将其翻译成Python.所以说:

x = 0
y = 1
z = 3
mylist = []

if x or y or z == 0 :
    mylist.append("c")
if x or y or z == 1 :
    mylist.append("d")
if x or y or z == 2 :
    mylist.append("e")
if x or y or z == 3 : 
    mylist.append("f")
Run Code Online (Sandbox Code Playgroud)

这将返回一个列表

["c", "d", "f"]
Run Code Online (Sandbox Code Playgroud)

这样的事情可能吗?

python comparison boolean-logic if-statement match

594
推荐指数
19
解决办法
19万
查看次数

为什么`a == b或c或d`总是评估为True?

我正在编写一个拒绝访问未授权用户的安全系统.

import sys

print("Hello. Please enter your name:")
name = sys.stdin.readline().strip()
if name == "Kevin" or "Jon" or "Inbar":
    print("Access granted.")
else:
    print("Access denied.")
Run Code Online (Sandbox Code Playgroud)

它按预期授予对授权用户的访问权限,但它也允许未经授权的用户访问!

Hello. Please enter your name:
Bob
Access granted.
Run Code Online (Sandbox Code Playgroud)

为什么会这样?我明确表示,只有在与nameKevin,Jon或Inbar相同时才授予访问权限.我也尝试过相反的逻辑if "Kevin" or "Jon" or "Inbar" == name,但结果是一样的.

python boolean boolean-expression

96
推荐指数
3
解决办法
2万
查看次数

将变量与多个值进行比较的简洁方法

我一直试图了解是否可以使用类似于我在下面演示的语句的 if 语句。我的理解是不是?

for i in range(10):
  if i == (3 or 5) or math.sqrt(i) == (3 or 5):
    numbers.append(i)
Run Code Online (Sandbox Code Playgroud)

使用这段代码,我只能得到数字3& 9,而我应该得到3, 5, 9. 是否有另一种方法可以不列出下面的代码?

for i in range(10):
  if i == 3 or i == 5 or math.sqrt(i) == 3 or math.sqrt(i) == 5:
    numbers.append(i)
Run Code Online (Sandbox Code Playgroud)

python if-statement

2
推荐指数
1
解决办法
80
查看次数

在python中使用多个逻辑运算符

如果我在下面的代码中遗漏了一些东西,我有点好奇,

逻辑我希望用户输入或者"Y","H"或者"E"我希望使用return语句转移到另一个类.如果不是,我使用该else部分返回布尔值False.

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

在运行程序时,else无论收到什么输入,它都不会进入零件.

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
Run Code Online (Sandbox Code Playgroud)

python python-2.7

1
推荐指数
1
解决办法
6286
查看次数