前提・実現したいこと
pythonにおいて、csvファイルにて(260,260)の座標からy=1*x+4が通る座標内の数を調べ、座標内の数が65535となる座標の一つ手前の座標を求めたいです。
発生している問題・エラーメッセージ
エラーメッセージは無いです。
問題なのは、csvの259行目259列目(l[260][260])とその周り100座標分くらいが0で、その周囲を65535で200座標分くらい囲っているのに、if文でbreakしないことです。
rangeは十分にとってあります。
print(o)の結果は表示され、260から449までの数字が表示され、190回for文が回っている事が確認できます。
print(op)の結果は[]と表示されるので、opに格納できていないことが確認できます。
print("if文内の", op)の結果は何も表示されないので、if文で検知できていないです。
なお、if l[p][o] == 65535:をif l[p][o] > 1:とすると下記の様なエラー文が出ます。
python
1Traceback (most recent call last): 2 File "finc.py", line 15, in <module> 3 if l[p][o] < 1: 4TypeError: '<' not supported between instances of 'str' and 'int'
該当のソースコード
python
1import csv 2import pprint 3 4with open("cs.csv") as f: 5 reader = csv.reader(f) 6 l =[row for row in reader] 7 8op=[] 9o=int() 10p=int() 11P=260 12o=260 13for j in range(190): 14 if l[p][o] == 65535: 15 op.append(o) 16 op.append(p) 17 print("if文内の", op) 18 break 19 o=260+j 20 p=1*(260+j)+4 21 print(o) 22print(op)
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー