基本上,如果我输入4表示n,4表示k,它应该在文件中返回4行4位二进制字符串。
相反,它返回四行二进制,但按位的升序排列。 (所以第一行有一位,第二行有两行,第三行有三行,依此类推。)
这是我的代码:
import random
def makeStrings():
fileName = str(input("file:"))
outputFile = open(fileName, "w")
userInput = str(input("k:"))
anotherinput = str(input("n:"))
counter = 0
while (counter < int(anotherinput)):
stringy = ""
for i in range(int(userInput)):
RandoNumber=int(random.random()*2)
stringy=stringy+str(RandoNumber)
outputFile.write(str(stringy) + "\n")
counter = counter +1
outputFile.close()
感谢您的帮助!
答案 0 :(得分:0)
在此代码中:
stringy = ""
for i in range(int(userInput)):
RandoNumber=int(random.random()*2)
stringy=stringy+str(RandoNumber)
outputFile.write(str(stringy) + "\n")
counter = counter +1
您正在循环到userInput,但每次都打印。 (在这种情况下,每次outputFile.write
。)
您需要等到for
循环完成后再将值写入outputFile。这样,您的stringy
变量将具有正确的长度。
答案 1 :(得分:0)
您错误处理了循环索引。你的内部循环写入字符串的每一个添加。你的外环与内环平行运行;每次通过内循环时,计数器会递增。试试这个。我简化了几行测试。
userInput = 4
anotherinput = 4
for counter in range(int(anotherinput)):
stringy = ""
for i in range(int(userInput)):
RandoNumber=int(random.random()*2)
stringy=stringy+str(RandoNumber)
print(str(stringy) + "\n")
# outputFile.close()