为什么我的python代码输出了错误的东西?
因此,我的代码所做的是,它允许用户输入单词,然后检查他们是否有任何重复的单词;如果他们这样做了,那就不算了。所以在这之后,它会告诉你你知道多少“独特的词”为什么我的python代码输出了错误的东西?,python,python-3.x,list,for-loop,while-loop,Python,Python 3.x,List,For Loop,While Loop,因此,我的代码所做的是,它允许用户输入单词,然后检查他们是否有任何重复的单词;如果他们这样做了,那就不算了。所以在这之后,它会告诉你你知道多少“独特的词” 问题是:当没有重复项时,它会输出适量的“唯一单词”,但当有重复项时,它会输出适量的“唯一单词”-1。假设我用3个字,其中2个是重复的;它会说只有一个独特的词。感谢您的帮助。您可以将用户的输入拆分到空格中,然后将项目添加到集合中。一个集合包含唯一的项,因此向其中添加三次A将导致只包含一个A words=[] word=input("Word:"
问题是:当没有重复项时,它会输出适量的“唯一单词”,但当有重复项时,它会输出适量的“唯一单词”-1。假设我用3个字,其中2个是重复的;它会说只有一个独特的词。感谢您的帮助。您可以将用户的输入拆分到空格中,然后将项目添加到集合中。一个集合包含唯一的项,因此向其中添加三次A将导致只包含一个A
words=[]
word=input("Word:")
count=0
while word != '':
count+=1
words.append(word)
word=input("Word:")
for w in words:
if words.count(w)>1:
count-=1
print("You know",count,"unique word(s)")
如果在words.appendword之后添加打印字,可能有助于理解发生了什么 发生的情况是word作为新项添加到数组中。在递减计数的循环中,对于每个非唯一的单词,您将递减,也就是说,如果一个单词出现两次,您将递减两次
word = input('Word:')
split_word = word.split() # splits on space
set_word = set(split_word) # turns the list into a set
unique_words = len(set_word)
print("You know",unique_words,"unique word(s)")
另一个问题是for循环发生在每个输入之后,也就是说,将同一个副本递减多次
一个固定版本的程序,保持输入单个单词将是
单词=[]
字=输入字:
而单词!=:
单词
字=输入字:
uniquewords=setwords
你知道的,独特的词,独特的词
谢谢你花时间回答我的问题,谢谢你对其他人的帮助,非常感谢。
Input words count
a [a] 1
a, b [a, b] 2
a, b, b [a, b, b] 1
a, b, b, b [a, b, b, b] -1
a, b, b, c, c [a, b, b, c, c] -3