python
1>>> def w(coords): 2... n=[] 3... for v in combinations(coords,2): 4... try: 5... a=(v[0][1]-v[1][1])/(v[0][0]-v[1][0]) 6... b=-a*v[0][0]+v[0][1] 7... except ZeroDivisionError: 8... (a,b)=Counter(n).most_common()[0][0] 9... if type(abs(b)/sqrt(a**2+1)): 10... n.append( abs(b)/sqrt(a**2+1)) 11... else: 12... n.append( round(abs(b)/sqrt(a**2+1),2)) 13 return Counter(n).most_common().sort()[0][0]
上記のプログラムでタイトルのようなエラーがでました。何故ですか?
エラーが発生した前後のスタックトレースを省略せずに記載してください。
>>> w([(2,12),(23,34),(12,34)])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 13, in w
TypeError: 'NoneType' object is not subscriptable
です
本筋とは関係ありませんが、shellの対話環境だとしたらこの行数を打ち込むのはきついので他の方法でコーディングした方が・・・
anaconda タイピングはATOMです。
実際はコマンドプロンプトかもしれないしターミナルかもしれないけど、>>>や...が出ていることから、対話環境で打ち込んでいることがわかります。だるいのでスクリプトを作ってそこに書いた方が良いのでは? というコメントです。
なるほど、参考にします
回答1件
あなたの回答
tips
プレビュー