基于行和列确定字母的Python程序

基于行和列确定字母的Python程序,python,for-loop,while-loop,Python,For Loop,While Loop,我的当前代码在下面,带有我想要显示的模式 XOOOOOX OXOOOXO OOXOXOO OOOXOOO OOXOXOO OXOOOXO XOOOOOX 代码: 正如您所看到的,您的逻辑对插入第二个X没有任何作用 for row in range (1, 8): ... elif((row + 1)) == 0: 因为行的值在0-7范围内,所以这是不可能的:只有当row=-1时才可能是真的。是的,Python允许您从右侧索引列表,但用作索引的变量不会自动采用第二个值来满足这些

我的当前代码在下面,带有我想要显示的模式

XOOOOOX
OXOOOXO
OOXOXOO
OOOXOOO
OOXOXOO
OXOOOXO
XOOOOOX
代码:


正如您所看到的,您的逻辑对插入第二个
X
没有任何作用

for row in range (1, 8):
    ...
    elif((row + 1)) == 0:
因为行的值在0-7范围内,所以这是不可能的:只有当
row=-1
时才可能是真的。是的,Python允许您从右侧索引列表,但用作索引的变量不会自动采用第二个值来满足这些语义。您必须显式地给它一个值


您需要重写条件以将
与结束索引进行比较,并且您必须涉及
,就像您对主对角线所做的那样。

如果要显示x,以下代码就足够了: 您可以将字母大小相差N,尽量避免硬编码一些任意数字

N = 8
    # starting from the 1st row and ending at the 8th row
for 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()

您可以将字符串转换为列表,并根据字符串的长度和当前i对称进行更改

LEN = 7#length of string
string = ""

#initialize string
for i in range(LEN):
    string += "O"
    
#change and print
for 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)

您可以随意更改镜头和字符

欢迎使用SO!你的问题是什么?你想只打印X还是所有的字母?虽然刚才有人给了我代码,但这确实帮助我理解了我所做的事情的实际错误,我很感谢你花时间给我指出正确的方向,也很快,因为我刚刚发布了这个。再次感谢您,如果我的帖子格式不正确,很抱歉,这是我第一次在这里提交内容。感谢您的帮助,我似乎添加了不必要的步骤,这看起来简单多了
LEN = 7#length of string
string = ""

#initialize string
for i in range(LEN):
    string += "O"
    
#change and print
for 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)