返回for循环python

时间:2015-10-02 15:10:43

标签: python function for-loop return main

我现在已经尝试了一段时间,但我似乎无法做到这一点。 我是一名初学程序员,必须为学校做作业。程序应该询问用户一个数字并根据此数字打印菱形。 现在我的工作正常了......但是我的主要内容是打印声明。我如何在我的主要内部得到这个?

我的代码:

def loop(start, eind, step, ei):
    for a in range (start, eind, step):       
        for b in range(a):                  
            print(" ", end="")                
        for c in range(ei+1, a, -1):
            print(a, end="")            
        for d in range(a, ei):           
            print(a, end="")             
    print("")  

def main():
    print("Welcome!  :) ")
    loop(y,0,-1,y)
    loop(2,y+1,1,y)

希望你们能帮助我! 顺便说一下,我为这个程序提供了更多的代码,但这些代码并不相关(比如要求用户提供" y")。

1 个答案:

答案 0 :(得分:3)

假设您粘贴的缩进是正确的(并且y变量在全局范围内定义),您当前的代码不会生成菱形,只有在最后print("")时才能正确生成loop()函数内部缩进for循环内部。

鉴于此,您可能需要查看https://guides.cocoapods.org/making/getting-setup-with-trunk.htmlgenerator functions。示例 -

def loop(start, eind, step, ei):
    for a in range (start, eind, step):       
        for b in range(a):                  
            yield " "                
        for c in range(ei+1, a, -1):
            yield a            
        for d in range(a, ei):           
            yield a
        yield '\n'

def main():
    print("Welcome!  :) ")
    for x in loop(y,0,-1,y):
        print(x,end="")
    for x in loop(2,y+1,1,y):
        print(x,end="")

这假设y变量在全局范围内定义。

演示 -

>>> def loop(start, eind, step, ei):
...     for a in range (start, eind, step):
...         for b in range(a):
...             yield " "
...         for c in range(ei+1, a, -1):
...             yield a
...         for d in range(a, ei):
...             yield a
...         yield '\n'
...
>>> def main():
...     print("Welcome!  :) ")
...     y = 5
...     for x in loop(y,0,-1,y):
...         print(x,end="")
...     for x in loop(2,y+1,1,y):
...         print(x,end="")
...
...
>>> main()
Welcome!  :)
     5
    444
   33333
  2222222
 111111111
  2222222
   33333
    444
     5