2016-10-26 3 views
0

私は基本的に行と列を掛けるテストrowcolを実行して、元のものと等しいかどうかを調べます。私は行列の仕方を紙に書いています。しかし、私はそれを実行すると、アサーションのエラーは常に等しいとは言いません。 余分な字下げがないことを確認するためにすべてをダブルチェックしました。rowcolテストを実行しているときのPythonのアサーションエラー

コード:私は受信

def test_rowcol_product_1(self): 
     """ Row col product """ 
     row = [4,5,6] 
     col = [3,7,11] 
     self.assertEqual(rowcol_product(row, col), 4*3 + 5*7 + 6*11) 

エラー:

self.assertEqual(rowcol_product(row, col), 4*3 + 5*7 + 6*11) 
AssertionError: None != 113 
+1

を定義しているたとえば、(非常に単純な実装を使用して)?あなたは何かを返すと確信していますか? (エラーによると) – UnholySheep

+1

@UnholySheepのコメントを展開するには 'rowcol_product'関数は' None'を返します。期待値(113)と等しくないので、ここで問題になります。そのため、 'rowcol_product'に問題があるか、期待どおりに動作しません。それが実際に何であるかを知ることは役に立ちます。 – xZise

+0

ようこそStackOverflowへ。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [最小、完全で検証可能な例](http://stackoverflow.com/help/mcve)がここに適用されます。コードを投稿して問題を正確に記述するまでは、効果的にお手伝いすることはできません。該当するコードをすべて掲載しておらず、** rowcol_product **の戻り値をトレースしていません。 – Prune

答えて

0

私はここに先制の推測を取るつもりです:rowcol_productは全く値を返しません。例えば

::とどのように `rowcol_ product`が

def rowcol_product(a, b): 
    prod = 0 
    for i in range(len(a)): 
     prod += a[i]*b[i] 

Without a statement at the end to explicitly return the computed total, 

    return prod 

... the default return from the function is **None**. Add the missing statement to the bottom of the function. 
+1

私はOPが彼のコードを投稿するまでこの質問に答えることはできないと思います。誰が悪いのかを知っている。 – tdelaney

+0

私は可能性のある悪事にかなり気づいています。これは先制攻撃です。私は** assert **の期待値から手がかりを得て、誰もが時間を節約しようとしました。一方で、最初の閉会投票は私のものです。 – Prune

関連する問題