wordList = []
counter = 0
y = 1
total = 0
wordTotal = 0
while y == 1:
word = input("enter wordsn")
continued = input("do you want to continue? y or n ")
if continued == "n":
y = 0
total = total + 1
newWords = []
wordList.append(word)
wordCount = wordList.count(word)
totals = []
if wordCount > 1:
wordTotal = wordTotal - 1
whichWord = newWords.index(word)
totals[whichWord] = totals[whichWord] + 1
if wordCount == 1:
wordTotal = total - wordTotal
newWords.append(word)
print(newWords)
totals.append(1)
print(totals)
if wordTotal == 0:
wordTotal = 1
print("the number of different words is", wordTotal)
这个程序接受用户输入的单词,并统计某些单词有多少次重复,以及有多少个不需要的单词。在代码中的第二个if语句中,当我尝试对数组newWords[]进行索引,并更新1->2、2->3等中重复单词的值时,它显示ValueError:‘...’不在列表中。但是,当我在第三个if语句中打印出newWords列表时,值就在那里。
非常抱歉,如果我犯了一个Obivous错误--我是巨蟒的新手,非常感谢大家的帮助:D.
2条答案
按热度按时间l5tcr1uw1#
如果你第一次进入这个房间
单词等于用户输入的第二个单词,你同意吗?但由于在newWords中添加单词的唯一时间是在以下几行中:
当您到达上面的
if wordCount > 1:
时,newWords中唯一的单词是用户输入的第一个单词,因此第二个单词不在其中,以及您的错误原因让我们一起来做一次运行:用户输入“Hello”,因此Hello在Word中,您将其添加到
并且wordcount=1,所以您进入if循环
现在,newWords=[“Hello”]
现在用户输入另一个单词,例如“World”,所以现在
Word=“World”Word Counts=2
但
因为您从未在其中添加“World”,而是在
您正在尝试访问NewWords中的单词“World”
flvlnr442#
如果您使用的是Python3.8+,则可以使用以下代码。
可以基于用户输入来控制循环。如果用户只按了Return,那么*Input()*返回的值将是一个空字符串,这是‘Falsy’。否则,将该单词添加到词典中,并根据需要增加单词计数。
因此,您所需要的就是: