我刚开始学习如何使用python。我的练习的一部分是找到文本中最长字符串的长度,在下列情况下定义为“框”:
def file(box):
maxlen=0
f=box.splitlines()
for i in f:
if len(i)>=maxlen:
maxlen=len(i)
return maxlen
print file("""abcd efgh ijkl
on different lines
I""")
在这种情况下,我得到的是14号,而不是18号,这是正确答案...可以请有人帮我解决这个问题吗?
答案 0 :(得分:2)
你的退货声明过多了:
for i in f:
if len(i)>=maxlen:
maxlen=len(i)
return maxlen
目前,您在循环的每次迭代中都告诉它return
,这意味着只返回第一行。将return语句移到循环外部:
for i in f:
if len(i)>=maxlen:
maxlen=len(i)
return maxlen
......它应该有用。