Python 蟒蛇棋盘(简单)

Python 蟒蛇棋盘(简单),python,Python,我在编码方面有点新手,所以我有点不懂堆叠,但对这个Python棋盘任务感到困惑。 我想我对代码有点“过火” 因此,这里有一项任务: 给定棋盘的两个单元格。如果它们是用一种颜色绘制的,请打印“是”,如果用另一种颜色,则打印“否”。 程序接收从1到8的四个数字的输入,每个数字指定列和行号,前两个用于第一个单元格,后两个用于第二个单元格 这是我的代码: h1 = int (input()) #first cell height w1 = int (input()) #first cell width

我在编码方面有点新手,所以我有点不懂堆叠,但对这个Python棋盘任务感到困惑。 我想我对代码有点“过火”

因此,这里有一项任务: 给定棋盘的两个单元格。如果它们是用一种颜色绘制的,请打印“是”,如果用另一种颜色,则打印“否”。 程序接收从1到8的四个数字的输入,每个数字指定列和行号,前两个用于第一个单元格,后两个用于第二个单元格

这是我的代码:

h1 = int (input()) #first cell height
w1 = int (input()) #first cell width
h2 = int (input()) #second cell height
w2 = int (input()) #second cell width

#Guessing first cell color
if ((h1 % 2 != 0) and (w1 % 2 != 0)) or ((h1 % 2 == 0) and (w1 % 2 == 0)):
    one = str ('black')
else:
    one = str ('white')

#Guessing second cell color
if ((h2 % 2 != 0) and (w2 % 2 != 0)) or ((h2 % 2 == 0) and (w2 % 2 == 0)):
    two = str ('black')
else:
    two = str ('white')

#compare two cells
if one == two:
    print ('YES')
else:
    print ('NO')
有些东西告诉我,它可以比当前版本简单得多。

试试这个

h1 = int(input())
w1 = int(input())
h2 = int(input())
w2 = int(input())

def is_same_colour(h1, w1, h2, w2):
    if ((h1 + w1) % 2) == ((h2 + w2) % 2):
        print('YES')
    else:
        print('NO')

is_same_colour(h1, w1, h2, w2)

它使用了这样一个事实,即当单元格为黑色时,其行和列的总和为偶数,当单元格为白色时,其行和列的总和为奇数。

如果这是您认为可以改进的工作代码,请参阅。如果没有,请用a说明问题。您不需要将字符串强制转换为
str
。字符串已经是字符串。您可以尝试类似于
if(h1+w1)%2==0
的方法来检查它是否是白色平铺,否则它是黑色平铺。
h2
w2
也是如此。基本上,您可以在if条件之后立即打印结果,因此不需要使用“一”和“二”变量。如果((h2%2!=0)和(w2%2!=0))==((h2%2==0)和(w2%2==0)),您可以写:打印(“是”),否则:打印(“否”),谢谢您的回答。很抱歉,发布的工作代码不在代码审阅中。将来我们也会这样做。