2017-05-04 28 views
2

我开始学习python,并得到了这么多的代码以允许用户输入一系列文本行来输出最长的行数。你能否告诉我需要添加什么来显示最长的文本本身和字符数? 谢谢。用字符数打印系列文本中最长的一行

print('Please enter lines of text.') 
print('Finish with a blank line.') 
maxi = 0 
text = '.' 
while len(text) > 0: 
    text = input() 
    if len(text) > maxi: 
     maxi = len(text) 
if maxi == 0: 
    print('No text entered.') 
else: 
    print('The longest line of text was ' + str(maxi) + ' characters long.') 

回答

1

你要保存的最大长度的文字是这样的:

print('Please enter lines of text.') 
print('Finish with a blank line.') 
maxi = 0 
maxiText = '' 
text = '.' 
while len(text) > 0: 
    text = input() 
    if len(text) > maxi: 
     maxi = len(text) 
     maxiText = text 
if maxi == 0: 
    print('No text entered.') 
else: 
    print('The longest line of text was ' + str(maxi) + ' characters long. The text is ' + maxiText) 
0

当他高于以前的maxText时,您必须保存测试。 最后你可以打印它。

1

您可以通过做其引入另一个变量来存储发现的最长行的文本,或替换maxi变量,长度该行的文本并使用len(maxi)来比较长度。虽然这个选择在这个范围内可能看起来并不相关,但您可以在将来重新计算的函数比len()更复杂时考虑更大规模的问题。

新变量:

这通过存储在一个单独的变量的当前最长行的长度节省处理的一点点。但是,您必须手动将它们保持同步。

print('Please enter lines of text.') 
print('Finish with a blank line.') 
maxi = 0 
text = '.' 
maxline = "" 
while len(text) > 0: 
    text = input() 
    if len(text) > maxi: 
     maxi = len(text) 
     maxline = text 
if maxi == 0: 
    print('No text entered.') 
else: 
    print('The longest line of text was ' + str(maxi) + ' characters long.') 
    print(maxline) 

只有存储最长行的文本:

这样,你总是要重新计算最长行的当前长度,但你一定要始终得到正确的长度。

print('Please enter lines of text.') 
print('Finish with a blank line.') 
maxi = "" 
text = '.' 
while len(text) > 0: 
    text = input() 
    if len(text) > len(maxi): 
     maxi = text 
if maxi == "": 
    print('No text entered.') 
else: 
    print('The longest line of text was ' + str(len(maxi)) + ' characters long.') 
    print(maxi) 
相关问题