编写一个程序,要求用户输入一段英文文本,统计文本中每个单词出现的次数,并输出统计
时间: 2024-09-23 07:08:50 浏览: 74
编写一个简单的Python程序来实现这个功能:
```python
def word_count(text):
# 将文本转换为小写并分割成单词列表
words = text.lower().split()
# 创建一个空字典存储单词及其计数
word_dict = {}
# 遍历单词列表,更新字典中的计数
for word in words:
if word in word_dict:
word_dict[word] += 1
else:
word_dict[word] = 1
return word_dict
# 请求用户输入文本
user_text = input("请输入一段英文文本: ")
# 统计并打印结果
word_counts = word_count(user_text)
for word, count in word_counts.items():
print(f"{word}: {count} 次")
相关问题
编写一个程序,要求用户输入一段英文文本,统计文本中每个单词出现的次数,并输出统计结果。
这是一个常见的文本分析任务,可以使用Python编写一个简单的程序来完成。以下是使用Python的解决方案:
```python
def word_count(text):
# 将文本转换为小写并分割成单词列表
words = text.lower().split()
# 创建一个空字典来存储单词及其计数
word_dict = {}
# 遍历单词列表,更新字典中的计数
for word in words:
if word in word_dict:
word_dict[word] += 1
else:
word_dict[word] = 1
return word_dict
# 获取用户输入的英文文本
input_text = input("请输入一段英文文本:")
# 调用函数并打印结果
result = word_count(input_text)
for word, count in result.items():
print(f"{word}: {count}")
编写一个go语言程序,要求用户输入一段文本,程序统计每个单词出现的频率并按照频率排序输出
在Go语言中,你可以使用`bufio`包处理用户的输入,并结合`strings`和`map`数据结构来统计单词频率。下面是一个简单的示例程序,它会读取用户输入的文本,分割单词并计算每个单词的出现次数:
```go
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("请输入文本: ")
text, _ := reader.ReadString('\n') // Read until newline
text = strings.TrimSpace(text) // Remove leading/trailing whitespace
wordCount := make(map[string]int)
splitWords := strings.Fields(text) // Split the text into words
for _, word := range splitWords {
wordCount[word]++ // Increment count for each word
}
// Sort words by frequency in descending order
type kv struct{ Key string; Value int }
var sorted []kv
for k, v := range wordCount {
sorted = append(sorted, kv{k, v})
}
sort.Slice(sorted, func(i, j int) bool { return sorted[i].Value > sorted[j].Value })
// Output the result
fmt.Println("单词按频率排序:")
for _, kv := range sorted {
fmt.Printf("%s: %d\n", kv.Key, kv.Value)
}
}
```
当你运行这个程序,输入一段文本,然后它将打印出各个单词及其出现的频率,按照频率从高到低排序。
阅读全文