将数据写入文件

时间:2017-07-16 07:33:04

标签: python input output

问题:*将函数schrijfKwadraten(naam,N)写入每行具有指定名称的文件,写入一个整数,即正方形0 t.e.m. N ** 2 *

def schrijfKwadraten(text, N):
    with open(text, 'w') as f:
        for i in range(0, N+1):
            f.write('%d'%(i*i))

我尝试多次编辑代码。什么都行不通。下面的代码给出了正确的列表,N = 10

print('%d'%(i*i))
0
1
4
9
16
25
36
49
64
81
100

当我使用时,f.write()。当我拿N = 10时,Python给了我一个数字列表。这是错误的,因为10 * 10 = 100,而不是3!

1 
1 
1 
1 
2 
2 
2 
2 
2 
2 
3

控制编码,给我错误:

schrijfKwadraten('TestKwadraten.txt', 10)

with open('TestKwadraten.txt', 'r') as infile:
    l = [int(i) for i in infile]
assert l == [i*i for i in range(11)],'Fout in schrijfKwadraten()'
print('Correct !')

任何人都可以帮助我吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

你的代码在Python 3中非常适合我。但是为了获得所需的输出,我必须添加一个换行符'\ n'。最好使用string.format()语法,如下所示。

def schrijfKwadraten(text, N):
    with open(text, 'w') as f:
        for i in range(0, N+1):
            f.write('{}\n'.format(i**2))
            #f.write('%d\n'%(i*i))


schrijfKwadraten("hello.txt", 10)