0

印刷をインターループしたいのですが、それが単語であるかどうかはわかりませんが、以下のコードで実演させてください

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 

冗長性をすべて排除するか、可能な限り最小限に抑えます。

4

3 に答える 3

0

printersこれは、文字列を返す関数 ( ) の任意のリストに対して機能するはずです。

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
于 2013-10-21T00:17:39.163 に答える
0

プログラムにループは必要ありません。関数呼び出しを綴るだけです。

どうしてもループが必要な場合は、非常に無意味ですが、次のようなものを使用できます。

def primer():
    for s in ([greet(), intro(), origi()][:i + 1] for i in range(3)):
        print('\n'.join (s) + '\n')
于 2013-10-21T00:16:04.363 に答える
0

コードへの変更を最小限に抑えて、次の関数が呼び出されたときに前の関数の戻り値を出力することで、必要なことを行うことができます。

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
于 2013-10-21T00:16:06.003 に答える