Python (3.x) を使用して、課題用の簡単なプログラムを作成しています。複数行の入力を受け取り、複数の連続する空白がある場合、それらを取り除き、1 つの空白に置き換えます。[これは簡単な部分です。] 入力全体で最も連続した空白の値も出力する必要があります。
例:
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 への追加を終了したら、そのリストの最大値を出力したいと思います。ただし、それが理にかなっている場合、すべての行でそれを行わずにそのリストの最大値を出力する方法はないようです。複雑なコードに関するアイデアはありますか?