Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python从SQLite3数据库检索信息_Python_Database_Sqlite - Fatal编程技术网

Python从SQLite3数据库检索信息

Python从SQLite3数据库检索信息,python,database,sqlite,Python,Database,Sqlite,这是我目前的代码,其中一些变量是占位符。我要做的是从我创建的数据库中提取信息,并将其分配给变量,以便在计算平均值时使用它们。fetchall返回一个行列表,其中每行是一个元组,在本例中包含六个值 您可以浏览此列表,但除非需要对所有行进行随机访问,否则最好将光标用作迭代器: import sqlite3 Class = str(input("Which class are you in? A) 11A B) 11B C) 11C")) f_name = str(input("What is yo

这是我目前的代码,其中一些变量是占位符。我要做的是从我创建的数据库中提取信息,并将其分配给变量,以便在计算平均值时使用它们。

fetchall返回一个行列表,其中每行是一个元组,在本例中包含六个值

您可以浏览此列表,但除非需要对所有行进行随机访问,否则最好将光标用作迭代器:

import sqlite3

Class = str(input("Which class are you in? A) 11A B) 11B C) 11C"))
f_name = str(input("What is your first name?"))
s_name = str(input("What is your surname?"))
h_score = "8"
a_score = "7"
t_taken = "3"

if Class == "11A" or "11a":
    counter = 0
    while counter < 1:
        db_students = sqlite3.connect('//persian/controlledassessment$/work/11 C CS/10BakeEd/Python/Task 2/db_Students.db')
        c=db_students.cursor()
        c.execute('''CREATE TABLE IF NOT EXISTS ClassA
         (student_firstname text,
        student_surname text,
        h_score number,
        a_score number,
        t_taken number,
        Class text)
        ''')
        c.execute('''INSERT INTO ClassA
         VALUES (?, ?, ?, ?, ?, ?)''',(f_name, s_name, h_score, a_score, t_taken, Class))
        db_students.commit()
        c.execute("SELECT * FROM ClassA")
        fetchall=c.fetchall() 
        print(fetchall)
        db_students.close()
        counter = counter + 1





elif Class == "11B" or "11b":
    print()

elif Class == "11C" or "11c":
    print()

else:    
    print("")
如果要计算平均值,最好直接在SQL中进行计算:

c.execute(...)
for row in c:
    print(c[0])    # prints all first names
else:
    pass           # no rows found
可能不相关:if Class==11A或11A:不做您认为它做的事情。您希望使用11A中的if类,11A:或if Class.lower==11A:。另外,不需要对输入的结果调用str。
c.execute("SELECT AVG(h_score), AVG(a_score) FROM ClassA WHERE Class LIKE '11a'")
avg_h, avg_a = c.fetch()