我正在尝试创建一个函数,将多个变量与一个整数进行比较,并输出一个由三个字母组成的字符串.我想知道是否有办法将其翻译成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中,如果你写的东西像
foo==bar and spam or eggs
Run Code Online (Sandbox Code Playgroud)
如果布尔语句为true,则python似乎返回垃圾邮件,否则返回egg.有人可以解释这种行为吗?为什么表达式没有被评估为像一个长布尔值?
编辑:具体来说,我试图弄清楚为什么'垃圾'或'鸡蛋'作为表达结果返回的机制.
True and "asdf" or "qwer"
Run Code Online (Sandbox Code Playgroud)
结果 => "asdf"
False and "asdf" or "qwer"
Run Code Online (Sandbox Code Playgroud)
结果 => "qwer"
我无法理解这些东西是如何运作的。我认为字符串上的布尔运算符会导致类型错误,但事实并非如此。它是否类似于预定义语句,例如“a if b else c”?