Почему мое гнездо для цикла заканчивается рано? (Python) - PullRequest
0 голосов
/ 30 августа 2018
first_name = input("Please enter your first name: ").capitalize()
start_inner = int(input("Hi {}, please enter the start value for the inner 
loop: ".format(first_name)))
end_inner = int(input("Please enter the end value for the inner loop: "))
start_outer = int(input("Please enter the start value for the outer loop: "))
end_outer = int(input("Please enter the end value for the outer loop: "))
for outer in range(start_outer, end_outer):
    for inner in range(start_inner, end_inner):
        print("{:^2} {:^2}".format(outer, inner))

Если бы я положил 1 (start_inner), 3 (end_inner), 1 (start_outer), 2 (end_outer)

Я должен получить:

1 1
1 2
1 3
2 1
2 2
2 3

Вместо этого я получаю:

1 1
1 2

Любая помощь приветствуется.

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

@ Cut7er прав, но вот решение:

...
for outer in range(start_outer, end_outer+1):
    for inner in range(start_inner, end_inner+1):
        print("{:^2} {:^2}".format(outer, inner))

Мое объяснение:

  1. range включает первое значение

  2. range исключает второе значение

См .: это

0 голосов
/ 30 августа 2018

pythons range(1,5) не является включающим для конечного термина - это означает, что он будет повторяться только от 1 до 4. Подробнее об этой теме здесь : -)

...