python - 为什么我的 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
解决方案
您在 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 循环中重置输入,您在计算第一个单词后请求新输入,并忽略字符串中的后续单词。
推荐阅读
- azure - 工作人员服务中的事件登录未发布到 Azure Application Insight
- javascript - 无法使用 useState 挂钩设置值?为什么会发生这种情况?
- maven - Maven - pom文件 - 未创建工件
- mysql - 在node express中根据mysql数据库中的角色值实现用户角色
- vim - 增加或减少数字同时
和 Cx> 绑定在 vim 中未映射 - javascript - 如何在 Spark AR 的脚本编辑器中将纹理应用到材质
- ruby-on-rails - 如何从错误中读取 Rails 验证?
- python - 在函数定义中为返回类型添加换行符
- excel - 将 .xlsx 文件的每一行保存到 .txt
- node.js - 有没有办法从 NodeJs 中未等待的承诺中抛出错误?