2011-08-11 15 views
-1

次のコードを実行しようとすると、エラーTypeError: object of type 'NoneType' has no len()(変数stringConvertedを参照)が表示されます。私はさまざまな値をテストしましたが、テストしたものでうまくいきます。私は、これをデバッグする最善の方法は、iの値が 'NoneType'の原因となっていることを理解することだと考えていました。だから私はstringConverted = 'NoneType'という条件付きブレークポイントを設定しようとしました。私が実行すると、この条件が真であるときにプログラムは停止するはずです。しかし、私は条件付きブレークポイントを設定した後にそれを実行しようとすると、同じエラーを生成するすべての方法を実行します。私はここで何が間違っていますか?私の条件付きブレークポイントステートメントの形式は正しいですか?条件付きブレークポイントのPythonで問題をデバッグする

def main(): 
    totalChars = 0 
    for i in range(1,500): 
     stringConverted = stringConvert(i) 
     totalChars = totalChars + len(stringConverted) 
    print totalChars 

答えて

0
def main(): 
    totalChars = 0 
    for i in range(1,500): 
     stringConverted = stringConvert(i) 
     if stringConverted is None: 
      print i 
      break 
     totalChars = totalChars + len(stringConverted) 
    else: 
     print "No error!" 
    print totalChars 
0

あなたはそれがNoneTypeであるかどうかを確認するためにタイプをチェックするのではなく、if stringConverted is Noneを使用する必要があります。

+0

修正。 ...そして、彼は 'type'をチェックしていません - 実際には' NoneType 'という文字列と直接比較しています – Gerrat

+0

@ F.J。それは理にかなっていますが、なんらかの理由でそれはまだ機能しません。これはIDEにまったく依存しますか? –

+0

@ sq1020 - ブレークポイント付きのコードを投稿してください。このメソッドは、どのシステムでもPythonのすべてのバージョンで動作するはずです。 –