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。我应该提早提到这一点,但最终目标是在终端中创建国际象棋游戏。
答案 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)
请注意,变量i
和L
实际上从未使用过,我们只是使用每个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
次,创建另一个字符串'___'