2015-01-23 7 views
0
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("") 

이것은 현재 내 코드이며 자리 표시 자의 변수 중 일부입니다. 내가하고 싶은 일은 내가 만든 데이터베이스에서 정보를 꺼내서 변수에 할당하여 평균과 같은 계산에 사용할 수 있도록하는 것입니다.Python SQLite3 데이터베이스에서 정보 가져 오기

+0

아마도 클래스 == "11A"또는 "11a"인 경우 : 당신이 생각하는대로하지 않습니다. Class.lower() == "11a":'인 경우 Class in ("11A", "11a") :'또는'를 사용합니다. 또한,'input()'의 결과에'str()'을 호출 할 필요가 없다. –

답변

0

fetchall()은 행 목록을 반환합니다. 여기서 각 행은 (이 경우) 여섯 개의 값을 포함하는 튜플입니다.

당신이 목록을 통해 갈 수 있지만, 모든 행에 무작위 접근을 할 필요가없는 경우,이 반복자로 커서를 사용하는 것이 더 좋습니다 :

c.execute(...) 
for row in c: 
    print(c[0]) # prints all first names 
else: 
    pass   # no rows found 

당신이 평균을 계산하려면,

c.execute("SELECT AVG(h_score), AVG(a_score) FROM ClassA WHERE Class LIKE '11a'") 
avg_h, avg_a = c.fetch() 
관련 문제