repository to manage all files for 1_2_oder_3 interaction game for Inf2/2 Interaktionen SoSe23 from Engert, Caliskan and Bachiri
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

database.py 4.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import sqlite3
  2. import pandas as pd
  3. from sqlite3 import Error
  4. questions = [('Wie heißt der längst Fluss auf der Welt?', 'Amazonas', 'Nil', 'Jangtsekiang', 'Nil'),
  5. ('Aus welcher englischen Stadt stammt die Musikgruppe die Beatles?', 'London', 'Sheffield', 'Liverpool', 'Liverpool'),
  6. ('Zu welchem Land gehört Grönland?', 'Norwegen', 'Island', 'Dänemark', 'Dänemark'),
  7. ('Wie heißen die ursprünglichen Bewohner Australiens?', 'Aborigines', 'Eingeborene', 'Australian Natives', 'Aborigines'),
  8. ('Mit welchem Korn verglich Jesus das Reich Gottes?', 'Senfkorn', 'Weizenkorn', 'Haferkorn', 'Senfkorn'),
  9. ('Wie lange können Kaiserpinguine tauchen?', '5min', '10min', '20min', '20min'),
  10. ('Wer war der Kommandant der Apollo 11?', 'Louis Armstrong', 'Neil Armstrong', 'Lance Armstrong', 'Neil Armstrong'),
  11. ('Wie heißt die größte Stadt der Welt (nach Einwohnern)?', 'São Paulo', 'Tokio', 'Seoul', 'Tokio',),
  12. ('In welchem Land liegt Helsinki?', 'Finnland', 'Norwegen', 'Schweden', 'Finnland'),
  13. ('Wie viele Bundesländer hat Deutschland?', '16', '17', '20', '16'),
  14. ('Wie heißt der höchste Berg Europas?', 'Zugspitze', 'Matterhorn', 'Montblanc', 'Montblanc'),
  15. ('Wie lange braucht das Licht in etwa von der Sonne zur Erde?', '80 Sekunden', '8 Minuten', '7 Tage', '8 Minuten'),
  16. ('Was hat James Watt erfunden?', 'Glühbirne', 'Elektrischen Widerstand', 'Dampfmaschine', 'Dampfmaschine'),
  17. ('Wie hieß der erste Deutsch Bundeskanzler?', 'Helmut Schmidt', 'Konrad Adenauer', 'Willy Brandt', 'Konrad Adenauer'),
  18. ('Von wem stammt das Gemälde der Mona Lisa?', 'Picasso', 'Vincent van Gogh', 'Leonardo da Vinci', 'Leonardo da Vinci'),
  19. ('Wie heißt der Erfinder der Jeanshose?', 'Tom Wrangler', 'Levi Strauss', 'Peter Diesel', 'Levi Strauss'),
  20. ('Welches Land gewann 2014 die Fußball Weltmeisterschaft?', 'Brasilien', 'Argentien', 'Deutschland', 'Deutschland'),
  21. ('Welcher ist der "rote Planet" unseres Sonnensystems?', 'Mars', 'Venus', 'Jupiter', 'Mars'),
  22. ('Was bezeichnet die chemische Formel \'NaCl\'?', 'Kochsalz', 'Wasser', 'Stickstoff', 'Kochsalz'),
  23. ('Welche Form hat die Narbe auf Harry Potters Stirn?', 'Dreieck', 'Blitz', 'Kreuz', 'Blitz')]
  24. class QuestionDataBase:
  25. def __init__(self, file_name) -> None:
  26. self.file_name = file_name
  27. try:
  28. self.connection = sqlite3.connect(database=self.file_name)
  29. print(f'Successfully connected to SQLite (Version: ' + sqlite3.version + ')..\n')
  30. except Error as err:
  31. print(err)
  32. self.cursor = self.connection.cursor()
  33. def close_connection(self):
  34. try:
  35. self.cursor.close()
  36. print("Close connection to SQLite was successfully.")
  37. except Error as err:
  38. print(err)
  39. def create_table(self):
  40. table_config = "CREATE TABLE IF NOT EXISTS Questions" \
  41. "(QuestionNr TEXT PRIMARY KEY," \
  42. " Answeroption_1 \nTEXT," \
  43. " Answeroption_2 TEXT," \
  44. " Answeroption_3 TEXT," \
  45. " Correct_answeroption TEXT)"
  46. self.cursor.execute(table_config)
  47. print("Successfully create tables.. ")
  48. def insert_table(self, questions: list):
  49. self.cursor.executemany("INSERT OR IGNORE INTO Questions VALUES (?, ?, ?, ?, ?)", questions)
  50. print("Successfully insert data into table.")
  51. def num_rows(self):
  52. self.cursor.execute("SELECT COUNT(*) FROM Questions")
  53. return self.cursor.fetchone()[0]
  54. def delete_data(self, table_name):
  55. self.cursor.execute(f"DELETE FROM {table_name}")
  56. def read_question_data(self, file_name: str):
  57. try:
  58. data = pd.read_csv(file_name, delimiter=';')
  59. except Error as err:
  60. print('File could not be read..')
  61. print(err)
  62. return data
  63. ## ToDO: get question, return type(dict)
  64. def get_questions():
  65. pass
  66. if __name__ == "__main__":
  67. database = QuestionDataBase('Project/BackEnd/Database/EinsZweiOderDrei.db')
  68. insert_table = database.insert_table(questions)
  69. database.commit()
  70. database.close_connection()