这是我班上的一个问题,学习使用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*
交替?)
答案 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
有几个性能问题。