2016-11-13 122 views
-2

我收到一个错误消息,表中没有'person'。标准偏差代码错误

为什么我会得到这个?

我想计算年龄的标准偏差。

from time import time 
from math import * 
import sqlite3 
hmwk=sqlite3.connect('AGES.sqlite3') 

def main(): 
    start=time() 
    numbers=hmwk.execute("SELECT age from person") 
    numbers = [] 
#creates list of numbers from ages 
    for row in numbers: 
     numbers.append(int(row)) 
    average = float(sum(numbers))/len(numbers) 
#subtracts average x from x or opposite and square, depending on n  
    for n in range(len(numbers) - 1): 
     if numbers[n] > average: 
      numbers.append((numbers[n] - average)**2) 
     if numbers[n] < average: 
      numbers.append((average - numbers[n])**2) 
#takes sqrt of the sum of all these numbers and divides by n-1 
    Stdv = math.sqrt(sum(numbers))/(len(numbers)-1)) 
    end=time() 
    print(Stdv) 
    print("This took",end-start, "time to complete") 

main() 
+3

我们没有你的数据库。所以我们无法验证你在说什么。 –

+0

为什么您认为该表实际上存在于您打开的数据库文件中,当证据显示其他情况时? –

+0

我第一次尝试调试它将检查您是否打开正确的数据库。但是我们没有你的数据库,所以我们不能检查它的错误。 –

回答

0

使用sqlite3的命令行程序的.tables命令来检查文件是否AGES.sqlite3确实包含一个表“人”。

根据您的表格布局,sqlite3的会话应该与此类似:

[email protected]:~/projects/sqlite3$ sqlite3 AGES.sqlite3 
SQLite version 3.8.7.1 2014-10-29 13:59:56 
Enter ".help" for usage hints. 
sqlite> .tables 
person 
sqlite> .schema person 
CREATE TABLE person (name string, age int); 
sqlite>