所以我想编写一个程序,将10个随机数写入文本文件中:
import random
SIZE = 10
for i in range (0, SIZE, 1):
y = random.randrange(0,100)
x = open("data.txt","w+")
x.write("\n")
for i in range (0, SIZE, 1):
x.write("Results: %d", %(y))
x.close()
我在“%(y)”中遇到语法错误。但我不知道是什么导致它。
答案 0 :(得分:2)
问题是%是在字符串之间使用的运算符,请参阅documentation。这应该有效:
import random
SIZE = 10
for i in range (0, SIZE, 1):
y = random.randrange(0,100)
x = open("data.txt","w+")
x.write("\n")
for i in range (0, SIZE, 1):
x.write("Results: %d" % y)
x.close()
此外,range(0, SIZE, 1)
可以替换为range(SIZE)
,请参阅documentation。
您可以根据documentation使用首选的语法with open("data.txt", "w+") as f
。
import random
SIZE = 10
for i in range(SIZE):
y = random.randrange(0, 100)
with open("data.txt", "w+") as f:
f.write("\n")
for i in range(SIZE):
f.write("Results: %d" % y)
另外,我不确定你在做什么,不是正确的代码:
import random
SIZE = 10
with open("data.txt", "w+") as f:
f.write("\n")
for i in range(SIZE):
y = random.randrange(0, 100)
f.write("Results: %d" % y)
另外,请注意,write
并未设置任何换行符,您可能希望改为编写"Results: %d\n"
。
答案 1 :(得分:0)
这应该可以解决您的问题。这里的主要问题是%
符号使用不当,我还建议使用with
语句打开文件进行一些代码编辑,确保每次都关闭,这是最佳做法。
import random
SIZE = 10
with open("data.txt", 'w+') as x:
x.write("\n")
for i in range (0, SIZE, 1):
y = random.randrange(0,100)
x.write("Results: %d" % y)