0
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))

If I were to put 1(start_inner), 3(end_inner), 1(start_outer), 2(end_outer)

I should get:

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

Instead i get:

1 1
1 2

Any help is appreciated thanks.

2
  • 1
    The end of a range is not inclusive (exclusive). range(1, 3) will yield (1, 2) Commented Aug 30, 2018 at 9:53
  • Possible duplicate of Why are slice and range upper-bound exclusive? Commented Aug 30, 2018 at 9:59

2 Answers 2

1

pythons range(1,5) is non-inclusive for the end-term - meaning it will only loop from 1 to 4. Read more regarding this topic here :-)

Sign up to request clarification or add additional context in comments.

Comments

1

@Cut7er is right, but here is he solution:

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

My Explanation:

  1. range includes first value

  2. range excludes second value

See: this

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.