2 つのデータ リストについてベンフォードの法則を証明するプログラムを作成する必要があります。ほとんどの部分でコードがダウンしていると思いますが、見落としている小さなエラーがあると思います。これがサイトの使用方法ではない場合は申し訳ありませんが、本当に助けが必要です. これが私のコードです。
def getData(fileName):
data = []
f = open(fileName,'r')
for line in f:
data.append(line)
f.close()
return data
def getLeadDigitCounts(data):
counts = [0,0,0,0,0,0,0,0,0]
for i in data:
pop = i[1]
digits = pop[0]
int(digits)
counts[digits-1] += 1
return counts
def showResults(counts):
percentage = 0
Sum = 0
num = 0
Total = 0
for i in counts:
Total += i
print"number of data points:",Sum
print
print"digit number percentage"
for i in counts:
Sum += i
percentage = counts[i]/float(Sum)
num = counts[i]
print"5%d 6%d %f"%(i,num,percentage)
def showLeadingDigits(digit,data):
print"Showing data with a leading",digit
for i in data:
if digit == i[i][1]:
print i
def processFile(name):
data = getData(name)
counts = getLeadDigitCounts(data)
showResults(counts)
digit = input('Enter leading digit: ')
showLeadingDigits(digit, data)
def main():
processFile('TexasCountyPop2010.txt')
processFile('MilesofTexasRoad.txt')
main()
これが私がこのサイトを使用することになっている方法ではない場合は、もう一度申し訳ありません. また、教授が教えてくださったプログラミング手法しか使えないので、このままコードをきれいにするためのアドバイスをいただければ幸いです。
また、ここに私のデータから数行を示します。
Anderson County 58458
Andrews County 14786
Angelina County 86771
Aransas County 23158
Archer County 9054
Armstrong County 1901