处理从列表中写入新文件时出现语法错误

时间:2018-04-14 09:35:32

标签: python

所以我想编写一个程序,将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)”中遇到语法错误。但我不知道是什么导致它。

2 个答案:

答案 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)