bugfix> python-3.x > 投稿

次のようなテキストファイルがあります。

This is just
an example of
a textfile

「e」を含まないすべての単語の合計を検索したい。この合計は各行ごとに印刷され、その行の単語の合計になるはずです。

現在、私はこれを持っています:

with open(sys.argv[1], "r") as f:
   count = 0
   for line in f:
   words = line.split()
   for word in words:
      if "e" not in word:
         for char in word:
            count += 1
         print(count)

私が得る出力は次のとおりです。

4
6
10
12
14
15

あるべき時:

10
4
1

回答 1 件
  • len を使用できます  文字列の長さを取得するための組み込み。予想よりも大きい数値を取得している理由は、 count をリセットしていないためです。  また、各行ではなく、すべての単語の後に印刷しています。

    with open(sys.argv[1], "r") as f:
        for line in f:
            count = 0
            words = line.split()
            for word in words:
                if "e" not in word: 
                   count += len(word)
            print(count)
    
    

    これをよりコンパクトに書くことができます

    with open(sys.argv[1], "r") as f:
        for line in f:
            print(sum(len(word) for word in line.split() if 'e' not in word))
    
    

あなたの答え