печать на python обрезанных квадратов

#python-3.x

#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 xamp;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. я должен был упомянуть об этом раньше, но конечная цель — создать игру в шахматы в терминале.

Ответ №1:

Просто используйте оператор увеличения ‘ =’. i 1 ничего не значит в вашем коде и не будет иметь никакого эффекта, если вы его удалите. Это должно быть следующим:

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



        stuff.insert(i,"n")
  

Ответ №2:

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 раз, создавая другую строку, '___'