2016-10-29 8 views
0

テキストファイルをn回印刷しようとしていますが、何らかの理由で一度だけループしています。K個の長いバイナリ文字列のN行を印刷する

def makeStrings(): 
k = int(raw_input("Enter the number of bits in each binary string: ")) 
n = int(raw_input("Enter the number of binary strings to create: ")) 
name = raw_input("Enter the name of the file: ") 
fileName = name 
outputFile = open(fileName, "w") 
int(k) 
int(n) 
for i in range(0,n): 
    while(k>0): 
     randomNumber= int(random.randint(0,1)) 
     outputFile.write(str(randomNumber)) 
     k = k - 1 
    outputFile.write("\n") 
outputFile.close() 

おkおよびnの5のために5を入力した場合、それはこのような何か書く必要があります。ファイルに

01110 
11011 
00011 
11011 
11100 

を、それだけで1行を書き込みます。
誰も私にいくつかの洞察力を与えることができますか?

答えて

3

while(k>0):

あなたはその初期値に戻すkをリセットすることはありません。このループは

一度起こるおそらく再び

for i in range(n): 
    for j in range(k): 
     # Don't subtract k... 

か、でも私はそれが初期値だに戻っkを設定する方法を

with open(fileName, "w") as outputFile: 
    for i in range(n): 
     outputFile.write(''.join(str(random.randint(0,1)) for _ in range(k))) 
     outputFile.write("\n") 
+0

をそれをすべてダウン凝縮を範囲を使用する必要がありますか?それは無限のループを作成しないでしょう –

+0

whileループを使用しないでください –

+0

決してそれを固定しても構いません、ありがとう! –

関連する問題