gpt4 book ai didi

python - 为什么 while 循环停留在 raw_input? (Python)

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:07 24 4
gpt4 key购买 nike

在下面的代码中,我试图通过将文件读入列表并一次打印 10 行然后询问用户是否要打印接下来的 10 行(打印更多...)。问题是 raw_input 一次又一次地询问输入,如果我给 'y' 或 'Y' 作为输入并且不继续 while 循环,如果我给任何其他输入 while 循环制动器。我的代码可能不是最好的,因为我正在学习 python。

import sys
import string
lines = open('/Users/abc/testfile.txt').readlines()
chunk = 10
start = 0

while 1:
block = lines[start:chunk]
for i in block:
print i
if raw_input('Print More..') not in ['y', 'Y']:
break
start = start + chunk

我得到的这段代码的输出是:-

--
10 lines from file

Print More..y
Print More..y
Print More..y
Print More..a

最佳答案

你构建的切片是错误的:切片中的第二个参数给出了停止位置,而不是 block 大小:

chunk = 10
start = 0
stop = chunk
end = len(lines)
while True:
block = lines[start:stop] # use stop, not chunk!
for i in block:
print i
if raw_input('Print More..') not in ['y', 'Y'] or stop >= end:
break
start += chunk
stop += chunk

关于python - 为什么 while 循环停留在 raw_input? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13267107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com