Home > database >  Python - how can I print n numbers per line of range by using for loop?
Python - how can I print n numbers per line of range by using for loop?

Time:10-19

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

CodePudding user response:

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)

CodePudding user response:

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

CodePudding user response:

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)}')

CodePudding user response:

solution

sum=0
for i in range(2,1001,2):
    sum =i
    if i  == 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 ==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)))
  • Related