相关疑难解决方法(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万
查看次数

为什么这个简单的python程序不能按照我想要的方式工作?

以下代码段旨在允许用户输入问题的答案.允许他们输入四个答案:y或者Y是"是",n或者N是"否".如果条目有效,程序应打印出收到的答案,否则打印出错误消息.

answer = input("What is your answer? ")
if answer == "y" or "Y":
    print("You answered yes")
elif answer == "n" or "N":
    print("You answered no")
else:
    print("You didn’t enter an acceptable answer")
Run Code Online (Sandbox Code Playgroud)

它只是继续说我yes不管是否放了n或者是N随机的东西都回答了.有人可以向我解释一下吗?

python python-3.x

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