2016-10-27 18 views
0

sum()len()のような標準的なpythonコマンドを使わずにリスト要素を合計して数える2つの単純な関数があります。python組み込み関数を使わずにリスト要素を数えたり追加したりする

#sum the elements of a list 
def sum_list(x): 
    n=0 
    for i in x: 
     n= n+i 
    return n 

ex。 x = [1,5]の場合は6を返します。

#count the number of elements in a list 
def count_list(x): 
    n=0 
    for i in x: 
     n= n+1 
    return n 

ex。 x = [1,5] - 2を返す必要があります

問題はどのように動作するのか理解できません。具体的には、

1)n = 0はループの前に表示されますか?それは何らかの出発点ですか?

2)その後、for-loopが何をするのか分かりますが、n = n + 1とn = n + 1が実際に何を意味するのかわかりません。この場合「n」とは何ですか?また、「i」(n + i)を加算すると合計が得られますが、「1」(n + 1)を追加するとリストの長さが与えられます。

+2

あなたはあまりにも速くプログラミングを教えていたようで、基礎を改訂する必要があります。 [codecademy](https://www.codecademy.com/learn/python)などのリソースを最初からやり直すことを検討してください。また、[thonny](http://thonny.cs.ut.ee/)をチェックして、コードが何をしているのかを視覚化することもできます。 –

+0

これは非常に基本的な質問で、おそらく他の人には役に立ちません。 [variables](http://www.tutorialspoint.com/python/python_variable_types.htm)と[loops](http://www.tutorialspoint.com/python/python_for_loop.htm)に関する基本的なチュートリアルを読んでみてください。 – DeFazer

+0

まあ、あなたは絶対に正しいアレックス・ホールです。彼らは4週間で私たちにPythonプログラミングを教えようとしています。私たちは地獄のように走っています! –

答えて

2

ループがどのように機能しているかを理解するために、printステートメントを利用してください。 >がn+in+1の値を保持する変数であるので、n+iの値とn+1が(コードの移動が左から右へ)nに保存されます - あなたは

nと疑問に答えるために (コピーコードと実行を貼り付け) 。

だからn+iまたはn+1計算が必要であり、数値をnに格納し、それを次のステップに戻します。

"なぜ私は" i "(n + i)を追加すると" 1 "(n + 1)を追加して合計を与えるのですか? :iはすべてのループ反復で変更されますが、n+1では毎回nのみが変更されます。したがって、sum関数は合計を返し、count関数は長さを返します。

あなたは

は、この情報がお役に立てば幸い、リスト内の要素の数を取得するためにlenを使用することができます。

私はそれをより良く理解し、コードを実行し、役立つかどうかを確認するのに役立つ印刷文を追加しました。

def sum_list(x): 
    print("SUM FUNCTION START")  
    n = 0 
    for i in x: 
     print("n: ",n) 
     print("i: ",i)   
     n = n + i 
     print("n =",n,",","i= ",i) 
     print("n + i = ",n) 
     print() 
    print("SUM FUNCTION END") 
    print() 
    return n 

def count_list(x): 
    print() 
    print("COUNT FUNCTION START") 
    n = 0 
    for i in x: 

     print("n: ",n) 
     print("i: ",i)   
     print("n =",n,",","i= ",i) 
     print("n + 1 = ",n) 
     n = n + 1 
     print() 
    print("COUNT FUNCTION END")     
    return n 

#EASIER WAY TO COMPUTER LENGTH OF THE LIST USING len FUNCTION   
def count_list2(x): 
    return len(x) 

def main(): 
    x = [1,2,3,4,5] 
    answer = sum_list(x) 
    print("Sum : ", answer) 
    elements = count_list(x) 
    elements2 = count_list2(x) 
    print() 
    print("There are", elements, "elements in the list") 
    print() 
    print("There are", elements2, "elements in the list") 
main() 
関連する問題