如何使用嵌套循环来获取整数并生成字符串

时间:2017-11-22 08:29:29

标签: python loops nested

我需要创建一个接收正整数(n)的函数,并使用嵌套循环返回一个字符串。

例如:

当n = 3时,返回的字符串应为:

" 1 + 2 + 3 + ... 1 + 2 + 3 + ... 1 + 2 + 3 + .."

当n = 5时,返回的字符串应为:

1 + 2 + 3 + 4 + 5 +。1 + 2 + 3 + 4 + 5 +。1 + 2 + 3 + 4 + 5 +。1 + 2 + 3 + 4 + 5 +。 0.1 + 2 + 3 + 4 + 5 + ..

例如,以下代码片段:

n = 5
res = addnestedloops(n)
print (res)

应该产生输出:

1 + 2 + 3 + 4 + 5 +。1 + 2 + 3 + 4 + 5 +。1 + 2 + 3 + 4 + 5 +。1 + 2 + 3 + 4 + 5 +。 0.1 + 2 + 3 + 4 + 5 + ..

似乎无法找到如何返回其向上计数的字符串,直到输入的数字......

3 个答案:

答案 0 :(得分:0)

def themethod(n):
    var toprint="";
    var tmp;
    if(n>0)tmp="1";
    for(var i=2;i<=n;i++):
        tmp+= "+".i;
    for(var i=0;i<n;i++):
       toprint += tmp;
    print toprint;

答案 1 :(得分:0)

我认为你在寻找的是python中的头部递归 这是让你实现这个的代码

def recursive(n):
    if n == 1:
        return 1
    else:
        return str(recursive(n-1)) + "+"+str(n)

答案 2 :(得分:0)

嵌套循环只是循环中的循环。如果我理解正确,您需要连接n个字符串,每个字符串包含n个数字。

我觉得这是学校作业,所以我不会给你完整的答案,但我相信你需要的嵌套循环结构是

for i in range(n):
    for j in range(n):
        # Construct the sub string here and append it to a result variable

请记住,范围函数输出为零,因此range(3)会生成012

但是我不明白为什么你需要一个嵌套循环,除了它应该是作业的一部分。您可以构建子字符串并使用n重复substring * n次。例如,'hello' * 3会产生'hellohellohello'

哦,只是为了给你一点思考,针对你的问题的单线解决方案是

('+'.join('{0:d}'.format(i+1) for i in range(n)) + '+..') * n