2

このプログラムでは、ユーザーがファイルに必要なだけテキストを入力し、そのファイルに保存されている単語の総数をプログラムにカウントさせるようにしています。たとえば、「こんにちは、ブルーベリー パイを食べるのが好きです」と入力すると、プログラムは合計 7 単語を読み取る必要があります。オプション 6 を入力するまで、プログラムは問題なく実行されます。オプション 6 では、単語数がカウントされます。私はいつもこのエラーを受け取ります: 'str' オブジェクトには属性 'items' がありません

#Prompt the user to enter a block of text.
done = False
textInput = ""
while(done == False):
    nextInput= input()
    if nextInput== "EOF":
        break
    else:
        textInput += nextInput

#Prompt the user to select an option from the Text Analyzer Menu.
print("Welcome to the Text Analyzer Menu! Select an option by typing a number"
    "\n1. shortest word"
    "\n2. longest word"
    "\n3. most common word"
    "\n4. left-column secret message!"
    "\n5. fifth-words secret message!"
    "\n6. word count"
    "\n7. quit")

#Set option to 0.
option = 0

#Use the 'while' to keep looping until the user types in Option 7.
while option !=7:
    option = int(input())

    #I get the error in this section of the code.
    #If the user selects Option 6, print out the total number of words in the
    #text.
    elif option == 6:
        count = {}
        for i in textInput:
            if i in count:
                count[i] += 1
            else:
                count[i] = 1
        #The error lies in the for loop below. 
        for word, times in textInput.items():
            print(word , times)
4

2 に答える 2

6

ここでの問題は、これが文字列であるため、メソッドtextInputがないことです。items()

単語数だけが必要な場合は、len を使用してみてください。

print len(textInput.split(' '))

各単語とそれぞれの出現箇所が必要な場合は、count代わりにtextInput次を使用する必要があります。

    count = {}
    for i in textInput.split(' '):
        if i in count:
            count[i] += 1
        else:
            count[i] = 1
    for word, times in count.items():
        print(word , times)
于 2013-07-14T23:29:32.130 に答える