为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

holdtom 2023-08-22 17:07:58
我当前的代码位于此处,其中包含我想要显示的模式XOOOOOXOXOOOXOOOXOXOOOOOXOOOOOXOXOOOXOOOXOXOOOOOX代码:#starting from the 1st row and ending at the 8th rowfor 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()
查看完整描述

3 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

如果你想显示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()


查看完整回答
反对 回复 2023-08-22
?
繁星coding

TA贡献1797条经验 获得超4个赞

正如您所看到的,您的逻辑不会执行任何插入第二个操作X

for row in range (1, 8):
    ...    
    elif((row + 1)) == 0:

由于 row 采用 0-7 范围内的值,因此这是不可能的:仅当 时才为 true row = -1。是的,Python 允许您从右侧对列表进行索引,但用作索引的变量不会自动采用第二个值来满足这些语义。您必须明确地为其指定一个值。

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


查看完整回答
反对 回复 2023-08-22
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

您可以将字符串转换为列表,并根据字符串的长度和当前的 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)

您可以根据需要更改 LEN 和字符


查看完整回答
反对 回复 2023-08-22
  • 3 回答
  • 0 关注
  • 180 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信