0

私はPythonとプログラミングが初めてで、この演習を与えられました。以下のコードで期待どおりの結果を得ることができましたが、Python 3.x を使用してこれを解決する他の方法があるかどうか疑問に思っていました。

演習では、数値を取得して次のパターンを生成します。

ユーザー入力: 1

X

ユーザー入力: 2

O O O
O X O
O O O

ユーザー入力: 3

X X X X X
X O O O X
X O X O X
X O O O X
X X X X X

等々...

ここに私が持っているものがあります:

def makePattern():
    num = int(input("Enter a number: "))
    def makeBoxes(num):
        width = (num * 2) - 1
        midpoint = num - 1
        matrix = [ [ "X" for i in range(width) ] for j in range(width) ]
        for d1 in range(width):
            mpD1 = abs(midpoint - d1)
            for d2 in range(width):
                mpD2 = abs(midpoint - d2)
                if (mpD1 % 2 == 1):
                    if mpD2 <= mpD1:
                        matrix[d1][d2] = "O"
                if (mpD2 % 2 == 1):
                    if mpD1 <= mpD2:
                        matrix[d1][d2] = "O"
        printBoxes(matrix,width)
        makePattern()
    def printBoxes(matrix,width):
        holder = ""
        count = 1
        for row in matrix:
            for point in row:
                holder += (point + " ")
                if count % width == 0:
                    print(holder)
                    holder = ""
                count += 1
    makeBoxes(num)
makePattern()
4

1 に答える 1