Python 如何分解此函数?
我有一个关于python代码的问题Python 如何分解此函数?,python,Python,我有一个关于python代码的问题 def myst(val1, val2): if(val1 and val2): return 'a' elif(val1 and not val2): return 'b' elif(not val1 and val2): return 'c' else: return "d" 问题: myst(not(not False and True), not(not False or False)) 正确答案是什么 我试图分解这个函数,
def myst(val1, val2):
if(val1 and val2):
return 'a'
elif(val1 and not val2):
return 'b'
elif(not val1 and val2):
return 'c'
else:
return "d"
问题:
myst(not(not False and True), not(not False or False))
正确答案是什么
我试图分解这个函数,所以它会变成
myst(不是(True,True),但这是不正确的。首先应该在方法调用时计算布尔表达式
val1
=非(非假与真)
=>非(真与真)
=>非(真)
=>假
val2
=非(非假或假)
=>非(真或假)
=>非(真)
=>假
因此,在这个方法调用中,val1
和val2
都将为False
在if条件之后,当两个参数都为
False
时,none条件匹配,因此将选择else语句,最终返回值将为“d”。输出将为d
,过程如下所示:-
我希望它能对你有所帮助。myst(不(不假不假),不(不假不假))
让我们看第一个参数,它是“不是(不是假的和真的)”
非(非假与真)=>非(真与真)=>非(真)=>假
现在来看第二个论点,它是“不(不假或假)”
非(非假或假)=>非(真或假)=>非(真)=>假
所以,这两个论点都是错误的
两个伪参数都满足的唯一条件是last else:
所以它将返回“d”
希望它能有所帮助如果你像在代数中那样减少陈述,它就会变得清晰:
myst(not(not False and True), not(not False or False)) ... parentheses first
myst(not(True and True), not(True or False)) <-- "not X" has priority
myst(not(True), not(True))
myst(False,False)
"d"
这是家庭作业吗?它来自考试。
不假
是真
,不假
是假
和不是(…和…
和不是(…或…
分别来自不是…
和不是…
),然后你拿起一张纸和一支笔解决它。myst(假,假)结果先用d括号,先用内括号,再向外求解。
def myst(val1, val2): return "dcba"[2*val1+val2]
False, False = 00 = 0 --> d
False, True = 01 = 1 --> c
True, False = 10 = 2 --> b
True, True = 11 = 3 --> a