對檔案進行操作,將所需概率求出
阿新 • • 發佈:2018-11-23
首先開啟檔案,遍歷檔案中的每一行,將每一行看做成列表,將列表的中的每一個元素遍歷,如果有所需的資料就記錄下來,方便以後的操作。
import math job=input("請輸入關鍵字:") addr=input("請輸入地址:") sal=float(input("請輸入薪資(萬/月):")) def P(job,addr,sal): file = open("D:\\1.txt","r") addrjob=0 job_num=0 addr_num=0 salminsum = 0 salmaxsum = 0 S_2=0 i=0 addrjob=0 for each_line in file: i=i+1 list = each_line.split('\t') if list[0]== job and list[1]==addr: addrjob=addrjob+1 if list[0]==job: job_num=job_num+1 if list[1]==addr: addr_num=addr_num+1 salminsum=salminsum+float(list[2]) salmaxsum=salmaxsum+float(list[3]) file.close() file = open("D:\\1.txt","r") i=0 for each_line1 in file: i=i+1 li = each_line1.split('\t') if li[1]==addr: S_2=S_2+((float(li[2])-(salminsum/addr_num))**2)/addr_num file.close() p=addr_num/i p_job_addr=addrjob/addr_num bu=salminsum/addr_num f=(1/(math.sqrt(2*S_2*(math.pi))))*(math.e)**((-(sal-bu)**2)/(2*S_2)) print("該情況的概率為:",p*(p_job_addr)*f) P(job,addr,sal) #b=P("java","北京",1.8) #print("北京java工資為1.8w:",b) #s=P("java","上海",1.8) #print("上海java工資為1.8w:",s) #g=P("java","廣州",1.8) #print("廣州java工資為1.8w:",g) #sz=P("java","深圳",1.8) #print("深圳java工資為1.8w:",sz) #pb=P("python","北京",1.8) #print("北京python工資為1.8w:",pb)