我不确定我在这里做错了什么,花了一整天的谷歌搜索和阅读蟒蛇书......
我有以下功能:
def extract(inNo, inputFile2, outputFile):
ifile = open(inputFile2, 'r')
ofile = open(outputFile, 'w')
lines = ifile.readlines()
for line in lines:
print(str(len(line)))
if str(len(line)) == str(inNo):
ofile.write(line)
我正在尝试理解len()
,使用它时我似乎得到了奇怪的结果。
我的输入文件如下:
1
22
333
4444
55555
666666
7777777
88888888
现在如果我使用'7'作为inNo
变量,我得到的输出(即print
)是:
2
3
4
5
6
7
8
8
,输出文件变为:
666666
我确信从签入python.exe长度计数从1开始,即:
len('123')
会得到
的结果3
我对len()
的理解是错误的,还是我编码错了?
基本上,这个功能的作用是什么;它将输入,输出和字符长度作为参数。它们来自不同的函数,第二个函数用参数调用它。
此函数从输入文件中读取行。 对于每一行,它获取字符长度并将其与输入编号进行比较。 如果它们相等,则应将该行写入输出文件。我假设我没有“其他:”它应该进行迭代。 print()函数允许我确切地看到它计算的长度。
当我尝试向len()添加' - 1'或'+ 1',即(len(line)+ 1)时,它会导致更奇怪的事情发生。
答案 0 :(得分:4)
len()
也会考虑新的换行符\n
,这就是为什么除了最后一行之外,你在每一行都会得到一个。