-4

戻ることと印刷することの違いを理解しようとしています (その背後にある理論はわかりますが、実際にコードを設計するとき、それらが互いにどのように異なるのかについて少し迷っています)。入力文字列の中央の文字を繰り返し (int) と組み合わせて繰り返しようとしています。

なぜこれが機能しないのですか?python アイドルまたはイオン codewrite のいずれかで?

def mid_repeated (st, rep):
if len(st)%2==0: 
    middle = (len(st)/2) 
    center = (st[middle])*rep
    rep = "!"*rep
    return center + " " + str(rep)
else: 
    middle = (len(st)/2) 
    center = (st[middle])*rep
    rep = "!"*rep
    return center + " " + str(rep)
return mid_repeated
4

3 に答える 3

1

関数が何かを返すとすぐに壊れます。これはおそらくあなたが疑問に思っていることです。

ただし、関数自体を返すことで何を達成しようとしているのか正確にはわかりません。あなたはそれをもう一度見たいと思うかもしれません。

于 2013-10-19T06:08:40.430 に答える
0

これがまったく役立つかどうかはわかりませんが、return は関数の外で使用できるものを返します。ここで、print は何かを出力するだけです...

于 2013-10-19T08:31:58.050 に答える
0

の違い

def a(x):
    print x

def b(x):
    return x

違うことをしているということです。(いいえ、本当ですか?)

a()として与えられた「もの」を出力しx、(暗黙的に) を返しますNone

b()返すだけxです。

やってみると違いがハッキリする

def examine(function):
    print "Calling:"
    ret = function(42)
    print "Call done."
    print "Function returned", ret

この関数を使用して関数を調べると、

examine(a)

版画

Calling:
42
Call done.
Function returned None

42そのため、関数の実行中に が出力され、関数の戻り値が であることがはっきりとわかりますNone

大戸、

examine(b)

版画

Calling:
Call done.
Function returned 42

これは、関数が提供された値を (戻り値として) 呼び出し元に返す以外に何も出力しないことを証明しています。

他の観点:print指定された値をすぐに出力returnし、呼び出し元にそれを渡して、必要なことを何でも実行します。

于 2013-10-19T10:02:58.843 に答える