Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
For-else loop misbehavior?
#3
Please try the sample code.

With 'for n in range(2,10)'
First line of output should always be: n=2, x=2 (this is never output!)

Again with 'for n in range(4,10)' (or any non-prime number as range start)
Output works as expected now! n=4, x=2

SAMPLE CODE:
for n in range(2, 10):
    for x in range(2, n):
        # ignored 1st-time through inner loop
        #  when n range starts on prime number 
        print('n=' + str(n) + ', x=' + str(x))
        if n % x == 0:
            print(n, 'equals', x, '*', n//x)
            break
    else:
        # loop fell through without finding a factor
        print(n, 'is a prime number')
Reply


Messages In This Thread
For-else loop misbehavior? - by Johne1 - Sep-11-2018, 06:24 PM
RE: For-else loop misbehavior? - by buran - Sep-11-2018, 06:54 PM
RE: For-else loop misbehavior? - by Johne1 - Sep-11-2018, 07:55 PM
RE: For-else loop misbehavior? - by buran - Sep-11-2018, 08:03 PM
RE: For-else loop misbehavior? - by Johne1 - Sep-11-2018, 08:17 PM
RE: For-else loop misbehavior? - by buran - Sep-11-2018, 08:22 PM
RE: For-else loop misbehavior? - by Johne1 - Sep-11-2018, 09:00 PM
RE: For-else loop misbehavior? - by buran - Sep-11-2018, 09:17 PM
RE: For-else loop misbehavior? - by Johne1 - Sep-11-2018, 09:35 PM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020