0

数時間前にPythonを学び始めたばかりですが、どうやら手に入れられないような問題があるようです。

彼らは私に次のように頼みます:

  1. list_benefits()という名前の関数を追加します。この関数は、「より整理されたコード」、「より読みやすいコード」、「より簡単なコードの再利用」、「プログラマーがコードを共有して接続できるようにする」という文字列のリストを返します。

  2. 文字列を含む単一の引数を受け取り、指定された文字列で始まり文字列で終わる文を返すbuild_sentence(info)という名前の関数を追加します。これは、関数の利点です。

  3. 実行して、すべての機能が一緒に機能することを確認してください!

私はこの質問をグーグルで検索しましたが、それらはすべて以前のバージョンのpython用であるようで、これを行うための更新された方法を望んでいました。

与えられたコード:

def name_the_benefits_of_functions():
    list_of_benefits = list_benefits()
    for benefit in list_of_benefits:
        print build_sentence(benefit)

name_the_benefits_of_functions()

期待される出力:

More organized code is a benefit of functions!
More readable code is a benefit of functions!
Easier code reuse is a benefit of functions!
Allowing programmers to share and connect code together is a benefit of functions!

私が試したこと:

def list_benefits():
    benefits_list = ["More organized code", "More readable code", "Easier code reuse",           "Allowing programmers to share and connect code together"]
    return benefits_list
def build_sentence(benefit):
    return "%s is a benefit of functions!" % list_benefits()

def name_the_benefits_of_functions():
    list_of_benefits = list_benefits()
    for benefit in list_of_benefits:
        print(build_sentence(benefit))

name_the_benefits_of_functions()

出力:

['More organized code', 'More readable code', 'Easier code reuse', 'Allowing programmers to share and connect code together'] is a benefit of functions!
['More organized code', 'More readable code', 'Easier code reuse', 'Allowing programmers to share and connect code together'] is a benefit of functions!
['More organized code', 'More readable code', 'Easier code reuse', 'Allowing programmers to share and connect code together'] is a benefit of functions!
['More organized code', 'More readable code', 'Easier code reuse', 'Allowing programmers to share and connect code together'] is a benefit of functions!

誰かが私が間違っていることを教えてもらえますか?

4

7 に答える 7

2

関数を呼び出すたびに、引数build_sentence()で指定した 1 つの利点を使用して文を作成するだけです。benefit

def build_sentence(benefit):
    return "%s is a benefit of functions!" % benefit

このループの反復ごとに:

for benefit in list_of_benefits:
    print(build_sentence(benefit))

単一の利点がbuild_sentence()関数に渡され、それが印刷したいものです。

于 2012-08-08T03:26:12.043 に答える
1

あなたがやりたいことは次のとおりだと思います:

def build_sentence(benefit):
    return "%s is a benefit of functions!" % benefit

name_the_benefits_of_functionsへの呼び出しはlist_benefits()、結果のリストをローカル変数に格納していますlist_of_benefits。これで (正しく) 反復処理が行われますが、build_sentence関数内で新しいメリットのリストが繰り返し得られます。そうするのではなく、benefit渡されたシングルを追加するだけです。

あなたが Python の初心者であることは承知しています。よろしくお願いします。のセクションにたどり着くと思いますがgenerators、ここでは面白いために 1 つを使用して変更した例を示します。

def list_benefits():
    benefits_list = ["More organized code", "More readable code", "Easier code reuse", "Allowing programmers to share and connect code together"]
    i = 0
    while i < len(benefits_list):
        yield benefits_list[i]
        i += 1
于 2012-08-08T03:26:07.747 に答える
1

私はちょうど同じ問題に行き詰まりました。私のname_the_benefits_of_functions()関数は、使い果たしたときに正常に失敗するのではなく、4回繰り返すだけなので、少しゴミですlist_of_benefitsが、ここでうまくいきました:

# Modify this function to return a list of strings as defined above
def list_benefits(count): #just a list of benefits. It spits out whatever number 'count' happens to be
    list_of_benefits = ["More organized code", "More readable code", "Easier code reuse", "Allowing programmers to share and connect code together"]
return list_of_benefits[count]

# Modify this function to concatenate to each benefit - " is a benefit of functions!"
def build_sentence(benefit): #tacks on the sentence end, and that's it
    return "%s is a benefit of functions!" % benefit

def name_the_benefits_of_functions():
    count = 0
    while count < 4: # not very graceful, but oh well
        benefit = list_benefits(count)
        print build_sentence(benefit)
        count += 1

name_the_benefits_of_functions()
于 2012-11-15T01:09:10.920 に答える
0

私は初心者です、そしてこれはうまくいく私の答えです

def list_benefits():

benefit_list= ["More organized code","More readable code", "Easier code reuse","Allowing programmers to share and connect code together"]

return benefit_list
pass

def build_sentence(benefit):

return benefit + " is a benefit of functions!"

pass

def name_the_benefits_of_functions():

list_of_benefits = list_benefits()

for benefit in list_of_benefits:

    print build_sentence(benefit)

name_the_benefits_of_functions()

于 2013-02-27T21:20:49.397 に答える
0

リスト内の各文字列を順番に関数に渡す必要があるときに、文字列のリストを関数 build_sentence に渡しています。

list_of_benefits = list_benefits()
for item in list_of_benefits:
    print build_sentence(item)

解読しやすいように、ここで質問のコードをフォーマットする必要もあります。

あなたの質問を正しく理解できたことを願っています。

于 2012-08-08T03:29:35.080 に答える
0

これが私のために働いたものです。頭字語、エラーのガンマ全体、あらゆる種類の花火を取得するのにしばらく時間がかかりましたが、正しい答えが得られました.

最後に...関数のすべてのスパゲッティが本当に必要ではないことに気付きました(設定されているものなど)-必要だと思っていたようにそれらの関数を機能させようとしていましたが、そうではありません。次の章に移動するポップアップが表示されたことに驚きました。

学んだ教訓?..返品印刷を区別して使用すること。

十分に言った。コードは次のとおりです。

# Modify this function to return a list of strings as defined above
s= ("More organized code", "More readable code", "Easier code reuse", "Allowing programmers to share and connect code together")
def list_benefits(s):
  for b in s:
    return b

def build_sentences(s):
  for b in s:
    print b + " is a benefit of functions!"

list_benefits(s)
build_sentences(s)
于 2013-01-14T17:21:46.947 に答える