Python程序根据行和列确定字母

我当前的代码位于此处,其中包含我想要显示的模式


XOOOOOX

OXOOOXO

OOXOXOO

OOOXOOO

OOXOXOO

OXOOOXO

XOOOOOX

代码:


#starting from the 1st row and ending at the 8th row

for row in range (1, 8):

    

    #within each row, starting from the 1st col and ending in the 8th col

    for col in range(1, 8):

        #decide what to print at the current location

        if ((row - col)) == 0:

            print("X", end="")

        elif((row + 1)) == 0:

             print("X", end="")

        else:

            print("O", end="")


    #go onto the next row

    print()


holdtom
浏览 181回答 3
3回答

梵蒂冈之花

如果你想显示x,下面的代码就足够了:你可以将字母的大小相差N,尽量避免硬编码一些任意数字。N = 8    # starting from the 1st row and ending at the 8th rowfor row in range(1, N):    # within each row, starting from the 1st col and ending in the 8th col    for col in range(1, N):        # decide what to print at the current location        if row == col or row == N-col:            print("X", end="")        else:            print("O", end="")    # go onto the next row    print()

繁星coding

正如您所看到的,您的逻辑不会执行任何插入第二个操作X。for row in range (1, 8):     ...         elif((row + 1)) == 0:由于 row 采用 0-7 范围内的值,因此这是不可能的:仅当 时才为 true row = -1。是的,Python 允许您从右侧对列表进行索引,但用作索引的变量不会自动采用第二个值来满足这些语义。您必须明确地为其指定一个值。您需要重写您的条件以row与最终索引进行比较,并且您必须涉及col,就像您对主对角线所做的那样。

饮歌长啸

您可以将字符串转换为列表,并根据字符串的长度和当前的 i 使更改对称LEN = 7#length of stringstring = ""#initialize stringfor i in range(LEN):    string += "O"    #change and printfor i in range(LEN):    new_string = list(string)#from string to list    new_string[i] = "X"#change the i    new_string[LEN-i-1] = "X"#symmetrical change    new_string = "".join(new_string)#list to string    print(new_string)您可以根据需要更改 LEN 和字符
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python