Python 无冗余的多回路打印

Python 无冗余的多回路打印,python,redundancy,Python,Redundancy,我想进行内部循环打印,我不知道这是否是一个单词,但让我用下面的代码演示一下 def primer(): print (greet(), "\n", intro(), "\n" ,origi()) def greet(): return("Hola ") def intro(): return("Mi nombre es Leon ") def origi(): return("I am from Guadalajara") primer() 输出为: H

我想进行内部循环打印,我不知道这是否是一个单词,但让我用下面的代码演示一下

def primer():
    print (greet(), "\n", intro(), "\n" ,origi())

def greet():
    return("Hola ")

def intro():
    return("Mi nombre es Leon ")

def origi():
    return("I am from Guadalajara")

primer()
输出为:

Hola  
 Mi nombre es Leon  
 I am from Guadalajara
期望输出

Hola



Hola
 Mi nombre es Leon



Hola
 Mi nombre es Leon
 I am from Guadalajara
那将是对皮林的惩罚

greet

greet
intro

greet
intro
origi 

没有所有冗余或尽可能少的冗余。

在程序中确实不需要循环,只需详细说明函数调用即可

如果你想尽一切办法想要一个循环,你可以使用这样的东西,尽管它是非常没有意义的:

def primer():
    for s in ([greet(), intro(), origi()][:i + 1] for i in range(3)):
        print('\n'.join (s) + '\n')

只需对代码进行最少的修改,就可以在调用下一个函数时打印上一个函数的返回值:

def primer():
    print (greet(), "\n", intro(), "\n" ,origi())

def greet():
    return("Hola ")

def intro():
    print(greet())
    return("Mi nombre es Leon ")

def origi():
    print(intro())
    return("I am from Guadalajara")

primer()
给我:

>>> 
Hola 
Hola 
Mi nombre es Leon 
Hola  
 Mi nombre es Leon  
 I am from Guadalajara

这适用于返回字符串的任意函数列表(
打印机
):

def primer():
    printers = (greet, intro, origi)
    print('\n\n\n\n'.join(['\n'.join([printer() for printer in printers[1:n]]) for n in range(len(printers)+1)]))
输出:

Hola 



Hola 
Mi nombre es Leon 



Hola 
Mi nombre es Leon 
I am from Guadalajara

您能否大致描述一下所需输出与函数定义之间的关系?猜起来有点复杂。