Шаблон номера вложенного цикла Python, выводящий дополнительную строку? - PullRequest
0 голосов
/ 14 октября 2018

Я пытаюсь создать сетку чисел, специально используя циклы for.Мой код выглядит следующим образом:

def draw_grid (num):#x represents row y representes column
for x in range (num):
    print(x+1, end= ' ' )
    print()
    for y in range (num):
        print(y+1, end= ' ' )

И мой результат будет таким, когда я рисую сетку 10, например. 1 1 2 3 4 5 6 7 8 9 10 2 1 2 3 4 5 6 7 8 9 10 3 1 2 3 4 5 6 7 8 9 10 4 1 2 3 4 5 6 7 8 9 10 5 1 2 3 4 5 6 7 8 9 10 6 1 2 3 4 5 6 7 8 9 10 7 1 2 3 4 5 6 7 8 9 10 8 1 2 3 4 5 6 7 8 9 10 9 1 2 3 4 5 6 7 8 9 10 10 1 2 3 4 5 6 7 8 9 10

Я пытался манипулировать им несколькими различными способами, но я не могу понять, что создает 1 вверху и 2-10 в крайнем правом столбце?Должно ли мое значение Y быть закодировано по-другому?

1 Ответ

0 голосов
/ 14 октября 2018

Вот что происходит

def draw_grid (num):#x represents row y representes column
    for x in range (num):
        print(x+1, end= ' ' )
        print()
        for y in range (num):
            print(y+1, end= ' ' ) 

В вашем внешнем цикле вы печатаете x + 1 на каждой итерации без перевода строки, end = ' ', а затем печатаете новую строку, print().На первой итерации вы печатаете 1 без новой строки, за которой следует новая строка с print(), затем он входит в ваш внутренний цикл и печатает 1-10 снова без новой строки в конце.Теперь, когда происходит вторая итерация вашего внешнего цикла, она печатает 2, это будет напечатано сразу после всех значений y, за которыми следует print(), и процесс повторяется.

То, что вы хотите, этоСкорее всего,

def draw_g(num):
    for x in range(num):
        for y in range(num):
            print(y + 1, end = ' ')
        print()

draw_g(10)

Здесь мы используем наш внешний цикл только для определения количества строк, раз мы будем печатать все значения в нашем внутреннем цикле.Для нашей первой итерации мы печатаем все значения y + 1 в range(num), как только она будет завершена, мы используем print() для перехода к следующей строке, а затем происходит вторая итерация внешнего цикла, это повторяется для x in range(num),И результат таков.

1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
...