#CalStatisticsV1.pydefgetNum():
nums=[]
iNumStr=input("请输入数字(回车退出):")while iNumStr !="":
nums.append(eval(iNumStr))
iNumStr=input("请输入数字(回车退出):")return nums
defmean(number):
s=0.0for num in number:
s=s+num
return s/len(number)defdev(numbers,mean):
sdev=0.0for num in numbers:
sdev=sdev+(num-mean)**2returnpow(sdev/(len(numbers)-1),0.5)defmedian(numbers):sorted(numbers)
size=len(numbers)if size%2==0:
med=(numbers[size//2-1]+numbers[size//2])/2else:
med=numbers[size//2]return med
n=getNum()
m=mean(n)print("平均数{},方差:{:.2},中位数:{}".format(m,dev(n,m),median(n)))
Example: Text word frequency statistics
#CalHamletV1.pydefgetText():
txt=open("hamlet.txt","r").read()
txt=txt.lower()for ch in'!"#$&()*+,=./:;<>=?@[\\]^_{|}~':
txt=txt.replace(cj," ")return txt
hamletTxt=getText()
words=hamletText.split()
counts={
}for word in words:
counts[word]=counts.get(word,0)+1
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)for i inrange(10):
word,count=items[i]print("{0:<10}{1:>5}".format(word,count))
#CalThreeKindomsV2import jieba
txt=open("threekingkoms.txt","r",encoding="utf-8").read()
excludes={
"将军","却说","荆州","二人","不可","不能","如此"}
words=jieba.lcut(txt)
counts={
}for word in words:iflen(word)==1:continueelif word=="诸葛亮"or word=="孔明曰":
rword=="孔明"elif word=="关公"or word=="云长":
rword=="关羽"elif word=="玄德"or word=="玄德曰":
rword="刘备"elif word=="孟德"or word=="丞相曰":
rword=="曹操"else:
rword=word
counts[rword]=counts.get(rword,0)+1for word in excludes:del counts[word]
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)for i inrange(10):
word,count=items[i]print("{0:<10}{1:>5}".format(word,count))
2. File and data formatting
Example: automatic trajectory drawing
#AutoTranceDraw.pyimport turtle as t
t.title("自动绘制轨迹")
t.setup(800,600,0,0)
t.pencolor("red")
t.pensize(5)#数据读取
datals=[]
f.open("data.txt")for line in f:
line=line.replace("\n","")
datals.append(list(map(eval,line.split(","))))
f.close()#自动绘制for i inrange(len(datals)):
t.pencolor(datals[i][3],datals[i][4],datals[i][5])
t.fd(datals[i][0])if datals[i][1]:
t.right(datals[i][2])else:
t.right(datals[i][2])