简单的数字列表循环

时间:2018-01-26 17:21:29

标签: python loops while-loop

有人可以帮我解决一下我给自己这个简单的任务吗? 我只想写一个文件编号,例如:001 002 003等等。使用循环。

我从01-99开始,现在决定使用list进行尝试。

我来的是这样的:

number = [0,0]

outfile = open("number.txt", "w")
outfile.write(str(number) + "\n")

while not number[0] == 9:

    while not number[1] == 9:

        number[1] = number[1] + 1
        outfile.write(str(number) + "\n")

number[0] = number[0] + 1
number[1] = 0
outfile.write(str(number) + "\n")

但它不起作用。 :|

3 个答案:

答案 0 :(得分:2)

您可以使用zfill执行此操作。

例如:

str(1).zfill(3)

将返回:001

然后你可以循环并增加一个计数器:

for i in range(100)

    outfile.write(str(i).zfill(3) + "\n")

答案 1 :(得分:1)

您忘记在十位数上加1,并在循环结束时重置单位数字。此外,import tarfile tar = tarfile.open("test.tar.gz") tar.extractall() tar.close() 将无法按照您的要求运行。

试试这个:

str()

答案 2 :(得分:1)

考虑使用 with 关键字并使用file input context manager打开文件。

您还可以使用python的range()功能。

with open('yourfile.txt', w) as outfile:
   for x in range(1,100):
       outfile.write(str(x).zfill(3))
       outfile.write('\n')

根据您正在处理的数字的格式,zfill() string method对您来说也很有用,以便零填充。

在处理大数量集时使用range()而不是列表的好处是内存分配。列表将所有值存储在内存中,而生成器(范围函数是什么),一次只返回一个值。因此,在任何给定时间只有x在内存中,并且可以通过for循环的其余部分进行处理。