Форум сайта python.su
Народ,очень прошу помочь с таким вот заданьицем. Есть матрица размерностью n*m рандомно заполненная 0/1.
Как сделать так,чтобы выводить эту матрицу каждый последующий раз с “минус одной строкой сверху”, до тех пор,пока n не станет равно 3. Т.е. получиться должно 8 матриц: 1-я - 10*20 ……. 8-я - 3*20.
Пожалуйста подскажите кто может,заранее благодарен
import random
import sys
n = 10
m = 20
matr = [ * m for i in xrange(n)]
def main(args):
limit = (0, 1)
for x in xrange(n):
for y in xrange(m):
matr = random.choice(limit)
print matr
if __name__ == “__main__”:
main(sys.argv)
Офлайн
while len(matr) > 3:
print(matr)
matr = matr[1:]
Офлайн
import random
import sys
n = 10
m = 20
matr = [[0] * m for i in xrange(n)]
def main(args):
limit = (0, 1)
for x in xrange(n):
for y in xrange(m):
matr[x][y] = random.choice(limit)
while len(matr) > 2:
print(matr)
matr = matr[1:]
if __name__ == "__main__":
main(sys.argv)
Офлайн
У тебя цикл находится за пределами функции main, т.е. сначала у тебя происходит вывод нулевой матрицы, а потом вызов функции с рандомом. Это же питон, надо сделать всему циклу while отступ на один таб (или что там у тебя в качестве отступов).
Офлайн
Спасибо баальшое Evgen!
Моя проблема на данном этапе решена)
Офлайн