实验目的及要求:
一、实验目的:
(1)理解字典的概念。
(2)掌握字典的使用方法。
(3)掌握jieba库的安装及使用。
(4)能够应用jieba库、字典对中文词频进行统计。
二、实验要求:
(1)完成实验课本10.1~10.3(实验报告提交),11.1(课堂提交),11.2~11.3(实验报告提交)。
(2)使用Pycharm+Python或Pycharm+Anaconda或VSC完成程序编写、调试、运行,并将代码及运行结果截图整理成文档,形成实验报告,并总结心得体会。
实验内容:
10.1:
import random, math
def gambleOnce():
return random.random() > 0.5
def gambleDay(money):
if money < 1:
return money
wager = 1
money -= wager
while not gambleOnce():
wager *= 2
money -= wager
if money <= 0:
return money
money = money + 2 * wager
return money
if __name__ == '__main__':
moneyHold = 1024
moneyHolds = []
dayNumber = 30
for x in range(dayNumber):
moneyHold = gambleDay(moneyHold)
moneyHolds.append(moneyHold)
from matplotlib import pyplot as plt
plt.scatter(list(range(1,dayNumber+1)), moneyHolds, s = 1)
plt.title(f'Every day\'s money during {dayNumber} days')
plt.show()
结果:
10.2:
10.3:
import random, math
def gambleOnce():
return random.random() > 0.5
def gambleDay(money):
if money < 1:
return money
wager = 1
money -= wager
while not gambleOnce():
wager *= 2
money -= wager
if money <= 0:
return money
money = money + 2 * wager
return money
if __name__ == '__main__':
iWinner, iLoser = 0,0
for x in range(100):
moneyHold = 1024
moneyHolds = []
dayNumber = 3650*2
for x in range(dayNumber):
moneyHold = gambleDay(moneyHold)
moneyHolds.append(moneyHold)
if moneyHold > 0:
iWinner += 1
else:
iLoser += 1
print(f"Winner: {iWinner}, Loser: {iLoser}")
结果:
11.2:
txtWord=open("word.txt","r").read()
txtWord=txtWord.lower()
counts={}
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_‘{|}~':
txtWord = txtWord.replace(ch, " ") #将文本中特殊字符替换为空格
words=txtWord.split()
for word in words:
if word in counts:
counts[word]=counts[word]+1
else:
counts[word]=1 #统计功能也可以使用字典的get方法实现
items=[[x,y] for (y,x) in list(counts.items())]
items.sort(reverse=True)
print(items)
结果:
11.3:
infile=open("university.txt","r",encoding="utf-8").readlines()
universityDict={}
for line in infile:
lst=line.split()
universityDict[lst[0]]=int(lst[1])
items=list(universityDict.items())
items.sort(key=lambda x:x[1],reverse=True)
print(items[0])
sum=0
for i in universityDict.values():
sum=sum+int(i)
print(sum)
结果:
11.3-2:
infile=open("university1.txt","r",encoding="utf-8").readlines()
universityDict={}
lst=[]
for line in infile:
temp=[]
lst=line.split()
for i in range(1,len(lst)):
temp.append(int(lst[i]))
universityDict[lst[0]]=temp
province=input("请输入省名:")
strTemp=""
if province in universityDict.keys():
strTemp="{}大学数量:{},双一流高校建设数量:{},一流大学建设高校数量:\
{},一流学科建设高校数量:{}。".format(province,universityDict[province][0],\
universityDict[province][1],universityDict[province][2],universityDict[province][3])
print(strTemp)
items=list(universityDict.items())
items.sort(key=lambda x:(x[1][1],x[1][2]),reverse=True)
print(items)
sum1=0
sum2=0
for i in universityDict.values():
sum1=sum1+i[1]
sum2=sum2+i[2]
print("中国双一流建设高校的数量:",sum1,"一流大学建设高校数量:",sum2)
结果: