我正在使用 Python (3.x) 为作业创建一个简单的程序。它需要一个多行输入,如果有多个连续的空格,它会删除它们并用一个空格替换它。[这是最简单的部分。] 它还必须打印整个输入中最连续空白的值。
例子:
input = ("This is the input.")
应该打印:
This is the input.
3
我的代码如下:
def blanks():
#this function works wonderfully!
all_line_max= []
while True:
try:
strline= input()
if len(strline)>0:
z= (maxspaces(strline))
all_line_max.append(z)
y= ' '.join(strline.split())
print(y)
print(z)
if strline =='END':
break
except:
break
print(all_line_max)
def maxspaces(x):
y= list(x)
count = 0
#this is the number of consecutive spaces we've found so far
counts=[]
for character in y:
count_max= 0
if character == ' ':
count= count + 1
if count > count_max:
count_max = count
counts.append(count_max)
else:
count = 0
return(max(counts))
blanks()
我知道这可能是非常低效的,但它似乎几乎可以工作。我的问题是:一旦循环完成附加到 all_lines_max,我想打印该列表的最大值。但是,如果有意义的话,似乎没有办法打印该列表的最大值而不在每一行上都这样做。对我复杂的代码有什么想法吗?