有人能帮我一下为什么下面的代码没有给出预期的结果吗?
f=open('Python_practice/Sample1.txt','r')
while f.readline() != '':
print(f.readline(),end = '')
f.close()
这里-我得到低于o/p(第一和第三行是不是来):
你好吗?
那你呢?
当我在代码下面运行时,我得到了预期的o/p。
f=open('Python_practice/Sample1.txt','r')
while True:
data = f.readline()
if data == '':
break
else:
print(data,end = '')
f.close()
你好啊!
你好吗?
我很好,谢谢。
那你呢?
f=open('Python_practice/Sample1.txt','r')
while f.readline() != '':
print(f.readline(),end = '')
f.close()
我期待:
你好啊!
你好吗?
我很好,谢谢。
那你呢?
我在O/P以下(第一和第三行没有来):
你好吗?
那你呢?
1条答案
按热度按时间gdrx4gfi1#
就像@Abion47说的,它跳过每隔一行的原因是因为你在同一次迭代中运行了两次
f.readline()
。换句话说,你是说检查当前行是否为空,如果为真,则读取下一行并打印它。下面我将跟踪该循环正在做什么。另外,像这样阅读文本文件似乎不是最好的方法。考虑使用
Source