python打印修剪的正方形

时间:2019-03-27 09:59:30

标签: python-3.x

python代码正在打印此

___
____
____
____
_

代替此

____
____
____
____

这是代码,由于其中已被注释掉,因此其中的某些功能无济于事,因此只需忽略关联的变量

X = 0 #majic number 
L = 0 #lines
i = 0 #list intilising varble thing

x = 175 #cordinates are x and y
y = 0 #dont set x&y above 175
Del = x + 1
X = y*176
x = x+X
stuff = []
for L in range(0,7):
        for i in range(0,7):
                i + 1
                stuff.insert(i,"_")



        stuff.insert(i,"\n")
        i + 1
'''stuff.pop(Del)
stuff.insert(x,"q")'''
print(*stuff, sep='')

在当前设置中,它应该打印8 * 8板。我摆弄了i +1的位置,但似乎没有什么不同。 如果有人知道如何以一种交替的方式发展,那将是很好的。 当我这样做的时候,我刚刚得到了abbbbaaa。我应该提早提到这一点,但最终目标是在终端中创建国际象棋游戏。

2 个答案:

答案 0 :(得分:0)

只需使用递增运算符'+ ='。 i + 1在您的代码中没有任何意义,如果将其删除,则不会有任何效果。它应该如下所示:

for L in range(0,7):
        for i in range(0,7):
                i += 1
                stuff.insert(i,"_")



        stuff.insert(i,"\n")

答案 1 :(得分:0)

for在Python中的工作方式与在C语言中的运作方式大不相同。
另外,在Python中,您很少需要使用索引,特别是因为使用迭代器更有效。

我认为您正在尝试通过示例实现这一目标:

#!/usr/bin/env python3
x = 3
y = 2
stuff = []
for L in range(y):
    for i in range(x):
        stuff.append('_')
    stuff.append('\n')
# the list now looks like this:
# stuff = ['_', '_', '_', '\n', '_', '_', '_', '\n']
# It contains y*x strings, each length 1.
# This is something like "char **stuff" in C.
output = ''.join(stuff) # this creates '___\n___\n'
print(output)

请注意,变量iL实际上从未使用过,我们只是使用每个range表示的项数进行迭代。

或者如果您不在乎存储在列表中的字符串,而只想打印矩形:

#!/usr/bin/env python3
x = 3
y = 2
for L in range(y):
    print('_' * x) # by default, print appends '\n' to the end.

'_' * x仅重复字符串'_' x次,创建另一个字符串'___'