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