提问人:Networking Space 提问时间:12/10/2022 最后编辑:Hampus LarssonNetworking Space 更新时间:12/11/2022 访问量:64
我发现很难理解代码中的布尔逻辑
I am finding it hard to understand Boolean Logic in code
问:
下面的代码包含带有布尔表达式的 Python 代码。请帮助我理解其中的逻辑以及它们如何产生不同的结果。
#code 1
for row in range(7):#Code to print rows
for col in range(5):#Code to print columns
if ((col == 0 or col == 4) or row!=0):
print("*", end = "")
else:
print(end = " ")
print()
#Code 2
for row in range(7):#Code to print rows
for col in range(5):#Code to print columns
if ((col ==0 and col == 4) and row!=0):
print("*", end = "")
else:
print(end = " ")
print()
#Code 3
for row in range(7):#Code to print rows
for col in range(5):#Code to print columns
if ((col ==0 or col == 4) and row!=0):
print("*", end = "")
else:
print(end = " ")
print()
#code 4
for row in range(7):#Code to print rows
for col in range(5):#Code to print columns
if ((col ==0 and col == 4) or row!=0):
print("*", end = "")
else:
print(end = " ")
print()
答:
0赞
Axel Kemper
12/11/2022
#1
这四个代码有一个共同点:
两个嵌套循环经历不同的情况。
对于每种情况,都会计算一个布尔表达式。根据结果,打印一个“*”,一个间隙/空格。7x5 = 35
true
false
在英语中,四个布尔表达式可以描述如下:
1: ((col == 0 or col == 4) or row!=0)
当 是 或 或 不等于 时,这是正确的。
换言之:对于第一个,有两个“*”列。
对于其余六行,所有列的结果均为“*”col
0
4
row
0
row
2: ((col == 0 and col == 4) and row!=0)
这只能适用于最后六行。
但不能同时有两个不同的值。
因此,表达式始终为 。这是一个矛盾。col
false
3: ((col == 0 or col == 4) and row!=0)
这只能用于五列中的两列。
这是第一个.true
false
row
4: ((col == 0 and col == 4) or row!=0)
该部分是矛盾的,因此总是.
但该部分是最后六行的。
因此,打印一行空白行,后跟六行“*”col
false
row
true
评论