2016-04-09 11 views
-1

に私は、Pythonで初心者くさいと私は解決カント質問(日半)質問の【選択最初の部分は尋ねます:出力機能2

は、使用して関数を作成します。 forループは、ユーザーにいくつの項目を入力して項目を入力するかを問い合わせます。この関数はそれをリストに出力する必要があります。

質問の2番目の部分は困惑しています。あなたは、(a)で組み込んだリストを入力として受け取り、リスト内の各文字列の長さ
を出力する別の関数を記述します。最後に、すべての文字列の全長を表示します。プログラムの
にforループを使用する必要があります。

私はこれを試してみましたが、それは

def gym(gymbag): 
    y=int(input("How many items in your gym bag?")) 
    gymbag=[] 
    for x in range(y): 
     f=input("Enter an item") 
     gymbag.append(f) 
    print(gymbag) 

def gyms(gymbag): 
    for i in range(len(gymbag)): 
     len(gymbag) 
     print(gymbag) 
gym('gymbag') 
gyms('gymbag') 

Plsのヘルプ..出力を6回出力します!

答えて

1

最初の関数の出力は、returnで指定する必要があります。最初の関数の出力を2番目の関数の入力として使用する必要があります。今すぐあなたの関数の引数として文字列を渡した。さらに、あなたはリストの項目を反復しませんでした。

def gym(): 
    y=int(input("How many items in your gym bag?")) 
    gymbag=[] 
    for x in range(y): 
     f=input("Enter an item") 
     gymbag.append(f) 
    print(gymbag) 
    return gymbag 

def gyms(gymbag): 
    total_length = 0 
    for item in gymbag: 
     print(len(item)) # LENGTH OF ITEM 
     total_length += len(item) 
    print(total_length) # LENGHT OF ALL ITEMS COMBINED IN GYMBAG 

gymbag = gym() 
gyms(gymbag) 
+0

ありがとうJusten、私はブール値(total_length + = ..)を使用して各アイテムの長さを計算する必要がありますか? – Sammy

+0

ブール値は真または偽です。このコードとは関係ありません。 total_lengthは整数(数値)です。関数が何をするかは、gymbagの各アイテムを繰り返し実行し、len(item)を使ってアイテムの長さを計算することです。 + =は代入演算子です。 total_lengthはtotal_lengthとnew_itemの長さを加えたもので、アイテムの長さに合わせてtotal_lengthを効果的に増やしています。これを行うことで、ジムバッグ内の各アイテムの合計文字列の合計長がtotal_lengthになります –

0

最初の機能から値を返すという基本的な考え方がありません。値を印刷することは、それを返すことと同じではありません。

まず、gym関数からリストgymbagを返す必要があります。 print文の後に行
return gymbagを追加してください。

次に、gyms機能の実装と使用の両方に問題があります。リストを繰り返し処理し、各文字列の長さを出力するには、アイテムの数ではなくアイテムを直接反復する必要があります(そのようにすることもできますが、ほとんどの場合はそうしないでください)。

for item in list_of_strings: 
    print(len(item)) 

使用率の問題は、文字列のリストを文字列でそれを呼んでいないということであり、またそれがgymbag関数の出力とは何の関係もありません。

あなたはどちらかそれが直接、gyms(gymbag())または2つの段階で行うことができます。

stuff = gym() 
gymbag(stuff) 

そして最後に、関数名は重要です。それぞれの機能に、(妥当な長さの中で)考えることができる最もわかりやすい名前を付けるようにしてください。

0

あなたがpython3を選んだのは良いことです。それをもっとよく学ぶために練習を続けることをお勧めします。

残念ながら、コードに関するすべてが間違っています。まず、gym関数には決して使用されない入力があります。引数を使用する前に、決して編集してはいけません。他の間違いは、私が言及したもののように、本当に簡単です。たとえば、gym関数のgymbagリストはローカルですが、グローバル変数のように使用する予定です。あなたはそれをうまくやることができます(hereを参照)。しかし、私はあなたが選んだ方法を取ることをお勧めします。それは一般的にずっと効率的で清潔です。

関連する問題