0

課題の 1 つに問題があります。

テキストファイルを取り、その中で比較記号を計算するコードを書くことになっていました。

問題は、「==」、「>=」、または「<=」を出力しないことです

私のコード:

from collections import Counter

chars = ['==', '>=', '<=', '<', '>']
file = open(input('specify a file'))
character_distr = Counter()

for line in file:
    character_distr += Counter(line.lower())

print('Distribution of characters: ')
for char, count in sorted(character_distr.items()):
    if char in chars:
    print('{}  :  {}'.format(char, count))
4

1 に答える 1

1

これを試して:

c1 = Counter('hello there')

次に、これを試してください:

c2 = Counter('hello there'.split())

違いに注意してください。aに文字列が渡されると、文字数Counterがカウントされます。個々の文字以外のトークンをカウントする場合は、文字列を aにする必要があります。splitlist

したがって、演算子の間に便利なスペースがある場合は、に追加.split()してline.lower()ください。存在しない場合 (もちろん、これは合法です)、レクサーまたは (可能性が高い) 正規表現を使用して、もう少し洗練する必要があります。

import re
expression = 'if x>4: do_thing(); elif x==12: other_thing = x'

len(re.findall(r'==|>=|<=|<|>',expression))
Out[12]: 2
于 2013-11-04T20:12:55.780 に答える