Python – how can I print n numbers per line of range by using for loop?

Question:

I have seen some examples of printing numbers per line, but I still didn’t get it:(
I’ve tested n but it didn’t show up the result and I don’t know why it won’t work as I’m new to python, thank you so much!!!!!

My codes:

sum=0
sq=""

for i in range (0+2,1000+1,2):
   sum+=i
   if i<1000:
      sq=sq+str(i)+","
    
   else:
      sq=sq+str(i)
print(sq, end="n")
print("Sum of all even numbers within 1 and 1000 =",sum)

My output:

2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,462,464,466,468,470,472,474,476,478,480,482,484,486,488,490,492,494,496,498,500,502,504,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,810,812,814,816,818,820,822,824,826,828,830,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860,862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900,902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,990,992,994,996,998,1000
Sum of all even numbers within 1 and 1000 = 250500

How can we achieve an output like this by using for loop:

2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40
42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80
…
922, 924, 926, 928, 930, 932, 934, 936, 938, 940, 942, 944, 946, 948, 950, 952, 954,956, 958, 960
962, 964, 966, 968, 970, 972, 974, 976, 978, 980, 982, 984, 986, 988, 990, 992, 994, 996, 998, 1000
Sum of all even numbers within 1 and 1000 = 250500
Asked By: SASORRRRI

||

Answers:

firstly, sum is a protected keyword since it is the list sum function, so don’t call any variables "sum".

to split the string, try:

sum=0
sq=""

for i in range (0+2,1000+1,2):
   sum+=i
   if i<1000:
      sq=sq+str(i)+", "
    
   else:
      sq=sq+str(i)
   if i % 40 == 0:
      sq += "n"
print(sq, end="n")
print("Sum of all even numbers within 1 and 1000 =",sum)
Answered By: Matthew Miles

solution

sum=0
for i in range(2,1001,2):
    sum+=i
    if i%20 == 2: print("n{}".format(i),end="")    # print new line per 20 numbers
    else: print(", {}".format(i),end="")
print("nSum of all even numbers within 1 and 1000 =",sum)
  • Output:

    2, 4, 6, 8, 10, 12, 14, 16, 18, 20 
    22, 24, 26, 28, 30, 32, 34, 36, 38, 40 
    ...
    962, 964, 966, 968, 970, 972, 974, 976, 978, 980 
    982, 984, 986, 988, 990, 992, 994, 996, 998, 1000
    Sum of all even numbers within 1 and 1000 = 250500
    

another solution with better run time performance

print("".join(["n"+str(i) if i%20==2 else ", "+str(i) for i in range(2,1001,2)]))
print("nSum of all even numbers within 1 and 1000 =",sum(range(2,1001,2)))
Answered By: Xin Cheng

Uisng textwrap Inbuilt Library

import textwrap
import re

sum=0
sq=""


for i in range (0+2,1000+1,2):
   sum+=i
   if i<1000:
      sq=sq+str(i)+","
    
   else:
      sq=sq+str(i)
#print(sq, end="n")

print('n'.join(textwrap.wrap(sq, 20)))#Mask n here

      
print("Sum of all even numbers within 1 and 1000 =",sum)

#output

2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
,32,34,36,38,40,42,44,46,48,50,52,54,56,
58,60,62,64,66,68,70,72,74,76,78,80,82,8
4,86,88,90,92,94,96,98,100,102,104,106,1
08,110,112,114,116,118,120,122,124,126,1
28,130,132,134,136,138,140,142,144,146,1
48,150,152,154,156,158,160,162,164,166,1
68,170,172,174,176,178,180,182,184,186,1
88,190,192,194,196,198,200,202,204,206,2
08,210,212,214,216,218,220,222,224,226,2
28,230,232,234,236,238,240,242,244,246,2
48,250,252,254,256,258,260,262,264,266,2
68,270,272,274,276,278,280,282,284,286,2
88,290,292,294,296,298,300,302,304,306,3
08,310,312,314,316,318,320,322,324,326,3
28,330,332,334,336,338,340,342,344,346,3
48,350,352,354,356,358,360,362,364,366,3
68,370,372,374,376,378,380,382,384,386,3
88,390,392,394,396,398,400,402,404,406,4
08,410,412,414,416,418,420,422,424,426,4
28,430,432,434,436,438,440,442,444,446,4
48,450,452,454,456,458,460,462,464,466,4
68,470,472,474,476,478,480,482,484,486,4
88,490,492,494,496,498,500,502,504,506,5
08,510,512,514,516,518,520,522,524,526,5
28,530,532,534,536,538,540,542,544,546,5
48,550,552,554,556,558,560,562,564,566,5
68,570,572,574,576,578,580,582,584,586,5
88,590,592,594,596,598,600,602,604,606,6
08,610,612,614,616,618,620,622,624,626,6
28,630,632,634,636,638,640,642,644,646,6
48,650,652,654,656,658,660,662,664,666,6
68,670,672,674,676,678,680,682,684,686,6
88,690,692,694,696,698,700,702,704,706,7
08,710,712,714,716,718,720,722,724,726,7
28,730,732,734,736,738,740,742,744,746,7
48,750,752,754,756,758,760,762,764,766,7
68,770,772,774,776,778,780,782,784,786,7
88,790,792,794,796,798,800,802,804,806,8
08,810,812,814,816,818,820,822,824,826,8
28,830,832,834,836,838,840,842,844,846,8
48,850,852,854,856,858,860,862,864,866,8
68,870,872,874,876,878,880,882,884,886,8
88,890,892,894,896,898,900,902,904,906,9
08,910,912,914,916,918,920,922,924,926,9
28,930,932,934,936,938,940,942,944,946,9
48,950,952,954,956,958,960,962,964,966,9
68,970,972,974,976,978,980,982,984,986,9
88,990,992,994,996,998,1000
Sum of all even numbers within 1 and 1000 = 250500

Also

import textwrap
import re

sum=0
sq=""


for i in range (0+2,1000+1,2):
   sum+=i
   if i<1000:
      sq=sq+str(i)+","
    
   else:
      sq=sq+str(i)
#print(sq, end="n")


print (textwrap.fill(sq, 20))
      
print("Sum of all even numbers within 1 and 1000 =",sum)

#same output

Answered By: Bhargav

Try this,

lst = [i for i in range(2,1001,2)]
for i in range(0, len(lst), 20):
    print(','.join(str(i) for i in lst[i:i+20]))
print(f'Sum of all even numbers within 1 and 1000 : {sum(lst)}')
Answered By: Rahul K P
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.