循环累积

2024-09-29 23:32:21 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我们班的一个问题,学习使用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*?)你知道吗


Tags: 代码inforlenreturnifdefrange
3条回答

你想这么做吗?你知道吗

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

它有几个性能问题。你知道吗

那。。。你知道吗

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

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

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

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

我想这应该能解决你的问题。你知道吗

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

相关问题 更多 >

    热门问题