2017-05-04 4 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) 
関連する問題