私はDTNネットワークのシミュレーションを構築しようとしています。時間、送信元アドレス、および宛先アドレスを表す3つの要素を持つファイルを読み取ります。問題は、私がこれまでに持っていたこのコードではエラーメッセージが出るということです。私はPythonやその他のコーディングプログラムについて知りません。チュートリアルにちょうど従っています。TypeError: 'int'型の引数が反復型シミュレータではありません
import xlsxwriter as xlwt
#xbook = xlwt.Workbook("Test.xlsx")
#xsheet1 = xbook.add_worksheet("singlehop")
base_time = 1390911881273
M = []
def epidemic(_sa, _da):
global base_time, M
M = set([_sa])
for line in open("C:/simulator/new_contact.txt").readlines():
t, sa, da = line.strip().split()
if sa in M:
M.add(da)
if _da in M:
return (float(t) - base_time)/1000.0
t = epidemic(1, 10)
print (M)
# xsheet1.write(a, 0, sa)
# xsheet1.write(a, 1, da)
# xsheet1.write(a, 2, t)
#xbook.close()
あなたの助けを借りてくれてありがとうございました。私はもうイタレーション問題はありません。しかし、このコードの結果は私にM = {1}を与えました.1から10までのホップをMに追加していません。
'M =(sa)'は 'M = sa'と同等です。シングルトンタプルを作成するには、 'M =(sa、)'を使います。しかし、値がその単一項目と等しいかどうかをチェックするために、タプル内に単一の値をラップすることにはあまり意味がありません。 'もし_da == sa'が同じならば。 (ループの途中で 'M 'を修正しようとしましたか?その場合は、とにかくリストを使う必要があります) – chepner
関連、' m'はどこにも定義されていません。それは 'M 'であるはずですか? – chepner
はい私の意図は、Mのすべてのsaとdaを追加することです。なぜなら、AからDに移動するメッセージはBとCがMに入る必要があるからです。リストの問題は、繰り返し要素私はちょうどそれらのうちの1つがMに表示されることを望みます –