首页 > 解决方案 > 为什么我的 python 字数统计程序不起作用?

问题描述

我正在上一门 Python 课程,其中一个问题要求我编写一个计算这样的单词的程序:

Enter line: which witch
Enter line: is which
Enter line: 
is 1
which 2
witch 1

我到目前为止的代码是:

occurences = {}

line = input('Enter line: ')
while line:
  m = line.split()
  for i in m:
    if i in occurences:
      occurences[i] += 1
    else:
      occurences[i] = 1
    line = input('Enter line: ')


for word in sorted(occurences):
  print(word, occurences[word])

但是当我运行这段代码时,它要么告诉我每个单词只出现一次,要么告诉我其他一些奇怪的输出。谢谢您的帮助!

这是它不起作用的示例:

Enter line: test test test
Enter line: one two test
Enter line: one
Enter line: 
test 3

这是我得到的输出,而预期的输出是:

test 4
two 1
one 2

标签: pythonpython-3.x

解决方案


您在 for 循环中的输入导致了问题,请尝试以下操作:

occurences = {}

line = input('Enter line: ')
while line:
  m = line.split()
  print( m)
  for i in m:

    if i in occurences:
      occurences[i] += 1
    else:
      occurences[i] = 1

    print(occurences)
  line = input('Enter line: ')


for word in sorted(occurences):
  print(word, occurences[word])

通过在 for 循环中重置输入,您在计算第一个单词后请求新输入,并忽略字符串中的后续单词。


推荐阅读