yznu:Python字典

实验目的及要求:

一、实验目的:

(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)

结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值