因为此题循环次数不确定,在使用input()接受输入时,需要用到while循环。
n = int(input())
for i in range(n):
l,w,s =0,0,0
while True:
try:
a=input()
if a=='=====':
break
l+=1
w += len(a.split())
s+=len(a)
except:
break
print(l,w,s)
更好的解决方案是使用sys.stdin()来一次性接受所有输入,再逐行处理:
import sys
# 读取所有输入(按行读取)
lines = [i.rstrip('\n') for i in sys.stdin]
# 解析测试组数T
T = int(lines[0].strip())
# 需要遍历的次数是len(lines)-1
row,word,character = 0,0,0
for i in range(1, len(lines)):
if lines[i] != "=====":
row += 1
word += len(lines[i].split())
character += len(lines[i])
else:
# 遇到“=====”,则输出上一组数据的信息
print(row,word,character)
row,word,character = 0,0,0
# 遍历结束还要输出一次(最后一组数据的信息)
print(row,word,character)
整体用时对比:
1、使用input()+for循环+while循环
2、使用sys.stdin+for循环



京公网安备 11010502036488号