Python 循环累积

Python 循环累积,python,for-loop,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 我得到了这个代码的“内存错误” 问题是,如果我为值dig键入一

这是我们班的一个问题,学习使用Forloops accum if。我被这个问题困住了

我必须写一个使用累加的代码

这就是我目前所拥有的

def sequenceDigitsAndStars (dig):
    st = "*"
    for i in range(len(dig)):
        if(st[i].isdigit()):
            dig = dig + st[i]
    return st
我得到了这个代码的“内存错误”


问题是,如果我为值
dig
键入一个数字(即
5
),它应该返回
0*1*2*3*4*5*
。我在这方面遇到了麻烦,我不知道如何才能使它以星号(
0*
)交替的方式从
0
开始输入数字。(当我使用数字作为输入值时,如何使其交替模式
0*

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

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

def sequenceDigitsAndStars (dig):
    return '*'.join(map(str, range(dig))
这将获得0-dig的范围,将其转换为字符串数组,然后将元素与
*
s组合

如果您想要一个尾随的
*
,您可以这样做

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

你想这么做吗

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

这有几个性能问题

您希望len(5)是什么?st[i]是st中的第i个元素示例希望返回其他元素谢谢,此代码工作得非常好。谢谢你的帮助。:)@基本的等等?我再也看不到评论了。我不明白。