在python中创建这个模式

时间:2015-04-10 11:10:50

标签: python

需要编写程序以打印出具有给定高度和图案的正方形,如下所示。 (这是一个2x2交替块的正方形,“=”模式始终位于左上角)

输入:

Enter the height:
6

输出:

==XX==

==XX==

XX==XX

XX==XX

==XX==

==XX==

代码:

x = eval(input("Enter the height: "))
j=0
i=0
for i in range(x):
    for j in range(x):
        if(i==0 or i==1):
            if(j == 0 or j == 1):
                print("=",end="")
            elif(j == 2 or  j== 3):
                print("X",end="")
                j=j+1
            elif(j==4):
                j=0

    if(i == 2 or i == 3):
        if(j == 0 or j == 1):
            print("X",end="")
        elif(j == 2 or j == 3):
            print("=",end="")
if(i==4):
    i=0
i=i+1
print()

仅产生:

==XX

==XX

XX==

XX==

2 个答案:

答案 0 :(得分:0)

测试有效输入(必须是偶数)。

计算每行中行和组(对)的组(对)数(输入除以2)。

为所需数量的行组创建一个循环。

在里面创建两行循环。

在里面为所需数量的标志组制作循环。

在其内部为组中所需数量(2)的字符组成循环。

打印一个标志,这是' ='如果是当前行数的奇偶校验'组与当前字符数的奇偶性相同。小组,' X'否则。

在每一行的末尾(在chars group循环之后)打印行尾。

完成。

答案 1 :(得分:0)

当你使用那种模式做事时,你应该使用模数。 在您的代码中,您只处理i< 4,您的身份似乎有点随机的情况。

我认为这会做你想做的事情:

x = input("Enter the height: ")
output = ""
for i in range(x):
    for j in range(x):
        if (((i/2)%2 == 0 and ((j/2)%2) != 0) or ((i/2)%2 != 0 and ((j/2)%2) == 0)):
            output += "X"
        else:
            output += "="
        if (j%x == x-1):
            output += "\n"
print(output)