用于循环累积

时间:2014-10-18 09:58:18

标签: python for-loop

这是我班上的一个问题,学习使用Forloops-accum-if。我有点坚持这个问题。

我必须编写一个使用积累的代码。

这是我到目前为止所做的。

def sequenceDigitsAndStars (dig):
    st = "*"
    for i in range(len(dig)):
        if(st[i].isdigit()):
            dig = dig + st[i]
    return st

我得到了内存错误'使用此代码。

问题是,如果我输入值5的数字(即dig),则应返回0*1*2*3*4*5*。我遇到了麻烦,我不知道如何制作它,以便从0开始,与星号(0*)交替显示数字。 (当我使用数字作为输入值时,如何使模式0*交替?)

3 个答案:

答案 0 :(得分:0)

我想这应该可以解决你的问题。

def sequenceDigitsAndStars (dig):
    st = ""
    for i in range(dig + 1):
        st += str(i) + '*'
    return st

答案 1 :(得分:0)

怎么样......

def sequenceDigitsAndStars (dig):
    return '*'.join(map(str, range(dig))

这将获得0-dig的范围,将其转换为字符串数组,然后将元素与* s

组合

如果你想要一个尾随*,你可以做

def sequenceDigitsAndStars (dig):
    return '*'.join(map(str, range(dig)) + '*'

答案 2 :(得分:0)

你正试图这样做吗?

print "*".join(str(i) for i in xrange(dig+1))

由于它的作业你可以使用它:

def sequenceDigitsAndStars (dig):
    string = ""
    for i in range(dig):
        string += str(i)+"*"
    string += str(i+1)
    return string

有几个性能问题。