Python:1到100使用10行的While语句

时间:2016-03-24 11:29:30

标签: python

我正在尝试使用while语句打印1到100。 嗯,这很容易

"select salution||' '||firstname||' '||lastname as custName, "
    + "city as custCity, state as custState, zip as custZip, "
    + "dob as custDob, idhardtoken as custAdarNo from mstuser"

但问题是如何连续放1到10,连续放11到20,最后连续放91到100。 你能说出来吗?

7 个答案:

答案 0 :(得分:3)

您可以使用zipiter

lst = [i for i in zip(*[iter(range(1,101))]*10)]

将最后一个数字更改为您想要的块的大小;在这种情况下,它是10

输出:

>>> lst
[(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), (11, 12, 13, 14, 15, 16, 17, 18, 19, 20), (21, 22, 23, 24, 25, 26, 27, 28, 29, 30), (31, 32, 33, 34, 35, 36, 37, 38, 39, 40), (41, 42, 43, 44, 45, 46, 47, 48, 49, 50), (51, 52, 53, 54, 55, 56, 57, 58, 59, 60), (61, 62, 63, 64, 65, 66, 67, 68, 69, 70), (71, 72, 73, 74, 75, 76, 77, 78, 79, 80), (81, 82, 83, 84, 85, 86, 87, 88, 89, 90), (91, 92, 93, 94, 95, 96, 97, 98, 99, 100)]

然后打印列表中的每个数字:

for i in lst:
    for j in i:
        print(j, end=" ")
    print()

输出:

1 2 3 4 5 6 7 8 9 10 
11 12 13 14 15 16 17 18 19 20 
21 22 23 24 25 26 27 28 29 30 
31 32 33 34 35 36 37 38 39 40 
41 42 43 44 45 46 47 48 49 50 
51 52 53 54 55 56 57 58 59 60 
61 62 63 64 65 66 67 68 69 70 
71 72 73 74 75 76 77 78 79 80 
81 82 83 84 85 86 87 88 89 90 
91 92 93 94 95 96 97 98 99 100 

总的来说,你有:

lst = [i for i in zip(*[iter(range(1,101))]*10)]

for i in lst:
    for j in i:
        print(j, end=" ")
    print()

修改

有人提到这只适用于python 3.只需将end=" "更改为,即可在python 2中完成:

lst = [i for i in zip(*[iter(range(1,101))]*10)]

for i in lst:
    for j in i:
        print j,
    print

编辑2:

使用while循环执行此操作:

counter = 1
n = 100

while counter < n+1:

    if counter % 10 == 0:
        print(counter)
    else:
        print(counter, end=" ") #Change this line to print counter, for python version 2
    counter += 1

答案 1 :(得分:2)

您非常接近,您错过了{ "require": { "doctrine/orm": "*" }, "autoload": { "psr-4": { "Preis\\": "EntitiesPreisAnalyse/src/", "Anlagen\\": "EntitiesAnlagenAnalyse/src/" } } } 语句,并将print语句的if更改为end,默认为" "

  

print(* objects,sep ='',end ='\ n',file = sys.stdout,flush = False)

'\n'

注意:的 python中的N = 20 I = 1 while I <= N: if I % 10 > 0: print(I, end = " ") else: print(I) I += 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 比执行I += 1更简单。也适用于乘法。

Python 2.x

前面的代码适用于Python 3.x,如@idjaw的评论中所述。对于python 2.x,要将I=I+1用作函数而不是语句(即print),需要在脚本开头导入后续内容。

print()

答案 2 :(得分:1)

您的代码是错误的。我不是。缩进也是假的

def print_numbers(min_nu, max_nu, step):
   import sys
   if sys.version_info > (3,0):
      my_xrange = range
   else:
      my_xrange = xrange
   for i in my_xrange(min_nu, max_nu, step):
      buff = [str(j) for j in my_xrange(i, i + step)]
      print(" ".join(buff))

print_numbers(1, 100, 10)

答案 3 :(得分:1)

您可以使用此功能:

def solution_01(n):
    index = 0
    row = ''
    while index <=n:
        index+=1
        row += ' '+str(index) 
        if index%10 == 0:
            print row
            row = ''

solution_01(100)

给出输出:

 1 2 3 4 5 6 7 8 9 10
 11 12 13 14 15 16 17 18 19 20
 21 22 23 24 25 26 27 28 29 30
 31 32 33 34 35 36 37 38 39 40
 41 42 43 44 45 46 47 48 49 50
 51 52 53 54 55 56 57 58 59 60
 61 62 63 64 65 66 67 68 69 70
 71 72 73 74 75 76 77 78 79 80
 81 82 83 84 85 86 87 88 89 90
 91 92 93 94 95 96 97 98 99 100

答案 4 :(得分:0)

[[y for y in range(10 * x + 1, 10 + 10 * x + 1)] for x in range(10)]

答案 5 :(得分:0)

双嵌套for循环应该为你做的诀窍:

>>> for i in range(1,101,10):
        for j in range(i, i+10):
            print(j, end=' ')
        print()


1 2 3 4 5 6 7 8 9 10 
11 12 13 14 15 16 17 18 19 20 
21 22 23 24 25 26 27 28 29 30 
31 32 33 34 35 36 37 38 39 40 
41 42 43 44 45 46 47 48 49 50 
51 52 53 54 55 56 57 58 59 60 
61 62 63 64 65 66 67 68 69 70 
71 72 73 74 75 76 77 78 79 80 
81 82 83 84 85 86 87 88 89 90 
91 92 93 94 95 96 97 98 99 100 

或者仅使用while循环,如果这是您的要求:

>>> i = j = 1
>>> 
>>> while i < 101:
        while j < i+10:
            print(j, end=' ')
            j += 1
        i += 10
        print()


1 2 3 4 5 6 7 8 9 10 
11 12 13 14 15 16 17 18 19 20 
21 22 23 24 25 26 27 28 29 30 
31 32 33 34 35 36 37 38 39 40 
41 42 43 44 45 46 47 48 49 50 
51 52 53 54 55 56 57 58 59 60 
61 62 63 64 65 66 67 68 69 70 
71 72 73 74 75 76 77 78 79 80 
81 82 83 84 85 86 87 88 89 90 
91 92 93 94 95 96 97 98 99 100 

答案 6 :(得分:0)

用一个循环打印从 100 到 0 的数字

for i in range(100,-1,-1):
    if i%10==0 and i!=100:
        print(i)
    else:
        print(i,end=", ")

输出:

100, 99, 98, 97, 96, 95, 94, 93, 92, 91, 90

89、88、87、86、85、84、83、82、81、80

79、78、77、76、75、74、73、72、71、70

69、68、67、66、65、64、63、62、61、60

59、58、57、56、55、54、53、52、51、50

49、48、47、46、45、44、43、42、41、40

39、38、37、36、35、34、33、32、31、30

29、28、27、26、25、24、23、22、21、20

19、18、17、16、15、14、13、12、11、10

9, 8, 7, 6, 5, 4, 3, 2, 1, 0