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