目录

  • 1 程序设计基本方法
    • 1.1 程序设计语言
    • 1.2 Python语言开发环境配置
    • 1.3 实验教学 python环境配置
    • 1.4 第1章PPT
  • 2 Python程序实例解析
    • 2.1 Python程序语法元素分析
    • 2.2 Python蟒蛇绘制
    • 2.3 实验教学 python蟒蛇程序
    • 2.4 第2章PPT
  • 3 基本数据类型
    • 3.1 数字类型及操作
    • 3.2 字符类型及操作
    • 3.3 实验教学 天天向上的力量
    • 3.4 第3章PPT
  • 4 程序的控制结构
    • 4.1 分支结构
    • 4.2 循环结构
    • 4.3 实验教学 身体质量指数
    • 4.4 第4章PPT
  • 5 函数和代码复用
    • 5.1 函数及应用
    • 5.2 递归及应用
    • 5.3 实验教学 七段数码管
    • 5.4 第5章PPT
  • 6 组合数据类型
    • 6.1 序列类型及应用
    • 6.2 字典类型及应用
    • 6.3 实验教学 基本统计及词频统计
    • 6.4 第6章PPT
  • 7 文件和数据格式化
    • 7.1 文件的使用
    • 7.2 图像的处理
    • 7.3 实验教学 图像处理
    • 7.4 第7章PPT
  • 8 程序设计方法论
    • 8.1 计算思维
    • 8.2 计算生态
    • 8.3 实验教学 第三方库的安装
    • 8.4 第8章PPT
实验教学 基本统计及词频统计

实例9:基本统计值计算

代码:

def getNum():     #获取用户不定长度的输入

nums = []

iNumStr = input("请输入数字(回车退出): ")

while iNumStr != "":  nums.append(eval(iNumStr))

iNumStr = input("请输入数字(回车退出): ")

return nums

def mean(numbers):   #计算平均值  s = 0.0

for num in numbers:  

s = s + num

return s / len(numbers)

实例10:文本词频统计

英文词频统计

程序代码:

#CalHamletV1.py

defgetText():

txt= open("hamlet.txt", "r").read()

txt= txt.lower()

forch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':  txt = txt.replace(ch, " ")

returntxt

hamletTxt= getText()

words      = hamletTxt.split()

counts= {}

forword in words:

counts[word]= counts.get(word,0) + 1  items =list(counts.items())

items.sort(key=lambdax:x[1], reverse=True)

fori in range(10):

word,count = items[i]

print("{0:<10}{1:>5}".format(word,count))

程序代码分析(略)

中文词频统计

程序代码:

#CalThreeKingdomsV1.py

importjieba

txt= open("threekingdoms.txt", "r",encoding="utf-8").read()  words= jieba.lcut(txt)

counts= {}

forword in words:

iflen(word) == 1:

continue

else:

counts[word]= counts.get(word,0) + 1 

items= list(counts.items()) 

items.sort(key=lambdax:x[1], reverse=True) 

fori in range(15):

word,count = items[i] print("{0:<10}{1:>5}".format(word, count))

出场人物统计:

#CalThreeKingdomsV2.py

importjieba

txt= open("threekingdoms.txt", "r",encoding="utf-8").read() excludes = {"将军","却说","荆州","二人","不可","不能","如此"} words = jieba.lcut(txt)

counts= {}

forword in words:

iflen(word) == 1:

continue

elifword == "诸葛亮" or word == "孔明曰":  rword = "孔明"

elifword == "关公" or word == "云长":  rword = "关羽"

elifword == "玄德" or word == "玄德曰":  rword = "刘备"

elifword == "孟德" or word == "丞相":

rword= "曹操"

else:

rword= word

counts[rword]= counts.get(rword,0) + 1

forword in excludes:

delcounts[word]

items= list(counts.items()) items.sort(key=lambda x:x[1], reverse=True) 

fori in range(10):

word,count = items[i]

print("{0:<10}{1:>5}".format(word,count))