Python program to build flashcard using class in python


Generally, a flashcard is a learning tool that consists of a small card or piece of paper with information printed on one side. These are commonly used to aid in memorization and learning of facts, vocabulary, definitions, equations, or any other type of information that can be presented in a question-and-answer format.

With the advancement of technology, flashcards have also been adapted into digital formats, such as mobile apps and online platforms, which provide additional features like multimedia content, spaced repetition algorithms, and progress tracking.

There different approaches available in python to build the flash cards, let’s go through each one.

Flashcard as a Class Attribute

A class attribute in Python is a variable that is bound to a class rather than an instance of the class. It is shared among all instances of the class and can be accessed and modified using either the class name or an instance of the class.

Example

In this example we are defining the flashcard as class attribute and each flashcard object will have attributes to store the question and answer. We can define methods within the class to display the question, receive user input for the answer, and check if the answer is correct.

class Flashcard:
   def __init__(self, question, answer):
      self.question = question
      self.answer = answer
   def display_question(self):
      print("Question:", self.question)
   def get_user_answer(self):
      return input("Your answer: ")
   def check_answer(self, user_answer):
      return user_answer == self.answer
card = Flashcard("What is the capital of India?", "Delhi")
card.display_question()
user_answer = card.get_user_answer()
is_correct = card.check_answer(user_answer)
print("Your answer is correct:", is_correct)

Output

Question: What is the capital of India?
Your answer: Delhi
Your answer is correct: True

Flashcard as an Instance of a Flashcard Class

In this approach, each flashcard is represented as a dictionary where the question and answer are stored as key-value pairs.

Example

In this example, each flashcard is representing as a dictionary within the Flashcard class. The __init__ method initializes the flashcard dictionary with the question and answer as key-value pairs. We can access the question and answer of each flashcard using the appropriate keys.

class Flashcard:
   def __init__(self, question, answer):
      self.flashcard = {"question": question, "answer": answer}
flashcard1 = Flashcard("What is the capital of France?", "Paris")
flashcard2 = Flashcard("Who painted the Mona Lisa?", "Leonardo da Vinci")
print(flashcard1.flashcard["question"])
print(flashcard1.flashcard["answer"])
print(flashcard2.flashcard["question"])
print(flashcard2.flashcard["answer"])

Output

What is the capital of France?
Paris
Who painted the Mona Lisa?
Leonardo da Vinci

Flashcard as a Class with Methods

In this approach, each flashcard is represented as an instance of the Flashcard class, which also contains methods to display the question and answer.

Example

In this example, each flashcard is represented as an instance of the Flashcard class. The __init__ method initializes the question and answer attributes of each flashcard. The class also contains methods display_question() and display_answer() to display the question and answer of each flashcard.

class Flashcard:
   def __init__(self, question, answer):
      self.question = question
      self.answer = answer
   def display_question(self):
      print(self.question)
   def display_answer(self):
      print(self.answer)
flashcard1 = Flashcard("What is the capital of France?", "Paris")
flashcard2 = Flashcard("Who painted the Mona Lisa?", "Leonardo da Vinci")
flashcard1.display_question()
flashcard1.display_answer()
flashcard2.display_question()
flashcard2.display_answer()

Output

What is the capital of France?
Paris	
Who painted the Mona Lisa?
Leonardo da Vinci

Updated on: 02-Aug-2023

256 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements