在Python

时间:2015-06-15 04:20:13

标签: python loops nested

我一直在研究这个问题超过四个小时,我试图检查几个资源。

我正试图得到这样的东西:

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

我目前的代码是:

for i in range(10):
    print(i, end = '')
    for j in range(10):
        print(j, end = '')
    print()

打印出来:

00123456789
10123456789
20123456789
30123456789
40123456789
50123456789
60123456789
70123456789
80123456789
90123456789

所以我只需要摆脱最左边的一面。另外,我正在尝试制作看起来像这样的东西:

0

0 1

0 1 2

0 1 2 3

0 1 2 3 4

0 1 2 3 4 5

0 1 2 3 4 5 6

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7 8

0 1 2 3 4 5 6 7 8 9

我可以从中得到它:

triangle = ''
n = 9
for i in range(0, n+1):
    triangle = triangle + (str(i))
    print(triangle)
print()


for i in range(11):
    for j in range(0+i):
        print(j,end=" ")
    print()

第一个问题是没有两个for循环,一个嵌套在另一个循环中。第二个问题是我的范围为11,可以打印到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

我一直在用这个:

x = 10 
for i in range (10):
    print (*range (x, x+i)) 
    x += i

但我需要两个for循环。我觉得我很亲密,但是无法获得成品。

感谢。

3 个答案:

答案 0 :(得分:0)

第一个代码的问题是您正在打印i,您无需打印i。代码就像 -

for i in range(10):
    for j in range(10):
        print(j, end = ' ')
    print()

对于问题的其余部分,如果您在没有嵌套循环的情况下得到答案,为什么还需要嵌套循环?

答案 1 :(得分:0)

首先,试试这个:

print('', end = '')

对于第二个例子,错误是你在第二个for循环中加0。将其更改为:

for j in range(0, 1+i):

range的问题是它会降低一个数字。看看docs

对于最后一个,您可以使用以下代码,其中y从10开始。

y = 10
for i in range(0,10):
    for j in range(0, i):
        print(y + j, end=' ')
    print('')
    y += i

答案 2 :(得分:0)

以下是如何解决这个问题 -

首先非常简单

ht = 10
y = range(ht)
"\n".join(map(lambda x: " ".join(map(str,x)), [y]*ht))

第二个有点有趣

ht = 10
y = range(ht)

for i in range(1, ht+1):
    print "  ".join(map(str, y[0:i]))

第三个

start = 10
ht = 9
limit = (ht*(ht+1))/2 # using the sum of n to find out total elements
y = range(start, limit+1)
for i in range(1, ht+1):
    print " ".join(map(str, y[0:i]))
    y =  y[i:]

复杂的map(str, y)只是要打印一个字符串。

这是你想要的吗?