在Python中创建一个简单的数字模式?

3

我正在尝试获取这个数字模式

0
01
012
0123
01234
012345
0123456
01234567
012345670
0123456701

但是我不知道如何在我的函数中当数字超过8时重置它们。这是我的代码:

def afficherPatron(n):
triangle = ''

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

感谢各位的提前支持!

4
不需要 i+=1for 循环会自动增加变量。 - Barmar
8与n相关还是只是您想要的某种循环限制? - Iron Fist
哎呀,我忘记从代码中删除它了!这是因为我之前使用了 while 循环;) - Francis-Olivier Couture
不是的,bigOther回答了我的问题! - Francis-Olivier Couture
2个回答

9

使用i mod 8 (i%8)是因为它具有循环0到7的特性:

for i in range(0, n):
    triangle = triangle + str(i%8)
    print(triangle)

我会尝试这个,我相当确定这就是我错过的!非常感谢:D - Francis-Olivier Couture

0

我喜欢方法...

def yourPattern(b,s):
    r = ""
    q = [str(k) for k in range(1,b+1)*(s/b)+range(1,b+1)[0:s%b]]
    for k in q:#    ^Iterator[^Array ^Scale^add^Array   ^Portion]
        r += k # Put string together
    return(r)

def pattern(b,l):
    r = ""
    for k in range(1,l+1):
        r+=yourPattern(b,k)+"\n"
    return(r)
print pattern(8,18)

o(4n)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接